roxen.lists.roxen.general

Subject Author Date
Re: Lots of patches that can be integrated into Roxen 5.0 in a heartbeat Martin Stjernholm <mast[at]roxen[dot]com> 09-01-2009
"Stephen R. van den Berg" <<srb[at]cuci.nl>> wrote:

> Upon reviewing the list of patches that are still just in my local tree
> for Roxen 5.0, I notice that a lot of "easy" or bugfix ones are still in
> there.  I took the liberty to highlight some of the more obvious ones, so
> as to remind you that they can/should be folded into Roxen mainline.

Thanks, it has been on my to-do but slipped my attention, sorry..


> commit 640da37496f826898c13b17ee075977b15a906aa
>     Change default format to be compatible to the common log format, yet
include
>     as much information as possible
> Beneficial for common logfile analyzers which work natively with the (new)
> default format.

...which afaics is called the Combined Log Format. Committed a similar
change, but I refrained from (ab)using the rfc1413 field for request
status info.

> commit f8984b9854a8c3b7790baf7cfea13b5c29b979a5
>     Fix quoting
> Minor cleanup.

Hmm, the original looks more correct to me (although "" is an
acceptable but more cryptic alias for the "none" encoding).

> commit aa819b43c382e69106fc713fa6bf581865cff694
>     Stricter typechecking needs casts
> Suppresses warnings.

Not needed in a modern 7.8.

> commit 4277b4905222032c8fb5a0eab460f60d39f78ead
>     Housekeeping
> Supplies a suitable .gitignore.

Ok, although I don't know what *.s and *.a would match.

> commit c1809dafecb99732d3d3162554b5463b51c5b3a3
>     Add missing method for more universal emulation of the file class
> Harmless extension of functionality.

Ok.

> commit 792000c527e0a6567ecba48934e3211568530c97
>     data sometimes is empty
> Fixes a crash I had sometimes, not sure if this is needed.

If that fails then the error is elsewhere. An improvement would be to
throw the I/O error reported through errno instead.

> commit baaca0f710c9a95ac5921f5b9d1fd44d26b4fa34
>     Saner default for mysql querycache
> Roxen should do the caching, not mysql.

Not sure about the repercussions to change this. There are many
situations when a Roxen level cache isn't viable (e.g. external
clients, or because it'd be too much extra effort to write one).

> commit ad8a92ec5316e71b71638558c077e3b61ce92afd
>     Fix longstanding errors in the quoting of <redirect>
> I'm not entirely certain anymore that they are/were errors, someone needs
> to seriously look at this and reevaluate the fix.  If it does fix a bug,
> it is seriously needed.  It's a one-line patch, so it's easy to
> check.

I think the original code is correct. http_encode_invalids doesn't
double-quote, so it's safe to use on an already encoded url.

> commit 8b7de561ead32a21f50b8508a5735de801cc421a
>     Make <redirect> work without loosing query arguments
> This fixes a bug.

The patch doesn't handle port paths correctly, I think (base_url() can
return a path component after the host:port/ part). Judging from the
your commit message, I've now (in cvs rev 1.50) fixed the problem this
patch intends to fix, though.

> commit e40fa87a0bda7450a883e78702bf9259bca4e720
>     chroot support for CGI
> This adds a simple yet important feature (small patch, easily integrated).

Thanks, added with a slight change.

From this point on I switched to the newer list:

> commit 9606b69ad569edb4f60d137e5542f6bf20c69981
>     Fix quoting
> commit 3b49798b72995184554216f41003e86c05c6c23e
>     data sometimes is empty
> commit aaf386eb511f239364154b84e9df415227b51a5e
>     Saner default for mysql querycache
> commit ce8852c7a7014339167858690b7ee1b568d6dcf1
>     Fix longstanding errors in the quoting of <redirect>

Processed earlier.

> commit 3729086df68ce5515cbe7beeed4444ce215f9616
>     There can be only one, so replace Content-Type fields

Ok, thanks. Extended it to cover the Expire header too, but there are
probably several more headers that should be replaced.

> commit 63599fe09a945ed395b241f60b2f9a1e9d860814
>     Only override width/height on cimg when neither have been specified

Ok. Some docs would have been nice, but the original attributes don't
have any so I guess it's still an improvement.

> commit b4b503c88cf69d991e23acf4598e14686d635f39
>     Prevent cimg from asking for username/password at times

Don't understand what the bug is that this would solve.

> commit e1a3b33a3485bd3d26660ab031c1e01e7d67aec6
>     Eliminate $ dependency

