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

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

?? pppdebug.c

?? PPP協議C語言源代碼
?? C
字號:

#include <string.h>
#include <net.h>
#include <local.h>
#include <support.h>
#include "ppp.h"

/* The maximum number of bytes printed for a packet (24 per line) */
#define MAX_PPP_PRINT 120

#if NTRACE >= 5

#define STXT_SZ 35

static char *_code[] = { /* LCP or IPCP */
    "Vend-Ext", "Conf-Req", "Conf-Ack", "Conf-Nak", "Conf-Rej", "Term-Req",
    "Term-Ack", "Code-Rej", "Prot-Rej", "Echo-Req", "Echo-Rep", "Disc-Req"
};
static char *_pcode[] = {/* PAP */
    "", "Auth-Req", "Auth-Ack", "Auth-Ack"
};
static char *_ccode[] = {/* CHAP or MS-CHAP */
    "", "Challenge", "Response", "Success", "Failure"
};

/*
** * * * * * *
** setStateText()    Print the PPP state into a string
**
** static void setStateText(unsigned char state, char auth, char *s);
**
** PARAMETERS:
**   (in) unsigned char state   The PPP state value
**   (in) char auth             The PPP authentication state value
**   (in/out) char *s           The character string to format into
**
** DESCRIPTION:
**  This function will initialize the character string parameter with an
**  English representation of the state.
**
** * * * * * *
*/
static void setStateText(unsigned char state, char auth, char *s)
{
    unsigned short i, j;

    if (state == PPPclsd) {
        strcpy(s, "Closed/Stopped");
        return;
    }
    else if (state == PPPclsng) {
        strcpy(s, "Closing/Stopping");
        return;
    }

    memset(s, 0x20, STXT_SZ);   /* Use spaces instead of null */

    j = i = 0;
    if ((state & PPPopen) == PPPopen)
        i = 0xf;
    else if ((state & LCPopen) == LCPopen)
        if (auth) {
            j = 0;
            strncpy(s, "[Peer", 5);
            for (i = (auth & 0xff); i; i>>=4) {
                switch (i & 0x7) {
                    case 1: strncpy(s+j+6, "PAP]",4), j+=10; break;
                    case 2: strncpy(s+j+6, "CHAP]",5), j+=11; break;
                    case 4: strncpy(s+j+6, "MS-CHAP]",8), j+=14;
                    default: break;
                }
                strncpy(s+j, "[Host", 5);
            }
            strcpy(s+j, "");
            return;
        } else
            strncpy(s, "IPCP", 4), i = (state & 0xf0)>>4, j = 5;
    else
        strncpy(s, "LCP", 3), i = state, j = 4;

    switch (i) {    /* Null is added at the end */
        case 0:   strcpy(s+j, "Stopped"); break;
        case 0x1: strcpy(s+j, "Req-Sent"); break;
        case 0x3: strcpy(s+j, "Ack-Rcvd"); break;
        case 0xc: strcpy(s+j, "Ack-Sent"); break;
        case 0xd: strcpy(s+j, "(Ack,Req)-Sent"); break;
        case 0xf: strcpy(s+j, "Open"); break;
        default:  strcpy(s+j, "Invalid"); break;
    }
}

static char *cil_a = " %s [ID %02x][Length %04x]";
#define cil(c,i,l) Nprintf(cil_a, c, i, l)
#endif

