Russ Allbery: the 0.12-server distribution of this module has a typemap that ends up casting the pointer return from server_new and client_new through an int. This looks like it's causing pointer truncation and various problems on some 64-bit platforms (particularly Debian alpha and Debian ia64). There is a simpler fix than the patch below (just replacing int with long will work on most platforms, probably), but reading through the perlxs man page, there's apparently a specific way in which one is supposed to handle module data T_PTROBJ_SPECIAL. I went ahead and implemented that, which also improves error reporting a bit. After applying the following patch, the resulting C code no longer casts through an int (it casts through an IV instead, but that's sufficient on all Unix platforms at least). typedef for struct authensasl to Authen_SASL_Cyrus.
added setpass and checkpass methods added setpass callback applied a patch by Graham Barr (found with google) for enabling GSSAPI authentication with Net::LDAP (fixed a problem in Security.pm) added a check for undef return values when using sub-callbacks (Thanks to Quanah Gibson-Mount for discovering this one)
Added the iplocalport and ipremote port to *_new methods, after filling in the appropriate string (see doc) ASC is able to manage KERBEROS_V4 on the server side solved bug in property handling (strlen(NULL) after received NULL as data from a sasl_getprop)
Almost complete rewrite of Perlcallbacks from Cyrus.xs. SASL-Server functionality added, so servers written in Perl can use SASL as Authentication Layer. Synchronize callbacks between Cyrus SASL v1 and v2. Many changes in the internal handling of sasl variables.