Changeset 635:134e4fb9eef5 in freeDiameter for doc/dbg_interactive.py.sample
- Timestamp:
- Dec 14, 2010, 5:34:46 PM (13 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
doc/dbg_interactive.py.sample
r627 r635 87 87 ############# Dictionary ############ 88 88 89 # Create a dedicated dictionary for our tests89 ##### Create a dedicated dictionary for our tests 90 90 d = dictionary() 91 91 d.dump() … … 124 124 125 125 c.enum_name = "A_BUFFER_CONSTANT" 126 osval = avp_value_os("This is a very long AVP value that we prefer to represent as a constant") 127 c.enum_value.os = osval 126 c.enum_value.os = "This is a very long AVP value that we prefer to represent as a constant" 128 127 c.enum_value.os.dump() 128 fd_dict_new(d, DICT_ENUMVAL, c, my_type_os) 129 del c 130 131 # AVP 132 a = dict_avp_data() 133 a.avp_code = 234 134 a.avp_name = "my integer avp" 135 a.avp_flag_mask = AVP_FLAG_MANDATORY 136 a.avp_basetype = AVP_TYPE_INTEGER32 137 r, my_avp_int = fd_dict_new(d, DICT_AVP, a, my_type_int) 138 139 a.avp_vendor = 123 140 a.avp_name = "my OS avp" 141 a.avp_flag_mask = AVP_FLAG_MANDATORY + AVP_FLAG_VENDOR 142 a.avp_flag_val = AVP_FLAG_VENDOR 143 a.avp_basetype = AVP_TYPE_OCTETSTRING 144 r, my_avp_os = fd_dict_new(d, DICT_AVP, a, my_type_os) 145 del a 146 147 # Command 148 c = dict_cmd_data() 149 c.cmd_code = 345 150 c.cmd_name = "My-Python-Request" 151 c.cmd_flag_mask = CMD_FLAG_REQUEST + CMD_FLAG_PROXIABLE 152 c.cmd_flag_val = CMD_FLAG_REQUEST + CMD_FLAG_PROXIABLE 153 r, my_req = fd_dict_new(d, DICT_COMMAND, c, my_appl) 154 c.cmd_name = "My-Python-Answer" 155 c.cmd_flag_val = CMD_FLAG_PROXIABLE 156 r, my_ans = fd_dict_new(d, DICT_COMMAND, c, my_appl) 157 del c 158 159 # Rule 160 rd = dict_rule_data() 161 rd.rule_avp = my_avp_int 162 rd.rule_position = RULE_REQUIRED 163 rd.rule_min = -1 164 rd.rule_max = -1 165 r, my_rule1 = fd_dict_new(d, DICT_RULE, rd, my_req) 166 r, my_rule2 = fd_dict_new(d, DICT_RULE, rd, my_ans) 167 rd.rule_avp = my_avp_os 168 r, my_rule3 = fd_dict_new(d, DICT_RULE, rd, my_req) 169 r, my_rule4 = fd_dict_new(d, DICT_RULE, rd, my_ans) 170 del rd 171 172 d.dump() 129 173 del d 130 174 131 c = dict_enumval_data() 132 c.enum_value.os = "coucou" 133 c.enum_value.os.dump() 134 175 176 ####### Now play with the "real" dictionary 135 177 136 178 gdict = cvar.fd_g_config.cnf_dict 137 r, obj = fd_dict_search ( gdict, DICT_APPLICATION, APPLICATION_BY_ID, 3, -1 ) 179 180 r, appl = fd_dict_search ( gdict, DICT_APPLICATION, APPLICATION_BY_ID, 3, -1 ) 138 181 obj.dump() 139 r, obj= fd_dict_search( gdict, DICT_AVP, AVP_BY_NAME, "Origin-Host", -1)182 r, avp = fd_dict_search( gdict, DICT_AVP, AVP_BY_NAME, "Origin-Host", -1) 140 183 obj.dump() 141 142 t = new_dict_object_type_ptr() 143 fd_dict_gettype(obj, t) 144 dict_object_type_ptr_dump(t) 145 delete_dict_object_type_ptr(t) 146 objdata = new_dict_application_data() 147 fd_dict_getval(obj, objdata) 148 dict_application_data_application_name_get(objdata) 149 delete_dict_application_data(objdata) 150 151 vd = new_dict_vendor_data() 152 dict_vendor_data_vendor_id_set(vd, 123) 153 dict_vendor_data_vendor_name_set(vd, "my test vendor") 154 pobj = new_dict_object_pptr() 155 fd_dict_new ( gdict, DICT_VENDOR, vd, None, pobj) 156 delete_dict_vendor_data(vd) 157 obj = dict_object_pptr_value(pobj) 158 delete_dict_object_pptr(pobj) 159 fd_dict_dump_object(obj) 160 161 162 # Sessions 163 pmyhdl = new_session_handler_pptr() 164 fd_sess_handler_create_internal(pmyhdl, None) 165 ### Have to work on this one, a cleanup handler is actually required. 166 ### How to define the handler in python ? 167 myhdl = session_handler_pptr_value(pmyhdl) 168 delete_session_handler_pptr(pmyhdl) 169 170 psess = new_session_pptr() 171 fd_sess_new (psess, fd_config_cnf_diamid_get(cvar.fd_g_config), "dbg_interactive", 0) 172 sess = session_pptr_value(psess) 173 fd_sess_dump(0, sess) 174 fd_sess_destroy(psess) 175 delete_session_pptr(psess) 176 184 r, errcmd = fd_dict_get_error_cmd( gdict ) 185 186 data = dict_avp_data() 187 fd_dict_getval(avp, data) 188 print data.avp_code 189 del data 190 191 r, t = fd_dict_gettype(appl) 192 del t 193 194 r, dict = fd_dict_getdict(avp) 195 del dict 196 197 198 199 ############# Sessions ############ 200 201 # handler 202 def my_cleanup(state,sid): 203 print "Cleaning up python state for session:", sid 204 print "Received state:", state 205 206 hdl = session_handler(my_cleanup) 207 hdl.dump() 208 del hdl 209 210 hdl = session_handler(my_cleanup) 211 212 213 # Session 214 s1 = session() 215 s1.getsid() 216 s2 = session("this.is.a.full.session.id") 217 r,s3,isnew = fd_sess_fromsid("this.is.a.full.session.id") 218 s4 = session("host.id", "opt.part") 219 220 s4.settimeout(30) # the python wrapper takes a number of seconds as parameter for simplicity 221 s4.dump() 222 223 224 # state 225 mystate = [ 34, "clah", [ 32, 12 ] ] 226 227 s4.store(hdl, mystate) 228 229 230 231 ## TODO : debug the following (segfault) 232 233 def my_cleanup(state,sid): 234 print "Cleaning up python state for session:", sid 235 print "Received state:", state 236 237 hdl = session_handler(my_cleanup) 238 s4 = session("host.id", "opt.part") 239 mystate = [ 34, "clah", [ 32, 12 ] ] 240 s4.store(hdl, mystate) 241 del hdl 242 243 244 245 246 247 248 249 250 ######################### old stuff (need update) ###################### 177 251 178 252 # Routing data
Note: See TracChangeset
for help on using the changeset viewer.