annotate doc/dbg_interactive.py.sample @ 623:fc4f5815f0aa

Continued work on dbg_interactive.fdx
author Sebastien Decugis <sdecugis@nict.go.jp>
date Tue, 07 Dec 2010 17:24:53 +0900
parents cfbf7ed5dccd
children a5682d003ed9
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
622
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
1 # Example file for the dbg_interactive.fdx extension.
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
2 #
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
3 # This extension provides an interactive python interpreter console that allows
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
4 # interacting with freeDiameter framework.
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
5 #
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
6 # The adaptation layer between Python and C is provided by SWIG (http://swig.org).
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
7 # You may refer to SWIG documentation for more information on how the wrapper is generated and used.
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
8 # Please note that the high-level wrapper file (python file) is not used in dbg_interactive at the moment,
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
9 # but all symbols from the module are imported.
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
10 #
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
11 # Similar to all freeDiameter extensions, an optional filename can be specified in the
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
12 # main freeDiameter.conf configuration file for the dbg_interactive.fdx extension.
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
13 # If such file is provided, it will be passed to the python interpreter as a python script
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
14 # to execute. Otherwise, the interpreter will be interactive.
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
15 #
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
16 # Bellow are some example use of the python interpreter:
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
17
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
18
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
19 # Display current version
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
20 print FD_PROJECT_NAME, FD_PROJECT_VERSION_MAJOR, FD_PROJECT_VERSION_MINOR, FD_PROJECT_VERSION_REV
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
21
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
22
623
fc4f5815f0aa Continued work on dbg_interactive.fdx
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 622
diff changeset
23 # Change the global debug level of the framework (cvar contains all global variables)
fc4f5815f0aa Continued work on dbg_interactive.fdx
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 622
diff changeset
24 cvar.fd_g_debug_lvl = FULL
fc4f5815f0aa Continued work on dbg_interactive.fdx
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 622
diff changeset
25
fc4f5815f0aa Continued work on dbg_interactive.fdx
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 622
diff changeset
26
622
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
27 # Turn on debug for a specific function
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
28 cvar.fd_debug_one_function = "gc_th_fct"
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
29
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
30
623
fc4f5815f0aa Continued work on dbg_interactive.fdx
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 622
diff changeset
31 # Print messages to freeDiameter's debug facility
622
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
32 fd_log_debug("3 + 4 = %d\n", 7)
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
33 # Hum... Currently I get "3 + 4 = 0" output... need some fix...
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
34
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
35
623
fc4f5815f0aa Continued work on dbg_interactive.fdx
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 622
diff changeset
36 # SWIG deals with structures as follow:
fc4f5815f0aa Continued work on dbg_interactive.fdx
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 622
diff changeset
37 # Take the structure:
fc4f5815f0aa Continued work on dbg_interactive.fdx
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 622
diff changeset
38 # struct foo { int a; }
fc4f5815f0aa Continued work on dbg_interactive.fdx
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 622
diff changeset
39 # The following functions are available to python:
fc4f5815f0aa Continued work on dbg_interactive.fdx
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 622
diff changeset
40 # s = new_foo() --> s = calloc(1, sizeof(struct foo))
fc4f5815f0aa Continued work on dbg_interactive.fdx
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 622
diff changeset
41 # foo_a_set(s, 2) --> s->a = 2
fc4f5815f0aa Continued work on dbg_interactive.fdx
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 622
diff changeset
42 # foo_a_get(s) --> returns s->a value
fc4f5815f0aa Continued work on dbg_interactive.fdx
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 622
diff changeset
43 # delete_foo(s) --> free(s)
622
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
44
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
45
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
46 # Display the local Diameter Identity:
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
47 print "Local Diameter Identity:", fd_config_cnf_diamid_get(cvar.fd_g_config)
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
48 print "Realm:", fd_config_cnf_diamrlm_get(cvar.fd_g_config)
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
49
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
50
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
51 # Display some states information
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
52 evl = fd_config_cnf_main_ev_get(cvar.fd_g_config)
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
53 r = fd_event_send(evl, FDEV_DUMP_PEERS, 0, None)
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
54 r = fd_event_send(evl, FDEV_DUMP_SERV, 0, None)
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
55 r = fd_event_send(evl, FDEV_DUMP_EXT, 0, None)
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
56
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
57
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
58 # Create a new peer_info structure and add the peer to the framework.
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
59 mypeer = new_peer_info()
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
60 peer_info_pi_diamid_set( mypeer, "nas.testbed.aaa" )
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
61 myconfig = peer_info_config_get(mypeer)
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
62 mypicflag = peer_info_config_pic_flags_get(myconfig)
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
63 peer_info_config_pic_flags_pro4_set(mypicflag, 1) # 1 for TCP
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
64 fd_peer_add(mypeer, "python", None, None)
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
65
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
66
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
67 # Lists
623
fc4f5815f0aa Continued work on dbg_interactive.fdx
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 622
diff changeset
68 l1 = new_fd_list()
622
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
69 l2 = new_fd_list()
623
fc4f5815f0aa Continued work on dbg_interactive.fdx
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 622
diff changeset
70 fd_list_insert_after(l1, l2)
fc4f5815f0aa Continued work on dbg_interactive.fdx
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 622
diff changeset
71 fd_list_dump(l1)
fc4f5815f0aa Continued work on dbg_interactive.fdx
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 622
diff changeset
72 fd_list_dump(l2)
622
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
73 delete_fd_list(l2)
623
fc4f5815f0aa Continued work on dbg_interactive.fdx
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 622
diff changeset
74 fd_list_dump(l1)
fc4f5815f0aa Continued work on dbg_interactive.fdx
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 622
diff changeset
75 delete_fd_list(l1)
fc4f5815f0aa Continued work on dbg_interactive.fdx
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 622
diff changeset
76
622
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
77
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
78 # Dictionary
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
79 gdict = fd_config_cnf_dict_get(cvar.fd_g_config)
623
fc4f5815f0aa Continued work on dbg_interactive.fdx
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 622
diff changeset
80 id = new_int_ptr()
fc4f5815f0aa Continued work on dbg_interactive.fdx
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 622
diff changeset
81 int_ptr_assign(id, 3)
fc4f5815f0aa Continued work on dbg_interactive.fdx
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 622
diff changeset
82 res = new_dict_object_ptr()
fc4f5815f0aa Continued work on dbg_interactive.fdx
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 622
diff changeset
83 err = fd_dict_search ( gdict, DICT_APPLICATION, APPLICATION_BY_ID, id, res, -1 )
fc4f5815f0aa Continued work on dbg_interactive.fdx
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 622
diff changeset
84 obj = dict_object_ptr_value(res)
fc4f5815f0aa Continued work on dbg_interactive.fdx
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 622
diff changeset
85 t = new_dict_object_type_ptr()
fc4f5815f0aa Continued work on dbg_interactive.fdx
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 622
diff changeset
86 err = fd_dict_gettype(obj, t)
fc4f5815f0aa Continued work on dbg_interactive.fdx
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 622
diff changeset
87 dict_object_type_ptr_dump(t)
fc4f5815f0aa Continued work on dbg_interactive.fdx
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 622
diff changeset
88 v = new_dict_application_data()
fc4f5815f0aa Continued work on dbg_interactive.fdx
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 622
diff changeset
89 err = fd_dict_getval(obj, v)
fc4f5815f0aa Continued work on dbg_interactive.fdx
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 622
diff changeset
90 dict_application_data_application_name_get(v)
622
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
91
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
92
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
93
"Welcome to our mercurial repository"