~statik/ubuntu/maverick/erlang/erlang-merge-testing

« back to all changes in this revision

Viewing changes to lib/snmp/src/manager/snmpm.erl

  • Committer: Bazaar Package Importer
  • Author(s): Sergei Golovan
  • Date: 2009-05-01 10:14:38 UTC
  • mfrom: (3.1.4 sid)
  • Revision ID: james.westby@ubuntu.com-20090501101438-6qlr6rsdxgyzrg2z
Tags: 1:13.b-dfsg-2
* Cleaned up patches: removed unneeded patch which helped to support
  different SCTP library versions, made sure that changes for m68k
  architecture applied only when building on this architecture.
* Removed duplicated information from binary packages descriptions.
* Don't require libsctp-dev build-dependency on solaris-i386 architecture
  which allows to build Erlang on Nexenta (thanks to Tim Spriggs for
  the suggestion).

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
%%<copyright>
2
 
%% <year>2004-2007</year>
3
 
%% <holder>Ericsson AB, All Rights Reserved</holder>
4
 
%%</copyright>
5
 
%%<legalnotice>
 
1
%% 
 
2
%% %CopyrightBegin%
 
3
%% 
 
4
%% Copyright Ericsson AB 2004-2009. All Rights Reserved.
 
5
%% 
6
6
%% The contents of this file are subject to the Erlang Public License,
7
7
%% Version 1.1, (the "License"); you may not use this file except in
8
8
%% compliance with the License. You should have received a copy of the
9
9
%% Erlang Public License along with this software. If not, it can be
10
10
%% retrieved online at http://www.erlang.org/.
11
 
%%
 
11
%% 
12
12
%% Software distributed under the License is distributed on an "AS IS"
13
13
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
14
14
%% the License for the specific language governing rights and limitations
15
15
%% under the License.
16
 
%%
17
 
%% The Initial Developer of the Original Code is Ericsson AB.
18
 
%%</legalnotice>
19
 
%%
 
16
%% 
 
17
%% %CopyrightEnd%
 
18
%% 
 
19
 
20
20
-module(snmpm).
21
21
 
22
22
%%----------------------------------------------------------------------
40
40
         which_mibs/0, 
41
41
         name_to_oid/1, oid_to_name/1, 
42
42
 
43
 
         register_user/3, register_user_monitor/3, unregister_user/1, 
 
43
         register_user/3, register_user/4, 
 
44
         register_user_monitor/3, register_user_monitor/4, 
 
45
         unregister_user/1, 
44
46
         which_users/0, 
45
47
 
46
48
         register_agent/2, register_agent/3, register_agent/4, 
47
49
         unregister_agent/2, unregister_agent/3,
48
50
         which_agents/0, which_agents/1, 
49
 
         agent_info/3, update_agent_info/5, 
 
51
         agent_info/2, update_agent_info/4, 
50
52
         
51
53
         register_usm_user/3, unregister_usm_user/2, 
52
54
         which_usm_users/0, which_usm_users/1, 
54
56
         
55
57
         %% 
56
58
         %% Basic SNMP API
57
 
         g/3, g/4, g/5, g/6, g/7, 
58
 
         ag/3, ag/4, ag/5, ag/6, ag/7, 
59
 
         gn/3, gn/4, gn/5, gn/6, gn/7, 
60
 
         agn/3, agn/4, agn/5, agn/6, agn/7, 
61
 
         gb/5, gb/6, gb/7, gb/8, gb/9, 
62
 
         agb/5, agb/6, agb/7, agb/8, agb/9, 
63
 
         s/3, s/4, s/5, s/6, s/7, 
64
 
         as/3, as/4, as/5, as/6, as/7, 
 
59
         sync_get/3, sync_get/4, sync_get/5, sync_get/6, 
 
60
         async_get/3, async_get/4, async_get/5, async_get/6, 
 
61
         sync_get_next/3, sync_get_next/4, sync_get_next/5, sync_get_next/6, 
 
62
         async_get_next/3, async_get_next/4, async_get_next/5, async_get_next/6, 
 
63
         sync_set/3, sync_set/4, sync_set/5, sync_set/6, 
 
64
         async_set/3, async_set/4, async_set/5, async_set/6, 
 
65
         sync_get_bulk/5, sync_get_bulk/6, sync_get_bulk/7, sync_get_bulk/8, 
 
66
         async_get_bulk/5, async_get_bulk/6, async_get_bulk/7, async_get_bulk/8, 
65
67
         cancel_async_request/2, 
66
68
         
67
69
         %% 
68
70
         %% Extended SNMP API
69
 
         discovery/2, discovery/3, discovery/4, discovery/5, discovery/6, 
 
71
         %% discovery/2, discovery/3, discovery/4, discovery/5, discovery/6, 
70
72
 
71
73
         %% 
72
74
         %% Logging
87
89
 
88
90
-export([format_reason/1, format_reason/2]).
89
91
 
 
92
%% Backward compatibillity exports
 
93
-export([
 
94
         agent_info/3, update_agent_info/5, 
 
95
         g/3, g/4, g/5, g/6, g/7, 
 
96
         ag/3, ag/4, ag/5, ag/6, ag/7, 
 
97
         gn/3, gn/4, gn/5, gn/6, gn/7, 
 
98
         agn/3, agn/4, agn/5, agn/6, agn/7, 
 
99
         gb/5, gb/6, gb/7, gb/8, gb/9, 
 
100
         agb/5, agb/6, agb/7, agb/8, agb/9, 
 
101
         s/3, s/4, s/5, s/6, s/7, 
 
102
         as/3, as/4, as/5, as/6, as/7
 
103
        ]).
 
104
 
90
105
%% Application internal export
91
106
-export([start_link/3, snmpm_start_verify/2, snmpm_start_verify/3]).
92
107
 
269
284
%% Note that this could have already been done as a 
270
285
%% consequence of the node config.
271
286
register_user(Id, Module, Data) ->
272
 
    snmpm_server:register_user(Id, Module, Data).
 
287
    register_user(Id, Module, Data, []).
 
288
 
 
289
%% Default config for agents registered by this user
 
290
register_user(Id, Module, Data, DefaultAgentConfig) ->
 
291
    snmpm_server:register_user(Id, Module, Data, DefaultAgentConfig).
273
292
 
274
293
register_user_monitor(Id, Module, Data) ->
275
 
    snmpm_server:register_user_monitor(Id, Module, Data).
 
294
    register_user_monitor(Id, Module, Data, []).
 
295
 
 
296
register_user_monitor(Id, Module, Data, DefaultAgentConfig) ->
 
297
    snmpm_server:register_user_monitor(Id, Module, Data, DefaultAgentConfig).
276
298
 
277
299
unregister_user(Id) ->
278
300
    snmpm_server:unregister_user(Id).
291
313
%% Note that there is an alternate way to do the same thing:
292
314
%% Add the agent to the manager config files.
293
315
%% 
294
 
%% UserId -> Id of the user responsible for this agent
295
 
%% Addr   -> Address of the agent: term()
296
 
%% Port   -> Port number of the agent: integer()
297
 
%% Config -> Agent configuration: [config()]
 
316
%% UserId     -> Id of the user responsible for this agent: term()
 
317
%% TargetName -> Unique name for the agent: (string())
 
318
%% Config     -> Agent configuration: [config()]
 
319
 
 
320
do_register_agent(UserId, TargetName, Config) ->
 
321
    snmpm_config:register_agent(UserId, TargetName, Config).
 
322
 
 
323
register_agent(UserId, TargetName, Config) 
 
324
  when (is_list(TargetName) andalso 
 
325
        (length(TargetName) > 0) andalso 
 
326
        is_list(Config)) ->
 
327
    do_register_agent(UserId, TargetName, [{reg_type, target_name} | Config]);
 
328
 
 
329
%% Backward compatibillity 
 
330
%% Note that the agent engine id is a mandatory config option,
 
331
%% so this function *will* fail!
 
332
register_agent(UserId, Addr, Port) when is_integer(Port) ->
 
333
    register_agent(UserId, Addr, Port, []);
 
334
 
 
335
%% Backward compatibillity 
 
336
register_agent(UserId, Addr, Config) when is_list(Config) ->
 
337
    register_agent(UserId, Addr, ?DEFAULT_AGENT_PORT, Config).
 
338
 
 
339
%% Backward compatibillity 
 
340
%% Note that the agent engine id is a mandatory config option,
 
341
%% so this function *will* fail!
298
342
register_agent(UserId, Addr) ->
299
343
    register_agent(UserId, Addr, ?DEFAULT_AGENT_PORT, []).
300
344
 
301
 
register_agent(UserId, Addr, Port) when integer(Port) ->
302
 
    register_agent(UserId, Addr, Port, []);
303
 
register_agent(UserId, Addr, Config) when list(Config) ->
304
 
    register_agent(UserId, Addr, ?DEFAULT_AGENT_PORT, Config).
305
 
 
306
 
register_agent(UserId, Addr, Port, Config) ->
307
 
    snmpm_config:register_agent(UserId, Addr, Port, Config).
308
 
 
 
345
%% Backward compatibillity 
 
346
register_agent(UserId, Addr, Port, Config0) ->
 
347
    case lists:keymember(target_name, 1, Config0) of
 
348
        false ->
 
349
            TargetName = mk_target_name(Addr, Port, Config0), 
 
350
            Config     = [{reg_type, addr_port}, 
 
351
                          {address, Addr}, {port, Port} | Config0], 
 
352
            do_register_agent(UserId, TargetName, ensure_engine_id(Config));
 
353
        true ->
 
354
            {value, {_, TargetName}} = 
 
355
                lists:keysearch(target_name, 1, Config0),
 
356
            Config1 = lists:keydelete(target_name, 1, Config0),
 
357
            Config2 = [{reg_type, addr_port}, 
 
358
                       {address, Addr}, {port, Port} | Config1], 
 
359
            register_agent(UserId, TargetName, ensure_engine_id(Config2))
 
360
    end.
 
361
 
 
362
unregister_agent(UserId, TargetName) when is_list(TargetName) ->
 
363
    snmpm_config:unregister_agent(UserId, TargetName);
 
364
 
 
365
%% Backward compatibillity functions
309
366
unregister_agent(UserId, Addr) ->
310
 
    snmpm_config:unregister_agent(UserId, Addr, ?DEFAULT_AGENT_PORT).
 
367
    unregister_agent(UserId, Addr, ?DEFAULT_AGENT_PORT).
311
368
 
312
369
unregister_agent(UserId, Addr, Port) ->
313
 
    snmpm_config:unregister_agent(UserId, Addr, Port).
314
 
 
 
370
    case target_name(Addr, Port) of
 
371
        {ok, TargetName} ->
 
372
            unregister_agent(UserId, TargetName);
 
373
        Error ->
 
374
            Error
 
375
    end.
 
376
 
 
377
agent_info(TargetName, Item) ->
 
378
    snmpm_config:agent_info(TargetName, Item).
 
379
 
 
380
%% Backward compatibillity
315
381
agent_info(Addr, Port, Item) ->
316
 
    snmpm_config:agent_info(Addr, Port, Item).
317
 
 
 
382
    case target_name(Addr, Port) of
 
383
        {ok, TargetName} ->
 
384
            agent_info(TargetName, Item);
 
385
        Error ->
 
386
            Error
 
387
    end.
 
388
 
 
389
update_agent_info(UserId, TargetName, Item, Val) ->
 
390
%%     p("update_agent_info -> entry with"
 
391
%%       "~n   UserId:     ~p"
 
392
%%       "~n   TargetName: ~p"
 
393
%%       "~n   Item:       ~p"
 
394
%%       "~n   Val:        ~p", [UserId, TargetName, Item, Val]),
 
395
    snmpm_config:update_agent_info(UserId, TargetName, Item, Val).
 
396
 
 
397
%% Backward compatibillity functions
318
398
update_agent_info(UserId, Addr, Port, Item, Val) ->
319
 
    snmpm_config:update_agent_info(UserId, Addr, Port, Item, Val).
 
399
%%     p("update_agent_info -> entry with"
 
400
%%       "~n   UserId: ~p"
 
401
%%       "~n   Addr:   ~p"
 
402
%%       "~n   Port:   ~p"
 
403
%%       "~n   Item:   ~p"
 
404
%%       "~n   Val:    ~p", [UserId, Addr, Port, Item, Val]),
 
405
    case target_name(Addr, Port) of
 
406
        {ok, TargetName} ->
 
407
%%          p("update_agent_info -> TargetName: ~p", [TargetName]),
 
408
            update_agent_info(UserId, TargetName, Item, Val);
 
409
        Error ->
 
410
            Error
 
411
    end.
320
412
 
321
413
which_agents() ->
322
414
    snmpm_config:which_agents().
346
438
which_usm_users() ->
347
439
    snmpm_config:which_usm_users().
348
440
 
349
 
which_usm_users(EngineID) when list(EngineID) ->
 
441
which_usm_users(EngineID) when is_list(EngineID) ->
350
442
    snmpm_config:which_usm_users(EngineID).
351
443
 
352
444
 
353
445
%% -- Discovery --
354
446
 
355
447
%% Start a discovery process
356
 
discovery(UserId, BAddr) ->
357
 
    snmpm_server:discovery(UserId, BAddr).
358
 
 
359
 
discovery(UserId, BAddr, ExpireOrConfig) ->
360
 
    snmpm_server:discovery(UserId, BAddr, ExpireOrConfig).
361
 
 
362
 
discovery(UserId, BAddr, Config, Expire) ->
363
 
    snmpm_server:discovery(UserId, BAddr, Config, Expire).
364
 
 
365
 
discovery(UserId, BAddr, Port, Config, Expire) ->
366
 
    snmpm_server:discovery(UserId, BAddr, Port, Config, Expire).
367
 
 
368
 
discovery(UserId, BAddr, Port, Config, Expire, ExtraInfo) ->
369
 
    snmpm_server:discovery(UserId, BAddr, Port, Config, Expire, ExtraInfo).
 
448
%% discovery(UserId, BAddr) ->
 
449
%%     snmpm_server:discovery(UserId, BAddr).
 
450
 
 
451
%% discovery(UserId, BAddr, ExpireOrConfig) ->
 
452
%%     snmpm_server:discovery(UserId, BAddr, ExpireOrConfig).
 
453
 
 
454
%% discovery(UserId, BAddr, Config, Expire) ->
 
455
%%     snmpm_server:discovery(UserId, BAddr, Config, Expire).
 
456
 
 
457
%% discovery(UserId, BAddr, Port, Config, Expire) ->
 
458
%%     snmpm_server:discovery(UserId, BAddr, Port, Config, Expire).
 
459
 
 
460
%% discovery(UserId, BAddr, Port, Config, Expire, ExtraInfo) ->
 
461
%%     snmpm_server:discovery(UserId, BAddr, Port, Config, Expire, ExtraInfo).
370
462
 
371
463
 
372
464
%% -- Requests --
373
465
 
374
 
%% synchroneous get-request
 
466
%% --- synchroneous get-request ---
375
467
%% 
 
468
 
 
469
sync_get(UserId, TargetName, Oids) ->
 
470
%%     p("sync_get -> entry with"
 
471
%%       "~n   UserId:     ~p"
 
472
%%       "~n   TargetName: ~p"
 
473
%%       "~n   Oids:       ~p", [UserId, TargetName, Oids]),
 
474
    sync_get(UserId, TargetName, ?DEFAULT_CONTEXT, Oids).
 
475
 
 
476
sync_get(UserId, TargetName, Context, Oids) when is_list(Oids) ->
 
477
%%     p("sync_get -> entry with"
 
478
%%       "~n   UserId:     ~p"
 
479
%%       "~n   TargetName: ~p"
 
480
%%       "~n   Context:    ~p"
 
481
%%       "~n   Oids:       ~p", [UserId, TargetName, Context, Oids]),
 
482
    snmpm_server:sync_get(UserId, TargetName, Context, Oids);
 
483
 
 
484
sync_get(UserId, TargetName, Oids, Timeout) when is_integer(Timeout) ->
 
485
%%     p("sync_get -> entry with"
 
486
%%       "~n   UserId:     ~p"
 
487
%%       "~n   TargetName: ~p"
 
488
%%       "~n   Oids:       ~p"
 
489
%%       "~n   Timeout:    ~p", [UserId, TargetName, Oids, Timeout]),
 
490
    sync_get(UserId, TargetName, ?DEFAULT_CONTEXT, Oids, Timeout).
 
491
 
 
492
sync_get(UserId, TargetName, Context, Oids, Timeout) ->
 
493
%%     p("sync_get -> entry with"
 
494
%%       "~n   UserId:     ~p"
 
495
%%       "~n   TargetName: ~p"
 
496
%%       "~n   Context:    ~p"
 
497
%%       "~n   Oids:       ~p"
 
498
%%       "~n   Timeout:    ~p", [UserId, TargetName, Context, Oids, Timeout]),
 
499
    snmpm_server:sync_get(UserId, TargetName, Context, Oids, Timeout).
 
500
 
 
501
sync_get(UserId, TargetName, Context, Oids, Timeout, ExtraInfo) ->
 
502
%%     p("sync_get -> entry with"
 
503
%%       "~n   UserId:     ~p"
 
504
%%       "~n   TargetName: ~p"
 
505
%%       "~n   Context:    ~p"
 
506
%%       "~n   Oids:       ~p"
 
507
%%       "~n   Timeout:    ~p"
 
508
%%       "~n   ExtraInfo:  ~p", 
 
509
%%       [UserId, TargetName, Context, Oids, Timeout, ExtraInfo]),
 
510
    snmpm_server:sync_get(UserId, TargetName, Context, Oids, Timeout, 
 
511
                          ExtraInfo).
 
512
 
 
513
 
