rem: (sock = ((*connPtr->drvPtr->sockProc)(connPtr->drvData))) < 0) {
add: (int) ((sock = ((*connPtr->drvPtr->sockProc)(connPtr->drvData)))) < 0) {
context: NsKeepAlive(Ns_Conn *conn){    Conn *connPtr = (Conn *) conn;    void *drvData;    Keep *keepPtr;    SOCKET sock;    time_t timeout;    int trigger;        if (connPtr->keepAlive != NS_TRUE ||	connPtr->drvPtr->detachProc == NULL ||	connPtr->drvPtr->sockProc == NULL ||	(sock = ((*connPtr->drvPtr->sockProc)(connPtr->drvData))) < 0) {    	return 0;    }    drvData = (*connPtr->drvPtr->detachProc)(connPtr->drvData);	    /*     * Queue the new socket on the waiting list and wakeup the     * the keep-alive thread if necessary.     */    trigger = 0;    timeout = time(NULL) + nsconf.keepalive.timeout;    keepPtr = NULL;    Ns_MutexLock(&lock);    if (!shutdownPending && firstFreeKeepPtr != NULL) {	keepPtr = firstFreeKeepPtr;    	firstFreeKeepPtr = keepPtr->nextPtr;	keepPtr->nextPtr = firstWaitKeepPtr;	firstWaitKeepPtr = keepPtr;	keepPtr->drvPtr = connPtr->drvPtr;	keepPtr->drvData = drvData;	keepPtr->timeout = timeout;	keepPtr->sock = sock;	if (keepThread == NULL) {    	    if (ns_sockpair(trigPipe) != 0) {		Ns_Fatal("keepalive: ns_sockpair() failed: '%s'",			 ns_sockstrerror(ns_sockerrno));    	    }	    Ns_ThreadCreate(KeepThread, NULL, 0, &keepThread);	} else if (keepPtr->nextPtr == NULL) {	    trigger = 1;	}    }    Ns_MutexUnlock(&lock);    if (keepPtr == NULL) {    	return 0;    } else if (trigger) {	KeepTrigger();    }    return 1;}