annotate doc/dbg_interactive.py.sample @ 622:cfbf7ed5dccd

Added some limited example for dbg_interactive
author Sebastien Decugis <sdecugis@nict.go.jp>
date Tue, 07 Dec 2010 11:14:21 +0900
parents
children fc4f5815f0aa
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
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
23 # Turn on debug for a specific function
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
24 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
25
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
26
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
27 # Use freeDiameter's debug facility
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
28 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
29 # 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
30
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
31
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
32 # Change the global debug level of the framework
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
33 cvar.fd_g_debug_lvl = FULL
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
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
36 # Display the local Diameter Identity:
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
37 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
38 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
39
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
40
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
41 # Display some states information
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
42 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
43 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
44 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
45 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
46
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
47
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
48 # 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
49 mypeer = new_peer_info()
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
50 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
51 myconfig = peer_info_config_get(mypeer)
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
52 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
53 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
54 fd_peer_add(mypeer, "python", None, None)
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
55
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 # Lists
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
58 mylist = new_fd_list()
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
59 fd_list_init(mylist, None)
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
60 l2 = new_fd_list()
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
61 fd_list_init(l2, None)
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
62 fd_list_insert_after(mylist, l2)
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
63 fd_list_unlink(l2)
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
64 delete_fd_list(l2)
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
65 delete_fd_list(mylist)
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 # Dictionary
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
68 gdict = fd_config_cnf_dict_get(cvar.fd_g_config)
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
69 @@@ fd_dict_search ( gdict, DICT_APPLICATION, APPLICATION_BY_ID, id, res, -1 )
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
70
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
71
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
72
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
73
"Welcome to our mercurial repository"