~ubuntu-branches/debian/squeeze/erlang/squeeze

« back to all changes in this revision

Viewing changes to lib/snmp/src/agent/snmpa_mpd.erl

  • Committer: Bazaar Package Importer
  • Author(s): Sergei Golovan
  • Date: 2009-08-05 20:54:29 UTC
  • mfrom: (6.1.2 sid)
  • Revision ID: james.westby@ubuntu.com-20090805205429-pm4pnwew8axraosl
Tags: 1:13.b.1-dfsg-5
* Fixed parentheses in Emacs mode (closes: #536891).
* Removed unnecessary conflicts with erlang-manpages package.
* Added workaround for #475459: disabled threads on sparc architecture.
  This breaks wxErlang, so it's only a temporary solution.

Show diffs side-by-side

added added

removed removed

Lines of Context:
125
125
 
126
126
        #message{version = 'version-1', vsn_hdr = Community, data = Data} 
127
127
          when State#state.v1 =:= true ->
128
 
            ?vlog("~n   v1, community: ~s", [Community]),
 
128
            ?vlog("v1, community: ~s", [Community]),
129
129
            HS = ?empty_msg_size + length(Community),
130
130
            v1_v2c_proc('version-1', NoteStore, Community, TDomain, TAddress, 
131
131
                        Data, HS, Log, Packet);
132
132
 
133
133
        #message{version = 'version-2', vsn_hdr = Community, data = Data}
134
134
          when State#state.v2c =:= true ->
135
 
            ?vlog("~n   v2c, community: ~s", [Community]),
 
135
            ?vlog("v2c, community: ~s", [Community]),
136
136
            HS = ?empty_msg_size + length(Community),
137
137
            v1_v2c_proc('version-2', NoteStore, Community, TDomain, TAddress, 
138
138
                        Data, HS, Log, Packet);
139
139
 
140
140
        #message{version = 'version-3', vsn_hdr = V3Hdr, data = Data}
141
141
          when State#state.v3 =:= true ->
142
 
            ?vlog("~n   v3, msgID: ~p, msgFlags: ~p, msgSecModel: ~p",
 
142
            ?vlog("v3, msgID: ~p, msgFlags: ~p, msgSecModel: ~p",
143
143
                  [V3Hdr#v3_hdr.msgID,
144
144
                   V3Hdr#v3_hdr.msgFlags,
145
145
                   V3Hdr#v3_hdr.msgSecurityModel]),
331
331
        length(ContextName) - length(ContextEngineID),
332
332
    ?vdebug("v3_proc -> PDU type: ~p", [PDU#pdu.type]),
333
333
    case PDU#pdu.type of
 
334
        report when DiscoOrPlain =:= discovery ->
 
335
            %% Discovery step 1 response
 
336
            Key  = {agent, MsgID}, 
 
337
            Note = snmp_note_store:get_note(NoteStore, Key), 
 
338
            case Note of
 
339
                #note{sec_engine_id = "",
 
340
                      sec_model     = _MsgSecModel,
 
341
                      sec_name      = "",
 
342
                      sec_level     = _SecLevel,
 
343
                      ctx_engine_id = _CtxEngineID,
 
344
                      ctx_name      = _CtxName,
 
345
                      disco         = true,
 
346
                      req_id        = _ReqId} ->
 
347
                    %% This is part of the discovery process initiated by us.
 
348
                    %% Response to the discovery step 1 request
 
349
                    ?vdebug("v3_proc -> discovery step 1 response", []),
 
350
                    {ok, 'version-3', PDU, PduMMS, {discovery, SecEngineID}};
 
351
                #note{sec_engine_id = SecEngineID,
 
352
                      sec_model     = _MsgSecModel,
 
353
                      sec_name      = SecName,
 
354
                      sec_level     = SecLevel,
 
355
                      ctx_engine_id = _CtxEngineID,
 
356
                      ctx_name      = _CtxName,
 
357
                      disco         = true,
 
358
                      req_id        = _ReqId} ->
 
359
                    %% This is part of the discovery process initiated by us.
 
360
                    %% Response to the discovery step 2 request
 
361
                    ?vdebug("v3_proc -> discovery step 2 response", []),
 
362
                    {ok, 'version-3', PDU, PduMMS, discovery};
 
363
                _ ->
 
364
                    %% 7.2.11
 
365
                    throw({discarded, report})
 
366
            end;
334
367
        report ->
335
368
            %% 7.2.11
336
369
            throw({discarded, report});
826
859
generate_discovery_msg(NoteStore, Pdu, MsgData, Timeout, To) ->
827
860
    {SecData, ContextEngineID, ContextName}       = MsgData,
828
861
    {SecModel, SecName, SecLevelFlag, TargetName} = SecData,
829
 
    ManagerEngineId = 
 
862
    {ManagerEngineId, InitialUserName} = 
830
863
        case get_target_engine_id(TargetName) of
831
864
            {ok, discovery} ->  
832
 
                "";            % Discovery stage 1
 
865
                {"", ""};             % Discovery stage 1
 
866
            {ok, {discovery, IUN}} ->  
 
867
                {"", IUN};            % Discovery stage 1
833
868
            {ok, TargetEngineId} ->
834
 
                TargetEngineId % Discovery stage 2
 
869
                {TargetEngineId, ""}  % Discovery stage 2
835
870
        end,
836
871
    generate_discovery_msg(NoteStore, Pdu, 
837
872
                           ContextEngineID, ContextName, 
838
873
                           SecModel, SecName, SecLevelFlag, 
839
 
                           ManagerEngineId, Timeout, To).
 
874
                           ManagerEngineId, 
 
875
                           InitialUserName, 
 
876
                           Timeout, To).
840
877
 
841
878
generate_discovery_msg(NoteStore, Pdu, 
842
879
                       ContextEngineID, ContextName, 
843
880
                       SecModel, _SecName, _SecLevelFlag, 
844
 
                       "" = ManagerEngineID, Timeout, To) ->
 
881
                       "" = ManagerEngineID, 
 
882
                       InitialUserName,
 
883
                       Timeout, To) ->
845
884
    %% Discovery step 1 uses SecLevel = noAuthNoPriv
846
885
    SecName      = "", 
847
886
    SecLevelFlag = 0, % ?'SnmpSecurityLevel_noAuthNoPriv', 
848
887
    generate_discovery_msg2(NoteStore, Pdu, 
849
888
                            ContextEngineID, ManagerEngineID, 
850
889
                            SecModel, SecName, SecLevelFlag,
 
890
                            InitialUserName, 
851
891
                            ContextName, Timeout, To);
852
892
generate_discovery_msg(NoteStore, Pdu, 
853
893
                       ContextEngineID, ContextName, 
854
894
                       SecModel, SecName, SecLevelFlag, 
855
 
                       ManagerEngineID, Timeout, To) ->
 
895
                       ManagerEngineID, 
 
896
                       InitialUserName,
 
897
                       Timeout, To) ->
 
898
    %% SecLevelFlag = 1, % ?'SnmpSecurityLevel_authNoPriv', 
856
899
    generate_discovery_msg2(NoteStore, Pdu, 
857
900
                            ContextEngineID, ManagerEngineID, 
858
901
                            SecModel, SecName, SecLevelFlag,
 
902
                            InitialUserName, 
859
903
                            ContextName, Timeout, To).
860
904
 
861
905
generate_discovery_msg2(NoteStore, Pdu, 
862
906
                        ContextEngineID, ManagerEngineID, 
863
907
                        SecModel, SecName, SecLevelFlag,
 
908
                        InitialUserName, 
864
909
                        ContextName, Timeout, To) ->
865
910
    %% rfc2272: 7.1.6
866
911
    ScopedPDU = #scopedPdu{contextEngineID = ContextEngineID,
877
922
                                        Pdu, ScopedPDUBytes, 
878
923
                                        ContextEngineID, ManagerEngineID,
879
924
                                        SecModel, SecName, SecLevelFlag,
 
925
                                        InitialUserName, 
880
926
                                        ContextName, Timeout)}
