Added some very pedantic warning flags
[tpg/acess2.git] / Modules / IPStack / interface.c
index 50d4c22..fc7db90 100644 (file)
@@ -192,28 +192,12 @@ int IPStack_Root_IOCtl(tVFS_Node *Node, int ID, void *Data)
        switch(ID)
        {
        // --- Standard IOCtls (0-3) ---
-       case DRV_IOCTL_TYPE:
-               LEAVE('i', DRV_TYPE_MISC);
-               return DRV_TYPE_MISC;
-       
-       case DRV_IOCTL_IDENT:
-               tmp = ModUtil_SetIdent(Data, "IPStack");
-               LEAVE('i', 1);
-               return 1;
-       
-       case DRV_IOCTL_VERSION:
-               LEAVE('x', VERSION);
-               return VERSION;
-       
-       case DRV_IOCTL_LOOKUP:
-               tmp = ModUtil_LookupString( (char**)casIOCtls_Root, (char*)Data );
-               LEAVE('i', tmp);
-               return tmp;
+       BASE_IOCTLS(DRV_TYPE_MISC, "IPStack", VERSION, casIOCtls_Root)
                
-               /*
-                * add_interface
-                * - Adds a new IP interface and binds it to a device
-                */
+       /*
+        * add_interface
+        * - Adds a new IP interface and binds it to a device
+        */
        case 4:
                if( Threads_GetUID() != 0 )     LEAVE_RET('i', -1);
                if( !CheckString( Data ) )      LEAVE_RET('i', -1);
@@ -251,7 +235,7 @@ tInterface *IPStack_AddInterface(const char *Device, const char *Name)
        iface = malloc(
                sizeof(tInterface)
                + nameLen + 1
-               + IPStack_GetAddressSize(-1)
+               + IPStack_GetAddressSize(-1)*3  // Address, Route->Network, Route->NextHop
                );
        if(!iface) {
                LEAVE('n');
@@ -261,6 +245,8 @@ tInterface *IPStack_AddInterface(const char *Device, const char *Name)
        iface->Next = NULL;
        iface->Type = 0;        // Unset type
        iface->Address = iface->Name + nameLen + 1;     // Address
+       iface->Route.Network = iface->Address + IPStack_GetAddressSize(-1);
+       iface->Route.NextHop = iface->Route.Network + IPStack_GetAddressSize(-1);
        
        // Create Node
        iface->Node.ImplPtr = iface;
@@ -382,23 +368,7 @@ int IPStack_Iface_IOCtl(tVFS_Node *Node, int ID, void *Data)
        switch(ID)
        {
        // --- Standard IOCtls (0-3) ---
-       case DRV_IOCTL_TYPE:
-               LEAVE('i', DRV_TYPE_MISC);
-               return DRV_TYPE_MISC;
-       
-       case DRV_IOCTL_IDENT:
-               tmp = ModUtil_SetIdent(Data, STR(IDENT));
-               LEAVE('i', 1);
-               return 1;
-       
-       case DRV_IOCTL_VERSION:
-               LEAVE('x', VERSION);
-               return VERSION;
-       
-       case DRV_IOCTL_LOOKUP:
-               tmp = ModUtil_LookupString( (char**)casIOCtls_Iface, (char*)Data );
-               LEAVE('i', tmp);
-               return tmp;
+       BASE_IOCTLS(DRV_TYPE_MISC, "IPStack", VERSION, casIOCtls_Iface)
        
        /*
         * getset_type

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