On 10/30/2013 10:28 PM, Amos Jeffries wrote: > On 31/10/2013 1:16 p.m., Alex Rousskov wrote: >> Hello, >> >> The attached patch upgrades Squid to libecap v1.0, allowing >> asynchronous (e.g., threaded) eCAP adapters and eCAP version checks. >> >> After these changes, Squid can support eCAP adapters built with libecap >> v1.0, but stops supporting adapters built with earlier libecap versions >> (due to libecap API changes). The new libecap version allows Squid to >> better check the version of the eCAP adapter being loaded as well as the >> version of the eCAP library being used. This should help with migration >> to libecap v1.0.
> Does this new library version support break backward compatibility with > building Squid against libecap 0.2.x ? Yes, patched Squid cannot work with libecap v0.x or libecap v1.1 (if that is what you are asking). If I am not answering your question, please rephrase. > Why is explicit module library version checking being pushed into Squid > itself? does not the library ABI versioning handle backward-compatibility? Sorry, I do not know what it means for "the library ABI versioning" to "handle backward-compatibility", but I know that patched Squid cannot work with libecap v0.x or libecap v1.1, so I adjusted Squid ./configure check accordingly. Or are you asking about something else? Please keep in mind that there can be are up to 2+N libecap versions that Squid needs to deal with, where N is the number of eCAP adapters: (1) libecap Squid was built with + (1) libecap Squid is running with + (N) libecap adapters were built with. It is possible to configure "Squid built with libecap v1.0" to load an "adapter built with libecap v0.2". I ran many tests like that. Old Squids would crash and burn in similar version mismatch cases. With this patch, Squid warns the admin about the adapter version mismatch and either exits or runs OK, depending on squid.conf IIRC (but Squid may still crash and burn on exit when global library destructors are called -- nothing we can do about that AFAIK). Thank you, Alex.