Guess we'll have to do something about that when we stop using cvs
here, but we still do..

> commit fe93704e6b5322e27fb85b0bef68b01d96f776cb
>     Added extra entries to .gitignore

Ok.

> commit cd3cd82a2af0d19ddb060a561d296e8ca6f308cb
>     Take the local tree out of the repository proper

I don't think we want this. Those files are there to provide a
skeleton local dir hierarchy and some help.

> commit 385947c45e82910497d7a4cc7b059dee6510e65c
>     Expand exceptionlist

Ok, thanks.

> commit a8dcc328d54e879b91ab6bb365bbc35553b62041
>     Use compacter hash() member function.

Oh, I didn't know about those shortcuts. ;) Thanks.

But the _NewLDAP.pmod tree is no longer in our cvs. It's probably a
"dirty" delete that you haven't detected in your git import.

> commit caae472b3e0d448a929ce9a2dd8fa64be5ce3969
>     Cater for lost connections during the last query

Is there something that destructs the sql connection object on error?
Otherwise con will never be zero there.

> commit 26ca63251a023c65a6468c8d9f1c52077caddc48
>     Alternatives don't always contain an array

Have you gotten a real error there? The plan is that the mapping
contains only arrays when a timeout is set, and otherwise it shouldn't
get into that loop.

> commit 1b884b993f29e7ba9ca580905e5a548c71e08b10
>     Add support for none encoding in <replace>

Guess one could possibly want that feature, but I don't think "quote"
is a particularly good attribute name - it gives the impression that
there would be more than quoting scheme to choose from. And docs are
missing.

Also, in 5.0 the same thing should be achievable using something like
this (untested):

  <value type="text/plain"><replace ...>...

I'm inclined to consider that good enough since it looks like a
marginal feature.

> commit ea7fa0db8a2c0b76984c0f3c418cf6655d53f991
>     Add support for mysql-rxml type quoting

This quoting is dubious - if that is needed then I suspect there's a
double-parse problem elsewhere.

> commit e5106525998e41b72d9aae0306a70de1b33b82d2
>     Add support for csv quoting

This looks like a useful feature, but it needs good docs first. I'm
not gonna write that for you, sorry.. ;)

Although I haven't looked at it in detail, the stuff in TagEmitValues
looks slow with single-stepping chars in pike. I'm pretty sure it can
be sped up considerably using some sscanf tricks.

> commit 9d5f70747761a4e28cab901e2180a1174b073e39
>     Preserve POST variables upon redirect
> commit f91d0e08d845fd9c47fae961333d1fe47d16c7b1
>     Prevent spurious connection resets due to async sockets
> commit 362e25ea53b7569250da884daab0d7b7ae58941c
>     Differentiate cache keys for different hosts mapped to the default server
> commit 47bcfda8973a161dc143dc51156a6e1b7b64c58c
>     Tune caching for some constructs
> commit 8b913e80cacb719d6d1743ec1c51000e3f5ae046
>     Allow more functions in expr
> commit 283d902aa4f34a642208d7ff7b83450edd2d5e60
>     Avoid crashes when compiled without Java support
> commit 856cc0a4fa653f218c719a0458ac26cdf3e13a33
>     Tie up dangling references to threads
> commit fa906db8dec4bcbd6145375b2f66803874aeb62a
>     Get rid of warnings/unuseds
> commit 0de7c2cf7e3f20634bda021b30511bcab4e6ff40
>     Fix crashes when dbs_for_thread is zero
> commit 6e6d1043c883d143682cd110f34b8cf994c245dd
>     Avoid long lingering database connections
> commit 14d12052e3050924bad03cb658fa3c96bdee77b1
>     Enforce SQL session reuse-exclusivity within a single RXML page
> commit 6d3e31155bfe696ed1a400724712f7eb269bfdaf
>     Eliminate dead code for sorted lists
> commit bcd4e7c2ec8b80be1326a38ad13476e5890c06dd
>     Only lowercase the hostname, not the path
> commit d2c0e5e7c9945756a5d602c0b2bcf3948ce767cd
>     Canonicalise properly
> commit 1fb6f907b601e6e25d0a6233a2bd60c4b37746c3
>     Optimise globbed and non-globbed urls, also fixes overzealous lowercasing

Will look at these later.


Btw, when I pull from your Roxen git repo, I get this:

  error: Could not read 063677f14fd73ca1ccace84ab629f3964960a955

git gc/fsck/repack didn't help, so I did a new clone but that didn't
help either - same error.