亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? sms_serv.c

?? 手機短消息服務的服務器和客戶端
?? C
?? 第 1 頁 / 共 2 頁
字號:
    if ((gsmitem = getnextgsmdev ()) != NULL) {      if (gsmdevcpy (&gsmdevices[i], gsmitem) == -1)        syserr ("sms_serv: error copying GSM instance");      gsmdevices[i].free = TRUE;      gsmdevices[i].owner = 0;    }    else {      syserr ("sms_serv: error while reading config. file");    }  }                                      /* for (i = 0... */  if (i != ngsmdevs) {    syslog ((FACILITY | LOG_INFO), "internal error: expected %d, found %d definition(s)",           ngsmdevs, i);    syserr ("sms_serv: internal error, not all GSM modules accounted for");  }      syslog ((FACILITY | LOG_INFO), "found %d GSM module definition(s)", ngsmdevs);  /*================================Real start of program */  /* get the hostname I'm running on */  localhost = (char *) malloc ((MINIBUFF + 1) * sizeof (char));  if (gethostname (localhost, MINIBUFF) == -1)    syserr ("sms_serv: can't get host name");  /* get the port number we should listen to */  if ((sent = getservbyname ("sms", "tcp")) == NULL)    syserr ("sms_serv: can't get service port info");#ifdef INCL_DEBUG_CODEprintf ("found port <%d> for service sms\n", ntohs (sent->s_port));#endif      /* now fill in the socket address structure */  s_addr.sin_family = AF_INET;  s_addr.sin_port = sent->s_port;  s_addr.sin_addr.s_addr = htonl (INADDR_ANY);  /* INADDR_ANY allows connection to any valid IP address for this     host, including the loopback address. */    /* let's create the socket */  if ((ssfd = socket (AF_INET, SOCK_STREAM, IPPROTO_IP)) == -1)    syserr ("sms_serv: can't create socket");    /* set socket options (INA)*/  optval = 1;  if (setsockopt (ssfd, SOL_SOCKET, SO_REUSEADDR, &optval, sizeof (optval))) {       syserr ("sms_serv: can't set socket options to reuse");  }  /* load access control list */  acl_list_init (&gsm_acl);  if (! read_acl (&gsm_acl)) {    syserr ("sms_serv: can't read access control list");  }  /* end INA */  /* now bind the socket to the server address */  if (bind (ssfd, (struct sockaddr *) &s_addr, sizeof (s_addr)) == -1)    syserr ("sms_serv: can't bind socket");      /* create the client queue on the socket */  if (listen (ssfd, MAXCLIENTCONN) == -1)    syserr ("sms_serv: can't listen to that many connections");  /* set the flags to make the socket "non-blocking" */  if ((sockflags = fcntl (ssfd, F_GETFL, 0)) == -1)    syserr ("sms_serv: can't get socket descriptor attributes");  if (fcntl (ssfd, F_SETFL, (O_NONBLOCK | sockflags)) == -1)    syserr ("sms_serv: can't set socket descriptor attributes");  /* initialize "last checked" time */  lastchked = time (NULL);  starttime = lastchked;    syslog ((FACILITY | LOG_INFO), "server now ready to answer requests.");  /*---------------------------Start real processing loop */  while (TRUE) {    /* wait for a client to connect */    if ((csfd = accept (ssfd, (struct sockaddr *) &c_addr, &c_addr_len)) == -1) {      /* no connection - check the reason of the "error" */      switch (errno) {        case EWOULDBLOCK:	  /* no error - time to check the mailbox ? */	  if (difftime (time (NULL), lastchked) >= MBCHKINTERVAL) {	    syslog ((FACILITY | LOG_INFO), "initiating mailbox check.");	    /* now fork a child to handle mailbox check */	    pid = fork ();	    switch (pid) {	      case (-1):                         /* error */		syserr ("sms_serv: can't fork");	        break;	      case (0):	        /* ###########< I'm the child >########## */	        /*----Initialize child-specific variables */		/*------------------------------Now do it */		mbcheck_wrapper ();		/*----------------------------Child exits */		exit (0);	        break;           /* Just to be consistent */	      default:	        /* ##########< I'm the father >########## */		/* re-initialize timer */	        lastchked = time (NULL);	        break;	    }                             /* switch (pid) */	  }                            /* if (difftime... */	  break;	default:	  /* there was a "real" error */          syserr ("sms_serv: can't accept incoming connection");	  break;      }                                 /* switch (errno) */    }    else { /* we have a connection - handle it */      /* first check it against the acl (INA) */      if (! check_acl (&c_addr.sin_addr, gsm_acl)) {        syslog ((FACILITY | LOG_WARNING), "illegal connect from [%s]", inet_ntoa (c_addr.sin_addr));        /* close the socket */        if (close (csfd) == -1)          syserr ("sms_serv: can't close client socket");        continue;      }      /* for logging purposes */      syslog ((FACILITY | LOG_NOTICE), "connect from [%s]", inet_ntoa (c_addr.sin_addr));          /* Now fork a child to handle each individ. request & go on listening */      pid = fork ();      switch (pid) {        case (-1):                               /* error */          syserr ("sms_serv: can't fork");	  break;	        case (0):	  /* ###############< I'm the child >############ */	  /*----------Initialize child-specific variables */	  /* allocate space for the symbols */	  symbols.smsc = (char *) malloc ((MAXPHNUMLEN + 1) * sizeof (char));	  symbols.destgsm = (char *) malloc ((MAXPHNUMLEN + 1) * sizeof (char));	  symbols.message = (char *) malloc ((MAXMSGLEN + 1) * sizeof (char));	  symbols.user = (char *) malloc ((MAXUIDLEN + 1) * sizeof (char));	  /* set those symbols to their default values */	  strcpy (symbols.smsc, DEFAULTSMSC);	  symbols.destgsm[0] = '\0';	  symbols.message[0] = '\0';	  symbols.user[0] = '\0';	  /* scratch space for communication with the client */	  buffer = (char *) malloc ((BUFFSIZE + 1) * sizeof (char));	  buffer[0] = '\0';  	  /*------------------------------Server announce */	  sprintf (buffer, "SMS-Link for Linux, ver %s (%s) on %s\r\n", SMS_SERV_VERSION,          	 SMS_SERV_DATE, localhost);	  tellsock (csfd, buffer);	  sprintf (buffer, "(c) Les Ateliers du Heron, 1998 for Scitex Europe, S.A.\r\n"	          "(c) Internet Access AG, 1999\r\n\r\n");	  tellsock (csfd, buffer);	  /* enter the parser module - handle dialogue with client */	  while (1) {            /* display prompt */            sprintf (buffer, PROMPT);            tellsock (csfd, buffer);	    /* get client data */	    buffer[0] = '\0';	    nread = read (csfd, buffer, BUFFSIZE);	    if (nread == -1)	      syserr ("sms_serv: error while reading from socket");	    buffer[nread] = '\0';     /* may not be needed, but can't harm */            /* prepare variables to be used by flex in the new YYINPUT */	    myinputptr = buffer;	    myinputlim = buffer + strlen (buffer);	    /* parse client data */	    parser ();	  }                                  /* while (1) */	  /*--------------------------Close client socket */	  if (close (csfd) == -1)	    syserr ("sms_serv: can't close client socket");	  /*---------------------------------Child exists */	  exit (0);	  break; /* just to be consistent */              default:  	  /* #############< I'm the father >############# */	  /*--------------------------Close client socket */	  if (close (csfd) == -1)	    syserr ("sms_serv: can't close client socket");	  break;	      }                                   /* switch (pid) */    }                           /* if accept() .. else .. */    /* give the CPU some rest */    sleep (1);  }                                          /* while (1) */  /*------------------------------------------Conclusions */  /* close server socket */  if (close (ssfd) == -1)    syserr ("sms_serv: can't close server socket");      /* let's clean what's allocated on the heap */  free (buffer);  free (destgsm);  free (message);  free (localhost);  /*------------------------------------------End program */  exit (0);}                                              /* main () *//*========================================================== * EOF : sms_serv.c *===================*/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕一区二区不卡| 久久先锋资源网| 日韩一区二区精品| 中文字幕一区在线| 国产一区二区三区蝌蚪| 7777女厕盗摄久久久| 国产精品网站在线播放| 麻豆成人久久精品二区三区红 | 色婷婷一区二区| 欧美精品一区二区三区在线| 丁香桃色午夜亚洲一区二区三区| 欧美在线一区二区三区| 国产视频一区不卡| 蜜桃视频在线观看一区| 欧美视频完全免费看| 1024成人网| 国产精品综合在线视频| 欧美一区二区日韩一区二区| 亚洲动漫第一页| 91婷婷韩国欧美一区二区| 精品国产免费久久| 蜜臀av一区二区| 欧美日韩国产首页在线观看| 一区二区国产视频| 色综合一区二区| 日韩一区在线看| av成人老司机| 专区另类欧美日韩| 色综合中文综合网| 中文字幕免费一区| 国产一区欧美日韩| 精品国产三级电影在线观看| 麻豆91精品91久久久的内涵| 91精品国产91久久久久久最新毛片| 亚洲一二三四在线观看| 色呦呦国产精品| 亚洲最色的网站| 91福利在线看| 日韩在线一区二区| 日韩欧美国产综合一区 | 亚洲综合一二区| 欧美日韩一本到| 蜜桃视频一区二区三区在线观看 | 欧美乱妇15p| 婷婷久久综合九色综合伊人色| 欧美人成免费网站| 日韩vs国产vs欧美| 精品国产伦理网| 豆国产96在线|亚洲| 国产精品国产三级国产aⅴ无密码| 成人av网站在线观看| 亚洲欧美在线视频| 日本高清成人免费播放| 天天做天天摸天天爽国产一区| 欧美视频一二三区| 久久精品国产亚洲一区二区三区 | 亚洲第四色夜色| 欧美成人伊人久久综合网| 国产精品一二三| 亚洲综合色网站| 日韩一级免费一区| av在线播放一区二区三区| 亚洲高清免费观看高清完整版在线观看| 欧美日韩国产在线观看| 国产综合色精品一区二区三区| 亚洲天堂福利av| 1024亚洲合集| 欧美一区二区三区在线观看视频| 韩国av一区二区三区在线观看| 中文字幕一区日韩精品欧美| 8x福利精品第一导航| 高清不卡一区二区在线| 午夜视频一区二区| 国产精品久久久久aaaa樱花 | 欧美中文字幕一区| 另类调教123区 | 日本一二三不卡| 欧美人伦禁忌dvd放荡欲情| 国产一区免费电影| 午夜精彩视频在线观看不卡| 国产亚洲美州欧州综合国| 欧美图片一区二区三区| 国产精品亚洲第一| 奇米色777欧美一区二区| 国产精品国产三级国产a| 精品国精品国产尤物美女| 一本色道a无线码一区v| 国产精品夜夜嗨| 日韩激情一区二区| 亚洲精品中文在线影院| 国产日韩综合av| 欧美成人一区二区三区| 欧美日韩一区二区三区免费看| av午夜一区麻豆| 国产成人亚洲综合a∨猫咪| 日韩成人dvd| 亚洲成人免费看| 亚洲一区二区美女| 亚洲丝袜另类动漫二区| 久久久久99精品一区| 制服丝袜亚洲精品中文字幕| 91麻豆精品秘密| 波多野结衣精品在线| 国产精品69毛片高清亚洲| 麻豆精品视频在线观看视频| 亚洲午夜久久久久久久久电影院| 中文字幕一区二区不卡| 一区在线播放视频| 国产精品久久久久永久免费观看| 久久嫩草精品久久久精品一| 欧美xxxxxxxx| 欧美mv和日韩mv的网站| 日韩精品一区二区三区在线观看 | 亚洲欧洲精品天堂一级| 国产精品福利一区| 国产精品情趣视频| 日韩理论片在线| 自拍偷拍欧美激情| 一区二区三区在线播| 亚洲高清不卡在线观看| 亚洲bt欧美bt精品| 五月婷婷综合激情| 日本不卡高清视频| 精彩视频一区二区三区| 国产综合色视频| 粉嫩欧美一区二区三区高清影视| 福利电影一区二区| thepron国产精品| 色吊一区二区三区| 欧美久久久一区| 日韩一区二区三区视频在线| 久久综合久久综合九色| 亚洲国产精华液网站w| 亚洲免费观看在线视频| 91视频国产资源| 欧美在线高清视频| 欧美tk—视频vk| 欧美—级在线免费片| 亚洲色图在线看| 日韩成人一区二区| 国产精品资源网| 色狠狠综合天天综合综合| 欧美日韩日日夜夜| 国产午夜精品久久久久久免费视| 1区2区3区精品视频| 无吗不卡中文字幕| 国产美女视频一区| 在线观看区一区二| 精品国产一区二区三区忘忧草 | 久久久久亚洲综合| 国产精品久久久久三级| 天堂蜜桃一区二区三区| 东方aⅴ免费观看久久av| 欧美羞羞免费网站| 精品国产乱码久久久久久免费| 中文字幕av一区二区三区高| 亚洲va欧美va天堂v国产综合| 国产在线一区二区| 91黄色免费版| 久久久久久**毛片大全| 亚洲午夜在线视频| 国产精品123区| 正在播放亚洲一区| √…a在线天堂一区| 久久精品72免费观看| 色哟哟一区二区在线观看 | 这里只有精品免费| 国产精品久久久久久妇女6080 | 国产婷婷精品av在线| 亚洲成在人线在线播放| www.99精品| 久久精品一区二区| 日本成人在线网站| 色哟哟在线观看一区二区三区| 久久综合国产精品| 日本成人超碰在线观看| 欧洲色大大久久| 亚洲色图在线视频| 高清成人在线观看| 久久久久久久网| 久久精品国产网站| 欧美乱妇一区二区三区不卡视频| 亚洲欧美电影院| va亚洲va日韩不卡在线观看| 久久亚洲捆绑美女| 精品系列免费在线观看| 日韩亚洲欧美在线观看| 亚洲国产成人porn| 在线观看欧美黄色| 亚洲已满18点击进入久久| 不卡免费追剧大全电视剧网站| 久久久91精品国产一区二区三区| 奇米在线7777在线精品| 欧美日本不卡视频| 日韩—二三区免费观看av| 91福利在线免费观看| 成人黄色网址在线观看| 久久在线观看免费| 狠狠网亚洲精品| 久久精品视频一区|