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

Reply via email to