From 86ba931697790d4da2515f4457ebfb3f20b43860 Mon Sep 17 00:00:00 2001 From: Epoch Qwert Date: Tue, 30 Dec 2014 07:25:39 -0600 Subject: all those .c changes were mostly fixes of warnings for the change in rebuild.sh being changed to use -Wall. gethostbyname was almost completely rewritten to work better with ipv6 for gopherd.sh gopherd.sh was rewritten to use gethostbyname instead of dig and to cut out any link-local interface indicators from the output of hop0 and to ignore an error if ipA -> hostname -> ipB causes ipA to be not the same as ipB. Don't remember if there's anything else. --- src/bin/dcchelper.c | 2 ++ src/bin/gethostbyname.c | 32 +++++++++++++++++--------------- src/bin/ipconvert.c | 2 ++ src/bin/pad.c | 1 + src/bin/rrd.c | 16 +++++++--------- src/bin/speed.c | 1 + 6 files changed, 30 insertions(+), 24 deletions(-) (limited to 'src/bin') diff --git a/src/bin/dcchelper.c b/src/bin/dcchelper.c index bf8f28b..50009aa 100644 --- a/src/bin/dcchelper.c +++ b/src/bin/dcchelper.c @@ -1,4 +1,6 @@ #include +#include +#include int main(int argc,char *argv[]) { char *wanip; diff --git a/src/bin/gethostbyname.c b/src/bin/gethostbyname.c index b670b1e..a63f540 100644 --- a/src/bin/gethostbyname.c +++ b/src/bin/gethostbyname.c @@ -2,23 +2,25 @@ #include #include +#define SILLYLIMIT 256 + int main(int argc,char *argv[]) { - int i; - if(argc < 2) return 1; - char *addr; + char buf[SILLYLIMIT]; struct in_addr saddr; - if(inet_aton(argv[1],&saddr)) - addr=inet_ntoa(saddr); - else - addr=argv[1]; - struct hostent *he=gethostbyname(addr); - - for(i=0;he->h_addr_list[i];i++) { - printf("%u.%u.%u.%u\n", - (unsigned char)he->h_addr_list[i][0], - (unsigned char)he->h_addr_list[i][1], - (unsigned char)he->h_addr_list[i][2], - (unsigned char)he->h_addr_list[i][3]); + struct in6_addr saddr6; + struct hostent *he; + if(argc<2) return 1; + if(!(he=gethostbyname2( + argc<3 + ?inet_aton(argv[1],&saddr) + ?inet_ntoa(saddr) + :argv[1] + :inet_pton(AF_INET6,argv[1],&saddr6) + ?inet_ntop(AF_INET6,&saddr6,buf,SILLYLIMIT) //no point, but whatever + :argv[1] + ,argc<3?AF_INET:AF_INET6))) return 1; + for(;*(he->h_addr_list);he->h_addr_list++) { + printf("%s\n",inet_ntop(argc<3?AF_INET:AF_INET6,*(he->h_addr_list),buf,SILLYLIMIT)); } return 0; } diff --git a/src/bin/ipconvert.c b/src/bin/ipconvert.c index 5420e27..d106d13 100644 --- a/src/bin/ipconvert.c +++ b/src/bin/ipconvert.c @@ -1,8 +1,10 @@ #include +#include int main(int argc,char *argv[]) { int addr=inet_addr(argv[1]); printf("%x\n",htonl(addr)); printf("%u\n",htonl(addr)); printf("%u.%u.%u.%u\n",addr&255,addr>>8&255,addr>>16&255,addr>>24&255); + return 0; } diff --git a/src/bin/pad.c b/src/bin/pad.c index 2f2ea13..f520de3 100644 --- a/src/bin/pad.c +++ b/src/bin/pad.c @@ -1,5 +1,6 @@ #include #include +#include int main(int argc,char *argv[]) { short in; diff --git a/src/bin/rrd.c b/src/bin/rrd.c index 1b43426..067fede 100644 --- a/src/bin/rrd.c +++ b/src/bin/rrd.c @@ -2,7 +2,6 @@ #include #include #include - #include #include @@ -11,7 +10,7 @@ mostly ripped. just outputs routes from KRT on NetBSD. used to look closer at a difference of output from route and netstat. */ -get_rtaddrs(int addrs, struct sockaddr *sa, struct sockaddr **rti_info) +void get_rtaddrs(int addrs, struct sockaddr *sa, struct sockaddr **rti_info) { int i; @@ -29,7 +28,7 @@ get_rtaddrs(int addrs, struct sockaddr *sa, struct sockaddr **rti_info) void print_sa6(struct sockaddr *sa) { int i=0; struct sockaddr_in6 *sa6 = (struct sockaddr_in6 *)sa; - struct in6_addr *in6 = &sa6->sin6_addr; + struct in6_addr *in6 = &(sa6->sin6_addr); if(sa) { for(i=0;i<16;i++) { printf("%02x",(unsigned char)in6->s6_addr[i]); @@ -44,11 +43,10 @@ void print_sa6(struct sockaddr *sa) { } void p_rtentry(struct rt_msghdr *rtm) { - struct sockadrr *sa = (rtm+1); + struct sockadrr *sa; + sa = (struct sockaddr *)(rtm+1); struct sockaddr *rti_info[RTAX_MAX]; - struct sockaddr_in6 *sa6 = (struct sockaddr_in6 *)sa; - struct in6_addr *in6 = &sa6->sin6_addr; - get_rtaddrs(rtm->rtm_addrs, sa, rti_info); + get_rtaddrs(rtm->rtm_addrs, (struct sockaddr *)sa, rti_info); printf("addr: "); print_sa6(rti_info[RTAX_DST]); @@ -62,7 +60,7 @@ void p_rtentry(struct rt_msghdr *rtm) { int main() { // sysctl(const int *name, u_int namelen, void *oldp, size_t *oldlenp, // const void *newp, size_t newlen); - int needed; + unsigned int needed; struct rt_msghdr *rtm; struct sockaddr *sa; char *buf,*next,*lim; @@ -88,5 +86,5 @@ int main() { free(buf); buf = NULL; } - + return 0; } diff --git a/src/bin/speed.c b/src/bin/speed.c index 3b8cc72..9fd373e 100644 --- a/src/bin/speed.c +++ b/src/bin/speed.c @@ -1,3 +1,4 @@ +#include #include #include -- cgit v1.2.3