--- src/request.c.orig 2005-10-24 11:40:32.000000000 +1000 +++ src/request.c 2013-09-23 23:21:40.000000000 +1000 @@ -53,7 +53,7 @@ int UT_net_request_post_cb(int fd, char if (flags & UTFD_IS_CONFAILURE) { (rqst->cb)(name, rqst->data, (flags|UTFD_IS_REQFAILURE), rqst->io); UT_mem_free( UTRQST, rqst, 1); - return; + return -1; } reply_wanted = (rqst->io[1] != NULL) ? 1 : 0; @@ -70,7 +70,7 @@ int UT_net_request_post_cb(int fd, char UT_fd_cntl(fd, UTFD_SET_FLAGS, f); } UT_iob_writefd( rqst->io[0], fd); /* send out the request */ - if (reply_wanted) return; /* reply wanted, wait for it*/ + if (reply_wanted) return 0; /* reply wanted, wait for it*/ /* Here if requester doesn't want the reply. Finish up below. */ } else { /* Socket is readable, meaning the remote host has started to reply. */ @@ -80,7 +80,7 @@ int UT_net_request_post_cb(int fd, char /* Either n=0 (socket closed) or n=-1 (read error or EWOULDBLOCK). */ if (n == -1) { - if (errno == EAGAIN) return; /* not an error; get more later*/ + if (errno == EAGAIN) return 0; /* not an error; get more later*/ else UT_LOG(Error, "read error %s", strerror(errno)); } } @@ -93,8 +93,11 @@ int UT_net_request_post_cb(int fd, char UT_fd_unreg(fd); close(fd); } + return 0; } +int UT_net_connect2(char *name, UT_fd_cb *cb, void *data, int flags, va_list ap); + /****************************************************************************** * UT_net_request() * * Initiate a request-response network communication over a transient socket. * @@ -121,6 +124,6 @@ UT_API int UT_net_request( char *name, U return rc; } -UT_net_request_init() { +void UT_net_request_init() { UT_mem_pool_create( UTRQST, sizeof(UT_net_request_type), 10 ); }