Commit 97795532 authored by Dan Fandrich's avatar Dan Fandrich
Browse files

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

parent 435e2bc7
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -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;
      }
+3 −3
Original line number Diff line number Diff line
@@ -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;
  }

+2 −0
Original line number Diff line number Diff line
@@ -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);