X-Git-Url: http://git.eversberg.eu/gitweb.cgi?p=lcr.git;a=blobdiff_plain;f=gsm_conf.c;h=08d49ddd6f5032d004f9ad004cf9a55ce9935c73;hp=8898cf2055bf37dc7a0afe999d604ddd4f9dc7ef;hb=ab670ecfdc8c7e299bc1b9ddea014980ad7637fa;hpb=20a671d76854520ad9d5ea9d481e008240465e62 diff --git a/gsm_conf.c b/gsm_conf.c index 8898cf2..08d49dd 100644 --- a/gsm_conf.c +++ b/gsm_conf.c @@ -10,10 +10,9 @@ \*****************************************************************************/ #include "main.h" -#include "openbsc/openbsc.h" -char *gsm_conf_error = ""; +char *gsm_conf_error = (char *)""; /* read options * @@ -34,36 +33,27 @@ int gsm_conf(struct gsm_conf *gsm_conf) SCPY(gsm_conf->debug, ""); SCPY(gsm_conf->interface_bsc, "mISDN_l1loop.1"); SCPY(gsm_conf->interface_lcr, "mISDN_l1loop.2"); - SCPY(gsm_conf->short_name, "LCR"); - SCPY(gsm_conf->long_name, "Linux-Call-Router"); - gsm_conf->mcc = 1; - gsm_conf->mnc = 1; - gsm_conf->lac = 1; SCPY(gsm_conf->hlr, "hlr.sqlite3"); - gsm_conf->allow_all = 0; + SCPY(gsm_conf->openbsc_cfg, "openbsc.cfg"); + gsm_conf->reject_cause = 0; gsm_conf->keep_l2 = 0; - gsm_conf->numbts = 0; - //gsm_conf->bts[xx] gsm_conf->noemergshut = 0; SPRINT(filename, "%s/gsm.conf", CONFIG_DATA); - if (!(fp=fopen(filename,"r"))) - { + if (!(fp=fopen(filename,"r"))) { SPRINT(gsm_conf_error, "Cannot open %s\n",filename); return(0); } line=0; - while((fgets(buffer,sizeof(buffer),fp))) - { + while((fgets(buffer,sizeof(buffer),fp))) { line++; buffer[sizeof(buffer)-1]=0; if (buffer[0]) buffer[strlen(buffer)-1]=0; p=buffer; - while(*p <= 32) /* skip spaces */ - { + while(*p <= 32) { /* skip spaces */ if (*p == 0) break; p++; @@ -73,10 +63,8 @@ int gsm_conf(struct gsm_conf *gsm_conf) option[0]=0; i=0; /* read option */ - while(*p > 32) - { - if (i+1 >= sizeof(option)) - { + while(*p > 32) { + if (i+1 >= sizeof(option)) { SPRINT(gsm_conf_error, "Error in %s (line %d): option too long.\n",filename,line); goto error; } @@ -84,8 +72,7 @@ int gsm_conf(struct gsm_conf *gsm_conf) option[i++] = *p++; } - while(*p <= 32) /* skip spaces */ - { + while(*p <= 32) { /* skip spaces */ if (*p == 0) break; p++; @@ -93,21 +80,17 @@ int gsm_conf(struct gsm_conf *gsm_conf) params[0][0] = 0; pnum = 0; - while(*p!=0 && *p!='#' && pnum < 10) /* param */ - { + while(*p!=0 && *p!='#' && pnum < 10) { /* param */ i=0; /* read param */ - while(*p > 32) - { - if (i+1 >= sizeof(params[pnum])) - { + while(*p > 32) { + if (i+1 >= sizeof(params[pnum])) { SPRINT(gsm_conf_error, "Error in %s (line %d): param too long.\n",filename,line); goto error; } params[pnum][i+1] = '\0'; params[pnum][i++] = *p++; } - while(*p <= 32) /* skip spaces */ - { + while(*p <= 32) { /* skip spaces */ if (*p == 0) break; p++; @@ -119,152 +102,71 @@ int gsm_conf(struct gsm_conf *gsm_conf) /* at this point we have option and param */ /* check option */ - if (!strcmp(option,"debug")) - { - if (params[0][0]==0) - { + if (!strcmp(option,"debug")) { + if (params[0][0]==0) { SPRINT(gsm_conf_error, "Error in %s (line %d): parameter for option %s missing.\n",filename,line,option); goto error; } SCPY(gsm_conf->debug, params[0]); } else - if (!strcmp(option,"interface-bsc")) - { - if (params[0][0]==0) - { + if (!strcmp(option,"interface-bsc")) { + if (params[0][0]==0) { SPRINT(gsm_conf_error, "Error in %s (line %d): parameter for option %s missing.\n",filename,line, option); goto error; } SCPY(gsm_conf->interface_bsc, params[0]); } else - if (!strcmp(option,"interface-lcr")) - { - if (params[0][0]==0) - { + if (!strcmp(option,"interface-lcr")) { + if (params[0][0]==0) { SPRINT(gsm_conf_error, "Error in %s (line %d): parameter for option %s missing.\n",filename,line, option); goto error; } SCPY(gsm_conf->interface_lcr, params[0]); } else - if (!strcmp(option,"short-name")) - { - if (params[0][0]==0) - { + if (!strcmp(option,"config")) { + if (params[0][0]==0) { SPRINT(gsm_conf_error, "Error in %s (line %d): parameter for option %s missing.\n",filename,line, option); goto error; } - SCPY(gsm_conf->short_name, params[0]); + SCPY(gsm_conf->openbsc_cfg, params[0]); } else - if (!strcmp(option,"long-name")) - { - if (params[0][0]==0) - { + if (!strcmp(option,"hlr")) { + if (params[0][0]==0) { SPRINT(gsm_conf_error, "Error in %s (line %d): parameter for option %s missing.\n",filename,line, option); goto error; } - SCPY(gsm_conf->long_name, params[0]); - - } else - if (!strcmp(option,"mcc")) - { - if (params[0][0]==0) - { - SPRINT(gsm_conf_error, "Error in %s (line %d): parameter for option %s missing.\n",filename,line, option); - goto error; - } - gsm_conf->mcc = atoi(params[0]); - - } else - if (!strcmp(option,"mnc")) - { - if (params[0][0]==0) - { - SPRINT(gsm_conf_error, "Error in %s (line %d): parameter for option %s missing.\n",filename,line, option); - goto error; - } - gsm_conf->mnc = atoi(params[0]); - - } else - if (!strcmp(option,"lac")) - { - if (params[0][0]==0) - { - SPRINT(gsm_conf_error, "Error in %s (line %d): parameter for option %s missing.\n",filename,line, option); - goto error; - } - gsm_conf->lac = atoi(params[0]); + SCPY(gsm_conf->hlr, params[0]); } else - if (!strcmp(option,"hlr")) - { - if (params[0][0]==0) - { + if (!strcmp(option,"reject-cause")) { + if (params[0][0]==0) { SPRINT(gsm_conf_error, "Error in %s (line %d): parameter for option %s missing.\n",filename,line, option); goto error; } - SCPY(gsm_conf->hlr, params[0]); + gsm_conf->reject_cause = atoi(params[0]); } else - if (!strcmp(option,"allow-all")) - { + if (!strcmp(option,"allow-all")) { gsm_conf->allow_all = 1; } else - if (!strcmp(option,"keep-l2")) - { + if (!strcmp(option,"keep-l2")) { gsm_conf->keep_l2 = 1; } else - if (!strcmp(option,"no-mergency-shutdown")) - { + if (!strcmp(option,"no-mergency-shutdown")) { gsm_conf->noemergshut = 1; } else - if (!strcmp(option,"bts")) - { - if (gsm_conf->numbts == 8) - { - SPRINT(gsm_conf_error, "Error in %s (line %d): too many BTS defined.\n",filename,line); - goto error; - } - if (params[0][0]==0) - { - SPRINT(gsm_conf_error, "Error in %s (line %d): parameter for option %s missing.\n",filename,line,option); - goto error; - } - if (params[1][0]==0) - { - SPRINT(gsm_conf_error, "Error in %s (line %d): parameter for option %s missing.\n",filename,line,option); - goto error; - } - if (params[2][0]==0) - { - SPRINT(gsm_conf_error, "Error in %s (line %d): parameter for option %s missing.\n",filename,line,option); - goto error; - } - if (!strcmp(params[0], "bs11")) - { - gsm_conf->bts[gsm_conf->numbts].type = GSM_BTS_TYPE_BS11; - } else { - SPRINT(gsm_conf_error, "Error in %s (line %d): unknown BTS type '%s'.\n",filename,line,params[0]); + if (!strcmp(option,"pcapfile")) { + if (params[0][0]==0) { + SPRINT(gsm_conf_error, "Error in %s (line %d): parameter for option %s missing.\n",filename,line, option); goto error; } - gsm_conf->bts[gsm_conf->numbts].card = atoi(params[1]); - gsm_conf->bts[gsm_conf->numbts].numtrx = 0; - while (params[gsm_conf->bts[gsm_conf->numbts].numtrx+2][0]) - { - if (gsm_conf->bts[gsm_conf->numbts].numtrx == 8) - { - SPRINT(gsm_conf_error, "Error in %s (line %d): too many frequencies defined.\n",filename,line); - goto error; - } - gsm_conf->bts[gsm_conf->numbts].frequency[gsm_conf->bts[gsm_conf->numbts].numtrx++] = atoi(params[gsm_conf->bts[gsm_conf->numbts].numtrx+2]); - } - gsm_conf->numbts++; - } else - { + SCPY(gsm_conf->pcapfile, params[0]); + } else { SPRINT(gsm_conf_error, "Error in %s (line %d): wrong option keyword %s.\n", filename,line,option); goto error; }