//print out useful network information static void print_results(){ auto long tz; char ipstr[20]; //network variables inet_ntoa((char *)&ipstr,my_ip_addr); printf(" Network Parameters:\n"); printf(" My IP Address = %s (%08lX)\n", ipstr, my_ip_addr); printf(" Netmask = %08lX\n", sin_mask); if (_dhcphost != ~0UL) { if (_dhcpstate == DHCP_ST_PERMANENT) { printf(" Permanent lease\n"); } else { printf(" Remaining lease = %ld (sec)\n", _dhcplife - SEC_TIMER); printf(" Renew lease in %ld (sec)\n", _dhcpt1 - SEC_TIMER); } printf(" DHCP server = %08lX\n", _dhcphost); printf(" Boot server = %08lX\n", _bootphost); } if (gethostname(NULL,0)) printf(" Host name = %s\n", gethostname(NULL,0)); if (getdomainname(NULL,0)) printf(" Domain name = %s\n", getdomainname(NULL,0)); if (dhcp_get_timezone(&tz)) printf(" Timezone (fallback only) = %ldh\n", tz / 3600); else printf(" Timezone (DHCP server) = %ldh\n", tz / 3600); if (_last_nameserver) printf(" First DNS = %08lX\n", def_nameservers[0]); if (_smtpsrv) printf(" SMTP server = %08lX\n", _smtpsrv); }
/* * Print some of the DHCP or BOOTP parameters received. This is an interface up/down callback. */ void print_results(int iface, int up) { auto long tz; auto word dhcp_ok, dhcp_fb; auto DHCPInfo * di; auto long myip; auto long mynetmask; auto int i; printf("\n\nInterface # %d is now %s\n\n", iface, up ? "UP" : "DOWN"); if (!up) { printf("...Remaining interfaces:\n"); goto _exit; } // Get stuff... if (ifconfig(iface, IFG_DHCP_INFO, &di, IFG_DHCP_OK, &dhcp_ok, IFG_DHCP_FELLBACK, &dhcp_fb, IFG_IPADDR, &myip, IFG_NETMASK, &mynetmask, IFS_END) || !di) { printf("No DHCP info obtained!\n"); goto _exit; } printf("Network Parameters:\n"); printf(" My IP Address = %08lX\n", myip); printf(" Netmask = %08lX\n", mynetmask); if (dhcp_fb) { printf("DHCP fell back to defaults\n"); goto _exit; } if (dhcp_ok) { printf("DHCP OK.\n"); if (di->dhcp_server) { if (di->lease == DHCP_PERMANENT) { printf(" Permanent lease\n"); } else { printf(" Remaining lease = %ld (sec)\n", di->lease - SEC_TIMER); printf(" Renew lease in %ld (sec)\n", di->t1 - SEC_TIMER); } printf(" DHCP server = %08lX\n", di->dhcp_server); printf(" Boot server = %08lX\n", di->bootp_host); } #if DHCP_NUM_ROUTERS printf(" Routers: "); for (i=0; i < DHCP_NUM_ROUTERS; ++i) printf("%08lX ", di->router[i]); printf("\n"); #endif #if DHCP_NUM_DNS printf(" DNS servers: "); for (i=0; i < DHCP_NUM_DNS; ++i) printf("%08lX ", di->dns[i]); printf("\n"); #endif #if DHCP_NUM_SMTP printf(" Mail servers: "); for (i=0; i < DHCP_NUM_SMTP; ++i) printf("%08lX ", di->smtp[i]); printf("\n"); #endif #if DHCP_NUM_QOTD printf(" Cookie servers: "); for (i=0; i < DHCP_NUM_QOTD; ++i) printf("%08lX ", di->cookie[i]); printf("\n"); #endif } printf("\n\n"); if (dhcp_get_timezone(&tz)) printf("Timezone (fallback only) = %ldh\n", tz / 3600); else printf("Timezone (DHCP server) = %ldh\n", tz / 3600); printf("\n\n"); _exit: ip_print_ifs(); router_printall(); //arpcache_printall(); printf("\nNameserver list:\n"); servlist_print(&_dns_server_table); printf("\n= = = = = = = = = = = = = = =\n\n"); if (got_bootfile) load_bootfile = 1; // Signal main loop to load it. }