Fixup whitespace handing, fixing some annoying behavior and
a couple of segfaults
This commit is contained in:
parent
25ea42de9b
commit
3c8bca364d
@ -467,7 +467,7 @@ static int loopback_up(struct interface_defn_t *ifd, execfn *exec)
|
|||||||
{
|
{
|
||||||
#ifdef CONFIG_FEATURE_IFUPDOWN_IP
|
#ifdef CONFIG_FEATURE_IFUPDOWN_IP
|
||||||
int result;
|
int result;
|
||||||
result += execute("ip link set %iface% up", ifd, exec);
|
result = execute("ip link set %iface% up", ifd, exec);
|
||||||
result += execute("ip addr add 127.0.0.1/8 dev %iface% label %label%", ifd, exec);
|
result += execute("ip addr add 127.0.0.1/8 dev %iface% label %label%", ifd, exec);
|
||||||
return(result);
|
return(result);
|
||||||
#else
|
#else
|
||||||
@ -547,15 +547,13 @@ static int dhcp_up(struct interface_defn_t *ifd, execfn *exec)
|
|||||||
|
|
||||||
static int dhcp_down(struct interface_defn_t *ifd, execfn *exec)
|
static int dhcp_down(struct interface_defn_t *ifd, execfn *exec)
|
||||||
{
|
{
|
||||||
int result;
|
int result = 0;
|
||||||
if (execable("/sbin/udhcpc")) {
|
if (execable("/sbin/udhcpc")) {
|
||||||
execute("kill -9 `cat /var/run/udhcpc.%iface%.pid` 2>/dev/null", ifd, exec);
|
execute("kill -9 `cat /var/run/udhcpc.%iface%.pid` 2>/dev/null", ifd, exec);
|
||||||
result = 0;
|
|
||||||
} else if (execable("/sbin/pump")) {
|
} else if (execable("/sbin/pump")) {
|
||||||
result = execute("pump -i %iface% -k", ifd, exec);
|
result = execute("pump -i %iface% -k", ifd, exec);
|
||||||
} else if (execable("/sbin/dhclient")) {
|
} else if (execable("/sbin/dhclient")) {
|
||||||
execute("kill -9 `cat /var/run/udhcpc.%iface%.pid` 2>/dev/null", ifd, exec);
|
execute("kill -9 `cat /var/run/udhcpc.%iface%.pid` 2>/dev/null", ifd, exec);
|
||||||
result = 0;
|
|
||||||
} else if (execable("/sbin/dhcpcd")) {
|
} else if (execable("/sbin/dhcpcd")) {
|
||||||
result = execute("dhcpcd -k %iface%", ifd, exec);
|
result = execute("dhcpcd -k %iface%", ifd, exec);
|
||||||
}
|
}
|
||||||
@ -625,7 +623,15 @@ static char *next_word(char **buf)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Skip over leading whitespace */
|
/* Skip over leading whitespace */
|
||||||
word = *buf + strspn(*buf, " \t\n");
|
word = *buf;
|
||||||
|
while (isspace(*word)) {
|
||||||
|
++word;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Skip over comments */
|
||||||
|
if (*word == '#') {
|
||||||
|
return(NULL);
|
||||||
|
}
|
||||||
|
|
||||||
/* Find the length of this word */
|
/* Find the length of this word */
|
||||||
length = strcspn(word, " \t\n");
|
length = strcspn(word, " \t\n");
|
||||||
@ -711,13 +717,9 @@ static struct interfaces_file_t *read_interfaces(char *filename)
|
|||||||
while ((buf = bb_get_chomped_line_from_file(f)) != NULL) {
|
while ((buf = bb_get_chomped_line_from_file(f)) != NULL) {
|
||||||
char *buf_ptr = buf;
|
char *buf_ptr = buf;
|
||||||
|
|
||||||
/* Ignore comments */
|
|
||||||
if (buf[0] == '#') {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
firstword = next_word(&buf_ptr);
|
firstword = next_word(&buf_ptr);
|
||||||
if (firstword == NULL) {
|
if (firstword == NULL) {
|
||||||
|
free(buf);
|
||||||
continue; /* blank line */
|
continue; /* blank line */
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -779,6 +781,11 @@ static struct interfaces_file_t *read_interfaces(char *filename)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ship any trailing whitespace */
|
||||||
|
while (isspace(*buf_ptr)) {
|
||||||
|
++buf_ptr;
|
||||||
|
}
|
||||||
|
|
||||||
if (buf_ptr[0] != '\0') {
|
if (buf_ptr[0] != '\0') {
|
||||||
bb_error_msg("too many parameters \"%s\"", buf);
|
bb_error_msg("too many parameters \"%s\"", buf);
|
||||||
return NULL;
|
return NULL;
|
||||||
@ -1229,6 +1236,10 @@ extern int ifupdown_main(int argc, char **argv)
|
|||||||
defn = read_interfaces(interfaces);
|
defn = read_interfaces(interfaces);
|
||||||
debug_noise("\ndone reading %s\n\n", interfaces);
|
debug_noise("\ndone reading %s\n\n", interfaces);
|
||||||
|
|
||||||
|
if (!defn) {
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
|
||||||
if (no_act) {
|
if (no_act) {
|
||||||
state_fp = fopen(statefile, "r");
|
state_fp = fopen(statefile, "r");
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user