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

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

?? ppplib.c

?? vxworks的完整的源代碼
?? C
?? 第 1 頁 / 共 4 頁
字號:
    lcp_lowerup(unit);		/* XXX Well, sort of... */    lcp_open(unit);		/* Start protocol */    sigemptyset(&mask);    for (ppp_if[unit]->phase = PHASE_ESTABLISH, errno = 0;	 ppp_if[unit]->phase != PHASE_DEAD;) {	sigsuspend(&mask);		/* Wait for next signal */	if (errno != EINTR)	    {            syslog(LOG_ERR, "ppp_task: sigsuspend error!");	    break;	    }        errno = 0;			/* reset errno */    }    /* run disconnection hook routine */    if ((pppHookRtns[unit] != NULL) && 	(pppHookRtns[unit]->disconnectHook != NULL))	{        if (((*pppHookRtns[unit]->disconnectHook) (unit, ppp_if[unit]->fd))	    == ERROR)	    {            syslog(LOG_WARNING, "disconnect hook failed");            die(unit, 1);	    }        syslog(LOG_INFO, "Disconnected...");	}    die(unit, 1);}  /********************************************************************************* pppDelete - delete a PPP network interface** This routine deletes the Point-to-Point Protocol (PPP) network interface* specified by the unit number <unit>.** A Link Control Protocol (LCP) terminate request packet is sent to notify* the peer of the impending PPP link shut-down.  The associated serial* interface (<tty>) is then detached from the PPP driver, and the PPP interface* is deleted from the list of network interfaces.  Finally, all resources* associated with the PPP link are returned to the VxWorks system.** RETURNS: N/A*/void pppDelete    (    int unit			/* PPP interface unit number to delete */    )    {    struct wordlist *next;    struct wordlist *wp;     if  (ppp_if[unit] != NULL)	    {        if  ((pppHookRtns[unit] != NULL) &&         (pppHookRtns[unit]->disconnectHook != NULL))            {            if  (ERROR ==                 (*pppHookRtns[unit]->disconnectHook)(unit, ppp_if[unit]->fd))                {                syslog(LOG_WARNING, "disconnect hook failed");                }            }    	    /* check for any clients' addresses */	    wp = ppp_if [unit]->addresses;	    while (wp != NULL) 	        {	        next = wp->next;	        free(wp);	        wp = next;	        }	    netJobAdd ((FUNCPTR)kill, ppp_if[unit]->task_id, SIGTERM, 0, 0, 0);	    }    }/* * Translate from bits/second to a speed_t. */static inttranslate_speed(bps)    int bps;{    return bps;}/* * translate from a speed_t to bits/second. */static intbaud_rate_of(speed)    int speed;{    return speed;}/* * set_up_tty: Set up the serial port on `fd' for 8 bits, no parity, * at the requested speed, etc.  If `local' is true, set CLOCAL * regardless of whether the modem option was specified. */static intset_up_tty(fd)    int fd;{    int speed;    int state;    /*     * Put the tty in raw mode     */    if ((state = ioctl(fd, FIOGETOPTIONS, NULL)) == ERROR) {        syslog(LOG_ERR, "ioctl(FIOGETOPTIONS) error");        die(ppp_unit, 1);    }    if (!ppp_if[ppp_unit]->restore_term)        ppp_if[ppp_unit]->ttystate = state;    speed = translate_speed(ppp_if[ppp_unit]->inspeed);    if (ioctl(fd, FIOOPTIONS, OPT_RAW) < 0) {        syslog(LOG_ERR, "ioctl(FIOOPTIONS) error");        die(ppp_unit, 1);    }    if (speed && ioctl(fd, FIOBAUDRATE, speed) == ERROR) {        syslog(LOG_ERR, "ioctl(FIOBAUDRATE) error");        die(ppp_unit, 1);    }    ppp_if[ppp_unit]->baud_rate = baud_rate_of(speed);    ppp_if[ppp_unit]->restore_term = TRUE;    return 0;}  /* * die - like quit, except we can specify an exit status. */voiddie(unit, status)    int unit;    int status;{    fsm *f = &ppp_if[unit]->lcp_fsm;    lcp_close(unit);		/* Close connection */    if (f->flags & (OPT_PASSIVE | OPT_SILENT))	return;     MAINDEBUG((LOG_INFO, " Exitting."));    cleanup(unit, status, NULL);    if (status)        exit(status);}/* * cleanup - restore anything which needs to be restored before we exit */static voidcleanup(unit, status, arg)    int unit;    int status;    caddr_t arg;{    struct callout *freep = NULL;    struct callout *list = NULL;    if (unit < 0 || unit > NPPP)        return;    {        disestablish_ppp();	if (ppp_if[unit]->restore_term) {            if (ioctl(ppp_if[unit]->fd, FIOSETOPTIONS, ppp_if[unit]->ttystate) == ERROR)            syslog(LOG_ERR, "ioctl(FIOSETOPTIONS) error");        }        pppclose(unit);        ppp_if[unit]->fd = ERROR;    }    if (ppp_if[unit]->s != ERROR)        close(ppp_if[unit]->s);    if (!status)        if (ppp_if[unit]->task_id)            taskDelete(ppp_if[unit]->task_id);    timer_delete(ppp_if[unit]->timer_id);    /* clean-up callout structures */    list = ppp_if [ppp_unit]->callout;    while (list)	{	freep = list;	list = list->c_next;	free ((char *) freep);	freep = NULL;	}    free(ppp_parms[unit]->task_name);    if (ppp_parms[unit]->devname)        free(ppp_parms[unit]->devname);    if (ppp_parms[unit]->local_addr)        free(ppp_parms[unit]->local_addr);    if (ppp_parms[unit]->remote_addr)        free(ppp_parms[unit]->remote_addr);    if (ppp_parms[unit]->filename)        free(ppp_parms[unit]->filename);    free((char *)ppp_parms[unit]);    if (ppp_if[unit]->options->pap_file)        free(ppp_if[unit]->options->pap_file);    if (ppp_if[unit]->options->chap_file)        free(ppp_if[unit]->options->chap_file);    if ((char *)ppp_if[unit])        free((char *)ppp_if[unit]);    ppp_if[unit] = NULL;}  /* * ppp_timeout - Schedule a timeout. * * Note that this timeout takes the number of seconds, NOT hz (as in * the kernel). */voidppp_timeout(func, arg, seconds)    void (*func)();    caddr_t arg;    int seconds;{    struct itimerspec itv;    struct callout *newp, **oldpp;        MAINDEBUG((LOG_DEBUG, "Timeout %x:%x in %d seconds.", (int) func, (int) arg, seconds));      /*     * Allocate timeout.     */    if ((newp = (struct callout *) malloc(sizeof(struct callout))) == NULL) {      syslog(LOG_ERR, "Out of memory in timeout()!");      die(ppp_unit, 1);    }    newp->c_arg = arg;    newp->c_func = func;        /*     * Find correct place to link it in and decrement its time by the     * amount of time used by preceding timeouts.     */    for (oldpp = &(ppp_if[ppp_unit]->callout);         *oldpp && (*oldpp)->c_time <= seconds;         oldpp = &(*oldpp)->c_next)        seconds -= (*oldpp)->c_time;    newp->c_time = seconds;    newp->c_next = *oldpp;    if (*oldpp)        (*oldpp)->c_time -= seconds;    *oldpp = newp;        /*     * If this is now the first callout then we have to set a new     * itimer.     */    if (ppp_if[ppp_unit]->callout == newp) {        itv.it_interval.tv_sec = itv.it_interval.tv_nsec =            itv.it_value.tv_nsec = 0;        itv.it_value.tv_sec = ppp_if[ppp_unit]->callout->c_time;        MAINDEBUG((LOG_DEBUG, "Setting itimer for %d seconds in timeout.",  	          itv.it_value.tv_sec));        if (timer_settime(ppp_if[ppp_unit]->timer_id, CLOCK_REALTIME, &itv, NULL) < 0) {            syslog(LOG_ERR, "setitimer(ITIMER_REAL): error");            die(ppp_unit, 1);        }        if (time(&(ppp_if[ppp_unit]->schedtime)) == ERROR) {            syslog(LOG_ERR, "gettimeofday: error");            die(ppp_unit, 1);        }    }}  /* * ppp_untimeout - Unschedule a timeout. */voidppp_untimeout(func, arg)    void (*func)();    caddr_t arg;{    struct itimerspec itv;    struct callout **copp, *freep;    int reschedule = 0;        MAINDEBUG((LOG_DEBUG, "Untimeout %x:%x.", (int) func, (int) arg));        /*     * If the first callout is unscheduled then we have to set a new     * itimer.     */    if (ppp_if[ppp_unit]->callout &&        ppp_if[ppp_unit]->callout->c_func == func &&        ppp_if[ppp_unit]->callout->c_arg == arg)        reschedule = 1;        /*     * Find first matching timeout.  Add its time to the next timeouts     * time.     */    for (copp = &(ppp_if[ppp_unit]->callout); *copp; copp = &(*copp)->c_next)        if ((*copp)->c_func == func &&  	    (*copp)->c_arg == arg) {            freep = *copp;            *copp = freep->c_next;            if (*copp)  	    (*copp)->c_time += freep->c_time;	    (void) free((char *) freep);            break;          }        if (reschedule) {        itv.it_interval.tv_sec = itv.it_interval.tv_nsec =            itv.it_value.tv_nsec = 0;        itv.it_value.tv_sec = ppp_if[ppp_unit]->callout ? ppp_if[ppp_unit]->callout->c_time : 0;        MAINDEBUG((LOG_DEBUG, "untimeout: Setting itimer for %d seconds in untimeout.",  	          itv.it_value.tv_sec));        if (timer_settime(ppp_if[ppp_unit]->timer_id, CLOCK_REALTIME, &itv, NULL) < 0) {            syslog(LOG_ERR, "setitimer(ITIMER_REAL): error");            die(ppp_unit, 1);        }        if (time(&(ppp_if[ppp_unit]->schedtime)) == ERROR) {            syslog(LOG_ERR, "gettimeofday: error");            die(ppp_unit, 1);        }    }}/* * adjtimeout - Decrement the first timeout by the amount of time since * it was scheduled. */voidadjtimeout(){    time_t tv;    int timediff;        if (ppp_if[ppp_unit]->callout == NULL)        return;    /*     * Make sure that the clock hasn't been warped dramatically.     * Account for recently expired, but blocked timer by adding     * small fudge factor.     */    if (time(&tv) == ERROR) {        syslog(LOG_ERR, "gettimeofday: error");        die(ppp_unit, 1);    }    timediff = tv - ppp_if[ppp_unit]->schedtime;    if (timediff < 0 ||        timediff >= ppp_if[ppp_unit]->callout->c_time)        return;        ppp_if[ppp_unit]->callout->c_time -= timediff;	/* OK, Adjust time */}  /* * hup - Catch SIGHUP signal. * * Indicates that the physical layer has been disconnected. */static voidhup(sig)    int sig;{    MAINDEBUG((LOG_INFO, "Hangup (SIGHUP)"));    ppp_if[ppp_unit]->hungup = 1;	/* they hung up on us! */    adjtimeout();               	/* Adjust timeouts */    die(ppp_unit, 1);			/* Close connection */}/* * term - Catch SIGTERM signal. * * Indicates that we should initiate a graceful disconnect and exit. */static voidterm(sig)    int sig;{    fsm *f = &ppp_if[ppp_unit]->lcp_fsm;    /* even if OPT_SILENT | OPT_PASSIVE, force die(..) to delete */    f->flags = 0;       MAINDEBUG((LOG_INFO, "Terminating link."));

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美区视频在线观看| 3d成人h动漫网站入口| 精品国产电影一区二区| 国产乱码精品一区二区三区av | 日韩精品1区2区3区| 91精品国产91久久久久久一区二区 | 色婷婷激情久久| 亚洲第四色夜色| 精品成人在线观看| 1区2区3区精品视频| 欧美三级中文字幕在线观看| 精品99999| 亚洲一二三专区| 精品av久久707| 一区二区在线电影| 国产精品影视天天线| 99久久久久久| 日日欢夜夜爽一区| 成人免费三级在线| 日韩精品一区二区三区视频在线观看 | 久久97超碰色| 日本美女视频一区二区| 日韩国产一区二| 91在线看国产| 国产日韩亚洲欧美综合| 欧美日韩国产精品成人| 国产精品久久久久一区二区三区共 | 亚洲精品第一国产综合野| 日韩av成人高清| 91蝌蚪porny| 久久久亚洲国产美女国产盗摄 | 亚洲国产日韩a在线播放性色| 丁香天五香天堂综合| 日韩欧美国产精品| 秋霞影院一区二区| 欧美在线免费观看视频| 国产精品久久久一区麻豆最新章节| 久久精品国内一区二区三区| 欧美综合一区二区| 亚洲视频一区二区免费在线观看 | 精品国产麻豆免费人成网站| 日韩一区欧美二区| 色欧美片视频在线观看| 中文字幕在线不卡一区| 国产99精品国产| 欧美国产精品一区| 久久嫩草精品久久久精品一| 麻豆精品在线看| av在线一区二区| 国产精品三级久久久久三级| 国产91丝袜在线18| 国产天堂亚洲国产碰碰| 成人在线视频一区| 久久香蕉国产线看观看99| 久久99精品久久久久婷婷| 日韩视频123| 国产美女在线精品| 久久精品网站免费观看| 国产精品1024| 亚洲欧洲日韩综合一区二区| av电影在线观看一区| 一区二区三区高清不卡| 欧美日韩在线综合| 天堂成人免费av电影一区| 日韩欧美自拍偷拍| 国产98色在线|日韩| 国产精品久久久久久久久免费丝袜 | 91国产免费观看| 国产欧美日韩另类一区| 国产高清亚洲一区| 欧美国产欧美综合| 色综合天天综合网天天看片| 欧美在线看片a免费观看| 夜夜亚洲天天久久| 日韩午夜av一区| 国产91露脸合集magnet| 亚洲精品乱码久久久久久久久| 欧美图片一区二区三区| 国产精品成人免费| 91福利资源站| 精品一区二区免费| 中文幕一区二区三区久久蜜桃| 91麻豆福利精品推荐| 手机精品视频在线观看| 久久久久久久久久久黄色| 91麻豆免费视频| 日韩成人精品在线观看| 国产偷国产偷精品高清尤物| 欧美日韩免费在线视频| 国产高清无密码一区二区三区| 亚洲精品v日韩精品| 欧美国产综合一区二区| 久久久久国产一区二区三区四区| 欧美精选一区二区| 成人美女视频在线观看| 日韩av中文字幕一区二区| 亚洲国产精品高清| 这里只有精品免费| 91亚洲国产成人精品一区二三| 日韩电影免费在线| 亚洲乱码国产乱码精品精的特点| 日韩片之四级片| 色综合婷婷久久| 国产不卡在线视频| 麻豆一区二区三| 亚洲成a人片在线观看中文| 日本一区二区三区在线不卡| 欧美另类一区二区三区| 91丨九色porny丨蝌蚪| 国产一区二区视频在线播放| 丝袜亚洲精品中文字幕一区| 亚洲精选视频在线| 国产欧美精品一区二区三区四区| 51久久夜色精品国产麻豆| 91久久精品一区二区| 成人网页在线观看| 国产麻豆精品在线| 狠狠久久亚洲欧美| 麻豆久久久久久| 亚洲国产一区二区三区| 亚洲在线成人精品| 日韩伦理av电影| 中文字幕一区二区三区视频| 久久久精品国产免费观看同学| 欧美一卡二卡三卡| 在线电影欧美成精品| 欧美亚洲日本国产| 91精彩视频在线| 91亚洲永久精品| 日本道精品一区二区三区| 成人黄色av网站在线| 国产精品三级在线观看| 国产婷婷一区二区| 久久精品视频一区二区| 国产亚洲综合在线| 国产日韩欧美激情| 国产精品免费视频观看| www国产成人| 国产日本欧美一区二区| 欧美一区二区不卡视频| 日韩欧美中文字幕制服| 精品美女被调教视频大全网站| 欧美国产1区2区| 亚洲成av人片观看| 日韩av在线免费观看不卡| 另类人妖一区二区av| 国产福利不卡视频| 国产成人aaa| 在线观看中文字幕不卡| 欧美性色综合网| 日韩免费观看高清完整版在线观看| 日韩精品一区二区三区视频| 国产天堂亚洲国产碰碰| 亚洲欧美日韩人成在线播放| 亚洲一区二区在线观看视频| 免费成人深夜小野草| 国产九色精品成人porny| 成人av片在线观看| 欧美精选午夜久久久乱码6080| 欧美一区二区三区的| 国产区在线观看成人精品 | 日韩精品一区二区在线| 日本一区二区三区在线观看| 亚洲色图另类专区| 偷偷要91色婷婷| 国产精品99久| 在线观看欧美精品| 精品国产免费人成电影在线观看四季 | 日韩福利视频导航| 久久精品久久99精品久久| 91蜜桃传媒精品久久久一区二区| 色综合天天综合网天天看片| 日韩午夜在线观看视频| 国产精品久久久久久久久久免费看| 亚洲韩国一区二区三区| 国产成人三级在线观看| 欧美人伦禁忌dvd放荡欲情| 国产欧美一区二区精品仙草咪| 亚洲国产精品尤物yw在线观看| 精品一区二区三区不卡| 91福利国产成人精品照片| 久久久久高清精品| 亚洲成人自拍一区| 成人激情小说网站| 日韩美女在线视频| 亚洲激情校园春色| 国产精品一区二区三区乱码 | 在线观看亚洲精品| 久久久久九九视频| 免费看欧美女人艹b| 不卡视频在线观看| 欧美精品一卡二卡| 亚洲三级在线观看| 成人综合婷婷国产精品久久免费| 51精品国自产在线| 亚洲精品视频一区| 粉嫩在线一区二区三区视频| 日韩免费在线观看| 日韩高清在线一区| 欧美日韩mp4|