chiark
/
gitweb
/
~mdw
/
mLib
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Various manual fixes.
[mLib]
/
bres.c
diff --git
a/bres.c
b/bres.c
index 99bf051135d16d9fe76d343df84aeac3194f04aa..1f27f02bd7895bc40e832fbfafd637f44bc0341d 100644
(file)
--- a/
bres.c
+++ b/
bres.c
@@
-1,6
+1,6
@@
/* -*-c-*-
*
/* -*-c-*-
*
- * $Id: bres.c,v 1.
2 1999/10/30 11:28:39
mdw Exp $
+ * $Id: bres.c,v 1.
7 2004/04/08 01:36:11
mdw Exp $
*
* Background reverse name resolution
*
*
* Background reverse name resolution
*
@@
-27,17
+27,6
@@
* MA 02111-1307, USA.
*/
* MA 02111-1307, USA.
*/
-/*----- Revision history --------------------------------------------------*
- *
- * $Log: bres.c,v $
- * Revision 1.2 1999/10/30 11:28:39 mdw
- * Fix include error, pointed out by Chris Rutter.
- *
- * Revision 1.1 1999/10/04 21:40:42 mdw
- * Added background resolver from `fw'.
- *
- */
-
/*----- Header files ------------------------------------------------------*/
#include <errno.h>
/*----- Header files ------------------------------------------------------*/
#include <errno.h>
@@
-300,9
+289,8
@@
static struct hostent *gethost(int fd)
if (doread(fd, a, hsk.naddr * hsk.addrsz))
goto tidy_2;
for (i = 0; i < hsk.naddr; i++) {
if (doread(fd, a, hsk.naddr * hsk.addrsz))
goto tidy_2;
for (i = 0; i < hsk.naddr; i++) {
- struct in_addr in;
*p++ = a;
*p++ = a;
-
memcpy(&in, a, sizeof(in))
;
+
a += hsk.addrsz
;
}
*p++ = 0;
}
*p++ = 0;
@@
-415,7
+403,13
@@
static void child(int rfd, int cfd)
{
int i;
{
int i;
+#if defined(_SC_OPEN_MAX)
int maxfd = sysconf(_SC_OPEN_MAX);
int maxfd = sysconf(_SC_OPEN_MAX);
+#elif defined(OPEN_MAX)
+ int maxfd = OPEN_MAX;
+#else
+ int maxfd = -1;
+#endif
if (maxfd < 0)
maxfd = 256; /* Fingers crossed... */
if (maxfd < 0)
maxfd = 256; /* Fingers crossed... */
@@
-425,6
+419,12
@@
static void child(int rfd, int cfd)
}
}
}
}
+ signal(SIGTERM, SIG_DFL);
+ signal(SIGHUP, SIG_DFL);
+ signal(SIGQUIT, SIG_DFL);
+ signal(SIGALRM, SIG_DFL);
+ signal(SIGINT, SIG_DFL);
+
/* --- Main request/response loop --- */
for (;;) {
/* --- Main request/response loop --- */
for (;;) {
@@
-450,7
+450,7
@@
static void child(int rfd, int cfd)
free(name);
} break;
free(name);
} break;
- /* ---
Forward
lookup --- */
+ /* ---
Reverse
lookup --- */
case BRES_BYADDR: {
struct in_addr addr;
case BRES_BYADDR: {
struct in_addr addr;
@@
-596,7
+596,7
@@
static void zap(bres_server *rs)
void bres_abort(bres_client *rc)
{
if (rc->q == BRES_BYNAME)
void bres_abort(bres_client *rc)
{
if (rc->q == BRES_BYNAME)
- free(rc->u.name);
+
x
free(rc->u.name);
if (rc->rs) {
sel_rmfile(&rc->rs->f);
zap(rc->rs);
if (rc->rs) {
sel_rmfile(&rc->rs->f);
zap(rc->rs);
@@
-663,7
+663,7
@@
static void answer(int fd, unsigned mode, void *vp)
if (rc) {
rc->func(h, rc->p);
if (rc->q == BRES_BYNAME)
if (rc) {
rc->func(h, rc->p);
if (rc->q == BRES_BYNAME)
- free(rc->u.name);
+
x
free(rc->u.name);
}
if (h)
free(h);
}
if (h)
free(h);
@@
-854,7
+854,7
@@
again:
lost:
rc->func(0, rc->p);
if (rc->q == BRES_BYNAME)
lost:
rc->func(0, rc->p);
if (rc->q == BRES_BYNAME)
- free(rc->u.name);
+
x
free(rc->u.name);
}
/* --- @resolve@ --- *
}
/* --- @resolve@ --- *