#include "IOSockets.h"
#include "IOLog.h"
#include "IODNSLookup.h"
+#include "IOSSLBackend.h"
#ifdef WIN32
#define _WIN32_WINNT 0x501
struct IOEngine *engine = NULL;
-static void iosocket_activate(struct _IOSocket *iosock);
-static void iosocket_deactivate(struct _IOSocket *iosock);
static void iosocket_increase_buffer(struct IOSocketBuffer *iobuf, size_t required);
static int iosocket_parse_address(const char *hostname, struct IODNSAddress *addr, int records);
static int iosocket_lookup_hostname(struct _IOSocket *iosock, const char *hostname, int records, int bindaddr);
free(iosock);
}
-static void iosocket_activate(struct _IOSocket *iosock) {
+void iosocket_activate(struct _IOSocket *iosock) {
if((iosock->socket_flags & IOSOCKETFLAG_ACTIVE))
return;
iosock->socket_flags |= IOSOCKETFLAG_ACTIVE;
engine->add(iosock);
}
-static void iosocket_deactivate(struct _IOSocket *iosock) {
+void iosocket_deactivate(struct _IOSocket *iosock) {
if(!(iosock->socket_flags & IOSOCKETFLAG_ACTIVE))
return;
iosock->socket_flags &= ~IOSOCKETFLAG_ACTIVE;
engine->remove(iosock);
}
+void iosocket_update(struct _IOSocket *iosock) {
+ if(!(iosock->socket_flags & IOSOCKETFLAG_ACTIVE))
+ return;
+ engine->update(iosock);
+}
+
static void iosocket_increase_buffer(struct IOSocketBuffer *iobuf, size_t required) {
if(iobuf->buflen >= required) return;
char *new_buf;
iosocket_close(iosocket);
} else if((iosock->socket_flags & IOSOCKETFLAG_PARENT_DNSENGINE)) {
- //TODO: IODNS callback
+ iodns_socket_callback(iosock, readable, writeable);
}
}