[Date Prev][Date Next] [Chronological] [Thread] [Top]

Unix socket auth(EXTERNAL) not working in netbsd



netbsd# /usr/pkg/libexec/slapd -V
@(#) $OpenLDAP: slapd 2.4.11 (Sep 15 2008 00:03:54) $
        root@netbsd.dmarkey.com:/usr/pkgsrc/databases/openldap-server/work/openldap-2.4.11/servers/slapd




netbsd# ldapsearch -x -H ldapi:// -b '' -s base -LLL supportedSASLMechanisms
dn:


External isnt listed.


I assume that the unix socket API is slightly different.:

man unix


   The LOCAL_CREDS option may be enabled on a SOCK_DGRAM or a SOCK_STREAM
     socket.  This option provides a mechanism for the receiver to receive the
     credentials of the process as a recvmsg(2) control message.  The msg_con-
     trol field in the msghdr structure points to a buffer that contains a
     cmsghdr structure followed by a variable length sockcred structure,
     defined in <sys/socket.h> as follows:

     struct sockcred {
             uid_t   sc_uid;                 /* real user id */
             uid_t   sc_euid;                /* effective user id */
             gid_t   sc_gid;                 /* real group id */
             gid_t   sc_egid;                /* effective group id */
             int     sc_ngroups;             /* number of supplemental groups */
             gid_t   sc_groups[1];           /* variable length */
     };

     The LOCAL_PEEREID option may be used with getsockopt(2) to get the PID
     and effective user and group IDs of a SOCK_STREAM peer when it did
     connect(2) or bind(2).  The returned structure is

     struct unpcbid {
             pid_t unp_pid;                  /* process id */
             uid_t unp_euid;                 /* effective user id */
             gid_t unp_egid;                 /* effective group id */
     };
     as defined in <sys/un.h>.

     The SOCKCREDSIZE() macro computes the size of the sockcred structure for
     a specified number of groups.  The cmsghdr fields have the following val-
     ues:

     cmsg_len = sizeof(struct cmsghdr) + SOCKCREDSIZE(ngroups)
     cmsg_level = SOL_SOCKET
     cmsg_type = SCM_CREDS



Any ideas?


Howard i assume you would be an authority to answer this one.


Thanks.