Lines Matching refs:sockets
34 curl_socket_t *sockets; member
47 static void removeFd(struct Sockets *sockets, curl_socket_t fd, int mention) in removeFd() argument
54 for(i = 0; i < sockets->count; ++i) { in removeFd()
55 if(sockets->sockets[i] == fd) { in removeFd()
56 if(i < sockets->count - 1) in removeFd()
57 memmove(&sockets->sockets[i], &sockets->sockets[i + 1], in removeFd()
58 sizeof(curl_socket_t) * (sockets->count - (i + 1))); in removeFd()
59 --sockets->count; in removeFd()
67 static void addFd(struct Sockets *sockets, curl_socket_t fd, const char *what) in addFd() argument
74 removeFd(sockets, fd, 0); in addFd()
78 if(!sockets->sockets) { in addFd()
79 sockets->sockets = malloc(sizeof(curl_socket_t) * 20U); in addFd()
80 if(!sockets->sockets) in addFd()
82 sockets->max_count = 20; in addFd()
84 else if(sockets->count + 1 > sockets->max_count) { in addFd()
85 curl_socket_t *oldptr = sockets->sockets; in addFd()
86 sockets->sockets = realloc(oldptr, sizeof(curl_socket_t) * in addFd()
87 (sockets->max_count + 20)); in addFd()
88 if(!sockets->sockets) { in addFd()
90 sockets->sockets = oldptr; in addFd()
93 sockets->max_count += 20; in addFd()
98 sockets->sockets[sockets->count] = fd; in addFd()
99 ++sockets->count; in addFd()
108 struct ReadWriteSockets *sockets = userp; in curlSocketCallback() local
114 addFd(&sockets->read, s, "read"); in curlSocketCallback()
117 addFd(&sockets->write, s, "write"); in curlSocketCallback()
120 removeFd(&sockets->read, s, 1); in curlSocketCallback()
121 removeFd(&sockets->write, s, 0); in curlSocketCallback()
188 static void updateFdSet(struct Sockets *sockets, fd_set* fdset, in updateFdSet() argument
192 for(i = 0; i < sockets->count; ++i) { in updateFdSet()
193 FD_SET(sockets->sockets[i], fdset); in updateFdSet()
194 if(*maxFd < sockets->sockets[i] + 1) { in updateFdSet()
195 *maxFd = sockets->sockets[i] + 1; in updateFdSet()
214 static void checkFdSet(CURLM *curl, struct Sockets *sockets, fd_set *fdset, in checkFdSet() argument
218 for(i = 0; i < sockets->count; ++i) { in checkFdSet()
219 if(FD_ISSET(sockets->sockets[i], fdset)) { in checkFdSet()
220 notifyCurl(curl, sockets->sockets[i], evBitmask, name); in checkFdSet()
233 struct ReadWriteSockets sockets = {{NULL, 0, 0}, {NULL, 0, 0}}; in test() local
294 multi_setopt(m, CURLMOPT_SOCKETDATA, &sockets); in test()
308 updateFdSet(&sockets.read, &readSet, &maxFd); in test()
309 updateFdSet(&sockets.write, &writeSet, &maxFd); in test()
324 checkFdSet(m, &sockets.read, &readSet, CURL_CSELECT_IN, "read"); in test()
325 checkFdSet(m, &sockets.write, &writeSet, CURL_CSELECT_OUT, "write"); in test()
353 free(sockets.read.sockets); in test()
354 free(sockets.write.sockets); in test()