diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/bin/speed.c | 21 | ||||
-rw-r--r-- | src/bin/strstr.c | 7 | ||||
-rw-r--r-- | src/libexec/peerip.c | 12 |
3 files changed, 36 insertions, 4 deletions
diff --git a/src/bin/speed.c b/src/bin/speed.c new file mode 100644 index 0000000..3b8cc72 --- /dev/null +++ b/src/bin/speed.c @@ -0,0 +1,21 @@ +#include <stdio.h> +#include <signal.h> + +int count; + +void printandreset(int sig) { + alarm(1); + printf("persecond: %d\n",count); + count=0; +} + +int main(int argc,char *argv[]) { + char in[256]; + count=0; + signal(SIGALRM,printandreset); + alarm(1); + while(fgets(in,256,stdin)) { + count++; + } + return 0; +} diff --git a/src/bin/strstr.c b/src/bin/strstr.c new file mode 100644 index 0000000..9b244ec --- /dev/null +++ b/src/bin/strstr.c @@ -0,0 +1,7 @@ +#include <stdio.h> +#include <string.h> + +int main(int argc,char *argv[]) { + if(argc < 3) return printf("usage: strstr big little\n"),2; + else return !strstr(argv[1],argv[2]); +} diff --git a/src/libexec/peerip.c b/src/libexec/peerip.c index 9298f87..6bcf1f1 100644 --- a/src/libexec/peerip.c +++ b/src/libexec/peerip.c @@ -1,16 +1,20 @@ #include <stdio.h> #include <sys/socket.h> #include <netdb.h> +#include <netinet/in.h> int main(int argc,char *argv[]) { int i; - struct sockaddr sa; - int sl=sizeof(sa); + struct sockaddr_in6 sa6; + int err; + int sl=sizeof(sa6); char h[NI_MAXHOST], s[NI_MAXSERV]; - getpeername(0,&sa,&sl); - if(getnameinfo(&sa,sl,h,sizeof(h),s,sizeof(s),NI_NUMERICHOST|NI_NUMERICSERV)) { + if(getpeername(0,(struct sockaddr *)&sa6,&sl) == -1) { return 1; } + if(err=getnameinfo((struct sockaddr *)&sa6,sl,h,sizeof(h),s,sizeof(s),NI_NUMERICHOST|NI_NUMERICSERV)) { + return 2; + } puts(h); puts(s); return 0; |