summaryrefslogtreecommitdiff
path: root/src/bin
diff options
context:
space:
mode:
Diffstat (limited to 'src/bin')
-rw-r--r--src/bin/dcchelper.c2
-rw-r--r--src/bin/gethostbyname.c32
-rw-r--r--src/bin/ipconvert.c2
-rw-r--r--src/bin/pad.c1
-rw-r--r--src/bin/rrd.c16
-rw-r--r--src/bin/speed.c1
6 files changed, 30 insertions, 24 deletions
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 <stdio.h>
+#include <string.h>
+#include <arpa/inet.h>
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 <netdb.h>
#include <arpa/inet.h>
+#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 <stdio.h>
+#include <arpa/inet.h>
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 <stdio.h>
#include <string.h>
+#include <stdlib.h>
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 <stdlib.h>
#include <sys/sysctl.h>
#include <net/route.h>
-
#include <sys/socket.h>
#include <netinet/in.h>
@@ -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 <unistd.h>
#include <stdio.h>
#include <signal.h>