- if( NewName == NULL )
- {
- // Delete the route
- tRoute *prev = NULL;
- for(tRoute *r = gIP_Routes; r && r != rt; prev = r, r = r->Next);
-
- if(prev)
- prev->Next = rt->Next;
- else
- gIP_Routes = rt->Next;
- free(rt);
- }
- else
- {
- // Change the route
- int type = _Route_ParseRouteName(NewName, NULL, NULL, NULL);
- if(type <= 0) return -EINVAL;
- Uint8 addr[IPStack_GetAddressSize(type)];
- int subnet, metric;
- _Route_ParseRouteName(NewName, addr, &subnet, &metric);