Untangle the last patch.. ap_add_version_component() needs to *prepend* the strings it's fed, not append them. This is because the last thing that calls it before the string is locked is ap_set_version() (as in set-like-cement), which adds the SERVER_BASEVERSION, the platform (conditionally), and the SERVER_SUBVERSION (if defined) at a known location - the front of the string. This has the drawback that module contributions will be listed in reverse order from their 'importance' (which is, in turn, in reverse order from their appearance in the Configuration file ;-). However, only modules with major effects should be contributing to the string anyway, so we can consider them equal. Can't we? The alternative is to either allow ap_set_version() to directly modify the string rather than going through ap_add...(), or else to add another routine that appends rather than prepends. I don't like either of these because of the issues with semantics synchronisation and code duplication. The last patch confused things, though, so I'm just returning the behaviour to the original design - if someone wants to take extra steps to have module contributions listed in the same order as they're called, have a party. This should fix Rasmus' problem with the components being out of order, although it doesn't touch his issue with the init callback duplicating the SERVER_SUBVERSION effort. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x@81211 13f79535-47bb-0310-9956-ffa450edef68
parent
88f3a23f
Please register or sign in to comment