/*
** * * * * * *
** pppDebug()   Print a PPP frame in English
**
** void pppDebug(int X, MESS *mess);
**
** PARAMETERS:
**  (in) int X                  1 for outgoing, 0 for incoming
**  (in) MESS *mess             The PPP frame
**
** DESCRIPTION:
**  NTRACE >= 3
**      Print the PPP frame with some status information.
**  NTRACE >= 5
**      Print the PPP frame in English.
**
** * * * * * *
*/
void pppDebug(int X, MESS *mess)
{
    struct NET *netp;
    unsigned short prot, i1, i2;
    unsigned char *cp, code;
#if NTRACE >= 5
    unsigned short size;
    unsigned char id;
    char StateText[STXT_SZ];
#endif

    (void)X;
    (void)mess;

    netp = &nets[mess->netno];

    cp = (unsigned char *)mess + MESSH_SZ + LHDRSZ;
    code = *cp;

    prot = NC2(PH(mess)->protocol);
#if NTRACE >= 5
    id = cp[1];
    size = (int)cp[3] + (int)(cp[2]<<8);
    setStateText(netp->state, netp->hw.opt4, StateText);
    Nprintf("%s TimeMS %lu, NetNo %d,", (X)?"PPP RX:":"PPP TX:",
        TimeMS(), mess->netno);
    Nprintf(" State %s (%02x)[%d]", StateText, netp->state, netp->hw.opt7);
#else
    Nprintf("%s T%lu N%d P%04x C%d S%02x[%d]", (X)?"PPP RX:":"PPP TX:",
        TimeMS(), mess->netno, prot, (unsigned char)code, netp->state,
        netp->hw.opt7);
#endif

    if ((i2 = mess->mlen - MESSH_SZ - LHDRSZ) > MAX_PPP_PRINT) {
        i2 = MAX_PPP_PRINT;
        Nprintf("  DATA LENGTH %d TRUNCATED TO %d.", i2, MAX_PPP_PRINT);
    }
    for (i1=0; i1 < i2;) {
        if ((i1 % 24) == 0)
            Nprintf("\n ");
        Nprintf(" %02x", cp[i1++]);
    }

#if NTRACE < 5
    Nputchr('\n');
    return;
#else
    Nprintf("\n  ");
    cp += 4;
    if (prot == PROTlcp) {
        Nprintf("LCP");
        if (code > LCPdisc_req)
            goto unknowncode;
        cil(_code[code], id, size);
        switch(code) {
            case LCPvend_ext:
                break;
            case LCPconf_req:
            case LCPconf_ack:
            case LCPconf_nak:
            case LCPconf_rej:
                while ((size-4) > 0) {
                    Nprintf("\n   ");
                    switch(cp[0]) {
                        case LCPopt_MRU:
                            Nprintf("[MRU %02x%02x]", cp[2], cp[3]);
                            break;
                        case LCPopt_ASYC:
                            Nprintf("[ASYNC %02x%02x%02x%02x]",
                            cp[2],cp[3],cp[4],cp[5]);
                            break;
                        case LCPopt_AUTH:
                            Nprintf("[%02x%02x Authentication", cp[2], cp[3]);
                            if (cp[1] != 4)
                                Nprintf(", %02x Algorithm", cp[4]);
                            Nprintf("]");
                            break;
                        case LCPopt_LQPT:
                            Nprintf("[LQR %02x%02x]", cp[2], cp[3]);
                            break;
                        case LCPopt_MNUM:
                            Nprintf("[Magic Number %02x%02x%02x%02x]",
                                cp[2],cp[3],cp[4],cp[5]);
                            break;
                        case LCPopt_PCMP:
                            Nprintf("[Protocol Compression]");
                            break;
                        case LCPopt_ACMP:
                            Nprintf("[Address Control Compression]");
                            break;
                        case LCPopt_MRRU:
                            Nprintf("[MP MRRU %02x%02x]", cp[2], cp[3]);
                            break;
                        case LCPopt_SNHF:
                            Nprintf("[MP Short Header]");
                            break;
                        case LCPopt_ENDD:
                            Nprintf("[MP Endpoint Descriminator: '");
                            for (i1 = 3; i1 < cp[1]; i1++)
                                if (cp[i1] < 0x20 || cp[i1] > 0x7e)
                                    Nputchr('.');
                                else
                                    Nprintf("%c", cp[i1]);
                            Nprintf("']");
                            break;
                        default:
                            Nprintf("[Unknown Option %02x]", cp[0]);
                            break;
                    }
                    if (cp[1] == 0)
                        goto badsize;
                    size -= cp[1];
                    cp += cp[1];
                }
                break;
            case LCPterm_req:
            case LCPterm_ack:
               goto message;
            case LCPcode_rej:
            case LCPprot_rej:
                if (code == LCPprot_rej)
                    Nprintf("\n    [Protocol %02x%02x]",
                        *cp, *(cp+1));
            case LCPecho_req:
            case LCPecho_rep:
            case LCPdisc_req:
            default:
                break;
        }
    }
    else if (prot == PROTpap) {
        Nprintf("PAP");
        if (code == 0 || code > PAPauth_nak)
            goto unknowncode;
        cil(_pcode[code], id, size);
        switch (code) {
            case PAPauth_req:
                Nprintf("\n    [ID length %02x][ID ",cp[0]);
                for (i1=1; i1 < cp[0]+1; i1++)
                    Nprintf("%c",cp[i1]);
                Nprintf("]\n    [PW length %02x][PW ",cp[i1]);
                for (cp += i1, i1=1; i1 < cp[0]+1; i1++)
                    Nprintf("%c",cp[i1]);
                Nputchr(']');
                break;
            case PAPauth_ack:
            case PAPauth_nak:
                size--, cp++;
                goto message;
            default:
                break;
        }
    }
    else if (prot == PROTchap) {
        Nprintf("CHAP");
        if (code == 0 || code > CHAPfailure)
            goto unknowncode;
        cil(_ccode[code], id, size);
        switch (code) {
            case CHAPchallenge:
            case CHAPresponse:
                Nprintf("\n    [Value size %02x]\n    [Value", cp[0]);
                for (i1 = 0; i1 < cp[0]; i1++) {
                    if (i1 && i1 % 17 == 0)
                        Nprintf("\n          ");
                    Nprintf(" %02x",cp[i1+1]);
                }
                Nprintf("]\n    [Name ");
                for (i1++; i1 < size-4; i1++)
                    Nprintf("%c",cp[i1]);
                Nputchr(']');
                break;
            case CHAPsuccess:
            case CHAPfailure:
                goto message;
        }
    }
    else if (prot == PROTipcp) {
        Nprintf("IPCP");
        if (code > 0 && code <= IPCPcode_rej)
            cil(_code[code], id, size);
        switch(code) {
            case IPCPconf_req:
            case IPCPconf_ack:
            case IPCPconf_nak:
            case IPCPconf_rej:
                while ((size-4) > 0) {
                    Nprintf("\n   ");
                    switch(cp[0]) {
                        case XIPCPopt_IPAD:
                            Nprintf("[IP Address (bad)]");
                            break;
                        case IPCPopt_IPCP:
                            Nprintf("[IP Compression Protocol %02x%02x ",
                                cp[2], cp[3]);
                            Nprintf("(Maximum Slots %02x)(Compress Slot ID %02x)]",
                                cp[4], cp[5]);
                            break;
                        case IPCPopt_IPAD:
                            Nprintf("[IP Address %d.%d.%d.%d]",
                                cp[2], cp[3], cp[4], cp[5]);
                            break;
                        default:
                            Nprintf("[Unknown Option %02x]", cp[0]);
                            break;
                    }
                    if (cp[1] == 0) {
badsize:
                        Nprintf("[SIZE VALUE IS 0!]\n");
                        return;
                    }
                    size -= cp[1];
                    cp += cp[1];
                }
                break;
            case IPCPterm_req:
            case IPCPterm_ack:
message:
                Nprintf("\n    [Message: ");
                for (i1 = 0; i1 < size-4; i1++)
                    if (cp[i1] < 0x20 || cp[i1] > 0x7e)
                        Nputchr('.');
                    else
                        Nprintf("%c", cp[i1]);
                Nputchr(']');
            case IPCPcode_rej:
                break;
            default:
unknowncode:
                cil("Unknown code", id, size);
                break;
        }
    }
    else
        Nprintf("Unknown Protocol %04x", prot);

    Nprintf("\n");
#endif
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
九九精品一区二区| 美女网站一区二区| 久久99久久99小草精品免视看| 国产专区欧美精品| 欧美日韩一二三| 一区精品在线播放| 国产尤物一区二区| 欧美精品一二三四| 一区二区三区中文免费| 国产毛片精品一区| 日韩美女视频在线| 天堂在线一区二区| 欧美影片第一页| 亚洲欧洲国产日韩| 懂色av中文字幕一区二区三区| 欧美福利一区二区| 亚洲午夜精品久久久久久久久| 国产成人精品影视| 精品美女在线播放| 美女尤物国产一区| 欧美一区二区播放| 日本少妇一区二区| 91精品国产综合久久久久久漫画| 亚洲一区二区三区四区在线观看 | 亚洲人精品午夜| 国产激情视频一区二区三区欧美| 欧美一区二区三区四区视频| 性做久久久久久久免费看| 在线日韩一区二区| 亚洲激情自拍视频| 欧美亚洲图片小说| 亚洲一区二区3| 欧美喷水一区二区| 偷偷要91色婷婷| 欧美一卡二卡在线| 另类小说图片综合网| 久久久不卡影院| 国产成人在线色| 国产精品无遮挡| 97久久精品人人澡人人爽| 国产精品美女久久久久久久久久久| 国产成人丝袜美腿| 国产精品久久久久久久久久久免费看| 成人少妇影院yyyy| 一区二区三区精品| 91精品久久久久久久99蜜桃| 蜜桃91丨九色丨蝌蚪91桃色| 精品国产亚洲一区二区三区在线观看| 九九国产精品视频| 国产精品欧美久久久久一区二区| 成人av午夜电影| 曰韩精品一区二区| 欧美男男青年gay1069videost | 欧美午夜在线一二页| 亚洲国产精品一区二区久久恐怖片| 欧美亚洲禁片免费| 激情综合五月婷婷| 国产精品麻豆视频| 欧美日本在线看| 国产综合色精品一区二区三区| 精品一区二区三区欧美| 亚洲综合激情网| 欧美剧在线免费观看网站| 蜜桃视频在线一区| 国产精品九色蝌蚪自拍| 欧美三级中文字幕| 国产一区视频网站| 樱花影视一区二区| 久久亚洲综合色| 欧美性大战久久久| 国产综合久久久久久久久久久久| 17c精品麻豆一区二区免费| 欧美二区在线观看| 成人动漫一区二区在线| 日日夜夜精品免费视频| 国产精品久久久久久妇女6080| 国产欧美一区二区精品秋霞影院 | 日韩中文字幕区一区有砖一区| 欧美xingq一区二区| av网站免费线看精品| 人人精品人人爱| 亚洲色欲色欲www在线观看| 日韩欧美综合一区| 欧美日韩一区二区不卡| 成人性生交大片免费看在线播放 | 美脚の诱脚舐め脚责91| 日韩久久一区二区| 久久久国产精品午夜一区ai换脸| 欧美系列日韩一区| 99久久久国产精品免费蜜臀| 国产美女在线观看一区| 日韩黄色一级片| 亚洲另类在线制服丝袜| 国产人伦精品一区二区| 日韩写真欧美这视频| 欧美体内she精高潮| 97精品久久久久中文字幕| 国产乱码精品一区二区三区五月婷| 亚洲午夜激情网站| 中文字幕在线观看一区二区| 国产午夜精品理论片a级大结局| 91麻豆精品国产自产在线 | 黄色资源网久久资源365| 一区二区三区在线视频观看 | 亚洲综合在线视频| 日韩一区日韩二区| 中文字幕一区二区三区视频| 久久久蜜桃精品| 欧美成人精品福利| 日韩欧美激情在线| 日韩欧美一级二级| 日韩精品专区在线影院重磅| 欧美喷潮久久久xxxxx| 欧美视频日韩视频| 欧美日韩一区二区三区在线| 欧美性xxxxxx少妇| 精品视频1区2区3区| 欧美日韩mp4| 日韩一区二区三区免费观看| 日韩欧美国产小视频| 精品av综合导航| 国产片一区二区三区| 中文字幕av在线一区二区三区| 国产精品全国免费观看高清 | 日韩欧美高清一区| 精品国一区二区三区| 亚洲国产精品影院| 午夜精品一区二区三区免费视频| 亚洲va国产天堂va久久en| 日本亚洲最大的色成网站www| 奇米四色…亚洲| 国产精品一区专区| 97精品久久久午夜一区二区三区| 色噜噜狠狠一区二区三区果冻| 在线免费观看不卡av| 欧美精品视频www在线观看 | 欧美在线看片a免费观看| 欧美日韩免费高清一区色橹橹| 在线观看91av| 久久午夜免费电影| 国产精品久久久久久久午夜片| 亚洲自拍偷拍综合| 久久精品国产一区二区| 成人黄色电影在线| 欧美欧美欧美欧美| 欧美激情中文字幕一区二区| 亚洲色图欧美偷拍| 日av在线不卡| 成人综合婷婷国产精品久久免费| 色94色欧美sute亚洲13| 欧美一区二视频| 自拍偷拍亚洲欧美日韩| 奇米综合一区二区三区精品视频 | 国产在线播放一区| 91麻豆成人久久精品二区三区| 欧美精品乱码久久久久久| 久久久久久久久蜜桃| 亚洲成av人片在线观看无码| 国产精品一区二区黑丝| 7777精品伊人久久久大香线蕉经典版下载| 欧美精品一区男女天堂| 亚洲自拍偷拍av| 粉嫩欧美一区二区三区高清影视 | 午夜视频一区二区| 岛国一区二区在线观看| 欧美一区三区四区| 亚洲精品中文在线观看| 国产精品一区二区你懂的| 欧美日韩午夜在线视频| 中文字幕中文字幕一区二区| 日本欧洲一区二区| 91精品福利视频| 国产精品卡一卡二| 激情亚洲综合在线| 欧美高清视频一二三区| 亚洲精选免费视频| 成人ar影院免费观看视频| 精品国产乱码久久久久久闺蜜| 亚洲成人1区2区| 欧洲精品一区二区| 亚洲欧洲综合另类| 波多野结衣亚洲| 国产精品美女久久久久久久网站| 九一九一国产精品| 欧美一区二区人人喊爽| 亚洲国产一区二区在线播放| 99re热这里只有精品视频| 国产视频不卡一区| 国产精品18久久久久久久久久久久| 欧美一级久久久| 人人狠狠综合久久亚洲| 欧美精品一卡二卡| 日韩av电影免费观看高清完整版在线观看| 色香蕉成人二区免费| 亚洲色图一区二区三区| 99久久伊人网影院| 亚洲少妇最新在线视频| 99国产精品99久久久久久| 精品嫩草影院久久| 91精品视频网|