⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 smsd_cfg.c

📁 GSM猫管理程序
💻 C
📖 第 1 页 / 共 4 页
字号:
      else      if (strcasecmp(name,"checked")==0)        strcpy2(d_checked, ask_value(0, name, value));      else      if (strcasecmp(name,"sent")==0)        strcpy2(d_sent, ask_value(0, name, value));      else       if (strcasecmp(name,"mypath")==0)        // Removed in > 3.0.1 because this is not used. Setting is accepted because of backward compatibility.        ;      else      if (strcasecmp(name,"delaytime")==0)        delaytime=atoi(ask_value(0, name, value));      else      if (strcasecmp(name,"blocktime")==0)        blocktime=atoi(ask_value(0, name, value));      else      if (strcasecmp(name,"blockafter")==0)        blockafter=atoi(ask_value(0, name, value));      else      if (strcasecmp(name,"stats_interval")==0)        stats_interval=atoi(ask_value(0, name, value));      else      if (strcasecmp(name,"stats_no_zeroes")==0)      {        if ((stats_no_zeroes = yesno_check(ask_value(0, name, value))) == -1)          startuperror(yesno_error, name, value);      }      else      if (strcasecmp(name,"errorsleeptime")==0)        errorsleeptime=atoi(ask_value(0, name, value));      else      if (strcasecmp(name,"eventhandler")==0)        strcpy2(eventhandler, ask_value(0, name, value));      else      if (strcasecmp(name,"checkhandler")==0)        strcpy2(checkhandler, ask_value(0, name, value));	      else      if (strcasecmp(name,"alarmhandler")==0)        strcpy2(alarmhandler, ask_value(0, name, value));      else      if (strcasecmp(name,"blacklist")==0)        strcpy2(blacklist, ask_value(0, name, value));      else      if (strcasecmp(name,"whitelist")==0)        strcpy2(whitelist, ask_value(0, name, value));      else      if (strcasecmp(name,"logfile")==0)        strcpy2(logfile, ask_value(0, name, value));      else      if (strcasecmp(name,"loglevel")==0)        loglevel = set_level("global", name, strcpy(value, ask_value(0, name, value)));      else      if (strcasecmp(name,"alarmlevel")==0)        alarmlevel = set_level("global", name, strcpy(value, ask_value(0, name, value)));      else      if (strcasecmp(name,"autosplit")==0)	autosplit=atoi(ask_value(0, name, value));      else      if (strcasecmp(name,"receive_before_send")==0)      {        if ((receive_before_send = yesno_check(ask_value(0, name, value))) == -1)          startuperror(yesno_error, name, value);      }      else      if (strcasecmp(name,"store_received_pdu")==0)        store_received_pdu=atoi(ask_value(0, name, value));      else      if (strcasecmp(name,"store_sent_pdu")==0)        store_sent_pdu=atoi(ask_value(0, name, value));      else      if (strcasecmp(name,"validity")==0)      {        if ((validity_period = parse_validity(strcpy(value, ask_value(0, name, value)), -1)) == -1)          startuperror("Invalid validity period in config file: %s\n", value);      }      else      if (strcasecmp(name,"decode_unicode_text")==0)      {        if ((decode_unicode_text = yesno_check(ask_value(0, name, value))) == -1)          startuperror(yesno_error, name, value);      }      else      if (strcasecmp(name,"internal_combine")==0)      {        if ((internal_combine = yesno_check(ask_value(0, name, value))) == -1)          startuperror(yesno_error, name, value);      }      else      if (strcasecmp(name,"keep_filename")==0)      {        if ((keep_filename = yesno_check(ask_value(0, name, value))) == -1)          startuperror(yesno_error, name, value);      }      else      if (strcasecmp(name,"store_original_filename")==0)      {        if ((store_original_filename = yesno_check(ask_value(0, name, value))) == -1)          startuperror(yesno_error, name, value);      }      else      if (strcasecmp(name,"regular_run")==0)        strcpy2(regular_run, ask_value(0, name, value));      else      if (strcasecmp(name,"regular_run_interval")==0)      {        if ((regular_run_interval = atoi(strcpy(value, ask_value(0, name, value)))) <= 0)          startuperror("Invalid global regular_run_interval in config file: %s\n", value);      }      else      if (strcasecmp(name,"admin_to")==0)        strcpy2(admin_to, ask_value(0, name, value));      else      if (strcasecmp(name,"filename_preview")==0)        filename_preview=atoi(ask_value(0, name, value));      else      if (strcasecmp(name,"incoming_utf8")==0)      {        if ((incoming_utf8 = yesno_check(ask_value(0, name, value))) == -1)          startuperror(yesno_error, name, value);      }      else      if (strcasecmp(name,"outgoing_utf8")==0)      {        if ((outgoing_utf8 = yesno_check(ask_value(0, name, value))) == -1)          startuperror(yesno_error, name, value);      }      else      if (strcasecmp(name,"log_charconv")==0)      {        if ((log_charconv = yesno_check(ask_value(0, name, value))) == -1)          startuperror(yesno_error, name, value);      }      else      if (strcasecmp(name,"user")==0)        strcpy2(username, ask_value(0, name, value));      else      if (strcasecmp(name,"group")==0)        strcpy2(groupname, ask_value(0, name, value));      else      if (strcasecmp(name,"infofile")==0)        strcpy2(infofile, ask_value(0, name, value));      else if (strcasecmp(name,"pidfile")==0)        strcpy2(pidfile, ask_value(0, name, value));      else      if (strcasecmp(name,"terminal")==0)      {        if ((terminal = yesno_check(ask_value(0, name, value))) == -1)          startuperror(yesno_error, name, value);      }      else      if (strcasecmp(name,"os_cygwin")==0)      {        if ((os_cygwin = yesno_check(ask_value(0, name, value))) == -1)          startuperror(yesno_error, name, value);      }      else      if (strcasecmp(name,"language_file")==0)        strcpy2(language_file, ask_value(0, name, value));      else      if (strcasecmp(name,"datetime")==0)        strcpy2(datetime_format, ask_value(0, name, value));      else        startuperror("Unknown variable in config file: %s\n", name);      //result=my_getline(File,name,sizeof(name),value,sizeof(value));    }    //if (result==-1)    //  startuperror("Syntax Error in config file: %s\n",value);    /* read queue-settings */    if (gotosection(File, "queues") || gotosection(File, "queue"))    {      // 3.1beta3, 3.0.9: inform if there is too many queues defined.      for (q = 0; ; q++)      {        if ((result = my_getline(File, name, sizeof(name), value, sizeof(value))) != 1)          break;        if (q >= PROVIDER)        {          startuperror("Too many queues defined.\n");          break;        }        strcpy2(queues[q].name, name);        strcpy2(queues[q].directory, value);      }      if (result==-1)        startuperror("Syntax Error in config file: %s\n",value);    }    /* read provider-settings */    if (gotosection(File, "providers") || gotosection(File, "provider"))    {      // TODO: better contax checking for config file.      result=my_getline(File,name,sizeof(name),value,sizeof(value));      while (result==1)      {        q = getqueue(name,tmp);        if (q >= 0)        {          // 3.1beta3, 3.0.9: inform if there is too many parameters.          for (j = 1; ; j++)          {            if (getsubparam(value, j, tmp, sizeof(tmp)))            {              if (j > NUMS)              {                startuperror("Too many parameters for provider %s.\n", name);                break;              }              // 3.1beta4, 3.0.9: remove whitespaces:              p = tmp;              while (*p)              {                if (is_blank(*p))                  strcpy(p, p +1);                else                  p++;              }#ifdef DEBUGMSG  printf("!! queues[%i].numbers[%i]=%s\n", q, j-1, tmp);#endif	      strcpy2(queues[q].numbers[j-1], tmp);            }            else              break;          }        }        else          startuperror("Error in config file: missing queue for %s.\n",name);        result=my_getline(File,name,sizeof(name),value,sizeof(value));      }      if (result==-1)        startuperror("Syntax Error in config file: %s\n",value);    }    // If devices_list is empty, getsubparam still returns 1 while getting the first name.    // Now this list is checked with it's own error message:    if (devices_list[0] == 0)      startuperror("There are no devices specified.\n");    else    {      /* read device-settings */      for (device = 0; device < DEVICES; device++)      {        if (getsubparam(devices_list, device +1, device_name, sizeof(device_name)))        {          // 3.1beta7: Check device name, it's also used to create a filename:          for (j = 0; device_name[j] != 0; j++)            if (!isalnum(device_name[j]) && !strchr("_-.", device_name[j]))              break;          if (device_name[j] != 0)	    startuperror("Invalid characters in device name: \n", device_name);          else if (!gotosection(File,device_name))	    startuperror("Could not find device [%s] in config file.\n",device_name);          else          {  	    strcpy2(devices[device].name,device_name);            // 3.1beta7: all errors are reported, not just the first one.            //result=my_getline(File,name,sizeof(name),value,sizeof(value));	    //while (result==1)            while ((result = my_getline(File, name, sizeof(name), value, sizeof(value))) != 0)	    {              if (result == -1)              {                startuperror("Syntax Error in config file: %s\n", value);                continue;              }	      if (strcasecmp(name,"device")==0)	        strcpy2(devices[device].device,value);	      else               if (strcasecmp(name,"queues")==0)	      {                // 3.1beta3, 3.0.9: incorrect definition was used previously, now they are different size.	        //for (j=1; j<=NUMS; j++)/*	        for (j=1; j<=PROVIDER; j++)	          if (getsubparam(value,j,tmp,sizeof(tmp)))	            strcpy2(devices[i].queues[j-1],tmp);  	          else	            break;*/                strcpy(value, ask_value(device_name, name, value));                // Inform if there is too many queues defined.                for (j = 1; ; j++)                {                  if (getsubparam(value, j, tmp, sizeof(tmp)))                  {                    if (j > PROVIDER)                    {                      startuperror("Too many queues defined for device %s.\n", device_name);                      break;                    }                    strcpy2(devices[device].queues[j -1], tmp);                  }                  else                    break;                }	      }	      else              if (strcasecmp(name,"incoming")==0)	      {                strcpy(value, ask_value(device_name, name, value));	        if (strcasecmp(value,"high") ==0)                   devices[device].incoming=2;	        else	        {	          devices[device].incoming=atoi(value);	          if (devices[device].incoming==0)  // For backward compatibility to older version with boolean value                  {	            if ((devices[device].incoming = yesno_check(value)) == -1)                      startuperror(yesno_error, name, value);                  }	        }              }	      else              if (strcasecmp(name,"outgoing")==0)              {	        if ((devices[device].outgoing = yesno_check(ask_value(device_name, name, value))) == -1)                  startuperror(yesno_error, name, value);              }	      else              if (strcasecmp(name,"cs_convert")==0)              {	        if ((devices[device].cs_convert = yesno_check(ask_value(device_name, name, value))) == -1)                  startuperror(yesno_error, name, value);              }	      else              if (strcasecmp(name,"pin")==0)	        strcpy2(devices[device].pin, ask_value(device_name, name, value));	      else              if (strcasecmp(name,"pinsleeptime")==0)	        devices[device].pinsleeptime=atoi(ask_value(device_name, name, value));	      else              if (strcasecmp(name,"mode")==0)              {                strcpy(value, ask_value(device_name, name, value));                if (strcasecmp(value,"ascii")==0)                  startuperror("Ascii mode is not supported anymore.\n");                if ((strcasecmp(value,"old")!=0) && (strcasecmp(value,"new")!=0))                  startuperror("Invalid mode=%s in config file.\n",value);                else                  strcpy2(devices[device].mode,value);              }	      else              if (strcasecmp(name,"smsc")==0)	        strcpy2(devices[device].smsc, ask_value(device_name, name, value));	      else              if (strcasecmp(name,"baudrate")==0)	        devices[device].baudrate=atoi(ask_value(device_name, name, value));              else              if (strcasecmp(name,"send_delay")==0)                devices[device].send_delay=atoi(ask_value(device_name, name, value));              else              if (strcasecmp(name,"memory_start")==0)                devices[device].read_memory_start=atoi(ask_value(device_name, name, value));	      else              if (strcasecmp(name,"init")==0)              {                strcpy(value, ask_value(device_name, name, value));                copyvalue(devices[device].initstring, sizeof(devices[device].initstring) -2, value, name);                strcat(devices[device].initstring,"\r");              }              else              if (strcasecmp(name,"init1")==0)              {                strcpy(value, ask_value(device_name, name, value));                copyvalue(devices[device].initstring, sizeof(devices[device].initstring) -2, value, name);                strcat(devices[device].initstring,"\r");              }              else              if (strcasecmp(name,"init2")==0)              {                strcpy(value, ask_value(device_name, name, value));                copyvalue(devices[device].initstring2, sizeof(devices[device].initstring2) -2, value, name);                strcat(devices[device].initstring2,"\r");              }	      else              if (strcasecmp(name,"eventhandler")==0)    	        strcpy2(devices[device].eventhandler, ask_value(device_name, name, value));	      else              if (strcasecmp(name,"report")==0)              {    	        if ((devices[device].report = yesno_check(ask_value(device_name, name, value))) == -1)                  startuperror(yesno_error, name, value);              }	      else              if (strcasecmp(name,"phonecalls")==0)              {    	        if ((devices[device].phonecalls = yesno_check(ask_value(device_name, name, value))) == -1)                  startuperror(yesno_error, name, value);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -