modified IOMultiplexer (added epoll & kevent support)
[TransparentIRC.git] / src / IOHandler.h
index 7d33ce23f9ee070b37be8129e8e0acd5863290bc..76fb2cf82c89dd492352ea622a12f416e8065785 100644 (file)
@@ -65,6 +65,7 @@ struct IODescriptor {
     struct IOBuffer writebuf;
     void *data;
     int read_lines : 1;
+    int ssl : 1;
     
     struct IODescriptor *next, *prev;
 };
@@ -79,15 +80,16 @@ struct IOEvent {
     } data;
 };
 
-struct IODescriptor *iohandler_add(int sockfd, enum IOType type, iohandler_callback *callback);
+struct IODescriptor *iohandler_add(int sockfd, enum IOType type, struct timeval *timeout, iohandler_callback *callback);
 struct IODescriptor *iohandler_timer(struct timeval timeout, iohandler_callback *callback);
-struct IODescriptor *iohandler_connect(const char *hostname, unsigned int port, const char *bind, iohandler_callback *callback);
-struct IODescriptor *iohandler_listen(const char *hostname, unsigned int port, iohandler_callback *callback);
+struct IODescriptor *iohandler_connect(const char *hostname, unsigned int port, int ssl, const char *bind, iohandler_callback *callback);
+struct IODescriptor *iohandler_listen(const char *hostname, unsigned int port, int ssl, iohandler_callback *callback);
 void iohandler_write(struct IODescriptor *iofd, const char *line);
 void iohandler_send(struct IODescriptor *iofd, const char *data, size_t datalen);
 void iohandler_printf(struct IODescriptor *iofd, const char *text, ...);
 void iohandler_close(struct IODescriptor *iofd);
 void iohandler_update(struct IODescriptor *iofd);
+void iohandler_set_timeout(struct IODescriptor *iofd, struct timeval *timeout);
 
 void iohandler_poll();