aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2010-10-05 23:52:31 +0300
committerSergey Poznyakoff <gray@gnu.org.ua>2010-10-05 23:52:31 +0300
commit7dde2dad953812b8a17f0fd562d2fbf41c475bf3 (patch)
tree08e732b3e3c6ed5a9cdba1913386122fcd37d1fa
parenta7e0fb07657cef5684d8e07fc4a695e61a6a2dd6 (diff)
downloadmailfromd-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.c8
-rw-r--r--lib/libmf.h1
-rw-r--r--src/calloutd.c1
-rw-r--r--src/main.c1
-rw-r--r--src/savsrv.c24
5 files changed, 19 insertions, 16 deletions
diff --git a/lib/dns.c b/lib/dns.c
index 42110b73..aa015f9b 100644
--- a/lib/dns.c
+++ b/lib/dns.c
@@ -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();
diff --git a/src/main.c b/src/main.c
index c7794061..8ce17324 100644
--- a/src/main.c
+++ b/src/main.c
@@ -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;

Return to:

Send suggestions and report system problems to the System administrator.