Mercurial > hg > freeDiameter
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 |
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 |