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

📄 whitelist.c

📁 GSM猫管理程序
💻 C
字号:
/*SMS Server Tools 3Copyright (C) Keijo Kasvihttp://smstools3.kekekasvi.com/Based on SMS Server Tools 2 from Stefan Fringshttp://www.meinemullemaus.de/This program is free software unless you got it under another license directlyfrom the author. You can redistribute it and/or modify it under the terms ofthe GNU General Public License as published by the Free Software Foundation.Either version 2 of the License, or (at your option) any later version.*/#include <syslog.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <signal.h>#include "whitelist.h"#include "extras.h"#include "logging.h"#include "alarm.h"#include "smsd_cfg.h"/* Used with >= 3.1x */int inwhitelist_q(char* msisdn, char *queuename){  FILE* file;  char line[256];  char* posi;  char current_queue[32];  int result = 1;  int i;  if (whitelist[0]) // is a whitelist file specified?  {    file=fopen(whitelist,"r");    if (file)    {      *current_queue = 0;      result = 0;      while (fgets(line,sizeof(line),file))      {        posi=strchr(line,'#');     // remove comment        if (posi)          *posi=0;        cutspaces(line);        i = strlen(line);        if (i > 0)        {          if (line[0] == '[' && line[i -1] == ']' && i -2 < sizeof(current_queue))          {            line[i -1] = 0;            strcpy(current_queue, line +1);          }          else          if (strncmp(msisdn,line,strlen(line))==0)          {            result = 1;            break;          }            else if (msisdn[0]=='s' && strncmp(msisdn+1,line,strlen(line))==0)          {            result = 1;            break;          }        }        }        fclose(file);      if (result == 1 && *current_queue && !(*queuename))        strcpy(queuename, current_queue);    }      else    {      writelogfile0(LOG_CRIT,"smsd", tb_sprintf("Stopping. Cannot read whitelist file %s.",whitelist));      alarm_handler0(LOG_CRIT,"smsd", tb);      //remove_pid(pidfile);      //signal(SIGTERM,SIG_IGN);      //kill(0,SIGTERM);      //exit(127);      abnormal_termination(1);    }  }        return result;}/* Used with < 3.1x */int inwhitelist(char* msisdn){  FILE* file;  char line[256];  char* posi;  if (whitelist[0]) // is a whitelist file specified?  {    file=fopen(whitelist,"r");    if (file)    {      while (fgets(line,sizeof(line),file))      {        posi=strchr(line,'#');     // remove comment        if (posi)          *posi=0;        cutspaces(line);        if (strlen(line)>0)        {          if (strncmp(msisdn,line,strlen(line))==0)          {            fclose(file);            return 1;          }          else if (msisdn[0]=='s' && strncmp(msisdn+1,line,strlen(line))==0)          {            fclose(file);            return 1;          }        }      }      fclose(file);      return 0;    }    else    {      writelogfile0(LOG_CRIT,"smsd", tb_sprintf("Stopping. Cannot read whitelist file %s.",whitelist));      alarm_handler0(LOG_CRIT,"smsd", tb);      //remove_pid(pidfile);      //signal(SIGTERM,SIG_IGN);      //kill(0,SIGTERM);      //exit(127);      abnormal_termination(1);    }  }  return 1;}

⌨️ 快捷键说明

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