📄 http_ssi_portal_state.hxx
字号:
//====================================================================// // Copyright (C) 2006-2007, Frank.Ning// // Filename: http_ssi_portal_state.hxx// Author: Frank.Ning <zegong.ning@dinglicom.com>// Description: // // $Id:$// //====================================================================#ifndef __HTTP_SSI_PORTAL_STATE_HXX__#define __HTTP_SSI_PORTAL_STATE_HXX__static const char* const http_ssi_portal_state_hxx_version = "$Id:$";#include "status.hxx"struct http_ssi_portal_state : public fsm::state<http_ssi_portal_state, FetionRegisterStateList, bool>{ bool on_process( shared_ptr<event> evt ) { shared_ptr<http_event> hevt; hevt.reset( evt ); if( !hevt ) return false ; shared_ptr<http_msg<http_hdr> > msg = hevt->get_msg( ); if( !msg ) return false ; shared_ptr<http_request<http_hdr> > request; request.reset( msg ); if( request ) return on_process( request ); shared_ptr<http_status<http_hdr> > status; status.reset( msg ); if( status ) return on_process( status ); return false ; } bool on_process( shared_ptr<http_request<http_hdr> > request ) { ua_callctl& ua = ua_callctl::instance( ); ua.set_last_http_request( request ); ua.get_output_channel( )->add( request ); return true ; } bool on_process( shared_ptr<http_status<http_hdr> > status ) { ua_callctl& ua = ua_callctl::instance( ); ua.set_last_http_status( status ); if( status->code( ) != 200 ) return false ; if( status->code( ) >= 400 ) { ua.get_output_channel( )->add( ua.get_last_http_request( ), 15*1000 ); return true ; } ua.encode_ssi_portal( ); switch_to<sip_resister_state>( ); return true ; }};#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -