annotate doc/dbg_interactive.py.sample @ 624:a5682d003ed9

Finally got the proxy aka shadow class to work
author Sebastien Decugis <sdecugis@nict.go.jp>
date Thu, 09 Dec 2010 17:14:24 +0900
parents fc4f5815f0aa
children 330be61dbf43
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
624
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
32 fd_log_debug("3 + 4 = %d\n" % (7))
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
33 # See SWIG documentation about varargs functions for more information
622
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)
624
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
44 #
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
45 # In addition, thanks to proxy (aka shadow) class, we can also do:
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
46 # s = foo()
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
47 # s.a = 2
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
48 # s.a
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
49 # del s
622
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
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
52 # Display the local Diameter Identity:
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
53 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
54 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
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 # Display some states information
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
58 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
59 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
60 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
61 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
62
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
63
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
64 # 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
65 mypeer = new_peer_info()
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
66 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
67 myconfig = peer_info_config_get(mypeer)
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
68 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
69 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
70 fd_peer_add(mypeer, "python", None, None)
624
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
71 delete_peer_info(mypeer)
622
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
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
74 # Lists
623
fc4f5815f0aa Continued work on dbg_interactive.fdx
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 622
diff changeset
75 l1 = new_fd_list()
622
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
76 l2 = new_fd_list()
623
fc4f5815f0aa Continued work on dbg_interactive.fdx
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 622
diff changeset
77 fd_list_insert_after(l1, l2)
fc4f5815f0aa Continued work on dbg_interactive.fdx
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 622
diff changeset
78 fd_list_dump(l1)
fc4f5815f0aa Continued work on dbg_interactive.fdx
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 622
diff changeset
79 fd_list_dump(l2)
622
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
80 delete_fd_list(l2)
623
fc4f5815f0aa Continued work on dbg_interactive.fdx
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 622
diff changeset
81 fd_list_dump(l1)
fc4f5815f0aa Continued work on dbg_interactive.fdx
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 622
diff changeset
82 delete_fd_list(l1)
fc4f5815f0aa Continued work on dbg_interactive.fdx
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 622
diff changeset
83
622
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
84
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
85 # Dictionary
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
86 gdict = fd_config_cnf_dict_get(cvar.fd_g_config)
624
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
87
623
fc4f5815f0aa Continued work on dbg_interactive.fdx
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 622
diff changeset
88 id = new_int_ptr()
fc4f5815f0aa Continued work on dbg_interactive.fdx
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 622
diff changeset
89 int_ptr_assign(id, 3)
624
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
90 pobj = new_dict_object_pptr()
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
91 fd_dict_search ( gdict, DICT_APPLICATION, APPLICATION_BY_ID, id, pobj, -1 )
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
92 delete_int_ptr(id)
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
93 obj = dict_object_pptr_value(pobj)
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
94 delete_dict_object_pptr(pobj)
623
fc4f5815f0aa Continued work on dbg_interactive.fdx
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 622
diff changeset
95 t = new_dict_object_type_ptr()
624
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
96 fd_dict_gettype(obj, t)
623
fc4f5815f0aa Continued work on dbg_interactive.fdx
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 622
diff changeset
97 dict_object_type_ptr_dump(t)
624
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
98 delete_dict_object_type_ptr(t)
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
99 objdata = new_dict_application_data()
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
100 fd_dict_getval(obj, objdata)
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
101 dict_application_data_application_name_get(objdata)
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
102 delete_dict_application_data(objdata)
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
103
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
104 vd = new_dict_vendor_data()
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
105 dict_vendor_data_vendor_id_set(vd, 123)
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
106 dict_vendor_data_vendor_name_set(vd, "my test vendor")
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
107 pobj = new_dict_object_pptr()
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
108 fd_dict_new ( gdict, DICT_VENDOR, vd, None, pobj)
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
109 delete_dict_vendor_data(vd)
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
110 obj = dict_object_pptr_value(pobj)
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
111 delete_dict_object_pptr(pobj)
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
112 fd_dict_dump_object(obj)
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
113
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
114
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
115 # Sessions
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
116 pmyhdl = new_session_handler_pptr()
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
117 fd_sess_handler_create_internal(pmyhdl, None)
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
118 ### Have to work on this one, a cleanup handler is actually required.
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
119 ### How to define the handler in python ?
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
120 myhdl = session_handler_pptr_value(pmyhdl)
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
121 delete_session_handler_pptr(pmyhdl)
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
122
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
123 psess = new_session_pptr()
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
124 fd_sess_new (psess, fd_config_cnf_diamid_get(cvar.fd_g_config), "dbg_interactive", 0)
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
125 sess = session_pptr_value(psess)
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
126 fd_sess_dump(0, sess)
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
127 fd_sess_destroy(psess)
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
128 delete_session_pptr(psess)
622
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
129
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
130
624
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
131 # Routing data
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
132 prtd = new_rt_data_pptr()
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
133 fd_rtd_init(prtd)
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
134 fd_rtd_candidate_add(rt_data_pptr_value(prtd), "p1.testbed.aaa", "testbed.aaa")
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
135 fd_rtd_candidate_add(rt_data_pptr_value(prtd), "p2.testbed.aaa", "testbed.aaa")
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
136 fd_rtd_candidate_add(rt_data_pptr_value(prtd), "p3.testbed.aaa", "testbed.aaa")
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
137 fd_rtd_candidate_del(rt_data_pptr_value(prtd), "p2.testbed.aaa", 0)
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
138 pcands = new_fd_list_pptr()
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
139 fd_rtd_candidate_extract(rt_data_pptr_value(prtd), pcands, 0)
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
140 li = fd_list_pptr_value(pcands)
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
141 li = fd_list_next_get(li)
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
142 c = fd_list_to_rtd_candidate(li)
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
143 rtd_candidate_diamid_get(c)
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
144 li = fd_list_next_get(li)
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
145 c = fd_list_to_rtd_candidate(li)
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
146 rtd_candidate_diamid_get(c)
622
cfbf7ed5dccd Added some limited example for dbg_interactive
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
147
624
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
148
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
149 # Messages
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
150 gdict = fd_config_cnf_dict_get(cvar.fd_g_config)
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
151 pobj = new_dict_object_pptr()
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
152 fd_dict_search ( gdict, DICT_COMMAND, CMD_BY_NAME, char_to_void("Capabilities-Exchange-Request"), pobj, -1 )
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
153 cerdict = dict_object_pptr_value(pobj)
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
154 fd_dict_search ( gdict, DICT_AVP, AVP_BY_NAME, char_to_void("Origin-Host"), pobj, -1 )
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
155 ohdict = dict_object_pptr_value(pobj)
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
156 delete_dict_object_pptr(pobj)
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
157
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
158 pmsg = new_msg_pptr()
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
159 fd_msg_new(cerdict, MSGFL_ALLOC_ETEID, pmsg)
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
160 msg = msg_pptr_value(pmsg);
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
161 pavp = new_avp_pptr()
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
162 fd_msg_avp_new(ohdict, 0, pavp)
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
163 avp = avp_pptr_value(pavp);
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
164 fd_msg_avp_add(msg, MSG_BRW_FIRST_CHILD, avp)
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
165 fd_msg_dump_walk(0, msg)
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
166
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
167 pahdr = new_avp_hdr_pptr()
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
168 fd_msg_avp_hdr(avp, pahdr)
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
169 ahdr = avp_hdr_pptr_value(pahdr)
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
170 delete_avp_hdr_pptr(pahdr)
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
171 avp_hdr_avp_code_get(ahdr)
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
172 os = new_avp_value_os()
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
173 avp_value_os_fromstr(os, fd_config_cnf_diamid_get(cvar.fd_g_config))
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
174 val = new_avp_value()
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
175 avp_value_os_set(val, os)
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
176 delete_avp_value_os(os)
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
177 fd_msg_avp_setvalue(avp, val)
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
178 delete_avp_value(val)
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
179
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
180 r,buf = fd_msg_bufferize_py(msg)
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
181 fd_msg_free(msg)
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
182 delete_avp_pptr(pavp)
a5682d003ed9 Finally got the proxy aka shadow class to work
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 623
diff changeset
183
"Welcome to our mercurial repository"