+int iosocket_wants_reads(struct _IOSocket *iosock) {
+ if((iosock->socket_flags & (IOSOCKETFLAG_SSL_READHS | IOSOCKETFLAG_SSL_WRITEHS)))
+ return ((iosock->socket_flags & IOSOCKETFLAG_SSL_WANTWRITE) ? 0 : 1);
+ if(!(iosock->socket_flags & IOSOCKETFLAG_OVERRIDE_WANT_RW))
+ return 1;
+ else if((iosock->socket_flags & IOSOCKETFLAG_OVERRIDE_WANT_R))
+ return 1;
+ return 0;
+}
+int iosocket_wants_writes(struct _IOSocket *iosock) {
+ if((iosock->socket_flags & (IOSOCKETFLAG_SSL_READHS | IOSOCKETFLAG_SSL_WRITEHS)))
+ return ((iosock->socket_flags & IOSOCKETFLAG_SSL_WANTWRITE) ? 1 : 0);
+ if(!(iosock->socket_flags & IOSOCKETFLAG_OVERRIDE_WANT_RW)) {
+ if(iosock->writebuf.bufpos || (iosock->socket_flags & IOSOCKETFLAG_CONNECTING))
+ return 1;
+ else
+ return 0;
+ } else if((iosock->socket_flags & IOSOCKETFLAG_OVERRIDE_WANT_W))
+ return 1;
+ return 0;
+}
+