📄 smsd_cfg.c
字号:
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 + -