diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2010-10-05 23:52:31 +0300 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2010-10-05 23:52:31 +0300 |
commit | 7dde2dad953812b8a17f0fd562d2fbf41c475bf3 (patch) | |
tree | 08e732b3e3c6ed5a9cdba1913386122fcd37d1fa | |
parent | a7e0fb07657cef5684d8e07fc4a695e61a6a2dd6 (diff) | |
download | mailfromd-7dde2dad953812b8a17f0fd562d2fbf41c475bf3.tar.gz mailfromd-7dde2dad953812b8a17f0fd562d2fbf41c475bf3.tar.bz2 |
Bugfixes.
* lib/dns.c (_dnsbase_init): Rename to dnsbase_init, now extern.
(all functions): Remove calls to _dnsbase_init.
* lib/libmf.h (dnsbase_init): New proto.
* src/calloutd.c (main): Call dnsbase_init.
* src/savsrv.c (cmd_run): Bugfix.
(callout_session_server): Bugfix.
* src/main.c (main): Call dnsbase_init.
-rw-r--r-- | lib/dns.c | 8 | ||||
-rw-r--r-- | lib/libmf.h | 1 | ||||
-rw-r--r-- | src/calloutd.c | 1 | ||||
-rw-r--r-- | src/main.c | 1 | ||||
-rw-r--r-- | src/savsrv.c | 24 |
5 files changed, 19 insertions, 16 deletions
@@ -40,8 +40,8 @@ struct mx_buffer { static size_t debug_handle; -static void -_dnsbase_init() +void +dnsbase_init() { if (!debug_handle) debug_handle = debug_register("dns"); @@ -78,7 +78,6 @@ _getmx(const char *host, unsigned char *answer, size_t answer_size, unsigned short qdcount, ancount; struct __res_state stat; - _dnsbase_init(); debug(debug_handle, 80, ("Getting MX records for %s", host)); memset((void *)&stat, 0, sizeof(struct __res_state)); res_ninit(&stat); @@ -344,7 +343,6 @@ cname_loop_body(struct loop_data *lp) size_t len; struct __res_state statb; - _dnsbase_init(); memset((void *)&statb, 0, sizeof(struct __res_state)); res_ninit(&statb); n = res_nquerydomain (&statb, lp->name, lp->domain, C_IN, lp->qtype, @@ -917,7 +915,6 @@ resolve_ipstr_domain(const char *ipstr, const char *domain, char **phbuf) char buffer[256]; dns_status dstat; - _dnsbase_init(); if (!answer) answer = xmalloc(MAXPACKET); debug(debug_handle, 80, ("Getting canonical name for %s", ipstr)); @@ -954,7 +951,6 @@ resolve_hostname(const char *host, char **pipbuf) char *tmphost = xstrdup(host); dns_status dstat; - _dnsbase_init(); if (!answer) answer = malloc(MAXPACKET); debug(debug_handle, 80, ("Getting IP address for %s", host)); diff --git a/lib/libmf.h b/lib/libmf.h index 2249865a..3aac16bf 100644 --- a/lib/libmf.h +++ b/lib/libmf.h @@ -266,6 +266,7 @@ size_t format_time_str(FILE *fp, time_t timestamp); /* dns.c */ +void dnsbase_init(); mf_status dns_to_mf_status(dns_status stat); mf_status getmx(const char *host, struct mxbuf *mxbuf); mf_status getmxip(char *host, GACOPYZ_UINT32_T *ipbuf, size_t mxmax, size_t *pcount); diff --git a/src/calloutd.c b/src/calloutd.c index 1b167585..d59d570a 100644 --- a/src/calloutd.c +++ b/src/calloutd.c @@ -129,6 +129,7 @@ main(int argc, char **argv) db_format_setup(); mf_server_save_cmdline(argc, argv); + dnsbase_init(); database_cfg_init(); mu_acl_cfg_init(); srvman_init(); @@ -1135,6 +1135,7 @@ main(int argc, char **argv) mf_optcache_add(option_cache, 0, MF_OCF_NULL|MF_OCF_STATIC); mf_server_save_cmdline(argc, argv); + dnsbase_init(); mu_acl_cfg_init(); database_cfg_init(); srvman_init(); diff --git a/src/savsrv.c b/src/savsrv.c index f3f8d3ee..f531d514 100644 --- a/src/savsrv.c +++ b/src/savsrv.c @@ -428,8 +428,8 @@ cmd_run(FILE *fp, int argc, char **argv) prev->next = next; else head = next; - } - prev = qp; + } else + prev = qp; qp = next; } writeout(fp, "\r\n"); @@ -523,14 +523,18 @@ callout_session_server(const char *id, int fd, continue; } - cmd = find_command(argv[0]); - if (!cmd) - writeout(fp, "NO unknown command\r\n"); - else if ((cmd->argmin && argc < cmd->argmin) - || (cmd->argmax && argc > cmd->argmax)) - writeout(fp, "NO invalid arguments\r\n"); - else - rc = cmd->handler(fp, argc, argv); + if (argc == 0) + writeout(fp, "NO empty command\r\n"); + else { + cmd = find_command(argv[0]); + if (!cmd) + writeout(fp, "NO unknown command\r\n"); + else if ((cmd->argmin && argc < cmd->argmin) + || (cmd->argmax && argc > cmd->argmax)) + writeout(fp, "NO invalid arguments\r\n"); + else + rc = cmd->handler(fp, argc, argv); + } mu_argcv_free(argc, argv); if (rc) break; |