📄 alct.c
字号:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <varargs.h>
#include <unistd.h>
#include <time.h>
#include <signal.h>
#include "./include/App_client.h"
#define SIZE 1024
#define SIZE1 100
void p_debug();
void m_debug();
void getsystime();
int ReplaceChar(char *,int);
char *GetEtcf(const char*);
char *GetSrcf(const char*);
main()
{
char buf[SIZE];
FILE *fp,*fp1;
int len,count,i;
char *ptr;
char *flename,*srcname;
char result[SIZE];
char tmp0[SIZE1],tmp1[SIZE1],tmp2[SIZE1],tmp3[SIZE1],tmp4[SIZE1];
char tmp5[SIZE1],tmp6[SIZE1],tmp7[SIZE1],tmp8[SIZE1],tmp9[SIZE1];
char tmp2_0[SIZE1],tmp2_1[SIZE1],tmp2_2[SIZE1],tmp2_3[SIZE1];
char tmp5_0[SIZE1],tmp5_1[SIZE1],tmp5_2[SIZE1];
char tmp6_1_0[2],tmp6_1_1[SIZE1],tmp6_1_2[20];
char tmp6_2_0[2],tmp6_2_1[20];
char tmp7_0[SIZE1],tmp7_1[SIZE1];
char tmp8_0[SIZE1],tmp8_1[SIZE1];
char tmp9_0[SIZE1],tmp9_1[SIZE1];
char temp[80];
char wddm[5];
char cflag[2];
char rcvp[5];
char ipaddr[15];
char sndp[5];
char alarm_site_name[31];
char alarm_time[19];
char alarm_name_no[3];
char alarm_status_no[2];
char city_name[20];
memset(alarm_site_name,0x0,sizeof(alarm_site_name));
memset(alarm_time,0x0,sizeof(alarm_time));
memset(city_name,0x0,sizeof(city_name));
memset(alarm_status_no,0x0,sizeof(alarm_status_no));
memset(alarm_name_no,0x0,sizeof(alarm_name_no));
memset(buf,0x0,SIZE);
memset(tmp0,0x0,SIZE1);
memset(tmp1,0x0,SIZE1);
memset(tmp2,0x0,SIZE1);
memset(tmp3,0x0,SIZE1);
memset(tmp4,0x0,SIZE1);
memset(tmp5,0x0,SIZE1);
memset(tmp6,0x0,SIZE1);
memset(tmp7,0x0,SIZE1);
memset(tmp8,0x0,SIZE1);
memset(tmp9,0x0,SIZE1);
memset(tmp2_0,0x0,SIZE1);
memset(tmp2_1,0x0,SIZE1);
memset(tmp2_2,0x0,SIZE1);
memset(tmp2_3,0x0,SIZE1);
memset(tmp5_0,0x0,SIZE1);
memset(tmp5_1,0x0,SIZE1);
memset(tmp5_2,0x0,SIZE1);
memset(tmp6_1_0,0x0,SIZE1);
memset(tmp6_1_1,0x0,SIZE1);
memset(tmp6_1_2,0x0,SIZE1);
memset(tmp6_2_0,0x0,SIZE1);
memset(tmp6_2_1,0x0,SIZE1);
memset(tmp7_0,0x0,SIZE1);
memset(tmp7_1,0x0,SIZE1);
memset(tmp8_0,0x0,SIZE1);
memset(tmp8_1,0x0,SIZE1);
memset(tmp9_0,0x0,SIZE1);
memset(tmp9_1,0x0,SIZE1);
memset(result,0x0,SIZE);
flename=GetEtcf(SOCKINFO);
if (flename==NULL){
m_debug("get ETC pathname err\n");
exit(-1);
}
if ((fp=fopen(flename,"r"))==NULL){
printf("open ETC filename err\n");
exit(-1);
}
while (fgets(temp,80,fp)!=NULL){
if (temp[0]!='#'){
sscanf(temp,"%s %s %s %s",wddm,ipaddr,sndp,rcvp);
}
memset(temp,0,80);
}
fclose(fp);
srcname=GetSrcf(SRCFNAME);
if(srcname==NULL){
m_debug("get SRC pathname err");
exit(-1);
}
if((fp1=fopen(srcname,"r"))==NULL){
m_debug("fopen Src File Error ");
}
while(1){
if (fgets(buf,512,fp1)!=NULL){
if ((strstr(buf,"Subject")!=NULL)&&(strstr(buf,"BTS-EXTERNAL")!=NULL)){
sscanf(buf,"%s%s%s%s%s%s%s%s%s%s%s%s",tmp0,tmp1,tmp2,tmp3,tmp4,\
tmp5,tmp6,tmp7,tmp8,tmp9);
ReplaceChar(tmp2,strlen(tmp2));
sscanf(tmp2,"%s%s%s%s",tmp2_0,tmp2_1,tmp2_2,tmp2_3);
trimstrcpy(alarm_time,tmp2_1,strlen(tmp2_1));
if(strlen(tmp9)==0)
{
if(strlen(tmp8)==0)
{
count=1;
}
else
{
count=3;
ReplaceChar(tmp6,strlen(tmp6));
sscanf(tmp6,"%s%s",tmp6_1_0,tmp6_1_1);
trimstrcpy(alarm_name_no,tmp6_1_0,strlen(tmp6_1_0));
trimstrcpy(city_name,tmp6_1_1,strlen(tmp6_1_1));
ReplaceChar(tmp7,strlen(tmp7));
sscanf(tmp7,"%s%s",tmp7_0,tmp7_1);
trimstrcpy(alarm_site_name,tmp7_0,strlen(tmp7_0));
ReplaceChar(tmp8,strlen(tmp8));
sscanf(tmp8,"%s",tmp8_1);
trimstrcpy(alarm_status_no,tmp8_1,strlen(tmp8_1));
}
}
else if(strlen(tmp9)>3)
{
count=1;
}
else
{
count=2;
ReplaceChar(tmp7,strlen(tmp7));
sscanf(tmp7,"%s%s",tmp7_0,tmp7_1);
trimstrcpy(alarm_name_no,tmp7_0,strlen(tmp7_0));
trimstrcpy(city_name,tmp7_1,strlen(tmp7_1));
ReplaceChar(tmp8,strlen(tmp8));
sscanf(tmp8,"%s%s",tmp8_0,tmp8_1);
trimstrcpy(alarm_site_name,tmp8_0,strlen(tmp8_0));
ReplaceChar(tmp9,strlen(tmp9));
sscanf(tmp9,"%s",tmp9_1);
trimstrcpy(alarm_status_no,tmp9_1,strlen(tmp9_1));
}
if(count==3)
{
if(strlen(alarm_time)<14)
result[0]='\0';
else{
sprintf(result,"%s|%s|%s|%s|%s",alarm_time,alarm_name_no,city_name,alarm_site_name,alarm_status_no);
p_debug("result=%s\n",result);
count=0;
}
}
else if(count==2)
{
if(strlen(alarm_time)<14)
result[0]='\0';
else{
sprintf(result,"%s|%s|%s|%s|%s",alarm_time,alarm_name_no,city_name,alarm_site_name,alarm_status_no);
p_debug("result=%s\n",result);
}
}
if(result[0]!='\0'){
strheader(result);
snddata(result,sndp,ipaddr);
sleep(1);
}
}
else
{
m_debug("strstr NULL data\n");
}
memset(alarm_site_name,0x0,sizeof(alarm_site_name));
memset(alarm_name_no,0x0,sizeof(alarm_name_no));
memset(alarm_time,0x0,sizeof(alarm_time));
memset(city_name,0x0,sizeof(city_name));
memset(alarm_status_no,0x0,sizeof(alarm_status_no));
memset(buf,0x0,SIZE);
memset(tmp0,0x0,SIZE1);
memset(tmp1,0x0,SIZE1);
memset(tmp2,0x0,SIZE1);
memset(tmp3,0x0,SIZE1);
memset(tmp4,0x0,SIZE1);
memset(tmp5,0x0,SIZE1);
memset(tmp6,0x0,SIZE1);
memset(tmp7,0x0,SIZE1);
memset(tmp8,0x0,SIZE1);
memset(tmp9,0x0,SIZE1);
memset(tmp2_0,0x0,SIZE1);
memset(tmp2_1,0x0,SIZE1);
memset(tmp2_2,0x0,SIZE1);
memset(tmp2_3,0x0,SIZE1);
memset(tmp5_0,0x0,SIZE1);
memset(tmp5_1,0x0,SIZE1);
memset(tmp5_2,0x0,SIZE1);
memset(tmp6_1_0,0x0,SIZE1);
memset(tmp6_1_1,0x0,SIZE1);
memset(tmp6_1_2,0x0,SIZE1);
memset(tmp6_2_0,0x0,SIZE1);
memset(tmp6_2_1,0x0,SIZE1);
memset(tmp7_0,0x0,SIZE1);
memset(tmp7_1,0x0,SIZE1);
memset(tmp8_0,0x0,SIZE1);
memset(tmp8_1,0x0,SIZE1);
memset(tmp9_0,0x0,SIZE1);
memset(tmp9_1,0x0,SIZE1);
memset(result,0x0,SIZE);
}
else{
fclose(fp1);
getsystime(time);
m_debug("%s fgets NULL data\n",time);
break;
}
memset(buf,0,512);
}
memset(wddm,0,5);
memset(ipaddr,0,15);
memset(sndp,0,5);
memset(rcvp,0,5);
}
char * GetPrintPath(const char *WORKDIR)
{
char *envp;
if((envp = getenv(WORKDIR))==NULL)
{
printf("error");
return NULL;
}
return envp;
}
char *GetEnvp()
{
char *Envp;
Envp=getenv(MAINDIR);
if(Envp==NULL){
p_debug("get Env Error");
return NULL;
}
return Envp;
}
char * GetEtcf(const char* FileName)
{
char* EnvDir;
char* FilePath;
FilePath=(char *)malloc(sizeof(char)*FILEPATHLEN);
EnvDir=GetEnvp();
if(EnvDir==NULL)
return NULL;
sprintf(FilePath,"%s/%s/%s",EnvDir,ETCDIR,FileName);
printf("%s",FilePath);
return FilePath;
}
char * GetPrtf(const char* FileName)
{
char* EnvDir;
char* FilePath;
FilePath=(char *)malloc(sizeof(char)*FILEPATHLEN);
EnvDir=GetEnvp();
if(EnvDir==NULL)
return NULL;
sprintf(FilePath,"%s/%s/%s",EnvDir,PRTDIR,FileName);
return FilePath;
}
char *GetEnvP()
{
char *Envp;
Envp=getenv(SRCDIR);
if(Envp==NULL){
p_debug("get Env Error");
return NULL;
}
return Envp;
}
char * GetSrcf(const char* FileName)
{
char* EnvDir;
char* FilePath;
char* DstDir;
FilePath=(char *)malloc(sizeof(char)*FILEPATHLEN);
EnvDir=GetEnvP();
if(EnvDir==NULL)
return NULL;
sprintf(FilePath,"%s/%s",EnvDir,FileName);
return FilePath;
}
#define TEMPDIR "/usr/nmsadmin/print"
#define WORKDIR "HOME"
#define TRUE 1
void p_debug(va_alist)
va_dcl
{
va_list args;
char *fmt;
FILE *fp;
char *envp;
char *filename, *ttyname(), *tname;
tname = ttyname(TRUE);
/*
envp = GetPrintPath(WORKDIR);
strcpy(filename,envp);
strcat(filename,"/print/alctapp");
*/
/*sprintf(filename, "%s/alctapp", TEMPDIR);deleted by weihy 2005.01.27*/
filename=GetPrtf("alctapp");
fp = fopen(filename, "a");
va_start(args);
fmt = va_arg(args, char *);
vfprintf(fp, fmt, args);
va_end(args);
fclose(fp);
}
void m_debug(va_alist)
va_dcl
{
va_list args;
char *fmt;
FILE *fp;
char *envp;
char *filename,*ttyname(),*tname;
tname=ttyname(TRUE);
/*
envp = GetPrintPath(WORKDIR);
strcpy(filename,envp);
strcat(filename,"/print/alcterr");
*/
/*sprintf(filename,"%s/alcterr",TEMPDIR);delete by weihy 2005.01.27*/
filename=GetPrtf("alcterr");
fp=fopen(filename,"a");
va_start(args);
fmt=va_arg(args,char *);
vfprintf(fp,fmt,args);
va_end(args);
fclose(fp);
}
void getsystime(char *tmp)
{
time_t tv;
tv=time((time_t *) 0);
strcpy(tmp,ctime(&tv)+4);
tmp[20]=0;
}
int ReplaceChar(char *str,int len)
{
int i = 0;
while (i < len) {
start: if (str[i] == '|') {
str[i] = ' ';
i++;
goto start;
}
if (str[i] == '\n') {
str[i] = ' ';
i++;
goto start;
}
if (str[i] == '(') {
str[i] = ' ';
i++;
goto start;
}
if (str[i] == '[') {
str[i] = ' ';
i++;
goto start;
}
if (str[i] == ']') {
str[i] = ' ';
i++;
goto start;
}
if (str[i] == ')') {
str[i] = ' ';
i++;
goto start;
}
if (str[i] == '=') {
str[i] = ' ';
i++;
goto start;
}
if (str[i] == '-') {
str[i] = ' ';
i++;
goto start;
}
if (str[i] == ',') {
str[i] = ' ';
i++;
goto start;
}
if (str[i] == '.') {
str[i] = ' ';
i++;
goto start;
}
if (str[i] == ';') {
str[i] = ' ';
i++;
goto start;
}
i++;
}
return(0);
}
int strheader(char *buf)
{
char *strhead;
char tmp[256];
strhead="03011001120011|";
strcpy(tmp,buf);
strcpy(buf,strhead);
strcat(buf,tmp);
}
int stop()
{
static int time=0;
time++;
return(time);
}
#define SNDPORT 5201
int snddata(char *buff,const char *sndp,const char *ipaddr)
{
struct sockaddr_in server;
int tmpsock,flag = 1,i,errno;
int wrtlen;
if ((tmpsock = socket(AF_INET,SOCK_STREAM,0))<0)
return(-1);
server.sin_family = AF_INET;
server.sin_port = htons(atoi(sndp));
server.sin_addr.s_addr = inet_addr(ipaddr);
/*connect to server*/
if(connect(tmpsock,(struct sockaddr *)&server,sizeof(struct sockaddr))<0){
m_debug("connect to server error\n");
close(tmpsock);
return(-3);
}
else{
wrtlen=write(tmpsock,buff,strlen(buff));
if (wrtlen<0)
m_debug("write sock error");
close(tmpsock);
}
}
int trimstrcpy(char *des, char *src, int len)
{
int j;
if (len >= strlen(src))
j = strlen(src);
else
j = len;
strncpy(des,src,j);
des[j]='\0';
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -