static char *get_var(const char *id, size_t idlen, struct interface_defn_t *ifd) { int i; if (strncmpz(id, "iface", idlen) == 0) { // ubuntu's ifup doesn't do this: //static char *label_buf; //char *result; //free(label_buf); //label_buf = xstrdup(ifd->iface); // Remove virtual iface suffix //result = strchrnul(label_buf, ':'); //*result = '\0'; //return label_buf; return ifd->iface; } if (strncmpz(id, "label", idlen) == 0) { return ifd->iface; } for (i = 0; i < ifd->n_options; i++) { if (strncmpz(id, ifd->option[i].name, idlen) == 0) { return ifd->option[i].value; } } return NULL; }
char *get_var(char *id, size_t idlen, interface_defn *ifd) { int i; if (strncmpz(id, "iface", idlen) == 0) { return ifd->real_iface; } else { for (i = 0; i < ifd->n_options; i++) { if (strncmpz(id, ifd->option[i].name, idlen) == 0) { return ifd->option[i].value; } } } return NULL; }