/*
- * $Id: comm.cc,v 1.203 1997/11/14 04:55:06 wessels Exp $
+ * $Id: comm.cc,v 1.204 1997/11/14 17:21:15 wessels Exp $
*
* DEBUG: section 5 Socket Functions
* AUTHOR: Harvest Derived
static IPH commConnectDnsHandle;
static void commConnectCallback(ConnectStateData * cs, int status);
static int commDeferRead(int fd);
-static int ignoreErrno(int);
static void commSetConnectTimeout(int fd, time_t timeout);
static int commResetFD(ConnectStateData * cs);
static int commRetryConnect(ConnectStateData * cs);
0);
}
-static int
+int
ignoreErrno(int ierrno)
{
if (ierrno == EWOULDBLOCK)
+
/*
- * $Id: disk.cc,v 1.94 1997/11/14 04:55:07 wessels Exp $
+ * $Id: disk.cc,v 1.95 1997/11/14 17:21:17 wessels Exp $
*
* DEBUG: section 6 Disk I/O Routines
* AUTHOR: Harvest Derived
if (q == NULL) /* Someone aborted then write completed */
return;
if (len < 0) {
- if (errno == EAGAIN || errno == EWOULDBLOCK || errno == EINTR) {
- (void) 0;
- } else {
+ if (!ignoreErrno(errno)) {
status = errno == ENOSPC ? DISK_NO_SPACE_LEFT : DISK_ERROR;
debug(50, 1) ("diskHandleWrite: FD %d: disk write error: %s\n",
fd, xstrerror());
xfree(data);
fd_bytes(fd, len, FD_READ);
if (len < 0) {
- if (errno == EAGAIN || errno == EWOULDBLOCK || errno == EINTR) {
+ if (ignoreErrno(errno)) {
commSetSelect(fd, COMM_SELECT_READ, diskHandleRead, ctrl_dat, 0);
return;
}
/*
- * $Id: fqdncache.cc,v 1.66 1997/11/12 00:08:50 wessels Exp $
+ * $Id: fqdncache.cc,v 1.67 1997/11/14 17:21:17 wessels Exp $
*
* DEBUG: section 35 FQDN Cache
* AUTHOR: Harvest Derived
debug(35, 5) ("fqdncache_dnsHandleRead: Result from DNS ID %d (%d bytes)\n",
dnsData->id, len);
if (len <= 0) {
- if (len < 0 && (errno == EINTR || errno == EWOULDBLOCK || errno == EAGAIN)) {
+ if (len < 0 && ignoreErrno(errno)) {
commSetSelect(fd,
COMM_SELECT_READ,
fqdncache_dnsHandleRead,
/*
- * $Id: ftp.cc,v 1.168 1997/11/12 22:50:22 wessels Exp $
+ * $Id: ftp.cc,v 1.169 1997/11/14 17:21:18 wessels Exp $
*
* DEBUG: section 9 File Transfer Protocol (FTP)
* AUTHOR: Harvest Derived
}
if (len < 0) {
debug(50, 1) ("ftpReadData: read error: %s\n", xstrerror());
- if (errno == EAGAIN || errno == EWOULDBLOCK || errno == EINTR) {
+ if (ignoreErrno(errno)) {
commSetSelect(fd, COMM_SELECT_READ, ftpReadData, data, Config.Timeout.read);
} else {
if (mem->inmem_hi == 0) {
debug(9, 5) ("ftpReadControlReply: FD %d, Read %d bytes\n", fd, len);
if (len < 0) {
debug(50, 1) ("ftpReadControlReply: read error: %s\n", xstrerror());
- if (errno == EAGAIN || errno == EWOULDBLOCK || errno == EINTR) {
+ if (ignoreErrno(errno)) {
commSetSelect(fd,
COMM_SELECT_READ,
ftpReadControlReply,
/*
- * $Id: gopher.cc,v 1.112 1997/11/12 00:08:51 wessels Exp $
+ * $Id: gopher.cc,v 1.113 1997/11/14 17:21:19 wessels Exp $
*
* DEBUG: section 10 Gopher
* AUTHOR: Harvest Derived
}
if (len < 0) {
debug(50, 1) ("gopherReadReply: error reading: %s\n", xstrerror());
- if (errno == EAGAIN || errno == EWOULDBLOCK || errno == EINTR) {
- /* reinstall handlers */
- /* XXX This may loop forever */
- commSetSelect(fd,
- COMM_SELECT_READ,
- gopherReadReply,
- data, 0);
+ if (ignoreErrno(errno)) {
+ commSetSelect(fd, COMM_SELECT_READ, gopherReadReply, data, 0);
} else {
/* was assert */
ErrorState *err;
/*
- * $Id: http.cc,v 1.221 1997/11/12 18:58:41 wessels Exp $
+ * $Id: http.cc,v 1.222 1997/11/14 17:21:20 wessels Exp $
*
* DEBUG: section 11 Hypertext Transfer Protocol (HTTP)
* AUTHOR: Harvest Derived
IOStats.Http.read_hist[bin]++;
}
if (len < 0) {
- if (errno == EAGAIN || errno == EWOULDBLOCK || errno == EINTR) {
+ if (ignoreErrno(errno)) {
commSetSelect(fd, COMM_SELECT_READ, httpReadReply, httpState, 0);
} else {
if (clen == 0) {
/*
- * $Id: icmp.cc,v 1.49 1997/11/12 23:47:38 wessels Exp $
+ * $Id: icmp.cc,v 1.50 1997/11/14 17:21:21 wessels Exp $
*
* DEBUG: section 37 ICMP Routines
* AUTHOR: Duane Wessels
queue->len,
0);
if (x < 0) {
- if (errno == EWOULDBLOCK || errno == EAGAIN || errno == EINTR)
+ if (ignoreErrno(errno))
break; /* don't de-queue */
debug(50, 0) ("icmpSend: send: %s\n", xstrerror());
if (errno == ECONNREFUSED) {
queue->msg,
queue->len);
if (x < 0) {
- if (errno == EWOULDBLOCK || errno == EAGAIN || errno == EINTR)
+ if (ignoreErrno(errno))
break; /* don't de-queue */
}
UdpQueueHead = queue->next;
int
icpCheckUdpHitObj(StoreEntry * e, request_t * r, icp_common_t * h, int len)
{
- if (!(h->flags & ICP_FLAG_HIT_OBJ)) /* not requested */
+ if (!(h->flags & ICP_FLAG_HIT_OBJ)) /* not requested */
return 0;
if (len > Config.udpMaxHitObjsz) /* too big */
return 0;
/*
- * $Id: ipcache.cc,v 1.142 1997/11/12 00:08:55 wessels Exp $
+ * $Id: ipcache.cc,v 1.143 1997/11/14 17:21:22 wessels Exp $
*
* DEBUG: section 14 IP Cache
* AUTHOR: Harvest Derived
debug(14, 5) ("ipcache_dnsHandleRead: Result from DNS ID %d (%d bytes)\n",
dnsData->id, len);
if (len <= 0) {
- if (len < 0 && (errno == EWOULDBLOCK || errno == EAGAIN || errno == EINTR)) {
+ if (len < 0 && ignoreErrno(errno)) {
commSetSelect(fd,
COMM_SELECT_READ,
ipcache_dnsHandleRead,
assert(i->status == IP_PENDING);
buf = xcalloc(1, 256);
snprintf(buf, 256, "%s\n", i->name);
- EBIT_SET(dns->flags , HELPER_BUSY);
+ EBIT_SET(dns->flags, HELPER_BUSY);
dns->data = i;
i->status = IP_DISPATCHED;
comm_write(dns->outpipe,
extern void commCallCloseHandlers(int fd);
extern int commSetTimeout(int fd, int, PF *, void *);
extern void commSetDefer(int fd, DEFER * func, void *);
+extern int ignoreErrno(int);
extern void _db_init(const char *logfile, const char *options);
extern void _db_rotate_log(void);
extern void pconnInit(void);
extern int asnMatchIp(void *, struct in_addr);
-extern void asnAclInitialize (acl *);
+extern void asnAclInitialize(acl *);
/*
- * $Id: ssl.cc,v 1.71 1997/11/12 23:47:40 wessels Exp $
+ * $Id: ssl.cc,v 1.72 1997/11/14 17:21:23 wessels Exp $
*
* DEBUG: section 26 Secure Sockets Layer Proxy
* AUTHOR: Duane Wessels
if (len < 0) {
debug(50, 1) ("sslReadServer: FD %d: read failure: %s\n",
sslState->server.fd, xstrerror());
- if (errno == EAGAIN || errno == EWOULDBLOCK || errno == EINTR) {
+ if (ignoreErrno(errno)) {
/* reinstall handlers */
/* XXX This may loop forever */
commSetSelect(sslState->server.fd,
if (len < 0) {
debug(50, 1) ("sslReadClient: FD %d: read failure: %s\n",
fd, xstrerror());
- if (errno == EAGAIN || errno == EWOULDBLOCK || errno == EINTR) {
+ if (ignoreErrno(errno)) {
/* reinstall handlers */
/* XXX This may loop forever */
commSetSelect(sslState->client.fd,
fd_bytes(fd, len, FD_WRITE);
debug(26, 5) ("sslWriteServer FD %d, wrote %d bytes\n", fd, len);
if (len < 0) {
- if (errno == EAGAIN || errno == EINTR || errno == EWOULDBLOCK) {
+ if (ignoreErrno(errno)) {
commSetSelect(sslState->server.fd,
COMM_SELECT_WRITE,
sslWriteServer,
fd_bytes(fd, len, FD_WRITE);
debug(26, 5) ("sslWriteClient FD %d, wrote %d bytes\n", fd, len);
if (len < 0) {
- if (errno == EAGAIN || errno == EINTR || errno == EWOULDBLOCK) {
+ if (ignoreErrno(errno)) {
commSetSelect(sslState->client.fd,
COMM_SELECT_WRITE,
sslWriteClient,
/*
- * $Id: tunnel.cc,v 1.71 1997/11/12 23:47:40 wessels Exp $
+ * $Id: tunnel.cc,v 1.72 1997/11/14 17:21:23 wessels Exp $
*
* DEBUG: section 26 Secure Sockets Layer Proxy
* AUTHOR: Duane Wessels
if (len < 0) {
debug(50, 1) ("sslReadServer: FD %d: read failure: %s\n",
sslState->server.fd, xstrerror());
- if (errno == EAGAIN || errno == EWOULDBLOCK || errno == EINTR) {
+ if (ignoreErrno(errno)) {
/* reinstall handlers */
/* XXX This may loop forever */
commSetSelect(sslState->server.fd,
if (len < 0) {
debug(50, 1) ("sslReadClient: FD %d: read failure: %s\n",
fd, xstrerror());
- if (errno == EAGAIN || errno == EWOULDBLOCK || errno == EINTR) {
+ if (ignoreErrno(errno)) {
/* reinstall handlers */
/* XXX This may loop forever */
commSetSelect(sslState->client.fd,
fd_bytes(fd, len, FD_WRITE);
debug(26, 5) ("sslWriteServer FD %d, wrote %d bytes\n", fd, len);
if (len < 0) {
- if (errno == EAGAIN || errno == EINTR || errno == EWOULDBLOCK) {
+ if (ignoreErrno(errno)) {
commSetSelect(sslState->server.fd,
COMM_SELECT_WRITE,
sslWriteServer,
fd_bytes(fd, len, FD_WRITE);
debug(26, 5) ("sslWriteClient FD %d, wrote %d bytes\n", fd, len);
if (len < 0) {
- if (errno == EAGAIN || errno == EINTR || errno == EWOULDBLOCK) {
+ if (ignoreErrno(errno)) {
commSetSelect(sslState->client.fd,
COMM_SELECT_WRITE,
sslWriteClient,
/*
- * $Id: wais.cc,v 1.97 1997/11/12 00:09:13 wessels Exp $
+ * $Id: wais.cc,v 1.98 1997/11/14 17:21:24 wessels Exp $
*
* DEBUG: section 24 WAIS Relay
* AUTHOR: Harvest Derived
}
if (len < 0) {
debug(50, 1) ("waisReadReply: FD %d: read failure: %s.\n", xstrerror());
- if (errno == EAGAIN || errno == EWOULDBLOCK || errno == EINTR) {
+ if (ignoreErrno(errno)) {
/* reinstall handlers */
/* XXX This may loop forever */
commSetSelect(fd, COMM_SELECT_READ,