62 |
|
|
63 |
bzero(&nas, sizeof(nas)); |
bzero(&nas, sizeof(nas)); |
64 |
STRING_COPY(nas.shortname, fv[1]); |
STRING_COPY(nas.shortname, fv[1]); |
65 |
if (fv[2][0] == 0) |
if (!fv[2]) |
66 |
STRING_COPY(nas.nastype, "true"); |
STRING_COPY(nas.nastype, "true"); |
67 |
else |
else |
68 |
STRING_COPY(nas.nastype, fv[2]); |
STRING_COPY(nas.nastype, fv[2]); |
69 |
if (strcmp(fv[0], "DEFAULT") == 0) { |
if (strcmp(fv[0], "DEFAULT") == 0) { |
70 |
nas.ipaddr = 0; |
nas.netdef.ipaddr = nas.netdef.netmask = 0; |
71 |
STRING_COPY(nas.longname, fv[0]); |
STRING_COPY(nas.longname, fv[0]); |
72 |
} else { |
} else { |
73 |
nas.ipaddr = ip_gethostaddr(fv[0]); |
ip_getnetaddr(fv[0], &nas.netdef); |
74 |
ip_gethostname(nas.ipaddr, nas.longname, sizeof(nas.longname)); |
/*FIXME: Do we still need that? */ |
75 |
|
ip_gethostname(nas.netdef.ipaddr, |
76 |
|
nas.longname, sizeof(nas.longname)); |
77 |
|
if (nas.longname[0]) |
78 |
|
STRING_COPY(nas.longname, fv[0]); |
79 |
} |
} |
80 |
if (fc >= 4) |
if (fc >= 4) |
81 |
nas.args = envar_parse_argcv(fc-3, &fv[3]); |
nas.args = envar_parse_argcv(fc-3, &fv[3]); |
113 |
NAS *defnas = NULL; |
NAS *defnas = NULL; |
114 |
|
|
115 |
for (nas = naslist; nas; nas = nas->next) { |
for (nas = naslist; nas; nas = nas->next) { |
116 |
if (nas->ipaddr == 0) |
if (nas->netdef.ipaddr == 0 && nas->netdef.netmask == 0) |
117 |
defnas = nas; |
defnas = nas; |
118 |
else if (strcmp(nas->shortname, name) == 0 |
else if (strcmp(nas->shortname, name) == 0 |
119 |
|| strcmp(nas->longname, name) == 0) |
|| strcmp(nas->longname, name) == 0) |
130 |
NAS *defnas = NULL; |
NAS *defnas = NULL; |
131 |
|
|
132 |
for (nas = naslist; nas; nas = nas->next) { |
for (nas = naslist; nas; nas = nas->next) { |
133 |
if (nas->ipaddr == 0) |
if (ip_addr_in_net_p(&nas->netdef, ipaddr)) |
|
defnas = nas; |
|
|
else if (nas->ipaddr == ipaddr) |
|
134 |
break; |
break; |
135 |
} |
} |
136 |
return nas ? nas : defnas; |
return nas ? nas : defnas; |