Do a mkdir on /var/run/nslcd before trying to create the socket

This commit is contained in:
Howard Chu 2009-06-03 02:20:56 +00:00
parent 2d93461817
commit 2f2802342f
2 changed files with 15 additions and 3 deletions

View file

@ -800,16 +800,24 @@ nssov_db_open(
}
}
if ( slapMode & SLAP_SERVER_MODE ) {
/* make sure /var/run/nslcd exists */
if (mkdir(NSLCD_PATH, (mode_t) 0555)) {
Debug(LDAP_DEBUG_TRACE,"nssov: mkdir(%s) failed (ignored): %s\n",
NSLCD_PATH,strerror(errno),0);
} else {
Debug(LDAP_DEBUG_TRACE,"nssov: created %s\n",NSLCD_PATH,0,0);
}
/* create a socket */
if ( (sock=socket(PF_UNIX,SOCK_STREAM,0))<0 )
{
Debug(LDAP_DEBUG_ANY,"nssov: cannot create socket: %s",strerror(errno),0,0);
Debug(LDAP_DEBUG_ANY,"nssov: cannot create socket: %s\n",strerror(errno),0,0);
return -1;
}
/* remove existing named socket */
if (unlink(NSLCD_SOCKET)<0)
{
Debug( LDAP_DEBUG_TRACE,"nssov: unlink() of "NSLCD_SOCKET" failed (ignored): %s",
Debug( LDAP_DEBUG_TRACE,"nssov: unlink() of "NSLCD_SOCKET" failed (ignored): %s\n",
strerror(errno),0,0);
}
/* create socket address structure */

View file

@ -9,8 +9,12 @@
#ifndef NSSOV_H
#define NSSOV_H
#ifndef NSLCD_PATH
#define NSLCD_PATH "/var/run/nslcd"
#endif
#ifndef NSLCD_SOCKET
#define NSLCD_SOCKET "/var/run/nslcd/socket"
#define NSLCD_SOCKET NSLCD_PATH "/socket"
#endif
#include <stdio.h>