Oops. Forgot the usleep.c file.
[oweals/busybox.git] / mnc.c
diff --git a/mnc.c b/mnc.c
index a9e66bebf31e3044f69152256beaf38ca01ce04c..54cfdc602d7c7f87cd807f78801f55307d5df0a9 100644 (file)
--- a/mnc.c
+++ b/mnc.c
@@ -1,3 +1,4 @@
+/* vi: set sw=4 ts=4: */
 /*  mnc: mini-netcat - built from the ground up for LRP
     Copyright (C) 1998  Charles P. Wright
 
 
 #define BUFSIZE 100
 
-static const char mnc_usage[] = 
-"mini-netcat 0.0.3 -- Open pipe to IP:port\n"
-"\tmnc [IP] [port]\n";
+static const char mnc_usage[] =
 
-int
-mnc_main(int argc, char **argv)
+       "mnc [IP] [port]\n\n" "mini-netcat opens a pipe to IP:port\n";
+
+int mnc_main(int argc, char **argv)
 {
-        int sfd;
-        int result;
-        int len;
-        char ch[BUFSIZE];
-        
-        struct sockaddr_in address;
-        struct hostent *hostinfo;
+       int sfd;
+       int result;
+       int len;
+       char ch[BUFSIZE];
+
+       struct sockaddr_in address;
+       struct hostent *hostinfo;
 
-        fd_set readfds, testfds;
+       fd_set readfds, testfds;
 
-        sfd = socket(AF_INET, SOCK_STREAM, 0);
+       if (argc <= 1 || **(argv + 1) == '-') {
+               usage(mnc_usage);
+       }
+       argc--;
+       argv++;
 
-        hostinfo = (struct hostent *) gethostbyname(argv[1]);
+       sfd = socket(AF_INET, SOCK_STREAM, 0);
 
-        if (!hostinfo)
-        {
-                exit(1);
-        }
+       hostinfo = (struct hostent *) gethostbyname(*argv);
 
-        address.sin_family = AF_INET;
-        address.sin_addr = *(struct in_addr *) *hostinfo->h_addr_list;
-        address.sin_port = htons(atoi(argv[2]));
+       if (!hostinfo) {
+               exit(1);
+       }
 
-        len = sizeof(address);
+       address.sin_family = AF_INET;
+       address.sin_addr = *(struct in_addr *) *hostinfo->h_addr_list;
+       address.sin_port = htons(atoi(*(++argv)));
 
-        result = connect(sfd, (struct sockaddr *)&address, len);
+       len = sizeof(address);
 
-        if (result < 0) 
-        {
-                exit(2);
-        }
+       result = connect(sfd, (struct sockaddr *) &address, len);
 
-        FD_ZERO(&readfds);
-        FD_SET(sfd, &readfds);
-        FD_SET(fileno(stdin), &readfds);
+       if (result < 0) {
+               exit(2);
+       }
 
-        while(1)
-        {
-                int fd;
+       FD_ZERO(&readfds);
+       FD_SET(sfd, &readfds);
+       FD_SET(fileno(stdin), &readfds);
+
+       while (1) {
+               int fd;
                int ofd;
-                int nread;
+               int nread;
 
-                testfds = readfds;
+               testfds = readfds;
 
-                result = select(FD_SETSIZE, &testfds, (fd_set *) NULL, (fd_set *) NULL, (struct timeval *) 0);
+               result =
+                       select(FD_SETSIZE, &testfds, (fd_set *) NULL, (fd_set *) NULL,
+                                  (struct timeval *) 0);
 
-                if(result < 1) 
-                {
-                        exit(3);
-                }
+               if (result < 1) {
+                       exit(3);
+               }
 
-                for(fd = 0; fd < FD_SETSIZE; fd++)
-                {
-                        if(FD_ISSET(fd,&testfds))
-                        {
+               for (fd = 0; fd < FD_SETSIZE; fd++) {
+                       if (FD_ISSET(fd, &testfds)) {
                                int trn = 0;
                                int rn;
 
-                                ioctl(fd, FIONREAD, &nread);
+                               ioctl(fd, FIONREAD, &nread);
 
-                                if(fd == sfd)
-                                {
-                                       if (nread == 0)
-                                               exit(0);
+                               if (fd == sfd) {
+                                       if (nread == 0)
+                                               exit(0);
                                        ofd = fileno(stdout);
-                               }
-                               else
-                               {
+                               } else {
                                        ofd = sfd;
                                }
 
 
 
-                               do
-                               {
+                               do {
                                        rn = (BUFSIZE < nread - trn) ? BUFSIZE : nread - trn;
                                        trn += rn;
-                                               read(fd, ch, rn);
-                                       write(ofd, ch, rn);
+                                       read(fd, ch, rn);
+                                       write(ofd, ch, rn);
                                }
                                while (trn < nread);
                        }
-                }
-        }
+               }
+       }
 }