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

📄 smsd.c

📁 GSM猫管理程序
💻 C
📖 第 1 页 / 共 2 页
字号:
          strcpy(HDR_From2, value);        else if (!strcasecmp(name, HDR_Flash))          strcpy(HDR_Flash2, value);        else if (!strcasecmp(name, HDR_Provider))          strcpy(HDR_Provider2, value);        else if (!strcasecmp(name, HDR_Queue))          strcpy(HDR_Queue2, value);        else if (!strcasecmp(name, HDR_Binary))          strcpy(HDR_Binary2, value);        else if (!strcasecmp(name, HDR_Report))          strcpy(HDR_Report2, value);        else if (!strcasecmp(name, HDR_Autosplit))          strcpy(HDR_Autosplit2, value);        else if (!strcasecmp(name, HDR_Validity))          strcpy(HDR_Validity2, value);        else if (!strcasecmp(name, HDR_Voicecall))          strcpy(HDR_Voicecall2, value);        else if (!strcasecmp(name, HDR_Replace))          strcpy(HDR_Replace2, value);        else if (!strcasecmp(name, HDR_Alphabet))          strcpy(HDR_Alphabet2, value);        else if (!strcasecmp(name, HDR_Include))          strcpy(HDR_Include2, value);        else if (!strcasecmp(name, HDR_Macro))          strcpy(HDR_Macro2, value);        else if (!strcasecmp(name, HDR_Hex))          strcpy(HDR_Hex2, value);        else if (!strcasecmp(name, HDR_SMSC))          strcpy(HDR_SMSC2, value);        else if (!strcasecmp(name, HDR_Priority))          strcpy(HDR_Priority2, value);        else if (!strcasecmp(name, HDR_Sent))          strcpy(HDR_Sent2, value);        else if (!strcasecmp(name, HDR_Modem))          strcpy(HDR_Modem2, value);        else if (!strcasecmp(name, HDR_FromTOA))          strcpy(HDR_FromTOA2, value);        else if (!strcasecmp(name, HDR_FromSMSC))          strcpy(HDR_FromSMSC2, value);        else if (!strcasecmp(name, HDR_Name))          strcpy(HDR_Name2, value);        else if (!strcasecmp(name, HDR_Received))          strcpy(HDR_Received2, value);        else if (!strcasecmp(name, HDR_Subject))          strcpy(HDR_Subject2, value);        else if (!strcasecmp(name, HDR_UDHType))          strcpy(HDR_UDHType2, value);        else if (!strcasecmp(name, HDR_Length))          strcpy(HDR_Length2, value);        else if (!strcasecmp(name, HDR_FailReason))          strcpy(HDR_FailReason2, value);        else if (!strcasecmp(name, HDR_Identity))          strcpy(HDR_Identity2, value);        else if (!strcasecmp(name, HDR_MessageId))          strcpy(HDR_MessageId2, value);        else if (!strcasecmp(name, HDR_OriginalFilename))          strcpy(HDR_OriginalFilename2, value);        else if (!strcasecmp(name, HDR_CallType))          strcpy(HDR_CallType2, value);        else if (!strcasecmp(name, HDR_missed))          strcpy(HDR_missed2, value);        else if (!strcasecmp(name, HDR_missed_text))          strcpy(HDR_missed_text2, value);        else if (!strcasecmp(name, HDR_Result))          strcpy(HDR_Result2, value);        else        {          fprintf(stderr, "%s\n", tb_sprintf("Unknown variable in language file: %s", name));          writelogfile(LOG_CRIT, process_title, "%s", tb);          result++;          continue;        }      }      fclose(fp);    }    if (!result)      writelogfile(LOG_INFO, "smsd", "Using language file %s", language_file);  }  return result;}// Used to select an appropriate header:char *get_header(const char *header, char *header2){  if (header2 && *header2 && strcmp(header2, "-"))  {    if (*header2 == '-')      return header2 +1;    return header2;      }  return (char *)header;}char *get_header_incoming(const char *header, char *header2){  if (!translate_incoming)    return (char *)header;  return get_header(header, header2);}// Return value: 1/0// hlen = length of a header which matched.int test_header(int *hlen, char *line, const char *header, char *header2){  // header2:  // NULL or "" = no translation  // "-" = no translation and header is not printed  // "-Relat髍io:" = input translated, header is not printed  // "Relat髍io:" = input and output translated  if (header2 && *header2 && strcmp(header2, "-"))  {    if (*header2 == '-')    {      if (!strncmp(line, header2 +1, *hlen = strlen(header2) -1))        return 1;    }    else if (!strncmp(line, header2, *hlen = strlen(header2)))      return 1;  }  if (!strncmp(line, header, *hlen = strlen(header)))    return 1;  *hlen = 0;  return 0;}int prepare_remove_headers(char *remove_headers, int size){  char *p;  if (snprintf(remove_headers, size, "\n%s\n%s\n%s\n%s\n%s\n%s\nPDU:",               HDR_FailReason,               HDR_Identity,               HDR_Modem,               HDR_Sent,               HDR_MessageId,               HDR_Result) >= size)    return 0;  if ((p = get_header(NULL, HDR_FailReason2)))  {    if (strlen(remove_headers) + strlen(p) +1 < size)      sprintf(strchr(remove_headers, 0), "\n%s", p);    else      return 0;  }  if ((p = get_header(NULL, HDR_Identity2)))  {    if (strlen(remove_headers) + strlen(p) +1 < size)      sprintf(strchr(remove_headers, 0), "\n%s", p);    else      return 0;  }  if ((p = get_header(NULL, HDR_Modem2)))  {    if (strlen(remove_headers) + strlen(p) +1 < size)      sprintf(strchr(remove_headers, 0), "\n%s", p);    else      return 0;  }  if ((p = get_header(NULL, HDR_Sent2)))  {    if (strlen(remove_headers) + strlen(p) +1 < size)      sprintf(strchr(remove_headers, 0), "\n%s", p);    else      return 0;  }  if ((p = get_header(NULL, HDR_MessageId2)))  {    if (strlen(remove_headers) + strlen(p) +1 < size)      sprintf(strchr(remove_headers, 0), "\n%s", p);    else      return 0;  }  if ((p = get_header(NULL, HDR_Result2)))  {    if (strlen(remove_headers) + strlen(p) +1 < size)      sprintf(strchr(remove_headers, 0), "\n%s", p);    else      return 0;  }  return 1;}/* =======================================================================   Macros can be used with ISO/UTF-8 written messages with cs_convert=yes   and with binary messages written with hex=yes.   A buffer should be 0-terminated and it cannot include 0x00 characters.   ======================================================================= */int extract_macros(char *buffer, int buffer_size, char *macros){  int result = 0;  char *p_buffer;  char *p_macro;  char *p_value;  char *p;  int len_buffer;  int len_macro;  int len_value;  if (macros && *macros)  {    p_macro = macros;    while (*p_macro)    {      if ((p_value = strchr(p_macro, '=')))      {        p_value++;        *(p_value -1) = 0; // for easier use of strstr.        len_macro = strlen(p_macro);        len_value = strlen(p_value);        p_buffer = buffer;        while ((p = strstr(p_buffer, p_macro)))        {          if (len_macro < len_value)          {            len_buffer = strlen(buffer);            if (len_buffer -len_macro +len_value >= buffer_size)            {              result = 1;              break;            }            memmove(p +len_value, p +len_macro, len_buffer -(p -buffer) -len_macro +1);          }          else if (len_macro > len_value)            strcpy(p +len_value, p +len_macro);          if (len_value > 0)          {            strncpy(p, p_value, len_value);            p_buffer = p +len_value;          }        }        *(p_value -1) = '='; // restore delimiter.      }      p_macro = strchr(p_macro, 0) +1;    }  }  return result;}/* ======================================================================= */int apply_filename_preview(char *filename, char *text, int setting_length){/*

⌨️ 快捷键说明

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