struct flex_gt *read_flex_gt(void) { FILE *fp; char buffer[256], *cp; char *addr; struct flex_gt *p = NULL, *list = NULL, *new_el; int i = 0, k; errno = 0; if ((fp = fopen(FLEX_GT_FILE, "r")) == NULL) { printf("Error : file %s not found\n", FLEX_GT_FILE); return NULL; } while (fgets(buffer, 256, fp) != NULL) { if (i++ < 1) continue; if (buffer == NULL) continue; if ((new_el = calloc(1, sizeof (struct flex_gt))) == NULL) break; new_el->addr = safe_atoi(strtok(buffer, " \t\n\r")); safe_strncpy(new_el->call, strtok(NULL, " \t\n\r"), 9); safe_strncpy(new_el->dev, strtok(NULL, " \t\n\r"), 13); k = 0; while ((cp = strtok(NULL, " \t\n\r")) != NULL && k < AX25_MAX_DIGIS) safe_strncpy(new_el->digis[k++], cp, 9); while (k < AX25_MAX_DIGIS) strcpy(new_el->digis[k++], "\0"); if ((addr = ax25_config_get_name(new_el->dev)) == NULL) { /* nr_config_load_ports();*/ if ((addr = nr_config_get_name(new_el->dev)) == NULL) { /* rs_config_load_ports();*/ if ((addr = rs_config_get_name(new_el->dev)) == NULL) { fprintf(stderr, "read_flex_gt: invalid port setting\n"); return NULL; } else { new_el->af_mode = AF_ROSE; } } else { new_el->af_mode = AF_NETROM; } } else { new_el->af_mode = AF_FLEXNET; } if (list == NULL) { list = new_el; p = list; } else { p->next = new_el; p = p->next; } } fclose(fp); return list; }
void ax25_list_ports() { char* port = NULL; while ((port = ax25_config_get_next(port)) != NULL) { fprintf(stderr, "ax25_list_ports: port=%s name=%s\n", port, ax25_config_get_name(port)); } }
static void display_port(char *dev) { char *port; if ((port = ax25_config_get_name(dev)) == NULL) port = dev; lprintf(T_PORT, "%s: ", port); }