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

📄 pppncplib.c

📁 这是全套的PPP协议的源码
💻 C
📖 第 1 页 / 共 2 页
字号:
PPP_CONTROL_PHASE ipcp_pppPhaseGet ()    {    return NETWORK_PHASE;    }/******************************************************************************** ipcp_pppStateGet - Get the ipcp ppp state** RETURNS: PPP_STATE*/PPP_STATE ipcp_pppStateGet    (    PFW_PLUGIN_OBJ_STATE *           pState    /* state for the stack */    )    {    PPP_CONTROL_PROTOCOL_STATE_DATA *pStateData =            (PPP_CONTROL_PROTOCOL_STATE_DATA *) pState->stackData;    return (pStateData->state);    }/******************************************************************************** ipcp_periodic_timer - start the timer** RETURNS: OK or ERROR*/STATUS ipcp_periodic_timer    (    PFW_PLUGIN_OBJ_STATE *             pPluginState,   /* state for the satck */    int                                arg                 )    {    NCP_STACK_DATA * pStackData = (NCP_STACK_DATA *) pPluginState->stackData;    periodic_ipcp_configure_or_termination_request (pPluginState,0);    pfwTimerStart (pStackData->ncp_timer,PFW_SECOND,1,ipcp_periodic_timer,0);    return OK;    }/******************************************************************************** periodic_ipcp_configure_or_termination_request - IPCP configure or termination*                                                  request periodic retry packet** RETURNS: N/A*/void periodic_ipcp_configure_or_termination_request    (    PFW_PLUGIN_OBJ_STATE *        pPluginState,   /* value for this parameter */    UINT32                        arg    )    {    NCP_STACK_DATA *   pStackData = (NCP_STACK_DATA *) pPluginState->stackData;    NCP_PROFILE_DATA * pProfileData = 			    (NCP_PROFILE_DATA * )pPluginState->profileData;    if ((pStackData->stateData.state == PPP_STOPPED_STATE) &&	(pStackData->configuration_request_backoff_period_started == TRUE))	{	++pStackData->configuration_request_backoff_interval;	    	if (pStackData->configuration_request_backoff_interval >= 	    pProfileData->maximum_configuration_request_backoff_interval)	    {	    execute_ppp_state_machine (pPluginState,PPP_DOWN_EVENT,NULL);	    execute_ppp_state_machine (pPluginState,PPP_UP_EVENT,NULL);		    	    pStackData->configuration_request_backoff_period_started = FALSE;	    pStackData->configuration_request_backoff_interval = 0x0000;	    }	}    else if ((pStackData->stateData.state != PPP_STOPPED_STATE) &&	(pStackData->configuration_request_backoff_period_started == TRUE))	{	pStackData->configuration_request_backoff_period_started = FALSE;	pStackData->configuration_request_backoff_interval = 0x0000;	}	    if ((pStackData->stateData.state > PPP_STOPPING_STATE) && 	(pStackData->stateData.state < PPP_OPENED_STATE))	{	if (++pStackData->configuration_request_send_interval >= 		pProfileData->maximum_configuration_request_send_interval)	    {	    pStackData->configuration_request_send_interval = 0x00000000L;	    if (++pStackData->number_of_ncp_configuration_requests <=	       (pProfileData->maximum_number_of_configuration_requests - 1))		{		execute_ppp_state_machine (pPluginState,		    PPP_TIMEOUT_WITH_COUNTER_GREATER_THAN_ZERO_EVENT,		    pStackData->last_txed_ncp_configuration_request_packet);		}	    else		{		if (pStackData->last_txed_ncp_configuration_request_packet		    != NULL)		    {		    m_freem(pStackData->last_txed_ncp_configuration_request_packet);		    pStackData->last_txed_ncp_configuration_request_packet=NULL;		    }		execute_ppp_state_machine (pPluginState,		PPP_TIMEOUT_WITH_COUNTER_EXPIRED_EVENT,NULL);		pStackData->number_of_ncp_configuration_requests = 0x00000000L;			    		if (pStackData->stateData.state == PPP_STOPPED_STATE)		    {		    pStackData->configuration_request_backoff_period_started =									TRUE;		    pStackData->configuration_request_backoff_interval =									0x0000;		    }		}	    }        }    if ((pStackData->stateData.state == PPP_CLOSING_STATE) ||	(pStackData->stateData.state == PPP_STOPPING_STATE))	{	if (++pStackData->termination_request_send_interval >=		    pProfileData->maximum_termination_request_send_interval)	    {	    if (pStackData->number_of_ncp_termination_requests < 		    pProfileData->maximum_number_of_termination_requests)		{		execute_ppp_state_machine (pPluginState,		    PPP_TIMEOUT_WITH_COUNTER_GREATER_THAN_ZERO_EVENT,NULL);		pStackData->termination_request_send_interval = 0x00000000L;		}	    else		{		execute_ppp_state_machine (pPluginState,			    PPP_TIMEOUT_WITH_COUNTER_EXPIRED_EVENT,NULL);		pStackData->termination_request_send_interval = 0x00000000L;		}	    }	}    }/******************************************************************************** retry_ipcp_configure_request - IPCP configure request sending retry packet * NOMANUAL** RETURNS: OK or ERROR*/STATUS retry_ipcp_configure_request    (    PFW_PLUGIN_OBJ_STATE *        pPluginState,     /* state for the stack */    int                           backoffStarted    )    {    NCP_STACK_DATA *   pStackData   = (NCP_STACK_DATA *) pPluginState->stackData;    NCP_PROFILE_DATA * pProfileData = 			    (NCP_PROFILE_DATA * ) pPluginState->profileData;    if (pStackData->stateData.state == PPP_STOPPED_STATE &&        (backoffStarted > 0))        {        execute_ppp_state_machine (pPluginState,PPP_DOWN_EVENT,NULL);        execute_ppp_state_machine (pPluginState,PPP_UP_EVENT,NULL);        pStackData->configuration_request_backoff_period_started = FALSE;        return OK;        }    if ((pStackData->stateData.state > PPP_STOPPING_STATE) && 	(pStackData->stateData.state < PPP_OPENED_STATE))	{	if (++pStackData->number_of_ncp_configuration_requests <	   (pProfileData->maximum_number_of_configuration_requests))	    {	    execute_ppp_state_machine (pPluginState,		PPP_TIMEOUT_WITH_COUNTER_GREATER_THAN_ZERO_EVENT, NULL);	    }	else	    {	    if (pStackData->last_txed_ncp_configuration_request_packet		!= NULL)		{		netMblkClChainFree (		    pStackData->last_txed_ncp_configuration_request_packet);		pStackData->last_txed_ncp_configuration_request_packet=NULL;		}        if (pStackData->last_rxed_ncp_configuration_request_packet        != NULL)        {        netMblkClChainFree (            pStackData->last_rxed_ncp_configuration_request_packet);        pStackData->last_rxed_ncp_configuration_request_packet=NULL;        }	    execute_ppp_state_machine (pPluginState,				PPP_TIMEOUT_WITH_COUNTER_EXPIRED_EVENT,NULL);	    pStackData->number_of_ncp_configuration_requests = 0x00000000L;				    if (pStackData->stateData.state == PPP_STOPPED_STATE &&                pProfileData->maximum_configuration_request_backoff_interval> 0)		{		if (pfwTimerStart (pStackData->ncp_timer,PFW_SECOND,		   pProfileData->maximum_configuration_request_backoff_interval,		   retry_ipcp_configure_request,1) == ERROR)		    {		    logMsg ("Back off start failed: state = %d\n",				    pStackData->stateData.state,2,3,4,5,6);		    }		pStackData->configuration_request_backoff_period_started = TRUE;		}	    }	}    return OK;    }/******************************************************************************** retry_ipcp_termination_request - IPCP termination request sending retry packet* NOMANUAL** RETURNS: OK or ERROR*/STATUS retry_ipcp_termination_request    (    PFW_PLUGIN_OBJ_STATE *       pPluginState,   /* state for the stack */    int                          arg    )    {    NCP_STACK_DATA *   pStackData   = (NCP_STACK_DATA *) pPluginState->stackData;    NCP_PROFILE_DATA * pProfileData = 			    (NCP_PROFILE_DATA * ) pPluginState->profileData;    if ((pStackData->stateData.state == PPP_CLOSING_STATE) ||	(pStackData->stateData.state == PPP_STOPPING_STATE))	{	if (pStackData->number_of_ncp_termination_requests < 		pProfileData->maximum_number_of_termination_requests)	    {	    execute_ppp_state_machine (pPluginState,		PPP_TIMEOUT_WITH_COUNTER_GREATER_THAN_ZERO_EVENT,NULL);	    }	else	    {	    execute_ppp_state_machine (pPluginState,			PPP_TIMEOUT_WITH_COUNTER_EXPIRED_EVENT,NULL);	    }	}    return OK;    }

⌨️ 快捷键说明

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