diff options
author | Luke Shumaker <lukeshu@sbcglobal.net> | 2014-12-15 02:21:32 -0500 |
---|---|---|
committer | Luke Shumaker <lukeshu@sbcglobal.net> | 2014-12-15 02:21:32 -0500 |
commit | 7cf822201abf30c1603334e0b7e664050e2e38a2 (patch) | |
tree | c150f5d6991b09b1df57e2040367160aa4a56ef5 /nslcd/nslcd.c | |
parent | a299f2039f68b311e1b75b22fad63a8ddee9e286 (diff) |
it builds!
Diffstat (limited to 'nslcd/nslcd.c')
-rw-r--r-- | nslcd/nslcd.c | 29 |
1 files changed, 15 insertions, 14 deletions
diff --git a/nslcd/nslcd.c b/nslcd/nslcd.c index 62d67d5..77df86c 100644 --- a/nslcd/nslcd.c +++ b/nslcd/nslcd.c @@ -255,9 +255,10 @@ static void handleconnection(int sock, struct session *session) return; } /* handle request */ + hackers_session_messup(session); dispatch(fp, action, session, uid); - /* we're done with the request */ - myldap_session_cleanup(session); + hackers_session_cleanup(session); + (void)tio_close(fp); return; } @@ -281,26 +282,26 @@ static void install_sighandler(int signum, void (*handler) (int)) static void worker_cleanup(void *arg) { struct session *session = (struct session *)arg; - myldap_session_close(session); + hackers_session_close(session); } -static void *worker(void UNUSED(*arg)) +static void *worker(void *_sess) { - struct session *session; + struct session *session = _sess; int csock; int j; struct sockaddr_storage addr; socklen_t alen; fd_set fds; - /* create a new LDAP session */ - session = myldap_create_session(); + /* create a new session */ + /*session = hackers_session_create();*/ /* clean up the session if we're done */ pthread_cleanup_push(worker_cleanup, session); /* start waiting for incoming connections */ while (1) { - /* time out connection to LDAP server if needed */ - myldap_session_check(session); + /* perform any maintenance on the session */ + hackers_session_check(session); /* set up the set of fds to wait on */ FD_ZERO(&fds); FD_SET(nslcd_serversocket, &fds); @@ -377,7 +378,7 @@ static void disable_nss_module(void) /* clear any existing errors */ dlerror(); /* lookup the NSS version if possible */ - version_info = (char **)dlsym(handle, NSS_MODULE_ID_VERSION); + version_info = (char **)dlsym(handle, NSS_MODULE_SYM_VERSION); error = dlerror(); if ((version_info != NULL) && (error == NULL)) log_log(LOG_DEBUG, "NSS " NSS_MODULE_NAME " %s %s", version_info[0], version_info[1]); @@ -386,7 +387,7 @@ static void disable_nss_module(void) /* clear any existing errors */ dlerror(); /* try to look up the flag */ - enable_flag = (int *)dlsym(handle, NSS_MODULE_ID_ENABLELOOKUPS); + enable_flag = (int *)dlsym(handle, NSS_MODULE_SYM_ENABLELOOKUPS); error = dlerror(); if ((enable_flag == NULL) || (error != NULL)) { @@ -465,9 +466,10 @@ int main(int argc, char *argv[]) log_log(LOG_CRIT, "main(): malloc() failed to allocate memory"); exit(EXIT_FAILURE); } - for (i = 0; i < nslcd_cfg->threads; i++) + struct session *session = hackers_session_create(&nslcd_threads[0]); + for (i = 1; i < nslcd_cfg->threads; i++) { - if (pthread_create(&nslcd_threads[i], NULL, worker, NULL)) + if (pthread_create(&nslcd_threads[i], NULL, worker, (void*)session)) { log_log(LOG_ERR, "unable to start worker thread %d: %s", i, strerror(errno)); @@ -493,7 +495,6 @@ int main(int argc, char *argv[]) { log_log(LOG_INFO, "caught signal %s (%d), refresh retries", signame(nslcd_receivedsignal), nslcd_receivedsignal); - myldap_immediate_reconnect(); nslcd_receivedsignal = 0; } } |