diff --git a/src/sbbs3/mxlookup.c b/src/sbbs3/mxlookup.c index 2bf6c6e87a59a56a67553f888ab5a06e5ef181fe..9edd85a586d4c3e73840079760ab57348e34e181 100644 --- a/src/sbbs3/mxlookup.c +++ b/src/sbbs3/mxlookup.c @@ -391,6 +391,7 @@ void main(int argc, char **argv) { char mx[128],mx2[128]; int result; + DWORD bindaddr=0; #ifdef _WIN32 WSADATA WSAData; #endif @@ -400,7 +401,7 @@ void main(int argc, char **argv) printf("sizeof(dns_rr_t)=%d\n",sizeof(dns_rr_t)); if(argc<3) { - printf("usage: mxlookup hostname dns\n"); + printf("usage: mxlookup hostname dns [bindaddr]\n"); return; } @@ -412,7 +413,10 @@ void main(int argc, char **argv) } #endif - if((result=dns_getmx(argv[1],mx,mx2,0,inet_addr(argv[2]),FALSE,60))!=0) + if(argc > 3) + bindaddr=ntohl(inet_addr(argv[3])); + + if((result=dns_getmx(argv[1],mx,mx2,bindaddr,inet_addr(argv[2]),FALSE,60))!=0) printf("Error %d getting mx record\n",result); else { printf("MX1: %s\n",mx);