Give the NTLM SSO helper a moment to cleanly shut down if needed

This commit is contained in:
Dan Fandrich 2011-07-28 12:27:55 -07:00
parent 435e2bc757
commit 9779553221
3 changed files with 11 additions and 4 deletions

View File

@ -51,6 +51,7 @@
#include "urldata.h"
#include "non-ascii.h" /* for Curl_convert_... prototypes */
#include "sendf.h"
#include "select.h"
#include "rawstr.h"
#include "curl_base64.h"
#include "http_ntlm.h"
@ -694,10 +695,14 @@ static void sso_ntlm_close(struct connectdata *conn)
case 0:
kill(conn->pid, SIGTERM);
break;
case 1:
/* Give the process another moment to shut down cleanly before
bringing down the axe */
Curl_wait_ms(1);
break;
case 2:
kill(conn->pid, SIGKILL);
break;
case 1:
case 3:
break;
}

View File

@ -90,7 +90,7 @@
* -1 = system call error, invalid timeout value, or interrupted
* 0 = specified timeout has elapsed
*/
static int wait_ms(int timeout_ms)
int Curl_wait_ms(int timeout_ms)
{
#if !defined(MSDOS) && !defined(USE_WINSOCK)
#ifndef HAVE_POLL_FINE
@ -177,7 +177,7 @@ int Curl_socket_ready(curl_socket_t readfd, curl_socket_t writefd,
int ret;
if((readfd == CURL_SOCKET_BAD) && (writefd == CURL_SOCKET_BAD)) {
r = wait_ms((int)timeout_ms);
r = Curl_wait_ms((int)timeout_ms);
return r;
}
@ -361,7 +361,7 @@ int Curl_poll(struct pollfd ufds[], unsigned int nfds, int timeout_ms)
}
}
if(fds_none) {
r = wait_ms((int)timeout_ms);
r = Curl_wait_ms(timeout_ms);
return r;
}

View File

@ -89,6 +89,8 @@ int Curl_socket_ready(curl_socket_t readfd, curl_socket_t writefd,
int Curl_poll(struct pollfd ufds[], unsigned int nfds, int timeout_ms);
int Curl_wait_ms(int timeout_ms);
#ifdef TPF
int tpf_select_libcurl(int maxfds, fd_set* reads, fd_set* writes,
fd_set* excepts, struct timeval* tv);