376
514
g(UserId, Addr, Oids) ->
377
 
    snmpm_server:sync_get(UserId, Addr, ?DEFAULT_AGENT_PORT, 
378
 
                          ?DEFAULT_CONTEXT, Oids).
379
 
 
380
 
g(UserId, Addr, CtxName, Oids) when list(CtxName), list(Oids) ->
381
 
    snmpm_server:sync_get(UserId, Addr, ?DEFAULT_AGENT_PORT, CtxName, Oids);
382
 
g(UserId, Addr, Port, Oids) when integer(Port), list(Oids) ->
383
 
    snmpm_server:sync_get(UserId, Addr, Port, ?DEFAULT_CONTEXT, Oids);
384
 
g(UserId, Addr, Oids, Timeout) when list(Oids), integer(Timeout) ->
385
 
    g(UserId, Addr, ?DEFAULT_AGENT_PORT, ?DEFAULT_CONTEXT, Oids, Timeout).
 
515
%%     p("g -> entry with"
 
516
%%       "~n   UserId:  ~p"
 
517
%%       "~n   Addr:    ~p"
 
518
%%       "~n   Oids:    ~p", [UserId, Addr, Oids]),
 
519
    g(UserId, Addr, ?DEFAULT_AGENT_PORT, Oids).
 
520
 
 
521
g(UserId, Addr, CtxName, Oids) when is_list(CtxName) andalso is_list(Oids) ->
 
522
%%     p("g -> entry with"
 
523
%%       "~n   UserId:  ~p"
 
524
%%       "~n   Addr:    ~p"
 
525
%%       "~n   CtxName: ~p"
 
526
%%       "~n   Oids:    ~p", [UserId, Addr, CtxName, Oids]),
 
527
    g(UserId, Addr, ?DEFAULT_AGENT_PORT, CtxName, Oids);
 
528
 
 
529
g(UserId, Addr, Port, Oids) when is_integer(Port) andalso is_list(Oids) ->
 
530
%%     p("g -> entry with"
 
531
%%       "~n   UserId:  ~p"
 
532
%%       "~n   Addr:    ~p"
 
533
%%       "~n   Port:    ~p"
 
534
%%       "~n   Oids:    ~p", [UserId, Addr, Port, Oids]),
 
535
    g(UserId, Addr, Port, ?DEFAULT_CONTEXT, Oids);
 
536
 
 
537
g(UserId, Addr, Oids, Timeout) 
 
538
  when is_list(Oids) andalso is_integer(Timeout) ->
 
539
%%     p("g -> entry with"
 
540
%%       "~n   UserId:  ~p"
 
541
%%       "~n   Addr:    ~p"
 
542
%%       "~n   Oids:    ~p"
 
543
%%       "~n   Timeout: ~p", [UserId, Addr, Oids, Timeout]),
 
544
    g(UserId, Addr, ?DEFAULT_AGENT_PORT, Oids, Timeout).
386
545
 
387
546
g(UserId, Addr, Port, CtxName, Oids) 
388
 
  when integer(Port), list(CtxName), list(Oids) ->
389
 
    snmpm_server:sync_get(UserId, Addr, Port, CtxName, Oids);
 
547
  when is_integer(Port) andalso is_list(CtxName) andalso is_list(Oids) ->
 
548
%%     p("g -> entry with"
 
549
%%       "~n   UserId:  ~p"
 
550
%%       "~n   Addr:    ~p"
 
551
%%       "~n   Port:    ~p"
 
552
%%       "~n   Context: ~p"
 
553
%%       "~n   Oids:    ~p", [UserId, Addr, Port, CtxName, Oids]),
 
554
    case target_name(Addr, Port) of
 
555
        {ok, TargetName} ->
 
556
%%          p("g -> TargetName: ~p", [TargetName]),
 
557
            sync_get(UserId, TargetName, CtxName, Oids);
 
558
        Error ->
 
559
            Error
 
560
    end;    
 
561
    
390
562
g(UserId, Addr, Port, Oids, Timeout) 
391
 
  when integer(Port), list(Oids), integer(Timeout) ->
 
563
  when is_integer(Port) andalso is_list(Oids) andalso is_integer(Timeout) ->
 
564
%%     p("g -> entry with"
 
565
%%       "~n   UserId:    ~p"
 
566
%%       "~n   Addr:      ~p"
 
567
%%       "~n   Oids:      ~p"
 
568
%%       "~n   Timeout:   ~p", 
 
569
%%       [UserId, Addr, Oids, Timeout]),
392
570
    g(UserId, Addr, Port, ?DEFAULT_CONTEXT, Oids, Timeout);
 
571
 
393
572
g(UserId, Addr, CtxName, Oids, Timeout) 
394
 
  when list(CtxName), list(Oids), integer(Timeout) ->
 
573
  when is_list(CtxName) andalso is_list(Oids) andalso is_integer(Timeout) ->
 
574
%%     p("g -> entry with"
 
575
%%       "~n   UserId:    ~p"
 
576
%%       "~n   Addr:      ~p"
 
577
%%       "~n   CtxName:   ~p"
 
578
%%       "~n   Oids:      ~p"
 
579
%%       "~n   Timeout:   ~p", 
 
580
%%       [UserId, Addr, CtxName, Oids, Timeout]),
395
581
    g(UserId, Addr, ?DEFAULT_AGENT_PORT, CtxName, Oids, Timeout).
396
582
 
397
583
g(UserId, Addr, Port, CtxName, Oids, Timeout) ->
398
 
    snmpm_server:sync_get(UserId, Addr, Port, CtxName, Oids, Timeout).
 
584
%%     p("g -> entry with"
 
585
%%       "~n   UserId:    ~p"
 
586
%%       "~n   Addr:      ~p"
 
587
%%       "~n   Port:      ~p"
 
588
%%       "~n   CtxName:   ~p"
 
589
%%       "~n   Oids:      ~p"
 
590
%%       "~n   Timeout:   ~p", 
 
591
%%       [UserId, Addr, Port, CtxName, Oids, Timeout]),
 
592
    case target_name(Addr, Port) of
 
593
        {ok, TargetName} ->
 
594
%%          p("g -> TargetName: ~p", [TargetName]),
 
595
            sync_get(UserId, TargetName, CtxName, Oids, Timeout);
 
596
        Error ->
 
597
            Error
 
598
    end.
399
599
 
400
600
g(UserId, Addr, Port, CtxName, Oids, Timeout, ExtraInfo) ->
401
 
    snmpm_server:sync_get(UserId, Addr, Port, CtxName, Oids, Timeout, 
402
 
                          ExtraInfo).
403
 
 
404
 
 
405
 
%% asynchroneous get-request
 
601
%%     p("g -> entry with"
 
602
%%       "~n   UserId:    ~p"
 
603
%%       "~n   Addr:      ~p"
 
604
%%       "~n   Port:      ~p"
 
605
%%       "~n   CtxName:   ~p"
 
606
%%       "~n   Oids:      ~p"
 
607
%%       "~n   Timeout:   ~p"
 
608
%%       "~n   ExtraInfo: ~p", 
 
609
%%       [UserId, Addr, Port, CtxName, Oids, Timeout, ExtraInfo]),
 
610
    case target_name(Addr, Port) of
 
611
        {ok, TargetName} ->
 
612
%%          p("g -> TargetName: ~p", [TargetName]),
 
613
            sync_get(UserId, TargetName, CtxName, Oids, Timeout, ExtraInfo);
 
614
        Error ->
 
615
            Error
 
616
    end.
 
617
 
 
618
 
 
619
 
 
620
%% --- asynchroneous get-request ---
406
621
%% 
407
622
%% The reply will be delivered to the user
408
623
%% through a call to handle_pdu/5
409
624
%% 
 
625
 
 
626
async_get(UserId, TargetName, Oids) ->
 
627
    async_get(UserId, TargetName, ?DEFAULT_CONTEXT, Oids).
 
628
 
 
629
async_get(UserId, TargetName, Context, Oids) when is_list(Oids) ->
 
630
    snmpm_server:async_get(UserId, TargetName, Context, Oids);
 
631
 
 
632
async_get(UserId, TargetName, Oids, Expire) when is_integer(Expire) ->
 
633
    async_get(UserId, TargetName, ?DEFAULT_CONTEXT, Oids, Expire).
 
634
 
 
635
async_get(UserId, TargetName, Context, Oids, Expire) ->
 
636
    snmpm_server:async_get(UserId, TargetName, Context, Oids, Expire).
 
637
 
 
638
async_get(UserId, TargetName, Context, Oids, Expire, ExtraInfo) ->
 
639
    snmpm_server:async_get(UserId, TargetName, Context, Oids, Expire, 
 
640
                           ExtraInfo).
 
641
 
 
642
 
410
643
ag(UserId, Addr, Oids) ->
411
644
    ag(UserId, Addr, ?DEFAULT_AGENT_PORT, Oids).
412
645
 
413
 
