fix bug for 0.0.0.0 mx

This commit is contained in:
whottgen 2006-10-08 19:07:34 +00:00
parent 062d116f33
commit c6b7016330

View File

@ -733,6 +733,7 @@ static void *worker_thread(void *arg) {
static const char *NOT_AN_ADDRESS = "not an email-address, no @ in it"; static const char *NOT_AN_ADDRESS = "not an email-address, no @ in it";
static const char *DEFAULT_ANSWER = "default answer"; static const char *DEFAULT_ANSWER = "default answer";
static const char *NO_MX_AVAILABLE = "no MX available"; static const char *NO_MX_AVAILABLE = "no MX available";
static const char *ILLEGAL_MX_ADDRESS = "0.0.0.0 can not be used at all";
static const char *NO_PERM_RESULT = "no checker returned permanent result"; static const char *NO_PERM_RESULT = "no checker returned permanent result";
static const char *INTERNAL_ERROR = "verifier internal error"; static const char *INTERNAL_ERROR = "verifier internal error";
@ -767,6 +768,9 @@ static void *worker_thread(void *arg) {
if (NULL == mx_ip_addresses) { if (NULL == mx_ip_addresses) {
wt->output = (char*) NO_MX_AVAILABLE; wt->output = (char*) NO_MX_AVAILABLE;
result = SMM_LOCAL_PERM_NOK; result = SMM_LOCAL_PERM_NOK;
} else if (0 == *mx_ip_addresses) { /* 0.0.0.0 is strange enough for a special case */
wt->output = (char*) ILLEGAL_MX_ADDRESS;
result = SMM_LOCAL_PERM_NOK;
} else { } else {
for (i = 0; (*(mx_ip_addresses+i) != 0) && (i < wt->vwh->vch->max_checker_threads); i++) { for (i = 0; (*(mx_ip_addresses+i) != 0) && (i < wt->vwh->vch->max_checker_threads); i++) {
unsigned int address = *(mx_ip_addresses+i); unsigned int address = *(mx_ip_addresses+i);