/* * Snomphone: IAX software for SNOM 100 Phone * * IAX Support for talking to Asterisk and other Gnophone clients * * Copyright (C) 1999, Linux Support Services, Inc. * * Mark Spencer * * This program is free software, distributed under the terms of * the GNU General Public License */ #define CONFIG_FILE "/etc/miniphone.conf" #define USER_FILE "%s/.miniphone-conf" #include #include #include #include char regpeer[256]; char regsecret[256]; char server[256]; int refresh = 60; char context[256]; char language[256]; #define TYPE_STRING 0 #define TYPE_INT 1 struct opt { char *name; void *where; int len; int type; }; static struct opt opts[] = { { "regpeer", regpeer, sizeof(regpeer), TYPE_STRING }, { "regsecret", regsecret, sizeof(regsecret), TYPE_STRING }, { "server", server, sizeof(server), TYPE_STRING }, { "context", context, sizeof(context), TYPE_STRING }, { "language", language, sizeof(language), TYPE_STRING }, { "refresh", &refresh, sizeof(refresh), TYPE_INT }, }; static int __load_options(char *filename) { FILE *f; int lineno = 0; char buf[256]; char *var, *value; int x; char *c; f = fopen(filename, "r"); if (!f) { fprintf(stderr, "Failed to open '%s': %s\n", filename, strerror(errno)); return -1; } while(!feof(f)) { fgets(buf, sizeof(buf), f); if (!feof(f)) { /* Ditch comments */ if ((c = strchr(buf, '#'))) *c = 0; lineno++; /* Strip CR */ buf[strlen(buf)-1] = '\0'; if (strlen(buf)) { var = strtok(buf, "="); value = strtok(NULL, "="); if (!var || !value) { fprintf(stderr, "Syntax error line %d\n", lineno); continue; } for (x=0;x