/* $OpenLDAP$ */
/*
- * Copyright 1998-1999 The OpenLDAP Foundation, All Rights Reserved.
+ * Copyright 1998-2000 The OpenLDAP Foundation, All Rights Reserved.
* COPYING RESTRICTIONS APPLY, see COPYRIGHT file
*/
/* Portions
#endif /* HAVE_IO_H */
#include "ldap-int.h"
+#include "ldap_defaults.h"
/* int ldap_int_tblsize = 0; */
static ber_socket_t
ldap_pvt_socket(LDAP *ld)
{
- ber_socket_t s = socket(AF_UNIX, SOCK_STREAM, 0);
+ ber_socket_t s = socket(PF_LOCAL, SOCK_STREAM, 0);
oslocal_debug(ld, "ldap_new_socket: %d\n",s,0,0);
return ( s );
}
"ldap_is_socket_ready: errror on socket %d: errno: %d (%s)\n", \
s, \
errno, \
- strerror(errno) ); \
+ STRERROR(errno) ); \
} while( 0 )
/*
{
int so_errno;
int dummy = sizeof(so_errno);
- if ( getsockopt( s, SOL_SOCKET, SO_ERROR, &so_errno, &dummy ) == -1 ) {
+ if ( getsockopt( s, SOL_SOCKET, SO_ERROR, &so_errno, &dummy )
+ == AC_SOCKET_ERROR )
+ {
return -1;
}
if ( so_errno ) {
#else
{
/* error slippery */
- struct sockaddr_un sun;
+ struct sockaddr_un sa;
char ch;
- int dummy = sizeof(sun);
- if ( getpeername( s, (struct sockaddr *) &sun, &dummy ) == -1 ) {
+ int dummy = sizeof(sa);
+ if ( getpeername( s, (struct sockaddr *) &sa, &dummy )
+ == AC_SOCKET_ERROR )
+ {
/* XXX: needs to be replace with ber_stream_read() */
read(s, &ch, 1);
TRACE;
#undef TRACE
static int
-ldap_pvt_connect(LDAP *ld, ber_socket_t s, struct sockaddr_un *sun, int async)
+ldap_pvt_connect(LDAP *ld, ber_socket_t s, struct sockaddr_un *sa, int async)
{
struct timeval tv, *opt_tv=NULL;
fd_set wfds, *z=NULL;
if ( ldap_pvt_ndelay_on(ld, s) == -1 )
return ( -1 );
- if ( connect(s, (struct sockaddr *) sun, sizeof(struct sockaddr_un)) == 0 )
+ if ( connect(s, (struct sockaddr *) sa, sizeof(struct sockaddr_un))
+ != AC_SOCKET_ERROR )
{
- if ( ldap_pvt_ndelay_off(ld, s) == -1 )
+ if ( ldap_pvt_ndelay_off(ld, s) == -1 ) {
return ( -1 );
+ }
return ( 0 );
}
FD_ZERO(&wfds);
FD_SET(s, &wfds );
- if ( select(ldap_int_tblsize, z, &wfds, z, opt_tv ? &tv : NULL) == -1)
+ if ( select(ldap_int_tblsize, z, &wfds, z, opt_tv ? &tv : NULL)
+ == AC_SOCKET_ERROR )
+ {
return ( -1 );
+ }
if ( FD_ISSET(s, &wfds) ) {
if ( ldap_pvt_is_socket_ready(ld, s) == -1 )
ldap_connect_to_path(LDAP *ld, Sockbuf *sb, const char *path, int async)
{
struct sockaddr_un server;
- ber_socket_t s = AC_SOCKET_INVALID;
- int rc, i, len;
- char *ha_buf=NULL, *p, *q;
+ ber_socket_t s;
+ int rc;
oslocal_debug(ld, "ldap_connect_to_path\n",0,0,0);
- if ( (s = ldap_pvt_socket( ld )) == -1 ) {
+ s = ldap_pvt_socket( ld );
+ if ( s == AC_SOCKET_INVALID ) {
return -1;
}
if ( path == NULL || path[0] == '\0' ) {
- path = "/tmp/.ldap-sock";
+ path = LDAPI_SOCK;
} else {
if ( strlen(path) > (sizeof( server.sun_path ) - 1) ) {
ldap_pvt_set_errno( ENAMETOOLONG );
oslocal_debug(ld, "ldap_connect_to_path: Trying %s\n", path, 0, 0);
- memset( &server, 0, sizeof(server) );
- server.sun_family = AF_UNIX;
+ memset( &server, '\0', sizeof(server) );
+ server.sun_family = AF_LOCAL;
strcpy( server.sun_path, path );
rc = ldap_pvt_connect(ld, s, &server, async);
if (rc == 0) {
- ber_pvt_sb_set_desc( sb, s );
+ ber_sockbuf_ctrl( sb, LBER_SB_OPT_SET_FD, (void *)&s );
} else {
ldap_pvt_close_socket(ld, s);
}