ag(UserId, Addr, Port, Oids) when integer(Port), list(Oids) ->
414
 
    snmpm_server:async_get(UserId, Addr, Port, ?DEFAULT_CONTEXT, Oids);
415
 
ag(UserId, Addr, CtxName, Oids) when list(CtxName), list(Oids) ->
416
 
    snmpm_server:async_get(UserId, Addr, ?DEFAULT_AGENT_PORT, CtxName, Oids);
417
 
ag(UserId, Addr, Oids, Expire) when list(Oids), integer(Expire) ->
 
646
ag(UserId, Addr, Port, Oids) when is_integer(Port) andalso is_list(Oids) ->
 
647
    ag(UserId, Addr, Port, ?DEFAULT_CONTEXT, Oids);
 
648
 
 
649
ag(UserId, Addr, CtxName, Oids) when is_list(CtxName) andalso is_list(Oids) ->
 
650
    ag(UserId, Addr, ?DEFAULT_AGENT_PORT, CtxName, Oids);
 
651
 
 
652
ag(UserId, Addr, Oids, Expire) when is_list(Oids) andalso is_integer(Expire) ->
418
653
    ag(UserId, Addr, ?DEFAULT_AGENT_PORT, ?DEFAULT_CONTEXT, Oids, Expire).
419
654
 
420
655
ag(UserId, Addr, Port, CtxName, Oids) 
421
 
  when integer(Port), list(CtxName), list(Oids) ->
422
 
    snmpm_server:async_get(UserId, Addr, Port, CtxName, Oids);
 
656
  when is_integer(Port) andalso is_list(CtxName) andalso is_list(Oids) ->
 
657
    case target_name(Addr, Port) of
 
658
        {ok, TargetName} ->
 
659
            async_get(UserId, TargetName, CtxName, Oids);
 
660
        Error ->
 
661
            Error
 
662
    end;
 
663
 
423
664
ag(UserId, Addr, Port, Oids, Expire) 
424
 
  when integer(Port), list(Oids), integer(Expire) ->
 
665
  when is_integer(Port) andalso is_list(Oids) andalso is_integer(Expire) ->
425
666
    ag(UserId, Addr, Port, ?DEFAULT_CONTEXT, Oids, Expire);
 
667
 
426
668
ag(UserId, Addr, CtxName, Oids, Expire) 
427
 
  when list(CtxName), list(Oids), integer(Expire) ->
 
669
  when is_list(CtxName) andalso is_list(Oids) andalso is_integer(Expire) ->
428
670
    ag(UserId, Addr, ?DEFAULT_AGENT_PORT, CtxName, Oids, Expire).
429
671
 
430
672
ag(UserId, Addr, Port, CtxName, Oids, Expire) ->
431
 
    snmpm_server:async_get(UserId, Addr, Port, CtxName, Oids, Expire).
 
673
    case target_name(Addr, Port) of
 
674
        {ok, TargetName} ->
 
675
            async_get(UserId, TargetName, CtxName, Oids, Expire);
 
676
        Error ->
 
677
            Error
 
678
    end.
432
679
 
433
680
ag(UserId, Addr, Port, CtxName, Oids, Expire, ExtraInfo) ->
434
 
    snmpm_server:async_get(UserId, Addr, Port, CtxName, Oids, Expire, 
435
 
                           ExtraInfo).
436
 
 
437
 
 
438
 
%% synchroneous get_next-request
 
681
    case target_name(Addr, Port) of
 
682
        {ok, TargetName} ->
 
683
            async_get(UserId, TargetName, CtxName, Oids, Expire, ExtraInfo);
 
684
        Error ->
 
685
            Error
 
686
    end.
 
687
 
 
688
 
 
689
 
 
690
%% --- synchroneous get_next-request ---
439
691
%% 
 
692
 
 
693
sync_get_next(UserId, TargetName, Oids) ->
 
694
    sync_get_next(UserId, TargetName, ?DEFAULT_CONTEXT, Oids).
 
695
 
 
696
sync_get_next(UserId, TargetName, Context, Oids) 
 
697
  when is_list(Context) andalso is_list(Oids) ->
 
698
    snmpm_server:sync_get_next(UserId, TargetName, Context, Oids);
 
699
 
 
700
sync_get_next(UserId, TargetName, Oids, Timeout) 
 
701
  when is_list(Oids) andalso is_integer(Timeout) ->
 
702
    sync_get_next(UserId, TargetName, ?DEFAULT_CONTEXT, Oids, Timeout).
 
703
 
 
704
sync_get_next(UserId, TargetName, Context, Oids, Timeout) ->
 
705
    snmpm_server:sync_get_next(UserId, TargetName, Context, Oids, Timeout).
 
706
 
 
707
sync_get_next(UserId, TargetName, Context, Oids, Timeout, ExtraInfo) ->
 
708
    snmpm_server:sync_get_next(UserId, TargetName, Context, Oids, Timeout, 
 
709
                               ExtraInfo).
 
710
 
 
711
 
440
712
gn(UserId, Addr, Oids) ->
441
 
    snmpm_server:sync_get_next(UserId, Addr, ?DEFAULT_AGENT_PORT, 
442
 
                               ?DEFAULT_CONTEXT, Oids).
443
 
 
444
 
gn(UserId, Addr, Port, Oids) when integer(Port), list(Oids) ->
445
 
    snmpm_server:sync_get_next(UserId, Addr, Port, ?DEFAULT_CONTEXT, Oids);
446
 
gn(UserId, Addr, CtxName, Oids) when list(CtxName), list(Oids) ->
447
 
    snmpm_server:sync_get_next(UserId, Addr, ?DEFAULT_AGENT_PORT, 
448
 
                               CtxName, Oids);
449
 
gn(UserId, Addr, Oids, Timeout) when list(Oids), integer(Timeout) ->
450
 
    gn(UserId, Addr, ?DEFAULT_AGENT_PORT, ?DEFAULT_CONTEXT, Oids, Timeout).
 
713
    gn(UserId, Addr, ?DEFAULT_AGENT_PORT, Oids).
 
714
 
 
715
gn(UserId, Addr, CtxName, Oids) when is_list(CtxName) andalso is_list(Oids) ->
 
716
    gn(UserId, Addr, ?DEFAULT_AGENT_PORT, CtxName, Oids);
 
717
 
 
718
gn(UserId, Addr, Port, Oids) when is_integer(Port) andalso is_list(Oids) ->
 
719
    gn(UserId, Addr, Port, ?DEFAULT_CONTEXT, Oids);
 
720
 
 
721
gn(UserId, Addr, Oids, Timeout) 
 
722
  when is_list(Oids) andalso is_integer(Timeout) ->
 
723
    gn(UserId, Addr, ?DEFAULT_AGENT_PORT, Oids, Timeout).
451
724
 
452
725
gn(UserId, Addr, Port, CtxName, Oids) 
453
 
  when integer(Port), list(CtxName), list(Oids) ->
454
 
    snmpm_server:sync_get_next(UserId, Addr, Port, CtxName, Oids);
 
726
  when is_integer(Port) andalso is_list(CtxName) andalso is_list(Oids) ->
 
727
    case target_name(Addr, Port) of
 
728
        {ok, TargetName} ->
 
729
            sync_get_next(UserId, TargetName, CtxName, Oids);
 
730
        Error ->
 
731
            Error
 
732
    end;    
 
733
        
455
734
gn(UserId, Addr, Port, Oids, Timeout) 
456
 
  when integer(Port), list(Oids), integer(Timeout) ->
 
735
  when is_integer(Port) andalso is_list(Oids) andalso is_integer(Timeout) ->
457
736
    gn(UserId, Addr, Port, ?DEFAULT_CONTEXT, Oids, Timeout);
458
737
gn(UserId, Addr, CtxName, Oids, Timeout) 
459
 
  when list(CtxName), list(Oids), integer(Timeout) ->
 
738
  when is_list(CtxName) andalso is_list(Oids) andalso is_integer(Timeout) ->
460
739
    gn(UserId, Addr, ?DEFAULT_AGENT_PORT, CtxName, Oids, Timeout).
461
740
 
462
741
gn(UserId, Addr, Port, CtxName, Oids, Timeout) ->
463
 
    snmpm_server:sync_get_next(UserId, Addr, Port, CtxName, Oids, Timeout).
 
742
    case target_name(Addr, Port) of
 
743
        {ok, TargetName} ->
 
744
            sync_get_next(UserId, TargetName, CtxName, Oids, Timeout);
 
745
        Error ->
 
746
            Error
 
747
    end.
464
748
 
465
749
gn(UserId, Addr, Port, CtxName, Oids, Timeout, ExtraInfo) ->
466
 
    snmpm_server:sync_get_next(UserId, Addr, Port, CtxName, Oids, Timeout, 
467
 
                               ExtraInfo).
468
 
 
469
 
 
470
 
%% asynchroneous get_next-request
 
750
    case target_name(Addr, Port) of
 
751
        {ok, TargetName} ->
 
752
            sync_get_next(UserId, TargetName, CtxName, Oids, Timeout, ExtraInfo);
 
