⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ecp.c

📁 自己精简过的PPPD代码。在嵌入中应用可以更好的发挥。比原先的小了很多
💻 C
字号:
/* * ecp.c - PPP Encryption Control Protocol. * * Copyright (c) 2002 Google, Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright *    notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright *    notice, this list of conditions and the following disclaimer in *    the documentation and/or other materials provided with the *    distribution. * * 3. The name(s) of the authors of this software must not be used to *    endorse or promote products derived from this software without *    prior written permission. * * THE AUTHORS OF THIS SOFTWARE DISCLAIM ALL WARRANTIES WITH REGARD TO * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY * AND FITNESS, IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * * Derived from ccp.c, which is: * * Copyright (c) 1994-2002 Paul Mackerras. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright *    notice, this list of conditions and the following disclaimer. * * 2. The name(s) of the authors of this software must not be used to *    endorse or promote products derived from this software without *    prior written permission. * * 3. Redistributions of any form whatsoever must retain the following *    acknowledgment: *    "This product includes software developed by Paul Mackerras *     <paulus@samba.org>". * * THE AUTHORS OF THIS SOFTWARE DISCLAIM ALL WARRANTIES WITH REGARD TO * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY * AND FITNESS, IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */#define RCSID	"$Id: ecp.c,v 1.4 2004/11/04 10:02:26 paulus Exp $"static const char rcsid[] = RCSID;#include <string.h>#include "pppd.h"#include "fsm.h"#include "ecp.h"static option_t ecp_option_list[] = {    { "noecp", o_bool, &ecp_protent.enabled_flag,      "Disable ECP negotiation" },    { "-ecp", o_bool, &ecp_protent.enabled_flag,      "Disable ECP negotiation", OPT_ALIAS },    { NULL }};/* * Protocol entry points from main code. */static void ecp_init __P((int unit));/*static void ecp_open __P((int unit));static void ecp_close __P((int unit, char *));static void ecp_lowerup __P((int unit));static void ecp_lowerdown __P((int));static void ecp_input __P((int unit, u_char *pkt, int len));static void ecp_protrej __P((int unit));*/static int  ecp_printpkt __P((u_char *pkt, int len,			      void (*printer) __P((void *, char *, ...)),			      void *arg));/*static void ecp_datainput __P((int unit, u_char *pkt, int len));*/struct protent ecp_protent = {    PPP_ECP,    ecp_init,    NULL, /* ecp_input, */    NULL, /* ecp_protrej, */    NULL, /* ecp_lowerup, */    NULL, /* ecp_lowerdown, */    NULL, /* ecp_open, */    NULL, /* ecp_close, */    ecp_printpkt,    NULL, /* ecp_datainput, */    0,    "ECP",    "Encrypted",    ecp_option_list,    NULL,    NULL,    NULL};fsm ecp_fsm[NUM_PPP];ecp_options ecp_wantoptions[NUM_PPP];	/* what to request the peer to use */ecp_options ecp_gotoptions[NUM_PPP];	/* what the peer agreed to do */ecp_options ecp_allowoptions[NUM_PPP];	/* what we'll agree to do */ecp_options ecp_hisoptions[NUM_PPP];	/* what we agreed to do */static fsm_callbacks ecp_callbacks = {    NULL, /* ecp_resetci, */    NULL, /* ecp_cilen, */    NULL, /* ecp_addci, */    NULL, /* ecp_ackci, */    NULL, /* ecp_nakci, */    NULL, /* ecp_rejci, */    NULL, /* ecp_reqci, */    NULL, /* ecp_up, */    NULL, /* ecp_down, */    NULL,    NULL,    NULL,    NULL,    NULL, /* ecp_extcode, */    "ECP"};/* * ecp_init - initialize ECP. */static voidecp_init(unit)    int unit;{    fsm *f = &ecp_fsm[unit];    f->unit = unit;    f->protocol = PPP_ECP;    f->callbacks = &ecp_callbacks;    fsm_init(f);    memset(&ecp_wantoptions[unit],  0, sizeof(ecp_options));    memset(&ecp_gotoptions[unit],   0, sizeof(ecp_options));    memset(&ecp_allowoptions[unit], 0, sizeof(ecp_options));    memset(&ecp_hisoptions[unit],   0, sizeof(ecp_options));}static intecp_printpkt(p, plen, printer, arg)    u_char *p;    int plen;    void (*printer) __P((void *, char *, ...));    void *arg;{    return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -