mirror of
https://github.com/moparisthebest/curl
synced 2024-12-21 23:58:49 -05:00
adapted to the new Curl_splayremovebyaddr() proto
This commit is contained in:
parent
f81724969d
commit
405d98ee63
21
lib/multi.c
21
lib/multi.c
@ -1239,6 +1239,7 @@ void Curl_expire(struct SessionHandle *data, long milli)
|
|||||||
{
|
{
|
||||||
struct Curl_multi *multi = data->multi;
|
struct Curl_multi *multi = data->multi;
|
||||||
struct timeval *nowp = &data->state.expiretime;
|
struct timeval *nowp = &data->state.expiretime;
|
||||||
|
int rc;
|
||||||
|
|
||||||
/* this is only interesting for multi-interface using libcurl, and only
|
/* this is only interesting for multi-interface using libcurl, and only
|
||||||
while there is still a multi interface struct remaining! */
|
while there is still a multi interface struct remaining! */
|
||||||
@ -1250,11 +1251,14 @@ void Curl_expire(struct SessionHandle *data, long milli)
|
|||||||
if(nowp->tv_sec) {
|
if(nowp->tv_sec) {
|
||||||
/* Since this is an cleared time, we must remove the previous entry from
|
/* Since this is an cleared time, we must remove the previous entry from
|
||||||
the splay tree */
|
the splay tree */
|
||||||
multi->timetree = Curl_splayremovebyaddr(multi->timetree,
|
rc = Curl_splayremovebyaddr(multi->timetree,
|
||||||
&data->state.timenode);
|
&data->state.timenode,
|
||||||
|
&multi->timetree);
|
||||||
|
if(rc)
|
||||||
|
infof(data, "Internal error clearing splay node = %d\n", rc);
|
||||||
infof(data, "Expire cleared\n");
|
infof(data, "Expire cleared\n");
|
||||||
|
nowp->tv_sec = nowp->tv_usec = 0;
|
||||||
}
|
}
|
||||||
nowp->tv_sec = nowp->tv_usec = 0;
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
struct timeval set;
|
struct timeval set;
|
||||||
@ -1272,7 +1276,9 @@ void Curl_expire(struct SessionHandle *data, long milli)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(nowp->tv_sec) {
|
if(nowp->tv_sec) {
|
||||||
/* compare if the new time is earlier, and only set it if so */
|
/* This means that the struct is added as a node in the splay tree.
|
||||||
|
Compare if the new time is earlier, and only remove-old/add-new if it
|
||||||
|
is. */
|
||||||
long diff = curlx_tvdiff(set, *nowp);
|
long diff = curlx_tvdiff(set, *nowp);
|
||||||
if(diff > 0)
|
if(diff > 0)
|
||||||
/* the new expire time was later so we don't change this */
|
/* the new expire time was later so we don't change this */
|
||||||
@ -1280,8 +1286,11 @@ void Curl_expire(struct SessionHandle *data, long milli)
|
|||||||
|
|
||||||
/* Since this is an updated time, we must remove the previous entry from
|
/* Since this is an updated time, we must remove the previous entry from
|
||||||
the splay tree first and then re-add the new value */
|
the splay tree first and then re-add the new value */
|
||||||
multi->timetree = Curl_splayremovebyaddr(multi->timetree,
|
rc = Curl_splayremovebyaddr(multi->timetree,
|
||||||
&data->state.timenode);
|
&data->state.timenode,
|
||||||
|
&multi->timetree);
|
||||||
|
if(rc)
|
||||||
|
infof(data, "Internal error removing splay node = %d\n", rc);
|
||||||
}
|
}
|
||||||
|
|
||||||
*nowp = set;
|
*nowp = set;
|
||||||
|
Loading…
Reference in New Issue
Block a user