multi interface: only use non-NULL function pointer!

If the socket callback function pointer hasn't been set, we must not
attempt to use it. Commit adc88ca20 made it more likely to occur.
This commit is contained in:
Daniel Stenberg 2011-12-02 21:10:28 +01:00
parent adc88ca203
commit d81f5ea3e0
1 changed files with 12 additions and 10 deletions

View File

@ -1940,11 +1940,12 @@ static void singlesocket(struct Curl_multi *multi,
}
/* we know (entry != NULL) at this point, see the logic above */
multi->socket_cb(easy->easy_handle,
s,
action,
multi->socket_userp,
entry->socketp);
if(multi->socket_cb)
multi->socket_cb(easy->easy_handle,
s,
action,
multi->socket_userp,
entry->socketp);
entry->action = action; /* store the current action state */
}
@ -2019,11 +2020,12 @@ static void singlesocket(struct Curl_multi *multi,
remove_sock_from_hash = FALSE;
if(remove_sock_from_hash) {
multi->socket_cb(easy->easy_handle,
s,
CURL_POLL_REMOVE,
multi->socket_userp,
entry ? entry->socketp : NULL);
if(multi->socket_cb)
multi->socket_cb(easy->easy_handle,
s,
CURL_POLL_REMOVE,
multi->socket_userp,
entry ? entry->socketp : NULL);
sh_delentry(multi->sockhash, s);
}