Kernel/VTerm - "Fix" wrapping issue in VTerm (why was old behavior there?)
[tpg/acess2.git] / Usermode / Applications / ping_src / main.c
index 4be3306..7c10e57 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Acess2 IFCONFIG command
+ * Acess2 ping command
  */
 #include <stdlib.h>
 #include <stdint.h>
@@ -80,19 +80,7 @@ int main(int argc, char *argv[])
                return 1;
        }
        
-       if( !iface )
-       {
-               iface = Net_GetInterface(type, addr);
-               if( !iface ) {
-                       fprintf(stderr, "Unable to find a route to '%s'\n",
-                               Net_PrintAddress(type, addr)
-                               );
-                       return -1;
-               }
-               
-               printf("iface = '%s'\n", iface);
-       }
-       
+       if( iface )
        {
                char    *_iface = malloc( sizeof("/Devices/ip/") + strlen(iface) + 1 );
                strcpy(_iface, "/Devices/ip/");
@@ -100,15 +88,25 @@ int main(int argc, char *argv[])
                free(iface);    // TODO: Handle when this is not heap
                iface = _iface;
                printf("iface = '%s'\n", iface);
+               fd = _SysOpen(iface, OPENFLAG_EXEC);
+               if(fd == -1) {
+                       fprintf(stderr, "ERROR: Unable to open interface '%s'\n", iface);
+                       return 1;
+               }
+               
        }
-       
-       fd = open(iface, OPENFLAG_EXEC);
-       if(fd == -1) {
-               fprintf(stderr, "ERROR: Unable to open interface '%s'\n", iface);
-               return 1;
+       else
+       {
+               fd = Net_OpenSocket(type, addr, NULL);
+               if( fd == -1 ) {
+                       fprintf(stderr, "Unable to find a route to '%s'\n",
+                               Net_PrintAddress(type, addr)
+                               );
+                       return -1;
+               }
        }
-               
-       call = ioctl(fd, 3, "ping");
+       
+       call = _SysIOCtl(fd, 3, "ping");
        if(call == 0) {
                fprintf(stderr, "ERROR: '%s' does not have a 'ping' call\n", iface);
                return 1;
@@ -116,11 +114,11 @@ int main(int argc, char *argv[])
        
        for( i = 0; i < giNumberOfPings; i ++ )
        {
-               ping = ioctl(fd, call, addr);
+               ping = _SysIOCtl(fd, call, addr);
                printf("ping = %i\n", ping);
        }
                
-       close(fd);
+       _SysClose(fd);
        
        return 0;
 }

UCC git Repository :: git.ucc.asn.au