881
927
    end.
882
928
 
888
934
                       Pdu, ScopedPduBytes, 
889
935
                       ContextEngineID, ManagerEngineID, 
890
936
                       SecModel, SecName, SecLevelFlag, 
 
937
                       InitialUserName, 
891
938
                       ContextName, Timeout) ->
892
939
    %% 7.1.7
893
940
    ?vdebug("generate_discovery_msg -> 7.1.7 (~p)", [ManagerEngineID]),
908
955
    case generate_sec_discovery_msg(Message, SecModule, 
909
956
                                    ContextEngineID, 
910
957
                                    ManagerEngineID, 
911
 
                                    SecName, SecLevelFlag) of
 
958
                                    SecName, SecLevelFlag,
 
959
                                    InitialUserName) of
912
960
        {ok, Packet} ->
913
961
            %% 7.1.9c
914
962
            %% Store in cache for Timeout msec.
937
985
 
938
986
generate_sec_discovery_msg(Message, SecModule, 
939
987
                           ContextEngineID, ManagerEngineID, 
940
 
                           SecName, SecLevelFlag) ->
 
988
                           SecName, SecLevelFlag, 
 
989
                           InitialUserName) ->
941
990
    case (catch SecModule:generate_discovery_msg(Message, ContextEngineID, 
942
991
                                                 ManagerEngineID, 
943
 
                                                 SecName, SecLevelFlag)) of
 
992
                                                 SecName, SecLevelFlag,
 
993
                                                 InitialUserName)) of
944
994
        {'EXIT', Reason} ->
945
995
            config_err("~p (message: ~p)", [Reason, Message]),
946
996
            {discarded, Reason};