diff options
| author | Daniel Stenberg <daniel@haxx.se> | 2001-03-12 10:13:42 +0000 | 
|---|---|---|
| committer | Daniel Stenberg <daniel@haxx.se> | 2001-03-12 10:13:42 +0000 | 
| commit | 5bbe18942067f12dcd8745a9fecbc80ae8c1c431 (patch) | |
| tree | 9c1ce8b8467e0d388c7a1075f573245e6251ecf0 | |
| parent | 93ff159e3274b5bea55a4cbefac463c734626894 (diff) | |
modified Curl_disconnect() so that it unlinks itself from the data struct,
it saves me from more mistakes when the connectindex is -1 ... also, there's
no point in having its parent do it as all parents would do it anyway.
| -rw-r--r-- | lib/url.c | 21 | 
1 files changed, 7 insertions, 14 deletions
@@ -495,6 +495,10 @@ RETSIGTYPE alarmfunc(int signal)  CURLcode Curl_disconnect(struct connectdata *conn)  { +  if(-1 != conn->connectindex) +    /* unlink ourselves! */ +    conn->data->connects[conn->connectindex] = NULL; +    if(conn->curl_disconnect)      /* This is set if protocol-specific cleanups should be made */      conn->curl_disconnect(conn); @@ -1810,13 +1814,8 @@ CURLcode Curl_connect(struct UrlData *data,      /* We're not allowed to return failure with memory left allocated         in the connectdata struct, free those here */      conn = (struct connectdata *)*in_connect; -    if(conn) { -      int index; -      index = conn->connectindex; /* get the index */ +    if(conn)        Curl_disconnect(conn);      /* close the connection */ -      if(-1 != index) -        data->connects[index]=NULL; /* clear the pointer */ -    }    }    return code;  } @@ -1824,11 +1823,8 @@ CURLcode Curl_connect(struct UrlData *data,  CURLcode Curl_done(struct connectdata *conn)  { -  struct UrlData *data; +  struct UrlData *data=conn->data;    CURLcode result; -  int index; - -  data = conn->data;    /* this calls the protocol-specific function pointer previously set */    if(conn->curl_done) @@ -1840,11 +1836,8 @@ CURLcode Curl_done(struct connectdata *conn)    /* if bits.close is TRUE, it means that the connection should be closed       in spite of all our efforts to be nice */ -  if((CURLE_OK == result) && conn->bits.close) { -    index = conn->connectindex;     /* get the index */ +  if((CURLE_OK == result) && conn->bits.close)      result = Curl_disconnect(conn); /* close the connection */ -    data->connects[index]=NULL;     /* clear the pointer */ -  }    return result;  }  | 