753
        Error ->
 
754
            Error
 
755
    end.
 
756
 
 
757
 
 
758
 
 
759
%% --- asynchroneous get_next-request ---
471
760
%% 
 
761
 
 
762
async_get_next(UserId, TargetName, Oids) ->
 
763
    async_get_next(UserId, TargetName, ?DEFAULT_CONTEXT, Oids).
 
764
 
 
765
async_get_next(UserId, TargetName, Context, Oids) 
 
766
  when is_list(Context) andalso is_list(Oids) ->
 
767
    snmpm_server:async_get_next(UserId, TargetName, Context, Oids);
 
768
 
 
769
async_get_next(UserId, TargetName, Oids, Timeout) 
 
770
  when is_list(Oids) andalso is_integer(Timeout) ->
 
771
    async_get_next(UserId, TargetName, ?DEFAULT_CONTEXT, Oids, Timeout).
 
772
 
 
773
async_get_next(UserId, TargetName, Context, Oids, Timeout) ->
 
774
    snmpm_server:async_get_next(UserId, TargetName, Context, Oids, Timeout).
 
775
 
 
776
async_get_next(UserId, TargetName, Context, Oids, Timeout, ExtraInfo) ->
 
777
    snmpm_server:async_get_next(UserId, TargetName, Context, Oids, Timeout, 
 
778
                                ExtraInfo).
 
779
 
472
780
agn(UserId, Addr, Oids) ->
473
 
    snmpm_server:async_get_next(UserId, Addr, ?DEFAULT_AGENT_PORT, 
474
 
                                ?DEFAULT_CONTEXT, Oids).
475
 
 
476
 
agn(UserId, Addr, Port, Oids) when integer(Port), list(Oids) ->
477
 
    snmpm_server:async_get_next(UserId, Addr, Port, 
478
 
                                ?DEFAULT_CONTEXT, Oids);
479
 
agn(UserId, Addr, CtxName, Oids) when list(CtxName), list(Oids) ->
480
 
    snmpm_server:async_get_next(UserId, Addr, ?DEFAULT_AGENT_PORT, 
481
 
                                CtxName, Oids);
482
 
agn(UserId, Addr, Oids, Expire) when list(Oids), integer(Expire) ->
483
 
    agn(UserId, Addr, ?DEFAULT_AGENT_PORT, ?DEFAULT_CONTEXT, Oids, Expire).
 
781
    agn(UserId, Addr, ?DEFAULT_AGENT_PORT, Oids).
 
782
 
 
783
agn(UserId, Addr, CtxName, Oids) when is_list(CtxName) andalso is_list(Oids) ->
 
784
    agn(UserId, Addr, ?DEFAULT_AGENT_PORT, CtxName, Oids);
 
785
 
 
786
agn(UserId, Addr, Port, Oids) when is_integer(Port) andalso is_list(Oids) ->
 
787
    agn(UserId, Addr, Port, ?DEFAULT_CONTEXT, Oids);
 
788
 
 
789
agn(UserId, Addr, Oids, Expire) 
 
790
  when is_list(Oids) andalso is_integer(Expire) ->
 
791
    agn(UserId, Addr, ?DEFAULT_AGENT_PORT, Oids, Expire).
484
792
 
485
793
agn(UserId, Addr, Port, CtxName, Oids) 
486
 
  when is_integer(Port) and is_list(CtxName) and is_list(Oids) ->
487
 
    snmpm_server:async_get_next(UserId, Addr, Port, CtxName, Oids);
 
794
  when is_integer(Port) andalso is_list(CtxName) andalso is_list(Oids) ->
 
795
    case target_name(Addr, Port) of
 
796
        {ok, TargetName} ->
 
797
            async_get_next(UserId, TargetName, CtxName, Oids);
 
798
        Error ->
 
799
            Error
 
800
    end;    
 
801
        
488
802
agn(UserId, Addr, Port, Oids, Expire) 
489
 
  when is_integer(Port) and is_list(Oids) and is_integer(Expire) ->
 
803
  when is_integer(Port) andalso is_list(Oids) andalso is_integer(Expire) ->
490
804
    agn(UserId, Addr, Port, ?DEFAULT_CONTEXT, Oids, Expire);
491
805
agn(UserId, Addr, CtxName, Oids, Expire) 
492
 
  when is_list(CtxName) and is_list(CtxName) and is_integer(Expire) ->
 
806
  when is_list(CtxName) andalso is_list(CtxName) andalso is_integer(Expire) ->
493
807
    agn(UserId, Addr, ?DEFAULT_AGENT_PORT, CtxName, Oids, Expire).
494
808
 
495
809
agn(UserId, Addr, Port, CtxName, Oids, Expire) ->
496
 
    snmpm_server:async_get_next(UserId, Addr, Port, CtxName, Oids, Expire).
 
810
    case target_name(Addr, Port) of
 
811
        {ok, TargetName} ->
 
812
            async_get_next(UserId, TargetName, CtxName, Oids, Expire);
 
813
        Error ->
 
814
            Error
 
815
    end.
497
816
 
498
817
agn(UserId, Addr, Port, CtxName, Oids, Expire, ExtraInfo) ->
499
 
    snmpm_server:async_get_next(UserId, Addr, Port, CtxName, Oids, Expire, 
500
 
                               ExtraInfo).
501
 
 
502
 
 
503
 
%% synchroneous set-request
 
818
    case target_name(Addr, Port) of
 
819
        {ok, TargetName} ->
 
820
            async_get_next(UserId, TargetName, CtxName, Oids, Expire, 
 
821
                           ExtraInfo);
 
822
        Error ->
 
823
            Error
 
824
    end.
 
825
 
 
826
 
 
827
 
 
828
%% --- synchroneous set-request ---
504
829
%% 
 
830
 
 
831
sync_set(UserId, TargetName, VarsAndVals) ->
 
832
    sync_set(UserId, TargetName, ?DEFAULT_CONTEXT, VarsAndVals).
 
833
 
 
834
sync_set(UserId, TargetName, Context, VarsAndVals) 
 
835
  when is_list(Context) andalso is_list(VarsAndVals) ->
 
836
    snmpm_server:sync_set(UserId, TargetName, Context, VarsAndVals);
 
837
 
 
838
sync_set(UserId, TargetName, VarsAndVals, Timeout) 
 
839
  when is_list(VarsAndVals) andalso is_integer(Timeout) ->
 
840
    sync_set(UserId, TargetName, ?DEFAULT_CONTEXT, VarsAndVals, Timeout).
 
841
 
 
842
sync_set(UserId, TargetName, Context, VarsAndVals, Timeout) ->
 
843
    snmpm_server:sync_set(UserId, TargetName, Context, VarsAndVals, Timeout).
 
844
 
 
845
sync_set(UserId, TargetName, Context, VarsAndVals, Timeout, ExtraInfo) ->
 
846
    snmpm_server:sync_set(UserId, TargetName, Context, VarsAndVals, Timeout, 
 
847
                          ExtraInfo).
 
848
 
 
849
 
505
850
s(UserId, Addr, VarsAndVals) ->
506
 
    snmpm_server:sync_set(UserId, Addr, ?DEFAULT_AGENT_PORT, 
507
 
                          ?DEFAULT_CONTEXT, VarsAndVals).
508
 
 
509
 
s(UserId, Addr, Port, VarsAndVals) when integer(Port), list(VarsAndVals) ->
510
 
    snmpm_server:sync_set(UserId, Addr, Port, 
511
 
                          ?DEFAULT_CONTEXT, VarsAndVals);
512
 
s(UserId, Addr, CtxName, VarsAndVals) when list(CtxName), list(VarsAndVals) ->
513
 
    snmpm_server:sync_set(UserId, Addr, ?DEFAULT_AGENT_PORT, 
514
 
                          CtxName, VarsAndVals);
 
851
    s(UserId, Addr, ?DEFAULT_AGENT_PORT, VarsAndVals).
 
852
 
 
853
s(UserId, Addr, Port, VarsAndVals) 
 
854
  when is_integer(Port) andalso is_list(VarsAndVals) ->
 
855
    s(UserId, Addr, Port, ?DEFAULT_CONTEXT, VarsAndVals);
 
856
 
 
857
s(UserId, Addr, CtxName, VarsAndVals) 
 
858
  when is_list(CtxName) andalso is_list(VarsAndVals) ->
 
859
    s(UserId, Addr, ?DEFAULT_AGENT_PORT, CtxName, VarsAndVals);
 
860
 
515
861
s(UserId, Addr, VarsAndVals, Timeout) 
516
 
  when list(VarsAndVals), integer(Timeout) ->
517
 
    s(UserId, Addr, ?DEFAULT_AGENT_PORT, 
518
 
      ?DEFAULT_CONTEXT, VarsAndVals, Timeout).
 
862
  when is_list(VarsAndVals) andalso is_integer(Timeout) ->
 
863
    s(UserId, Addr, ?DEFAULT_AGENT_PORT, VarsAndVals, Timeout).
