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

📄 megaco_config.erl

📁 OTP是开放电信平台的简称
💻 ERL
📖 第 1 页 / 共 5 页
字号:
%%----------------------------------------------------------------------%% Func: handle_cast/2%% Returns: {noreply, State}          |%%          {noreply, State, Timeout} |%%          {stop, Reason, State}            (terminate/2 is called)%%----------------------------------------------------------------------handle_cast({trans_sender_exit, Reason, CH}, S) ->    warning_msg("transaction sender [~p] restarting: "		"~n~p", [CH, Reason]),    case lookup_local_conn(CH) of	[] ->	    error_msg("connection data not found for ~p~n"		      "when restarting transaction sender", [CH]);	[CD] ->	    CD2 = trans_sender_start(CD#conn_data{trans_sender = undefined}),	    ets:insert(megaco_local_conn, CD2)    end,    {noreply, S};handle_cast(Msg, S) ->    warning_msg("received unexpected message: "		"~n~w", [Msg]),    {noreply, S}.%%----------------------------------------------------------------------%% Func: handle_info/2%% Returns: {noreply, State}          |%%          {noreply, State, Timeout} |%%          {stop, Reason, State}            (terminate/2 is called)%%----------------------------------------------------------------------handle_info({'EXIT', Pid, Reason}, S) when Pid == S#state.parent_pid ->    {stop, Reason, S};handle_info(Info, S) ->    warning_msg("received unknown info: "		"~n~w", [Info]),    {noreply, S}.%%----------------------------------------------------------------------%% Func: terminate/2%% Purpose: Shutdown the server%% Returns: any (ignored by gen_server)%%----------------------------------------------------------------------terminate(_Reason, _State) ->    ok.%%----------------------------------------------------------------------%% Func: code_change/3%% Purpose: Convert process state when code is changed%% Returns: {ok, NewState}%%----------------------------------------------------------------------code_change(_Vsn, S, upgrade_from_pre_3_6) ->    upgrade_user_info_pre_3_6(),    upgrade_conn_data_pre_3_6(),    {ok, S};code_change(_Vsn, S, upgrade_from_pre_3_5_1) ->    upgrade_user_info_pre_3_5_1(),    upgrade_conn_data_pre_3_5_1(),    {ok, S};code_change(_Vsn, S, downgrade_to_pre_3_6) ->    downgrade_user_info_pre_3_6(),    downgrade_conn_data_pre_3_6(),    {ok, S};code_change(_Vsn, S, downgrade_to_pre_3_5_1) ->    downgrade_user_info_pre_3_5_1(),    downgrade_conn_data_pre_3_5_1(),    {ok, S};code_change(_Vsn, S, _Extra) ->    {ok, S}.%% -- Upgrade user info --upgrade_user_info_pre_3_6() ->    NewValues = [{resend_indication, false},		 {cancel,            false}],    upgrade_user_info(NewValues).upgrade_user_info_pre_3_5_1() ->    NewValues = [{cancel, false}],    upgrade_user_info(NewValues).upgrade_user_info(NewValues) ->    Users = [default|system_info(users)],    F = fun({Item, Val}) ->		upgrade_user_info(Users, Item, Val)	end,    lists:foreach(F, NewValues),    ok.upgrade_user_info(Users, Item, Val) ->    F = fun(User) -> do_update_user(User, Item, Val) end,    lists:foreach(F, Users),    ok.%% -- Downgrade user info --downgrade_user_info_pre_3_6() ->    NewItems = [cancel],    downgrade_user_info(NewItems).downgrade_user_info_pre_3_5_1() ->    NewItems = [resend_indication, cancel],    downgrade_user_info(NewItems).downgrade_user_info(NewItems) ->    Users = [default|system_info(users)],    F = fun(Item) ->		downgrade_user_info(Users, Item)	end,    lists:foreach(F, NewItems),    ok.    downgrade_user_info(Users, Item) ->    F = fun(User) -> do_downgrade_user_info(User, Item) end,    lists:foreach(F, Users),    ok.do_downgrade_user_info(User, Item) ->    ets:delete(megaco_config, {User, Item}).		%% -- Upgrade conn data --upgrade_conn_data_pre_3_6() ->    Conns            = system_info(connections),    ResendIndDefault = false,     Defaults         = [ResendIndDefault],    upgrade_conn_data(Conns, Defaults).upgrade_conn_data_pre_3_5_1() ->    Conns            = system_info(connections),    CancelDefault    = false,     ResendIndDefault = false,     Defaults         = [CancelDefault, ResendIndDefault],    upgrade_conn_data(Conns, Defaults).upgrade_conn_data(Conns, Defaults) ->    F = fun(CH) ->		case lookup_local_conn(CH) of		    [] ->			ok;		    [CD] ->			do_upgrade_conn_data(CD, Defaults)		end	end,    lists:foreach(F, Conns),    ok.do_upgrade_conn_data(OldStyleCD, Defaults) ->    NewStyleCD = new_conn_data(OldStyleCD, Defaults),    ets:insert(megaco_local_conn, NewStyleCD).    %% From pre-3.5.1new_conn_data({conn_data, CH, Serial, MaxSerial, ReqTmr, LongReqTmr, 	       AutoAck, 	       TransAck, TransAckMaxCnt, 	       TransReq, TransReqMaxCnt, TransReqMaxSz, 	       TransTmr, TransSndr, 	       PendingTmr, 	       SentPendingLimit, 	       RecvPendingLimit,	       ReplyTmr, CtrPid, MonRef, 	       Sendmod, SendHandle, 	       EncodeMod, EncodeConf, 	       ProtV, AuthData, 	       UserMod, UserArgs, ReplyAction, ReplyData,	       Threaded,	       StrictVersion,	       LongReqResend	       %% Cancel           - This is where to insert the new value	       %% ResendIndication - This is where to insert the new value	      }, 	      [CancelDefault, ResendIndDefault]) ->    #conn_data{conn_handle          = CH, 	       serial               = Serial,	       max_serial           = MaxSerial,	       request_timer        = ReqTmr,	       long_request_timer   = LongReqTmr,	       auto_ack             = AutoAck,	       trans_ack            = TransAck,	       trans_ack_maxcount   = TransAckMaxCnt,	       trans_req            = TransReq,	       trans_req_maxcount   = TransReqMaxCnt,	       trans_req_maxsize    = TransReqMaxSz,	       trans_timer          = TransTmr,	       trans_sender         = TransSndr,	       pending_timer        = PendingTmr,	       sent_pending_limit   = SentPendingLimit,	       recv_pending_limit   = RecvPendingLimit, 	       reply_timer          = ReplyTmr,	       control_pid          = CtrPid,	       monitor_ref          = MonRef,	       send_mod             = Sendmod,	       send_handle          = SendHandle,	       encoding_mod         = EncodeMod,	       encoding_config      = EncodeConf,	       protocol_version     = ProtV,	       auth_data            = AuthData,	       user_mod             = UserMod,	       user_args            = UserArgs,	       reply_action         = ReplyAction,	       reply_data           = ReplyData,	       threaded             = Threaded,	       strict_version       = StrictVersion,	       long_request_resend  = LongReqResend,	       cancel               = CancelDefault,   % The new value	       resend_indication    = ResendIndDefault % The new value	      };%% From pre-3.6 (but not pre-3.5.1)new_conn_data({conn_data, CH, Serial, MaxSerial, ReqTmr, LongReqTmr, 	       AutoAck, 	       TransAck, TransAckMaxCnt, 	       TransReq, TransReqMaxCnt, TransReqMaxSz, 	       TransTmr, TransSndr, 	       PendingTmr, 	       SentPendingLimit, 	       RecvPendingLimit,	       ReplyTmr, CtrPid, MonRef, 	       Sendmod, SendHandle, 	       EncodeMod, EncodeConf, 	       ProtV, AuthData, 	       UserMod, UserArgs, ReplyAction, ReplyData,	       Threaded,	       StrictVersion,	       LongReqResend,	       Cancel	       %% ResendIndication - This is where to insert the new value	      }, 	      [ResendIndDefault]) ->    #conn_data{conn_handle          = CH, 	       serial               = Serial,	       max_serial           = MaxSerial,	       request_timer        = ReqTmr,	       long_request_timer   = LongReqTmr,	       auto_ack             = AutoAck,	       trans_ack            = TransAck,	       trans_ack_maxcount   = TransAckMaxCnt,	       trans_req            = TransReq,	       trans_req_maxcount   = TransReqMaxCnt,	       trans_req_maxsize    = TransReqMaxSz,	       trans_timer          = TransTmr,	       trans_sender         = TransSndr,	       pending_timer        = PendingTmr,	       sent_pending_limit   = SentPendingLimit,	       recv_pending_limit   = RecvPendingLimit, 	       reply_timer          = ReplyTmr,	       control_pid          = CtrPid,	       monitor_ref          = MonRef,	       send_mod             = Sendmod,	       send_handle          = SendHandle,	       encoding_mod         = EncodeMod,	       encoding_config      = EncodeConf,	       protocol_version     = ProtV,	       auth_data            = AuthData,	       user_mod             = UserMod,	       user_args            = UserArgs,	       reply_action         = ReplyAction,	       reply_data           = ReplyData,	       threaded             = Threaded,	       strict_version       = StrictVersion,	       long_request_resend  = LongReqResend,	       cancel               = Cancel, 	       resend_indication    = ResendIndDefault % The new value	      }.%% -- Downgrade conn data --downgrade_conn_data_pre_3_6() ->    Conns = system_info(connections),    Fields = [resend_indication],     downgrade_conn_data(Conns, Fields).downgrade_conn_data_pre_3_5_1() ->    Conns = system_info(connections),    Fields = [cancel, resend_indication],     downgrade_conn_data(Conns, Fields).downgrade_conn_data(Conns, Fields) ->    F = fun(CH) ->		case lookup_local_conn(CH) of		    [] ->			ok;		    [CD] ->			do_downgrade_conn_data(CD, Fields)		end	end,    lists:foreach(F, Conns).do_downgrade_conn_data(NewStyleCD, Fields) ->    OldStyleCD = old_conn_data(NewStyleCD, Fields),    ets:insert(megaco_local_conn, OldStyleCD).%% To pre-3.5.1old_conn_data(#conn_data{conn_handle          = CH, 			 serial               = Serial,			 max_serial           = MaxSerial,			 request_timer        = ReqTmr,			 long_request_timer   = LongReqTmr,			 auto_ack             = AutoAck,			 trans_ack            = TransAck,			 trans_ack_maxcount   = TransAckMaxCnt,			 trans_req            = TransReq,			 trans_req_maxcount   = TransReqMaxCnt,			 trans_req_maxsize    = TransReqMaxSz,			 trans_timer          = TransTmr,			 trans_sender         = TransSndr,			 pending_timer        = PendingTmr,			 sent_pending_limit   = SentPendingLimit,			 recv_pending_limit   = RecvPendingLimit, 			 reply_timer          = ReplyTmr,			 control_pid          = CtrPid,			 monitor_ref          = MonRef,			 send_mod             = Sendmod,			 send_handle          = SendHandle,			 encoding_mod         = EncodeMod,			 encoding_config      = EncodeConf,			 protocol_version     = ProtV,			 auth_data            = AuthData,			 user_mod             = UserMod,			 user_args            = UserArgs,			 reply_action         = ReplyAction,			 reply_data           = ReplyData,			 threaded             = Threaded,			 strict_version       = StrictVersion,			 long_request_resend  = LongReqResend			 %% cancel               = Cancel			 %% resend_indication    = ResendIndication			},	      [cancel, resend_indication]) ->    {conn_data, CH, Serial, MaxSerial, ReqTmr, LongReqTmr,      AutoAck,      TransAck, TransAckMaxCnt,      TransReq, TransReqMaxCnt, TransReqMaxSz, 

⌨️ 快捷键说明

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