diff options
| author | Roy Marples <roy@marples.name> | 2008-11-17 22:50:37 +0000 |
|---|---|---|
| committer | Roy Marples <roy@marples.name> | 2008-11-17 22:50:37 +0000 |
| commit | 5f1643f5844b6cf6adba486c8712931b98533c74 (patch) | |
| tree | efc942fbcc0a4f2fcb695f09da3a46cb42a72900 /if-linux.c | |
| parent | c989b02361577d2227094cd396c760c1df39e697 (diff) | |
| download | dhcpcd-5f1643f5844b6cf6adba486c8712931b98533c74.tar.xz | |
Fix working with linux aliased interfaces again.
Diffstat (limited to 'if-linux.c')
| -rw-r--r-- | if-linux.c | 14 |
1 files changed, 11 insertions, 3 deletions
@@ -431,7 +431,8 @@ struct interface * discover_interfaces(int argc, char * const *argv) { FILE *f; - char *p; + char ifn[IF_NAMESIZE]; + char *p, *c; size_t ln = 0, n; int i; struct interface *ifs = NULL, *ifp, *ifl; @@ -451,11 +452,18 @@ discover_interfaces(int argc, char * const *argv) if (ifp) continue; if (argc > 0) { - for (i = 0; i < argc; i++) - if (strcmp(argv[i], p) == 0) + for (i = 0; i < argc; i++) { + /* Check the real interface name */ + strlcpy(ifn, argv[i], sizeof(ifn)); + c = strchr(ifn, ':'); + if (c) + *c = '\0'; + if (strcmp(ifn, p) == 0) break; + } if (i == argc) continue; + p = argv[i]; } else { for (i = 0; i < ifdc; i++) if (!fnmatch(ifdv[i], p, 0)) |
