meillo@367: /* meillo@367: ** MasqMail meillo@367: ** Copyright (C) Oliver Kurth, meillo@367: ** Copyright (C) 2010 markus schnalke meillo@367: ** meillo@367: ** This program is free software; you can redistribute it and/or modify meillo@367: ** it under the terms of the GNU General Public License as published by meillo@367: ** the Free Software Foundation; either version 2 of the License, or meillo@367: ** (at your option) any later version. meillo@367: ** meillo@367: ** This program is distributed in the hope that it will be useful, meillo@367: ** but WITHOUT ANY WARRANTY; without even the implied warranty of meillo@367: ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the meillo@367: ** GNU General Public License for more details. meillo@367: ** meillo@367: ** You should have received a copy of the GNU General Public License meillo@367: ** along with this program; if not, write to the Free Software meillo@367: ** Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. meillo@367: */ meillo@200: meillo@200: meillo@200: #include meillo@200: #include meillo@200: #include meillo@200: #include meillo@200: meillo@200: #include "masqmail.h" meillo@200: meillo@200: meillo@200: masqmail_conf conf; meillo@200: meillo@200: meillo@200: void meillo@200: debugf(const char *fmt, ...) meillo@200: { meillo@200: va_list args; meillo@200: va_start(args, fmt); meillo@200: meillo@200: vfprintf(stdout, fmt, args); meillo@200: meillo@200: va_end(args); meillo@200: meillo@200: } meillo@200: meillo@200: meillo@200: int meillo@200: main(int argc, char *argv[]) meillo@200: { meillo@200: GList *addr_list = NULL, *node; meillo@200: meillo@200: conf.debug_level = -1; /* no debug messages */ meillo@200: meillo@200: if (argc != 2) { meillo@200: fprintf(stderr, "usage: resolvtest HOSTNAME\n"); meillo@200: return 1; meillo@200: } meillo@200: meillo@200: if (res_init() != 0) { meillo@200: printf("res_init() failed.\n"); meillo@200: return 1; meillo@200: } meillo@200: meillo@200: printf("A:\n"); meillo@200: addr_list = resolve_dns_a(NULL, argv[1]); meillo@200: foreach(addr_list, node) { meillo@200: mxip_addr *p_mxip = (mxip_addr *) (node->data); meillo@200: printf("%s \t%s\n", p_mxip->name, inet_ntoa(*(struct in_addr *) &(p_mxip->ip))); meillo@200: } meillo@200: meillo@200: printf("\nMX:\n"); meillo@200: addr_list = resolve_dns_mx(NULL, argv[1]); meillo@200: foreach(addr_list, node) { meillo@200: mxip_addr *p_mxip = (mxip_addr *) (node->data); meillo@200: printf("%s \t%s %d\n", p_mxip->name, meillo@200: inet_ntoa(*(struct in_addr *) &(p_mxip->ip)), p_mxip->pref); meillo@200: } meillo@200: meillo@200: printf("\nIP resolved directly (assumed FQDN, no default domain added):\n"); meillo@200: { meillo@200: guint32 ip; meillo@200: if (dns_look_ip(argv[1], &ip) >= 0) { meillo@200: printf("%s\n", inet_ntoa(*((struct in_addr *) (&ip)))); meillo@200: } meillo@200: } meillo@200: meillo@200: return 0; meillo@200: }