Add command line switch '-n' to disable DNS

This commit is contained in:
Mike Belopuhov 2014-03-06 16:29:27 +01:00
parent f3c60e6c62
commit 460786f474
4 changed files with 18 additions and 9 deletions

15
dns.c
View File

@ -38,8 +38,6 @@
void dns_dispatch(int, short, void *);
void dns_done(int, short, void *);
int dns_pipe;
struct icbd_dnsquery {
uint64_t sid;
union {
@ -48,6 +46,10 @@ struct icbd_dnsquery {
} u;
};
int dns_pipe;
extern int dodns;
int
dns_init(void)
{
@ -172,11 +174,14 @@ dns_done(int fd, short event, void *arg __attribute__((unused)))
syslog(LOG_DEBUG, "icbd_dns: resolved %s", is->host);
}
int
void
dns_rresolv(struct icb_session *is, struct sockaddr_storage *ss)
{
struct icbd_dnsquery q;
if (!dodns)
return;
if (verbose)
syslog(LOG_DEBUG, "resolving: %s", is->host);
@ -185,8 +190,6 @@ dns_rresolv(struct icb_session *is, struct sockaddr_storage *ss)
memcpy(&q.u.req, ss, sizeof *ss);
if (write(dns_pipe, &q, sizeof q) != sizeof q) {
syslog(LOG_ERR, "write: %m");
exit (EX_OSERR);
exit(EX_OSERR);
}
return 0;
}

4
icbd.8
View File

@ -22,7 +22,7 @@
.Sh SYNOPSIS
.Nm icbd
.Bk -words
.Op Fl 46Cdv
.Op Fl 46Cdnv
.Oo
.Fl G Ar group1 Ns Op , Ns Ar ...
.Oc
@ -80,6 +80,8 @@ can be granted with moderation of any group.
.Ar modtab
file contains one nick per line; empty lines and lines starting with
a hash symbol are ignored.
.Ir Fl n
Disable DNS resolver.
.It Fl S Ar name
Set the server's name to
.Ar name .

6
icbd.c
View File

@ -49,6 +49,7 @@ char srvname[MAXHOSTNAMELEN];
int creategroups;
int foreground;
char logprefix[MAXPATHLEN/2];
int dodns = 1;
int dologging;
int verbose;
@ -88,7 +89,7 @@ main(int argc, char *argv[])
/* init group lists before calling icb_addgroup */
icb_init(&ic);
while ((ch = getopt(argc, argv, "46CdG:M:L:S:v")) != -1)
while ((ch = getopt(argc, argv, "46CdG:M:nL:S:v")) != -1)
switch (ch) {
case '4':
inet4++;
@ -112,6 +113,9 @@ main(int argc, char *argv[])
case 'M':
icbd_modtab(optarg);
break;
case 'n':
dodns = 0;
break;
case 'S':
strlcpy(srvname, optarg, sizeof srvname);
break;

2
icbd.h
View File

@ -29,7 +29,7 @@ time_t getmonotime(void);
/* dns.c */
struct sockaddr_storage;
int dns_init(void);
int dns_rresolv(struct icb_session *, struct sockaddr_storage *);
void dns_rresolv(struct icb_session *, struct sockaddr_storage *);
/* logger.c */
int logger_init(void);