I found the reason. First sasl_saslauthd_path must point to the full mux file (in my case /server/var/run/saslauthd/mux) and not the path given as home argument to saslauthd (in my case -m /server/var/run/saslauthd) : this is quite confusing. This solved the original "socket operation on non-socket" problem. The last problem "SASL size read failed" is about a wrong ldap library. I noticed with ldd that saslauthd was linked with two different ldap libraries "libldap" and "libldap-2.4". This is a Solaris/illumos only problem: the kernel comes with an original Solaris ldap library (libldap), so the openldap libraries are distributed with a different name (libldap-2.4). I had to patch the configure.ac file like this:
--- cyrus-sasl-cyrus-sasl-2.1.28/configure.ac Tue Jan 17 11:13:09 2023 +++ cyrus-sasl-cyrus-sasl-2.1.28/configure.ac.new Tue Jan 17 11:20:14 2023 @@ -679,8 +679,8 @@ LDAP_LIBS="" if test "$with_ldap" != no; then - AC_CHECK_LIB(ldap, ldap_initialize, [ AC_DEFINE(HAVE_LDAP,[],[Support for LDAP?]) - LDAP_LIBS="-lldap -llber" + AC_CHECK_LIB(ldap-2.4, ldap_initialize, [ AC_DEFINE(HAVE_LDAP,[],[Support for LDAP?]) + LDAP_LIBS="-lldap-2.4 -llber" if test "$with_openssl" != "no"; then LDAP_LIBS="$LDAP_LIBS -lcrypto $LIB_RSAREF" fi],,-llber) @@ -1005,7 +1005,7 @@ CMU_OPENLDAP_API if test "$cmu_cv_openldap_api" = yes; then - AC_CHECK_LIB(ldap, ldap_initialize, [ cmu_link_openldap="-lldap -llber" ], [ cmu_link_openldap=no ],-llber) + AC_CHECK_LIB(ldap-2.4, ldap_initialize, [ cmu_link_openldap="-lldap-2.4 -llber" ], [ cmu_link_openldap=no ],-llber) fi fi This to force link with libldap-2.4 only! Rebuilt cyrus-sasl component and package, updated test system, restarted both saslauthd and cyrus-imap services and now it works like a charm! It would be nice to have a configure parameter to override default "-lldap" with a custom one. Thanks for your help! Gabriele Sonicle S.r.l. : http://www.sonicle.com Music: http://www.gabrielebulfon.com eXoplanets : https://gabrielebulfon.bandcamp.com/album/exoplanets Da: vladas via Info <[email protected]> A: Info <[email protected]> Data: 17 gennaio 2023 11.16.19 CET Oggetto: Re: Setting saslauthd home Are you restarted saslauthd before imapd? "Socket operation on non-socket" usually means inaccessible saslauthd.pid Sorry, I am newbie in Cyrus and as a sysadmin in general. My FreeBSD directory /var/run/saslauthd/ contains also three links to saslauthd, saslauthd-rc and sasldb2.db besides of mux, mux.accept, and saslauthd.pid itself. Vladas Palubinskas https://az.on.lt/ Cyrus / Info / see discussions + participants + delivery options Permalink ------------------------------------------ Cyrus: Info Permalink: https://cyrus.topicbox.com/groups/info/Tfd793d7ea01dd9cb-Mf1bf396bd5b4a8345891ac88 Delivery options: https://cyrus.topicbox.com/groups/info/subscription