519
864
 
520
865
s(UserId, Addr, Port, CtxName, VarsAndVals) 
521
 
  when integer(Port), list(CtxName), list(VarsAndVals) ->
522
 
    snmpm_server:sync_set(UserId, Addr, Port, CtxName, VarsAndVals);
 
866
  when is_integer(Port) andalso 
 
867
       is_list(CtxName) andalso 
 
868
       is_list(VarsAndVals) ->
 
869
    case target_name(Addr, Port) of
 
870
        {ok, TargetName} ->
 
871
            sync_set(UserId, TargetName, CtxName, VarsAndVals);
 
872
        Error ->
 
873
            Error
 
874
    end;
 
875
 
523
876
s(UserId, Addr, Port, VarsAndVals, Timeout) 
524
 
  when integer(Port), list(VarsAndVals), integer(Timeout) ->
 
877
  when is_integer(Port) andalso 
 
878
       is_list(VarsAndVals) andalso 
 
879
       is_integer(Timeout) ->
525
880
    s(UserId, Addr, Port, ?DEFAULT_CONTEXT, VarsAndVals, Timeout);
 
881
 
526
882
s(UserId, Addr, CtxName, VarsAndVals, Timeout) 
527
 
  when list(CtxName), list(VarsAndVals), integer(Timeout) ->
 
883
  when is_list(CtxName) andalso 
 
884
       is_list(VarsAndVals) andalso 
 
885
       is_integer(Timeout) ->
528
886
    s(UserId, Addr, ?DEFAULT_AGENT_PORT, CtxName, VarsAndVals, Timeout).
529
887
 
530
888
s(UserId, Addr, Port, CtxName, VarsAndVals, Timeout) ->
531
 
    snmpm_server:sync_set(UserId, Addr, Port, CtxName, VarsAndVals, Timeout).
 
889
    case target_name(Addr, Port) of
 
890
        {ok, TargetName} ->
 
891
            sync_set(UserId, TargetName, CtxName, VarsAndVals, Timeout);
 
892
        Error ->
 
893
            Error
 
894
    end.
532
895
 
533
896
s(UserId, Addr, Port, CtxName, VarsAndVals, Timeout, ExtraInfo) ->
534
 
    snmpm_server:sync_set(UserId, Addr, Port, CtxName, VarsAndVals, Timeout,
535
 
                          ExtraInfo).
536
 
 
537
 
 
538
 
%% asynchroneous set-request
 
897
    case target_name(Addr, Port) of
 
898
        {ok, TargetName} ->
 
899
            sync_set(UserId, TargetName, CtxName, VarsAndVals, Timeout, ExtraInfo);
 
900
        Error ->
 
901
            Error
 
902
    end.
 
903
 
 
904
 
 
905
 
 
906
%% --- asynchroneous set-request --- 
539
907
%% 
 
908
 
 
909
async_set(UserId, TargetName, VarsAndVals) ->
 
910
    async_set(UserId, TargetName, ?DEFAULT_CONTEXT, VarsAndVals).
 
911
 
 
912
async_set(UserId, TargetName, Context, VarsAndVals) 
 
913
  when is_list(Context) andalso is_list(VarsAndVals) ->
 
914
    snmpm_server:async_set(UserId, TargetName, Context, VarsAndVals);
 
915
 
 
916
async_set(UserId, TargetName, VarsAndVals, Expire) 
 
917
  when is_list(VarsAndVals) andalso is_integer(Expire) ->
 
918
    async_set(UserId, TargetName, ?DEFAULT_CONTEXT, VarsAndVals, Expire).
 
919
 
 
920
async_set(UserId, TargetName, Context, VarsAndVals, Expire) ->
 
921
    snmpm_server:async_set(UserId, TargetName, Context, VarsAndVals, Expire).
 
922
 
 
923
async_set(UserId, TargetName, Context, VarsAndVals, Expire, ExtraInfo) ->
 
924
    snmpm_server:async_set(UserId, TargetName, Context, VarsAndVals, Expire, 
 
925
                           ExtraInfo).
 
926
 
 
927
 
540
928
as(UserId, Addr, VarsAndVals) ->
541
 
    snmpm_server:async_set(UserId, Addr, ?DEFAULT_AGENT_PORT, 
542
 
                           ?DEFAULT_CONTEXT, VarsAndVals).
543
 
 
544
 
as(UserId, Addr, Port, VarsAndVals) when integer(Port), list(VarsAndVals) ->
545
 
    snmpm_server:async_set(UserId, Addr, Port, 
546
 
                           ?DEFAULT_CONTEXT, VarsAndVals);
547
 
as(UserId, Addr, CtxName, VarsAndVals) when list(CtxName), list(VarsAndVals) ->
548
 
    snmpm_server:async_set(UserId, Addr, ?DEFAULT_AGENT_PORT, 
549
 
                           CtxName, VarsAndVals);
 
929
    as(UserId, Addr, ?DEFAULT_AGENT_PORT, VarsAndVals).
 
930
 
 
931
as(UserId, Addr, Port, VarsAndVals) 
 
932
  when is_integer(Port) andalso is_list(VarsAndVals) ->
 
933
    as(UserId, Addr, Port, ?DEFAULT_CONTEXT, VarsAndVals);
 
934
 
 
935
as(UserId, Addr, CtxName, VarsAndVals) 
 
936
  when is_list(CtxName) andalso is_list(VarsAndVals) ->
 
937
    as(UserId, Addr, ?DEFAULT_AGENT_PORT, CtxName, VarsAndVals);
 
938
 
550
939
as(UserId, Addr, VarsAndVals, Expire) 
551
 
  when list(VarsAndVals), integer(Expire) ->
552
 
    as(UserId, Addr, ?DEFAULT_AGENT_PORT, 
553
 
       ?DEFAULT_CONTEXT, VarsAndVals, Expire).
 
940
  when is_list(VarsAndVals) andalso is_integer(Expire) ->
 
941
    as(UserId, Addr, ?DEFAULT_AGENT_PORT, VarsAndVals, Expire).
554
942
 
555
943
as(UserId, Addr, Port, CtxName, VarsAndVals) 
556
 
  when integer(Port), list(CtxName), list(VarsAndVals) ->
557
 
    snmpm_server:async_set(UserId, Addr, Port, CtxName, VarsAndVals);
 
944
  when is_integer(Port) andalso 
 
945
       is_list(CtxName) andalso 
 
946
       is_list(VarsAndVals) ->
 
947
    case target_name(Addr, Port) of
 
948
        {ok, TargetName} ->
 
949
            async_set(UserId, TargetName, CtxName, VarsAndVals);
 
950
        Error ->
 
951
            Error
 
952
    end;
 
953
        
558
954
as(UserId, Addr, Port, VarsAndVals, Expire) 
559
 
  when integer(Port), list(VarsAndVals), integer(Expire) ->
 
955
  when is_integer(Port) andalso 
 
956
       is_list(VarsAndVals) andalso 
 
957
       is_integer(Expire) ->
560
958
    as(UserId, Addr, Port, ?DEFAULT_CONTEXT, VarsAndVals, Expire);
 
959
 
561
960
as(UserId, Addr, CtxName, VarsAndVals, Expire) 
562
 
  when list(CtxName), list(VarsAndVals), integer(Expire) ->
 
961
  when is_list(CtxName) andalso 
 
962
       is_list(VarsAndVals) andalso 
 
963
       is_integer(Expire) ->
563
964
    as(UserId, Addr, ?DEFAULT_AGENT_PORT, CtxName, VarsAndVals, Expire).
564
965
 
565
966
as(UserId, Addr, Port, CtxName, VarsAndVals, Expire) ->
566
 
    snmpm_server:async_set(UserId, Addr, Port, CtxName, VarsAndVals, Expire).
 
967
    case target_name(Addr, Port) of
 
968
        {ok, TargetName} ->
 
969
            async_set(UserId, TargetName, CtxName, VarsAndVals, Expire);
 
970
        Error ->
 
971
            Error
 
972
    end.
567
973
 
568
974
as(UserId, Addr, Port, CtxName, VarsAndVals, Expire, ExtraInfo) ->
569
 
    snmpm_server:async_set(UserId, Addr, Port, CtxName, VarsAndVals, Expire,
570
 
                           ExtraInfo).
571
 
 
572
 
 
573
 
%% synchroneous get-bulk
 
975
    case target_name(Addr, Port) of
 
976
        {ok, TargetName} ->
 
977
            async_set(UserId, TargetName, CtxName, VarsAndVals, Expire, ExtraInfo);
 
978
        Error ->
 
979
            Error
 
980
    end.
 
981
 
 
982
 
 
983
 
 
984
 
 
985
%% --- synchroneous get-bulk ---
574
986
%% 
 
987
 
 
988
sync_get_bulk(UserId, TargetName, NonRep, MaxRep, Oids) ->
 
989
    sync_get_bulk(UserId, TargetName, NonRep, MaxRep, ?DEFAULT_CONTEXT, Oids).
 
