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

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

?? gsmdevices.c

?? 手機短消息服務的服務器和客戶端
?? C
字號:
/*========================================================== * Program : gsmdevices.c                  Project : smslink * Author  : Philippe Andersson. * Date    : 19/10/98 * Version : 0.01a * Notice  : Shamelessly copied from Riccardo Facchetti's modems.c *           in libmodem-1.0.0 (c) 1997 Riccardo Facchetti under GNU GPL. *           (c) Les Ateliers du Heron, 1998 for Scitex Europe, S.A. * Comment : Handling routines for /etc/gsmdevices database. * * Modification History : * - 0.01a (13/08/98) : Initial release. *========================================================*/#include <stdio.h>#include <stdlib.h>#include <string.h>#include <sys/types.h>#include <dial/modems.h>#include <dial/mdmerrno.h>#include <termios.h>#include "sms_serv.h"#define BUFSIZE		128static int gsmdeventry = 0;static FILE *gsmdevfp;/*========================================================*/static int open_gsmdevs (void)/* * open/close_gsmdevs: open and close the /etc/gsmdevices file */{    if ((gsmdevfp = fopen (GSMDEVFILE, "r")) == NULL)        return FAILURE;    return SUCCESS;}                                      /* open_gsmdevs () *//*========================================================*/static void close_gsmdevs (void){    fclose (gsmdevfp);}                                     /* close_gsmdevs () *//*========================================================*/struct gsms_def *getgsmdevbynam (char *line)/* * getgsmdevbynam: returns a pointer to the gsmdev entry named *            (char *) line, NULL if line is not present in *            /etc/gsmdevices. */{    static struct gsms_def mdm;    char *buffer;    buffer = mdmalloc(BUFSIZE);    if (!buffer) {	mdmerrno = -EMDMEM;	return NULL;    }    mdmerrno = 0;    if (open_gsmdevs() == FAILURE) {	mdmfree (buffer);        mdmerrno = -ENOMDMFILE;        return NULL;    }    while (fgets (buffer, BUFSIZE, gsmdevfp) != NULL) {        buffer[strlen (buffer) - 1] = '\0';        if (buffer[0] == '#' || buffer[0] == '\0' || buffer[0] == '\n')            continue;        if (demangle_gsmdev_entry (&mdm, buffer) == FAILURE) {            mdmerrno = -EMDMBADCONF;            continue;        }        if (!strcmp (mdm.device, line)) {            close_gsmdevs ();	    mdmfree (buffer);            return (&mdm);        }    }    close_gsmdevs ();    mdmerrno = -ENOMDMLINE;    return NULL;}                                    /* getgsmdevbynam () *//*========================================================*/int getgsmdevscount (int validation)/* * getgsmdevscount: count the number of valid (?) entries in *            /etc/gsmdevices. */{    static struct gsms_def mdm;    char *buffer;    int nvalidentries = 0;    buffer = mdmalloc(BUFSIZE);    if (!buffer) {	mdmerrno = -EMDMEM;	return (0);    }    mdmerrno = 0;    if (open_gsmdevs() == FAILURE) {	mdmfree (buffer);        mdmerrno = -ENOMDMFILE;        return (0);    }    while (fgets (buffer, BUFSIZE, gsmdevfp) != NULL) {        buffer[strlen (buffer) - 1] = '\0';        if (buffer[0] == '#' || buffer[0] == '\0' || buffer[0] == '\n')            continue;        if (validation && (demangle_gsmdev_entry (&mdm, buffer) == FAILURE)) {            mdmerrno = -EMDMBADCONF;            continue;        }	nvalidentries++;    }    close_gsmdevs ();    return (nvalidentries);}                                   /* getgsmdevscount () *//*========================================================*/void setgsmdevs (void)/* * setgsmdevs: set the library for modem sequential search from the first to the *          end. See getnextgsmdev (). */{    gsmdeventry = 0;}                                        /* setgsmdevs () *//*========================================================*/struct gsms_def *getnextgsmdev (void)/* * getnextgsmdev: get the next modem entry in /etc/gsmdevices *             file returns NULL if we are over the last entry. */{    static struct gsms_def mdm;    int i = 0;    char *buffer;    buffer = mdmalloc (BUFSIZE);    if (!buffer) {	mdmerrno = -EMDMEM;	return NULL;    }    mdmerrno = 0;    if (open_gsmdevs () == FAILURE) {	mdmfree (buffer);        mdmerrno = -ENOMDMFILE;        return NULL;    }    while (fgets (buffer, BUFSIZE, gsmdevfp) != NULL) {        buffer[strlen (buffer) - 1] = '\0';        if (buffer[0] == '#' || buffer[0] == '\0' || buffer[0] == '\n')            continue;        if (i == gsmdeventry) {            if (demangle_gsmdev_entry (&mdm, buffer) == FAILURE) {                mdmerrno = -EMDMBADCONF;                continue;            }            gsmdeventry++;            close_gsmdevs ();	    mdmfree (buffer);            return (&mdm);        }        i++;    }    close_gsmdevs ();    mdmfree(buffer);    return NULL;}                                     /* getnextgsmdev () *//*========================================================*/static int demangle_gsmdev_entry (struct gsms_def *mdm, char *mdmstr)/* * demangle_gsmdev_entry: get a gsmdev pointer that point to an existing * gsm_def structure and a string to demangle. Returns FAILURE or SUCCESS. * The buffer pointed to by mdmstr is modified in the process. */{    char *ptr, *pptr;    /*....................................mdm->free (int) */    /* is left uninitialized - dynamic data */        /*...............................mdm->device (char *) */    if ((ptr = strchr (mdmstr, ':')) == NULL)        return FAILURE;    *ptr = '\0';    if ((strlen (mdmstr) == 0) || (strlen (mdmstr) > MAXDEVLEN))        return (FAILURE);    strcpy (mdm->device, mdmstr);    ptr++;    /*..................................mdm->PIN (char *) */    if (*ptr == ':') {        /* empty field */        mdm->PIN[0] = '\0';        *ptr = '\0';        ptr++;    }    else {        if ((pptr = strchr (ptr, ':')) == NULL)            return FAILURE;        *pptr = '\0';        if (strlen (ptr) > PINLEN)            return (FAILURE);	strcpy (mdm->PIN, ptr);        ptr = pptr + 1;    }    /*..................................mdm->PUK (char *) */    if (*ptr == ':') {        /* empty field */        mdm->PUK[0] = '\0';        *ptr = '\0';        ptr++;    }    else {        if ((pptr = strchr (ptr, ':')) == NULL)            return FAILURE;        *pptr = '\0';        if (strlen (ptr) > PUKLEN)            return (FAILURE);        strcpy (mdm->PUK, ptr);        ptr = pptr + 1;    }    /*.................................mdm->addr (char *) */    if (*ptr == ':') {        /* empty field */        mdm->addr[0] = '\0';        *ptr = '\0';        ptr++;    }    else {        if ((pptr = strchr (ptr, ':')) == NULL)            return FAILURE;        *pptr = '\0';        if (strlen (ptr) > MAXPHNUMLEN)            return (FAILURE);        strcpy (mdm->addr, ptr);        ptr = pptr + 1;    }    /*...............................mdm->defsca (char *) */    if (*ptr == ':') {        /* empty field */        mdm->defsca[0] = '\0';        *ptr = '\0';        ptr++;    }    else {        if ((pptr = strchr (ptr, ':')) == NULL)            return FAILURE;        *pptr = '\0';        if (strlen (ptr) > MAXPHNUMLEN)            return (FAILURE);        strcpy (mdm->defsca, ptr);        ptr = pptr + 1;    }    /*.............................mdm->provider (char *) */    /*                                 !!! Last field !!! */    if (*ptr == '\n' || *ptr == '\0' || *ptr == ':') {        mdm->provider[0] = '\0';        return SUCCESS;    }    else        if (strlen (ptr) > MAXDEVLEN)            return (FAILURE);        strcpy (mdm->provider, ptr);    return SUCCESS;}                             /* demangle_gsmdev_entry () *//*========================================================== * EOF : gsmdevices.c *===================*/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
美女一区二区久久| 亚洲精品一区二区三区在线观看| 久久91精品国产91久久小草| 亚洲bt欧美bt精品777| 亚洲主播在线观看| 亚洲综合激情小说| 亚洲成人在线网站| 麻豆精品新av中文字幕| 国产成人精品免费看| 国产精品自在在线| 粉嫩绯色av一区二区在线观看 | 午夜精品久久久久久久久久久| 亚洲欧美日韩精品久久久久| 亚洲欧美在线另类| 一区二区欧美在线观看| 亚洲国产精品麻豆| 久久se精品一区精品二区| 国产一区不卡视频| 91在线观看美女| 欧美蜜桃一区二区三区| 精品福利一区二区三区 | 不卡一区二区中文字幕| 91视频在线观看| 欧美精品一二三| 国产欧美视频一区二区| 国产精品成人免费在线| 日日摸夜夜添夜夜添亚洲女人| 久久99精品久久久久久久久久久久| 国产精品12区| 欧美亚洲国产一区二区三区 | 久久久噜噜噜久久人人看 | 久久久久国产成人精品亚洲午夜| 国产人伦精品一区二区| 亚洲精品中文字幕在线观看| 日本怡春院一区二区| 国产99一区视频免费| 欧美日本国产视频| 亚洲国产成人私人影院tom| 亚洲自拍偷拍图区| 国产成人亚洲精品青草天美| 在线精品国精品国产尤物884a| 亚洲精品一区二区精华| 亚洲综合精品自拍| 成人中文字幕电影| 日韩一区二区在线观看视频播放| 中文av一区特黄| 黄页视频在线91| 欧美日韩另类一区| 亚洲日穴在线视频| 国产成人免费av在线| 91精品蜜臀在线一区尤物| 亚洲欧洲无码一区二区三区| 久久99久久久久久久久久久| 欧洲亚洲国产日韩| 亚洲丝袜自拍清纯另类| 国产精品一级片| 欧美大片免费久久精品三p| 亚洲一区视频在线| eeuss鲁片一区二区三区在线看| 欧美zozo另类异族| 日韩av在线发布| 欧美日韩一二区| 亚洲综合久久久| 欧美性色欧美a在线播放| 国产精品色在线| 丁香婷婷综合五月| 久久久久青草大香线综合精品| 麻豆精品在线看| 亚洲精品一区二区三区精华液| 美女被吸乳得到大胸91| 91精品国产高清一区二区三区 | xnxx国产精品| 久久 天天综合| 日韩欧美一区在线观看| 免费久久99精品国产| 3751色影院一区二区三区| 日韩精品成人一区二区三区| 欧美精品久久久久久久多人混战| 亚洲一区自拍偷拍| 欧美精品乱码久久久久久| 日韩av一级片| 久久久青草青青国产亚洲免观| 国内精品写真在线观看| 久久精品视频免费| 成人毛片视频在线观看| 国产精品乱子久久久久| 色一区在线观看| 亚洲图片欧美综合| 欧美一二三区在线| 国产大陆a不卡| 亚洲欧洲国产日韩| 欧美伊人精品成人久久综合97| 日韩影院精彩在线| 精品少妇一区二区三区| 粉嫩av亚洲一区二区图片| 亚洲欧美一区二区久久| 欧美精品在线观看一区二区| 精品一二三四区| 欧美激情在线看| 欧美三级电影网| 国产一区999| 亚洲一级片在线观看| 精品免费国产二区三区| aaa国产一区| 免费高清视频精品| 国产精品久久一级| 91精品国产色综合久久不卡蜜臀 | 欧美日韩视频在线观看一区二区三区| 亚洲一区二区三区精品在线| 9191精品国产综合久久久久久| 精品一区二区三区不卡| 国产精品二三区| 日韩精品中文字幕在线不卡尤物| 成人黄色一级视频| 青青草国产精品亚洲专区无| 中文字幕中文乱码欧美一区二区 | 色噜噜狠狠色综合中国| 日韩电影在线观看电影| 欧美激情一区二区三区四区| 欧美日韩国产免费一区二区| 成人一区二区三区| 麻豆精品国产传媒mv男同| 日韩理论片在线| 精品成人一区二区三区四区| 在线观看视频一区二区| 岛国精品在线播放| 国内精品视频一区二区三区八戒| 亚洲成人三级小说| 成人免费一区二区三区在线观看| 欧美成人精品二区三区99精品| 欧美日韩中文精品| 色综合天天做天天爱| 视频在线观看一区二区三区| 久久蜜桃av一区精品变态类天堂| 欧美在线高清视频| 92国产精品观看| 粉嫩av一区二区三区粉嫩| 麻豆91精品91久久久的内涵| 性感美女久久精品| 亚洲综合一区二区三区| 亚洲人成在线播放网站岛国 | 欧美精品日韩精品| 色视频成人在线观看免| 99久久亚洲一区二区三区青草| 国产成人综合亚洲91猫咪| 蜜臀av国产精品久久久久| 亚洲成a人片综合在线| 亚洲女同ⅹxx女同tv| 亚洲欧美日韩在线| 伊人一区二区三区| 亚洲一区二区综合| 亚洲va韩国va欧美va| 婷婷久久综合九色综合伊人色| 亚洲综合无码一区二区| 亚洲成人你懂的| 麻豆精品视频在线观看免费| 麻豆成人免费电影| 国产真实精品久久二三区| 国产伦精品一区二区三区视频青涩 | 日日噜噜夜夜狠狠视频欧美人 | 久久久国产精品麻豆| 精品国产sm最大网站免费看| 欧美成人一区二区| 欧美精品一区二区三区蜜臀| 久久综合色之久久综合| 久久精品在线观看| 亚洲欧洲国产专区| 亚洲午夜激情av| 美女在线一区二区| 国产精品99精品久久免费| 国产99久久精品| 色婷婷久久久久swag精品 | www.日韩在线| 在线免费精品视频| 日韩午夜在线影院| 国产精品视频第一区| 亚洲国产三级在线| 国产一区二区三区观看| 9久草视频在线视频精品| 欧美视频中文字幕| 欧美变态tickling挠脚心| 国产精品欧美精品| 视频一区中文字幕| 国产mv日韩mv欧美| 欧美图区在线视频| 国产色91在线| 亚洲一区二区成人在线观看| 国内久久精品视频| 欧美色图天堂网| 国产精品私房写真福利视频| 亚洲成a人v欧美综合天堂| 国产乱码精品一区二区三区五月婷| fc2成人免费人成在线观看播放| 91精品国产综合久久香蕉的特点| 久久久精品欧美丰满| 亚洲激情六月丁香| 国产精品亚洲第一| 欧美精品vⅰdeose4hd| 国产精品国产三级国产a| 久久精品国产色蜜蜜麻豆|