PUBLIC void socketClose() { int i; if (--socketOpenCount <= 0) { for (i = socketMax; i >= 0; i--) { if (socketList && socketList[i]) { socketCloseConnection(i); } } socketOpenCount = 0; } }
/* * Stops the SSL */ void websSSLClose() { printf("SSL: Closing SSL\n"); if (sslctx != NULL) { SSL_CTX_free(sslctx); sslctx = NULL; } if (sslListenSock != -1) { socketCloseConnection(sslListenSock); sslListenSock = -1; } }
int socketReady(int sid) { socket_t *sp; int all; all = 0; if (sid < 0) { sid = 0; all = 1; } for (; sid < socketMax; sid++) { if ((sp = socketList[sid]) == NULL) { if (! all) { break; } else { continue; } } if (sp->flags & SOCKET_CONNRESET) { socketCloseConnection(sid); return 0; } if (sp->currentEvents & sp->handlerMask) { return 1; } /* * If there is input data, also call select to test for new events */ if (sp->handlerMask & SOCKET_READABLE && socketInputBuffered(sid) > 0) { socketSelect(sid, 0); return 1; } if (! all) { break; } } return 0; }