990
 
 
991
sync_get_bulk(UserId, TargetName, NonRep, MaxRep, Context, Oids) 
 
992
  when is_integer(NonRep) andalso 
 
993
       is_integer(MaxRep) andalso 
 
994
       is_list(Context) andalso 
 
995
       is_list(Oids) ->
 
996
    snmpm_server:sync_get_bulk(UserId, TargetName, 
 
997
                               NonRep, MaxRep, 
 
998
                               Context, Oids);
 
999
 
 
1000
sync_get_bulk(UserId, TargetName, NonRep, MaxRep, Oids, Timeout) 
 
1001
  when is_integer(NonRep) andalso 
 
1002
       is_integer(MaxRep) andalso 
 
1003
       is_list(Oids) andalso 
 
1004
       is_integer(Timeout) ->
 
1005
    sync_get_bulk(UserId, TargetName, NonRep, MaxRep, 
 
1006
                  ?DEFAULT_CONTEXT, Oids, Timeout).
 
1007
 
 
1008
sync_get_bulk(UserId, TargetName, NonRep, MaxRep, Context, Oids, Timeout) ->
 
1009
    snmpm_server:sync_get_bulk(UserId, TargetName, NonRep, MaxRep, 
 
1010
                               Context, Oids, Timeout).
 
1011
 
 
1012
sync_get_bulk(UserId, TargetName, NonRep, MaxRep, Context, Oids, Timeout, 
 
1013
              ExtraInfo) ->
 
1014
    snmpm_server:sync_get_bulk(UserId, TargetName, NonRep, MaxRep, 
 
1015
                               Context, Oids, Timeout, ExtraInfo).
 
1016
 
 
1017
 
575
1018
gb(UserId, Addr, NonRep, MaxRep, Oids) ->
576
 
    snmpm_server:sync_get_bulk(UserId, Addr, ?DEFAULT_AGENT_PORT, 
577
 
                               NonRep, MaxRep, 
578
 
                               ?DEFAULT_CONTEXT, Oids).
 
1019
    gb(UserId, Addr, ?DEFAULT_AGENT_PORT, NonRep, MaxRep, Oids).
579
1020
 
580
1021
gb(UserId, Addr, Port, NonRep, MaxRep, Oids) 
581
 
  when integer(Port), integer(NonRep), integer(MaxRep), list(Oids) ->
582
 
    snmpm_server:sync_get_bulk(UserId, Addr, Port, 
583
 
                               NonRep, MaxRep, ?DEFAULT_CONTEXT, Oids);
 
1022
  when is_integer(Port) andalso 
 
1023
       is_integer(NonRep) andalso 
 
1024
       is_integer(MaxRep) andalso 
 
1025
       is_list(Oids) ->
 
1026
    gb(UserId, Addr, Port, NonRep, MaxRep, ?DEFAULT_CONTEXT, Oids);
 
1027
 
584
1028
gb(UserId, Addr, NonRep, MaxRep, CtxName, Oids) 
585
 
  when integer(NonRep), integer(MaxRep), list(CtxName), list(Oids) ->
586
 
    snmpm_server:sync_get_bulk(UserId, Addr, ?DEFAULT_AGENT_PORT, 
587
 
                               NonRep, MaxRep, CtxName, Oids);
 
1029
  when is_integer(NonRep) andalso 
 
1030
       is_integer(MaxRep) andalso 
 
1031
       is_list(CtxName) andalso 
 
1032
       is_list(Oids) ->
 
1033
    gb(UserId, Addr, ?DEFAULT_AGENT_PORT, NonRep, MaxRep, CtxName, Oids);
 
1034
 
588
1035
gb(UserId, Addr, NonRep, MaxRep, Oids, Timeout) 
589
 
  when integer(NonRep), integer(MaxRep), list(Oids), integer(Timeout) ->
590
 
    gb(UserId, Addr, ?DEFAULT_AGENT_PORT, 
591
 
       NonRep, MaxRep, ?DEFAULT_CONTEXT, Oids, Timeout).
 
1036
  when is_integer(NonRep) andalso 
 
1037
       is_integer(MaxRep) andalso 
 
1038
       is_list(Oids) andalso 
 
1039
       is_integer(Timeout) ->
 
1040
    gb(UserId, Addr, ?DEFAULT_AGENT_PORT, NonRep, MaxRep, Oids, Timeout).
592
1041
 
593
1042
gb(UserId, Addr, Port, NonRep, MaxRep, CtxName, Oids) 
594
 
  when integer(Port), integer(NonRep), integer(MaxRep), 
595
 
       list(CtxName), list(Oids) ->
596
 
    snmpm_server:sync_get_bulk(UserId, Addr, Port, 
597
 
                               NonRep, MaxRep, CtxName, Oids);
 
1043
  when is_integer(Port) andalso 
 
1044
       is_integer(NonRep) andalso 
 
1045
       is_integer(MaxRep) andalso 
 
1046
       is_list(CtxName) andalso 
 
1047
       is_list(Oids) ->
 
1048
    case target_name(Addr, Port) of
 
1049
        {ok, TargetName} ->
 
1050
            sync_get_bulk(UserId, TargetName, NonRep, MaxRep, CtxName, Oids);
 
1051
        Error ->
 
1052
            Error
 
1053
    end;
 
1054
 
598
1055
gb(UserId, Addr, Port, NonRep, MaxRep, Oids, Timeout) 
599
 
  when integer(Port), integer(NonRep), integer(MaxRep), 
600
 
       list(Oids), integer(Timeout) ->
601
 
    gb(UserId, Addr, Port, 
602
 
       NonRep, MaxRep, ?DEFAULT_CONTEXT, Oids, Timeout);
 
1056
  when is_integer(Port) andalso 
 
1057
       is_integer(NonRep) andalso 
 
1058
       is_integer(MaxRep) andalso 
 
1059
       is_list(Oids) andalso 
 
1060
       is_integer(Timeout) ->
 
1061
    gb(UserId, Addr, Port, NonRep, MaxRep, ?DEFAULT_CONTEXT, Oids, Timeout);
 
1062
 
603
1063
gb(UserId, Addr, NonRep, MaxRep, CtxName, Oids, Timeout) 
604
 
  when integer(NonRep), integer(MaxRep), 
605
 
       list(CtxName), list(Oids), integer(Timeout) ->
606
 
    gb(UserId, Addr, ?DEFAULT_AGENT_PORT, 
607
 
       NonRep, MaxRep, CtxName, Oids).
 
1064
  when is_integer(NonRep) andalso 
 
1065
       is_integer(MaxRep) andalso 
 
1066
       is_list(CtxName) andalso 
 
1067
       is_list(Oids) andalso 
 
1068
       is_integer(Timeout) ->
 
1069
    gb(UserId, Addr, ?DEFAULT_AGENT_PORT, NonRep, MaxRep, CtxName, Oids, 
 
1070
       Timeout).
608
1071
 
609
1072
gb(UserId, Addr, Port, NonRep, MaxRep, CtxName, Oids, Timeout) ->
610
 
    snmpm_server:sync_get_bulk(UserId, Addr, Port, 
611
 
                               NonRep, MaxRep, CtxName, Oids, Timeout).
 
1073
    case target_name(Addr, Port) of
 
1074
        {ok, TargetName} ->
 
1075
            sync_get_bulk(UserId, TargetName, 
 
1076
                          NonRep, MaxRep, CtxName, Oids, Timeout);
 
1077
        Error ->
 
1078
            Error
 
1079
    end.
612
1080
 
613
1081
gb(UserId, Addr, Port, NonRep, MaxRep, CtxName, Oids, Timeout, ExtraInfo) ->
614
 
    snmpm_server:sync_get_bulk(UserId, Addr, Port, 
615
 
                               NonRep, MaxRep, CtxName, Oids, Timeout,
616
 
                               ExtraInfo).
617
 
 
618
 
%% asynchroneous get-bulk
 
1082
    case target_name(Addr, Port) of
 
1083
        {ok, TargetName} ->
 
1084
            sync_get_bulk(UserId, TargetName, 
 
1085
                          NonRep, MaxRep, CtxName, Oids, Timeout, ExtraInfo);
 
1086
        Error ->
 
1087
            Error
 
1088
    end.
 
1089
 
 
1090
 
 
1091
 
 
1092
%% --- asynchroneous get-bulk ---
619
1093
%% 
 
1094
 
 
1095
async_get_bulk(UserId, TargetName, NonRep, MaxRep, Oids) ->
 
1096
    async_get_bulk(UserId, TargetName, NonRep, MaxRep, ?DEFAULT_CONTEXT, Oids).
 
1097
 
 
1098
async_get_bulk(UserId, TargetName, NonRep, MaxRep, Context, Oids) 
 
1099
  when is_integer(NonRep) andalso 
 
1100
       is_integer(MaxRep) andalso 
 
1101
       is_list(Context) andalso 
 
1102
       is_list(Oids) ->
 
1103
    snmpm_server:async_get_bulk(UserId, TargetName, 
 
1104
                                NonRep, MaxRep, Context, Oids);
 
