mirror of
https://git.openldap.org/openldap/openldap.git
synced 2024-12-15 03:01:09 +08:00
Winsock changes:
Centralize #define EWOULDBLOCK WSAEWOULDBLOCK to ac/errno.h Move WSAStartup to slapd_daemon(), add WSACleanup() to match.
This commit is contained in:
parent
d0fb82ab31
commit
b06c4a5576
@ -28,6 +28,10 @@ extern char *sys_errlist[];
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if !defined( EWOULDBLOCK ) && defined( WSAEWOULDBLOCK )
|
||||
#define EWOULDBLOCK WSAEWOULDBLOCK
|
||||
#endif
|
||||
|
||||
/* use _POSIX_VERSION for POSIX.1 code */
|
||||
|
||||
#endif /* _AC_ERRNO_H */
|
||||
|
@ -10,10 +10,6 @@
|
||||
|
||||
#include "slap.h"
|
||||
|
||||
#ifdef HAVE_WINSOCK
|
||||
#define EWOULDBLOCK WSAEWOULDBLOCK
|
||||
#endif
|
||||
|
||||
/* protected by connections_mutex */
|
||||
static ldap_pvt_thread_mutex_t connections_mutex;
|
||||
static Connection *connections = NULL;
|
||||
|
@ -166,15 +166,6 @@ set_socket( struct sockaddr_in *addr )
|
||||
}
|
||||
#endif /* !FD_SETSIZE */
|
||||
|
||||
#ifdef HAVE_WINSOCK
|
||||
{
|
||||
WORD vers = MAKEWORD( 2, 0);
|
||||
int err;
|
||||
WSADATA wsaData;
|
||||
err = WSAStartup( vers, &wsaData );
|
||||
}
|
||||
#endif
|
||||
|
||||
if( addr != NULL ) {
|
||||
int tmp;
|
||||
|
||||
@ -598,23 +589,32 @@ slapd_daemon_task(
|
||||
|
||||
int slapd_daemon( int inetd, int tcps )
|
||||
{
|
||||
int status;
|
||||
int rc;
|
||||
int *args = ch_malloc( sizeof( int[2] ) );
|
||||
args[0] = inetd;
|
||||
args[1] = tcps;
|
||||
|
||||
#ifdef HAVE_WINSOCK
|
||||
{
|
||||
WORD vers = MAKEWORD( 2, 0);
|
||||
int err;
|
||||
WSADATA wsaData;
|
||||
err = WSAStartup( vers, &wsaData );
|
||||
}
|
||||
#endif
|
||||
|
||||
connections_init();
|
||||
|
||||
#define SLAPD_LISTENER_THREAD 1
|
||||
#if SLAPD_LISTENER_THREAD
|
||||
/* listener as a separate THREAD */
|
||||
status = ldap_pvt_thread_create( &listener_tid,
|
||||
rc = ldap_pvt_thread_create( &listener_tid,
|
||||
0, slapd_daemon_task, args );
|
||||
|
||||
if ( status != 0 ) {
|
||||
if ( rc != 0 ) {
|
||||
Debug( LDAP_DEBUG_ANY,
|
||||
"listener ldap_pvt_thread_create failed (%d)\n", status, 0, 0 );
|
||||
return -1;
|
||||
"listener ldap_pvt_thread_create failed (%d)\n", rc, 0, 0 );
|
||||
goto destory;
|
||||
}
|
||||
|
||||
/* wait for the listener thread to complete */
|
||||
@ -625,8 +625,16 @@ int slapd_daemon( int inetd, int tcps )
|
||||
slapd_daemon_task( args );
|
||||
#endif
|
||||
|
||||
rc = 0;
|
||||
|
||||
destory:
|
||||
connections_destroy();
|
||||
return 0;
|
||||
|
||||
#ifdef HAVE_WINSOCK
|
||||
WSACleanup( );
|
||||
#endif
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -13,10 +13,6 @@
|
||||
|
||||
#include "slap.h"
|
||||
|
||||
#ifdef HAVE_WINSOCK
|
||||
#define EWOULDBLOCK WSAEWOULDBLOCK
|
||||
#endif
|
||||
|
||||
static void
|
||||
send_ldap_result2(
|
||||
Connection *conn,
|
||||
|
Loading…
Reference in New Issue
Block a user