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

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

?? pppoethernet.c

?? 這是全套的PPP協議的源碼
?? C
?? 第 1 頁 / 共 5 頁
字號:
    /* component interface */LOCAL STATUS pppOEProfileDataConstruct (PFW_OBJ *,void * pProfileData);LOCAL STATUS pppOEStackDataConstruct (PFW_OBJ *,void * pStackData,							    void *profileData);LOCAL STATUS pppOEStackDataDestruct (PFW_OBJ *,void * pStackData,							    void * profileData);LOCAL STATUS pppOEInterfaceBind (PFW_PLUGIN_OBJ *);LOCAL STATUS pppOEStackAdd (PFW_PLUGIN_OBJ_STATE *,PFW_PLUGIN_OBJ_CALLBACKS *);LOCAL STATUS pppOEStackDel (PFW_PLUGIN_OBJ_STATE *);LOCAL STATUS pppOEReceive (PFW_PLUGIN_OBJ_STATE *, M_BLK_ID *);LOCAL STATUS pppOESend (PFW_PLUGIN_OBJ_STATE *, M_BLK_ID *);LOCAL STATUS pppOEStackShow (PFW_PLUGIN_OBJ_STATE *);    /* parameter handlers */LOCAL STATUS pppOE_connectionMode(PFW_OBJ *,PFW_PARAMETER_OPERATION_TYPE,void *,				    char *);LOCAL STATUS pppOE_discoveryRetries(PFW_OBJ*,PFW_PARAMETER_OPERATION_TYPE,void *				    ,char *);LOCAL STATUS pppOE_minDiscTimeout(PFW_OBJ *,PFW_PARAMETER_OPERATION_TYPE,void *,				    char *);LOCAL STATUS pppOE_svcName(PFW_OBJ*,PFW_PARAMETER_OPERATION_TYPE,void *,char *);LOCAL STATUS pppOE_acName(PFW_OBJ*,PFW_PARAMETER_OPERATION_TYPE,void *, char *);LOCAL STATUS pppOE_vendorInfo(PFW_OBJ *,PFW_PARAMETER_OPERATION_TYPE,void *,				    char *);    /* misc */LOCAL M_BLK_ID pppOEMakePADI (PFW_PLUGIN_OBJ_STATE *);LOCAL M_BLK_ID pppOEMakePADR (PFW_PLUGIN_OBJ_STATE *);LOCAL M_BLK_ID pppOEMakePADO (PFW_PLUGIN_OBJ_STATE *);LOCAL M_BLK_ID pppOEMakePADS (PFW_PLUGIN_OBJ_STATE *);LOCAL M_BLK_ID pppOEMakePADT (PFW_PLUGIN_OBJ_STATE *);LOCAL M_BLK_ID pppOEAddHeader(UINT8, UINT16, UINT8 *, M_BLK_ID); LOCAL M_BLK_ID pppOEAddSvcNameError ( PFW_PLUGIN_OBJ_STATE *pComponentState);LOCAL STATUS pppOESendDiscPkt (PFW_PLUGIN_OBJ_STATE *, int );LOCAL M_BLK_ID pppOEDupPkt (M_BLK_ID pPacket);LOCAL STATUS lcpOpenEventHandler (PFW_PLUGIN_OBJ_STATE *, void *eventData); LOCAL STATUS lcpUpEventHandler (PFW_PLUGIN_OBJ_STATE *, void *eventData); LOCAL STATUS lcpDownEventHandler (PFW_PLUGIN_OBJ_STATE *, void *eventData); LOCAL PPPOE_TLV * pppOEFindTlv (UINT16 tagType, PPPOE_TLV * firstTlv,M_BLK_ID);LOCAL PFW_STACK_OBJ * pppOESvcStackObjGet(PPPOE_COMPONENT *,PPPOE_TLV *svcName, ULONG portId);LOCAL PFW_STACK_OBJ * pppOEStackObjGet(PPPOE_COMPONENT *, UINT16, UINT8 *);LOCAL STATUS pppOEMapStackId(UINT16 sessionId, PFW_PLUGIN_OBJ_STATE *);LOCAL void pppOEStackIdMapClear(PFW_PLUGIN_OBJ_STATE *);#if 0LOCAL STATUS etherAsciiToEnet (char * asciiAddr, u_char * retEnet);#endifLOCAL STATUS etherEnetToAscii (UINT8 * pEnetAddr, char * pAsciiBuf);LOCAL void pppOEAdptrStatisticsGet (PFW_PLUGIN_OBJ_STATE *,                                  UINT *, UINT *, UINT *, UINT *);LOCAL UINT pppOEAdptrPortNumberGet (PFW_PLUGIN_OBJ_STATE *);LOCAL UINT pppOEAdptrPortTypeGet  (PFW_PLUGIN_OBJ_STATE *);LOCAL int pppOEGetAllServiceNameTagsButThis (	    PFW_PLUGIN_OBJ_STATE * thisStackState, PPPOE_TLV ** ppTlv);LOCAL STATUS pppOEVerifyACCookie(PPPOE_COMPONENT *pComponent,                                  PFW_STACK_OBJ *stackObj);/* locals *//* component parameters; basically members of PPPOE_PROFILE_PARAMS struct */LOCAL PPPOE_PARAMS pppOEParams[]={{"pppOE_connectionMode",pppOE_connectionMode},                                  {"pppOE_discRetries", pppOE_discoveryRetries},                                  {"pppOE_minDiscTimeout",pppOE_minDiscTimeout},                                  {"pppOE_svcName", pppOE_svcName},                                  {"pppOE_acName", pppOE_acName},                                  {"pppOE_vendorInfo", pppOE_vendorInfo}};LOCAL int numPPPOEParams = NELEMENTS (pppOEParams);LOCAL UINT8 etherBroadcastAddr[] = {0xff,0xff,0xff,0xff,0xff,0xff};/******************************************************************************** pppOEthernetCreate - create and add PPP over Ethernet component to framework** This routine initializes and adds the PPP over Ethernet component to the PPP* framework. This component implements RFC 2516.** RETURNS: OK on success and ERROR otherwise*/STATUS pppOEthernetCreate    (    PFW_OBJ * pfw,	  /* pfw we are adding ourselves to */    UINT32 maxServices,	  /* maximum number of services we support as an AC */    UINT32 operatingMode  /* operating modes: HOST or AC */    )    {    int i = 0;    PPPOE_COMPONENT * pComponent;    PFW_PLUGIN_OBJ * pPPPOEPluginObj;    if (pfw == NULL)	{	return ERROR;	}    /* allocate the component object */    if ( (pComponent = pfwMalloc(pfw,sizeof(PPPOE_COMPONENT))) == NULL)	return ERROR;    bzero((void *)pComponent,sizeof(PPPOE_COMPONENT));    pPPPOEPluginObj = (PFW_PLUGIN_OBJ *)&(pComponent->component);    /* initialize our component object */    bzero(pPPPOEPluginObj->name, PFW_MAX_NAME_LENGTH);    strncpy(pPPPOEPluginObj->name,"PPP_O_ETHERNET",(PFW_MAX_NAME_LENGTH -1));    pPPPOEPluginObj->pfwObj = pfw;    pPPPOEPluginObj->profileDataSize = sizeof (PPPOE_PROFILE_DATA);    pPPPOEPluginObj->stackDataSize = sizeof (PPPOE_STACK_DATA);    pPPPOEPluginObj->profileDataConstruct = pppOEProfileDataConstruct;    pPPPOEPluginObj->profileDataCopy = NULL;    pPPPOEPluginObj->profileDataDestruct = NULL;    pPPPOEPluginObj->stackDataConstruct = pppOEStackDataConstruct;    pPPPOEPluginObj->stackDataDestruct = pppOEStackDataDestruct;    pPPPOEPluginObj->interfaceBind = pppOEInterfaceBind;    pPPPOEPluginObj->receive = pppOEReceive;    pPPPOEPluginObj->send = pppOESend;    pPPPOEPluginObj->stackDataShow = pppOEStackShow;    pPPPOEPluginObj->stackAdd = pppOEStackAdd;    pPPPOEPluginObj->stackDelete = pppOEStackDel;    pComponent->component.protocol = 0;    pComponent->component.layerObj = pfwLayerObjGet(pfw,"FRAMING_LAYER");    /* register this component with the framework */    if (pfwComponentAdd (&pComponent->component) == ERROR)	{	printf ("pppOEthernetInit: Couldn't add PPPOE component to pfw 0x%x\n"	, (UINT32) pfw);	pfwFree((void *)pComponent);	return (ERROR);	}    /* add our parameters to the framework */    for (i = 0; i < numPPPOEParams; i++)	{	if (pfwParameterAdd ((PFW_PLUGIN_OBJ *)pComponent,			    pppOEParams[i].name, pppOEParams[i].handler)			    == ERROR)	    {	    printf ("pppOEthernetInit - Parameter %s could not be added\n",	    pppOEParams[i].name);	    pfwComponentDelete(&pComponent->component);	    pfwFree((void *)pComponent);	    return (ERROR);	    }	}    pComponent->pppOESessions = 0;    pComponent->pppOEMaxSessions = 0;    pComponent->pppOEMaxServices = 0;    pComponent->pppOEServices = 0;    pComponent->operatingMode = operatingMode;    /*     * allocate memory for the MAP;     * If configured to be in AC mode allocate 0x40000 bytes of memory for the     * MAP     *     * if configured to be in HOST initialize the list of sessions      */     if (operatingMode == PPPOE_HOST_MODE)	 {	 sllInit(&pComponent->pppOESession2Stack.list);	 return OK;	 }     else if (operatingMode != PPPOE_AC_MODE)	 {	 printf("PPPOE: Illegal mode:%x;Must be either HOST(0x%x) OR AC(0x%x)\n"			     ,operatingMode, PPPOE_HOST_MODE, PPPOE_AC_MODE);	 pfwComponentDelete(&pComponent->component);	 pfwFree((void *)pComponent);	 return ERROR;	 }     /* complete AC mode initialization */	 sllInit(&pComponent->pppOESession2Stack.list);    pComponent->pppOEMaxSessions = PPPOE_MAX_SESSIONS;    /* allocate memory for services offered by this component as an AC */     if (pComponent->pppOEServiceNameMap == NULL)	 pComponent->pppOEServiceNameMap = (PFW_PLUGIN_OBJ_STATE **)pfwMalloc			 (pfw,(maxServices+1) * sizeof(PFW_PLUGIN_OBJ_STATE *));     if (pComponent->pppOEServiceNameMap == NULL)	 {	 printf ("pppOEthernetInit - could not allocate Service Name MAP\n");	 return ERROR;	 }     else	 bzero ((void *)pComponent->pppOEServiceNameMap,			     maxServices * sizeof(PFW_PLUGIN_OBJ_STATE *));    pComponent->pppOEMaxServices = maxServices;    if  (NULL == pfwEventPublish(pfw, "PPP_SUB_LAYER_DEAD_EVENT"))        return(ERROR);    return OK;    }/******************************************************************************** pppOEthernetDelete - delete PPPoE component from the specified framework** This routine deletes the PPPoE component from the framework** The PPPoE plug-in component object allocated by pppOEthernetCreate() is * freed if there are no references to this object from a * Stack or Profile object in the framework.** RETURNS: OK or ERROR*/STATUS pppOEthernetDelete    (    PFW_OBJ * pfw	  /* framework we are removing ourselves from */    )    {    PFW_COMPONENT_OBJ *pComponent;    PPPOE_COMPONENT *pppOEComponent;    pComponent = pfwComponentObjGetByName (pfw,"PPP_O_ETHERNET");    if (pComponent == NULL)	return ERROR;    if (pfwComponentDelete(pComponent) != OK)	return ERROR;    pppOEComponent = (PPPOE_COMPONENT *) pComponent;    if (pppOEComponent->operatingMode == PPPOE_AC_MODE)	{	pfwFree(pppOEComponent->pppOEServiceNameMap);	}    pfwFree(pComponent);    return OK;    }/******************************************************************************** pppOEInterfaceBind - bind our interfaces here*/LOCAL STATUS pppOEInterfaceBind    (    PFW_PLUGIN_OBJ * pluginObj    )    {    PPPOE_COMPONENT * pComponent = (PPPOE_COMPONENT *)pluginObj;    ADAPTER_COMPONENT_STATISTICS_INTERFACE * statisticsInterface;    PHY_PORT_INTERFACE * phyPortInterface;    PFW_OBJ * pfw = pluginObj->pfwObj;    unsigned int id;    /* publish and bind our adapter component statistics interface */    if ((id = pfwInterfaceRegister(pfw,                      "ADAPTER_COMPONENT_STATISTICS_INTERFACE")) > 0)        {        statisticsInterface = &pComponent->statisticsInterface;        statisticsInterface->interfaceObj.id = id;        statisticsInterface->interfaceObj.pluginObj = pluginObj;        statisticsInterface->statisticsGet = pppOEAdptrStatisticsGet;        pfwInterfaceBind (&statisticsInterface->interfaceObj);        }    /* publish and bind our physical port interface */    if ((id = pfwInterfaceRegister(pfw, "PHY_PORT_INTERFACE")) > 0)        {        phyPortInterface = &pComponent->phyPortInterface;        phyPortInterface->interfaceObj.id = id;        phyPortInterface->interfaceObj.pluginObj = pluginObj;        phyPortInterface->portNumberGet = pppOEAdptrPortNumberGet;        phyPortInterface->portTypeGet = pppOEAdptrPortTypeGet;        pfwInterfaceBind (&phyPortInterface->interfaceObj);        }    /*      * first register our interfaces; Note that registration could have been     * done during pppOEthernetInit as well     */    if ((id = pfwInterfaceRegister (pfw,                        "FRAMING_COMPONENT_STACK_RESOLVE_INTERFACE")) == 0)        {        printf("PPPOE: Could not Register FRAMING_STACK_RESOLVE_INTERFACE\n");        return ERROR;        }    /* bind the interface */    pComponent->stackResolveInterface.interfaceObj.pluginObj = pluginObj;    pComponent->stackResolveInterface.interfaceObj.id = id;    pComponent->stackResolveInterface.stackResolve = pppOEStackObjResolve;    return (pfwInterfaceBind (&pComponent->stackResolveInterface.interfaceObj));    }/********************************************************************************* pppOEServiceNameAdd - add a service name and listen for service requests** This routine installs a service with the specified "svcName" by creating* a stack based on the given profileObj. This stack listens for clients * requesting the specified service. For every session assigned a new stack * is created using the same profileObj. Specifying a zero length string* implies that any service is acceptable** NOTE: Care must be taken to avoid changing the profileObj in a manner that* will disable creation of stacks by the daemon stack ** RETURNS: OK on success and ERROR otherwise*/STATUS pppOEServiceNameAdd    (    PFW_PROFILE_OBJ * profileObj,        /* profile this service is based on */    char * svcName,      	         /* service name we're adding */    PFW_STACK_OBJ_CALLBACKS *callbacks,  /* stack add/delete callbacks */    void * userHandle                	 /* callback handle */    )    {    PFW_OBJ * pfw;    PFW_STACK_OBJ * stackObj = 0;    PFW_PLUGIN_OBJ_STATE * pComponentState = NULL;    PPPOE_STACK_DATA * pStackData =  NULL;    PPPOE_PROFILE_DATA * pProfileData =  NULL;    UINT32 paramId;    PPPOE_COMPONENT *pComponent;    char paramValue[32];    int i;    if (profileObj == NULL)	{	printf ("PPPOE: Null profile object \n");	return ERROR;	}    if ((pfw = pfwProfilePfwObjGet(profileObj)) == NULL)	{	printf ("PPPOE: Null framework object \n");	return ERROR;	}    /* retrieve our object from the framework */    pComponent =(PPPOE_COMPONENT *)pfwPluginObjGet(pfw,"PPP_O_ETHERNET");    if (pComponent == NULL)	{	printf ("PPPOE: Null plugin object \n");	return ERROR;	}    if (pComponent->operatingMode != PPPOE_AC_MODE)	return ERROR;    bzero(paramValue,32);    if (pComponent->pppOEServices < pComponent->pppOEMaxServices)	{	/* find room for the new service in the table and add it */	for (i = 1 ; i <= pComponent->pppOEMaxServices ; i++)	    {	    if (pComponent->pppOEServiceNameMap[i] == NULL)		{		/* make sure PROFILE has connection mode set to AC */		paramId = pfwParameterIdGet(pfw, "pppOE_connectionMode");		sprintf (paramValue,"0x%x",PPPOE_AC_MODE);		pfwProfileSet(profileObj, paramId, paramValue);		paramId = pfwParameterIdGet(pfw, "pppOE_svcName");		pfwProfileSet(profileObj,paramId, svcName);		if ((stackObj =pfwStackAdd(profileObj,callbacks,userHandle))		    == NULL)		    {		    printf("PPPOE: Stack add failed for service Name %s\n",			    svcName);		    return ERROR;		    }		pComponentState = pfwPluginObjStateGet (stackObj,					(PFW_PLUGIN_OBJ *)pComponent);		if (pComponentState == NULL)		    {		    /* delete connection */		    return (pfwStackDelete(stackObj));		    }		pStackData = (PPPOE_STACK_DATA *)pComponentState->stackData;		pStackData->serviceMapId = i;		pStackData->profileObj = profileObj;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品久久久久一区| 日韩和的一区二区| 日韩一卡二卡三卡| 久久久久久久综合色一本| 日本一区二区三区高清不卡| 亚洲一区二区综合| 精品亚洲免费视频| 在线精品视频免费播放| 欧美精品一区二区久久久| 一区二区三区在线看| 激情五月播播久久久精品| 欧美中文字幕一区二区三区亚洲| 亚洲亚洲人成综合网络| 成人自拍视频在线观看| 9191久久久久久久久久久| 亚洲国产一区二区视频| 欧美色综合影院| 国产精品三级久久久久三级| 美女精品一区二区| 欧美日韩mp4| 亚洲伊人伊色伊影伊综合网| 欧美一二三区在线观看| 国产馆精品极品| 日韩欧美高清一区| 亚洲成人av一区二区| 色久综合一二码| 中文字幕国产精品一区二区| 国产一区二区三区四| 日韩一二三四区| 成人黄色av网站在线| 久久婷婷一区二区三区| 国产伦精品一区二区三区免费| 中文字幕亚洲成人| 成人性生交大片免费看中文网站| 一区二区不卡在线播放 | va亚洲va日韩不卡在线观看| 欧美成人女星排行榜| 99这里只有久久精品视频| 男男成人高潮片免费网站| 欧美丰满嫩嫩电影| 无码av中文一区二区三区桃花岛| 在线观看三级视频欧美| 国产一区啦啦啦在线观看| 亚洲一区二区在线免费观看视频 | 午夜精品一区二区三区免费视频| 久久久91精品国产一区二区精品| 激情综合色丁香一区二区| 亚洲免费观看高清完整版在线观看熊 | 久久只精品国产| 欧美色老头old∨ideo| 亚洲第一狼人社区| 亚洲国产成人私人影院tom| 欧美一区二区成人6969| 久久91精品国产91久久小草| 亚洲图片欧美色图| 亚洲天堂精品视频| 欧美色倩网站大全免费| 99久久综合99久久综合网站| 国产一区二区三区蝌蚪| 三级成人在线视频| 亚洲午夜久久久久| 综合色天天鬼久久鬼色| 国产色一区二区| 欧美大片免费久久精品三p| 欧美色综合天天久久综合精品| 欧美日韩aaaaa| 色天天综合色天天久久| 视频在线在亚洲| 亚洲国产精品视频| 一区二区免费在线| 一区二区三区视频在线看| 亚洲特级片在线| 亚洲欧美日韩一区| 亚洲视频网在线直播| 18成人在线视频| 国产精品福利在线播放| 欧美精选一区二区| 欧美喷水一区二区| 欧美精品成人一区二区三区四区| 欧美揉bbbbb揉bbbbb| 欧美性猛交xxxx乱大交退制版| 91激情在线视频| 在线国产亚洲欧美| 欧美午夜精品久久久| 欧美三区在线视频| 欧美精品在线一区二区| 日韩午夜激情av| 337p日本欧洲亚洲大胆精品| 久久婷婷久久一区二区三区| 久久网站最新地址| 国产精品久久久久永久免费观看| 亚洲欧洲日产国码二区| 亚洲视频一区二区在线观看| 一区二区免费看| 亚洲成人免费视| 久久国产欧美日韩精品| 亚洲成人精品一区二区| 日韩二区三区在线观看| 91精品国产品国语在线不卡| 日韩美女在线视频| 久久五月婷婷丁香社区| 国产精品成人网| 亚洲高清视频中文字幕| 日本欧美一区二区在线观看| 国产一区二区三区高清播放| 不卡av免费在线观看| 欧美性色综合网| 精品国产91亚洲一区二区三区婷婷 | 一区二区三区日韩欧美精品| 亚洲韩国一区二区三区| 麻豆精品视频在线| 成人亚洲精品久久久久软件| 欧美三级电影精品| 欧美国产成人在线| 亚洲bt欧美bt精品777| 国产麻豆9l精品三级站| 91色在线porny| 国产激情一区二区三区| 色婷婷久久综合| 日韩一级高清毛片| 亚洲猫色日本管| 久久爱www久久做| 色综合夜色一区| 色女孩综合影院| 欧美videofree性高清杂交| 综合激情网...| 美日韩一级片在线观看| av成人免费在线观看| 欧美一区在线视频| 亚洲人成网站色在线观看| 麻豆91精品视频| 欧美写真视频网站| 欧美国产国产综合| 黄色精品一二区| 欧美午夜一区二区三区| 国产精品天天看| 蜜桃精品视频在线| 欧美视频在线一区| 亚洲欧洲日韩综合一区二区| 国产一区二区伦理片| 在线播放中文一区| 一区二区三区丝袜| 97精品久久久久中文字幕 | 一区二区三区在线影院| 国产一区二区在线看| 欧美日韩亚洲综合一区| 亚洲欧洲精品一区二区三区| 精品一区二区三区视频| 欧美日韩国产综合一区二区 | 91麻豆精品国产91久久久| 最新国产成人在线观看| 国内精品嫩模私拍在线| 欧美一级在线观看| 丝袜美腿亚洲综合| 在线观看成人免费视频| 亚洲人成网站色在线观看| 99久久免费国产| 国产精品久久久久一区二区三区| 国产一区二区三区观看| 欧美精品一区二区久久久| 激情综合色播五月| 亚洲va国产va欧美va观看| 97se狠狠狠综合亚洲狠狠| 国产精品久久久久婷婷二区次| 国产美女娇喘av呻吟久久| 欧美精品一区二区三区蜜桃| 精品中文av资源站在线观看| 日韩欧美一级二级三级| 奇米精品一区二区三区四区| 3d动漫精品啪啪一区二区竹菊| 亚洲va韩国va欧美va精品| 欧美日韩mp4| 久久国产夜色精品鲁鲁99| 久久久蜜桃精品| 懂色av中文字幕一区二区三区 | 欧美三级日韩三级国产三级| 一区二区三区四区激情| 日本道免费精品一区二区三区| 亚洲精品日产精品乱码不卡| 久久电影网电视剧免费观看| 欧美变态凌虐bdsm| 国产成人在线免费| 国产精品国产三级国产普通话三级 | 亚洲免费观看高清完整版在线观看 | 欧美国产激情一区二区三区蜜月| 成人免费电影视频| 国产精品动漫网站| 在线观看一区二区视频| 午夜激情一区二区| 日韩精品一区二区三区视频播放| 国产在线精品一区二区不卡了| 国产亚洲精品7777| 91免费在线播放| 午夜影院久久久| 久久综合狠狠综合| 99麻豆久久久国产精品免费| 亚洲综合在线电影| 日韩免费看的电影| 成人视屏免费看| 亚洲成va人在线观看|