1105
 
 
1106
async_get_bulk(UserId, TargetName, NonRep, MaxRep, Oids, Expire) 
 
1107
  when is_integer(NonRep) andalso 
 
1108
       is_integer(MaxRep) andalso 
 
1109
       is_list(Oids) andalso 
 
1110
       is_integer(Expire) ->
 
1111
    async_get_bulk(UserId, TargetName, 
 
1112
                   NonRep, MaxRep, ?DEFAULT_CONTEXT, Oids, Expire).
 
1113
 
 
1114
async_get_bulk(UserId, TargetName, NonRep, MaxRep, Context, Oids, Expire) ->
 
1115
    snmpm_server:async_get_bulk(UserId, TargetName, 
 
1116
                                NonRep, MaxRep, Context, Oids, Expire).
 
1117
 
 
1118
async_get_bulk(UserId, TargetName, NonRep, MaxRep, Context, Oids, Expire, 
 
1119
               ExtraInfo) ->
 
1120
    snmpm_server:async_get_bulk(UserId, TargetName, 
 
1121
                                NonRep, MaxRep, 
 
1122
                                Context, Oids, Expire, ExtraInfo).
 
1123
 
 
1124
 
620
1125
agb(UserId, Addr, NonRep, MaxRep, Oids) ->
621
 
    snmpm_server:async_get_bulk(UserId, Addr, ?DEFAULT_AGENT_PORT, 
622
 
                                NonRep, MaxRep, 
623
 
                                ?DEFAULT_CONTEXT, Oids).
 
1126
    agb(UserId, Addr, ?DEFAULT_AGENT_PORT, NonRep, MaxRep, Oids).
624
1127
 
625
1128
agb(UserId, Addr, Port, NonRep, MaxRep, Oids) 
626
 
  when integer(Port), integer(NonRep), integer(MaxRep), list(Oids) ->
627
 
    snmpm_server:async_get_bulk(UserId, Addr, Port, 
628
 
                                NonRep, MaxRep, ?DEFAULT_CONTEXT, Oids);
 
1129
  when is_integer(Port) andalso 
 
1130
       is_integer(NonRep) andalso 
 
1131
       is_integer(MaxRep) andalso 
 
1132
       is_list(Oids) ->
 
1133
    agb(UserId, Addr, Port, NonRep, MaxRep, ?DEFAULT_CONTEXT, Oids);
 
1134
 
629
1135
agb(UserId, Addr, NonRep, MaxRep, CtxName, Oids) 
630
 
  when integer(NonRep), integer(MaxRep), list(CtxName), list(Oids) ->
631
 
    snmpm_server:async_get_bulk(UserId, Addr, ?DEFAULT_AGENT_PORT, 
632
 
                                NonRep, MaxRep, CtxName, Oids);
 
1136
  when is_integer(NonRep) andalso 
 
1137
       is_integer(MaxRep) andalso 
 
1138
       is_list(CtxName) andalso 
 
1139
       is_list(Oids) ->
 
1140
    agb(UserId, Addr, ?DEFAULT_AGENT_PORT, NonRep, MaxRep, CtxName, Oids);
 
1141
 
633
1142
agb(UserId, Addr, NonRep, MaxRep, Oids, Expire) 
634
 
  when integer(NonRep), integer(MaxRep), list(Oids), integer(Expire) ->
635
 
    agb(UserId, Addr, ?DEFAULT_AGENT_PORT, 
636
 
       NonRep, MaxRep, ?DEFAULT_CONTEXT, Oids, Expire).
 
1143
  when is_integer(NonRep) andalso 
 
1144
       is_integer(MaxRep) andalso 
 
1145
       is_list(Oids) andalso 
 
1146
       is_integer(Expire) ->
 
1147
    agb(UserId, Addr, ?DEFAULT_AGENT_PORT, NonRep, MaxRep, Oids, Expire).
637
1148
 
638
1149
agb(UserId, Addr, Port, NonRep, MaxRep, CtxName, Oids) 
639
 
  when integer(Port), integer(NonRep), integer(MaxRep), 
640
 
       list(CtxName), list(Oids) ->
641
 
    snmpm_server:async_get_bulk(UserId, Addr, Port, 
642
 
                                NonRep, MaxRep, CtxName, Oids);
 
1150
  when is_integer(Port) andalso 
 
1151
       is_integer(NonRep) andalso 
 
1152
       is_integer(MaxRep), 
 
1153
       is_list(CtxName) andalso 
 
1154
       is_list(Oids) ->
 
1155
    case target_name(Addr, Port) of
 
1156
        {ok, TargetName} ->
 
1157
            async_get_bulk(UserId, TargetName, 
 
1158
                           NonRep, MaxRep, CtxName, Oids);
 
1159
        Error ->
 
1160
            Error
 
1161
    end;
 
1162
 
643
1163
agb(UserId, Addr, Port, NonRep, MaxRep, Oids, Expire) 
644
 
  when integer(Port), integer(NonRep), integer(MaxRep), 
645
 
       list(Oids), integer(Expire) ->
646
 
    agb(UserId, Addr, Port, 
647
 
        NonRep, MaxRep, ?DEFAULT_CONTEXT, Oids, Expire);
 
1164
  when is_integer(Port) andalso 
 
1165
       is_integer(NonRep) andalso 
 
1166
       is_integer(MaxRep) andalso 
 
1167
       is_list(Oids) andalso 
 
1168
       is_integer(Expire) ->
 
1169
    agb(UserId, Addr, Port, NonRep, MaxRep, ?DEFAULT_CONTEXT, Oids, Expire);
 
1170
 
648
1171
agb(UserId, Addr, NonRep, MaxRep, CtxName, Oids, Expire) 
649
 
  when integer(NonRep), integer(MaxRep), 
650
 
       list(CtxName), list(Oids), integer(Expire) ->
651
 
    agb(UserId, Addr, ?DEFAULT_AGENT_PORT, 
652
 
        NonRep, MaxRep, CtxName, Oids).
 
1172
  when is_integer(NonRep) andalso 
 
1173
       is_integer(MaxRep) andalso 
 
1174
       is_list(CtxName) andalso 
 
1175
       is_list(Oids) andalso 
 
1176
       is_integer(Expire) ->
 
1177
    agb(UserId, Addr, ?DEFAULT_AGENT_PORT, NonRep, MaxRep, CtxName, Oids).
653
1178
 
654
1179
agb(UserId, Addr, Port, NonRep, MaxRep, CtxName, Oids, Expire) ->
655
 
    snmpm_server:async_get_bulk(UserId, Addr, Port, 
656
 
                                NonRep, MaxRep, CtxName, Oids, Expire).
 
1180
    case target_name(Addr, Port) of
 
1181
        {ok, TargetName} ->
 
1182
            async_get_bulk(UserId, TargetName, 
 
1183
                           NonRep, MaxRep, CtxName, Oids, Expire);
 
1184
        Error ->
 
1185
            Error
 
1186
    end.
657
1187
 
658
1188
agb(UserId, Addr, Port, NonRep, MaxRep, CtxName, Oids, Expire, ExtraInfo) ->
659
 
    snmpm_server:async_get_bulk(UserId, Addr, Port, 
660
 
                                NonRep, MaxRep, CtxName, Oids, Expire,
661
 
                                ExtraInfo).
 
1189
    case target_name(Addr, Port) of
 
1190
        {ok, TargetName} ->
 
1191
            async_get_bulk(UserId, TargetName, 
 
1192
                           NonRep, MaxRep, CtxName, Oids, Expire,
 
1193
                           ExtraInfo);
 
1194
        Error ->
 
1195
            Error
 
1196
    end.
662
1197
 
663
1198
 
664
1199
cancel_async_request(UserId, ReqId) ->
960
1495
    lists:flatten(io_lib:format("~sValue:         ~p~n", [Prefix, Val])).
961
1496
 
962
1497
 
 
1498
%% ---------------------------------------------------------------------------
 
1499
%% 
 
1500
%% --- Internal utility functions ---
 
1501
%% 
 
1502
 
 
1503
target_name(Addr, Port) ->
 
1504
    snmpm_config:agent_info(Addr, Port, target_name).
 
1505
 
 
1506
mk_target_name(Addr, Port, Config) ->
 
1507
    snmpm_config:mk_target_name(Addr, Port, Config).
 
1508
 
 
1509
ensure_engine_id(Config) ->
 
1510
    case lists:keymember(engine_id, 1, Config) of
 
1511
        true ->
 
1512
            Config;
 
1513
        false ->
 
1514
            DefaultEngineId = "agentEngine-default", 
 
1515
            [{engine_id, DefaultEngineId} | Config]
 
1516
    end.
 
1517
 
 
1518
 
 
1519
 
 
1520
%% p(F) ->
 
1521
%%     p(F, []).
 
1522
 
 
1523
%% p(F, A) ->
 
1524
%%     io:format("~w:" ++ F ++ "~n", [?MODULE | A]).