Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
oai
freediameter
Commits
12b195dd
Commit
12b195dd
authored
Dec 15, 2010
by
Sebastien Decugis
Browse files
Still making progress on the dbg_interactive interface.
parent
bcdce685
Changes
2
Expand all
Hide whitespace changes
Inline
Side-by-side
doc/dbg_interactive.py.sample
View file @
12b195dd
...
...
@@ -94,7 +94,7 @@ d.dump()
v = dict_vendor_data()
v.vendor_id = 123
v.vendor_name = "My test vendor"
r,
my_vendor =
fd_dict_new(d,
DICT_VENDOR, v
, None
)
my_vendor =
d.new_obj(
DICT_VENDOR, v)
del v
d.dump()
d.vendors_list()
...
...
@@ -103,29 +103,29 @@ d.vendors_list()
a = dict_application_data()
a.application_id = 99
a.application_name = "My test appl"
r,
my_appl =
fd_dict_new(d,
DICT_APPLICATION, a, my_vendor)
my_appl =
d.new_obj(
DICT_APPLICATION, a, my_vendor)
del a
# New type (callbacks are not supported yet...)
t = dict_type_data()
t.type_base = AVP_TYPE_INTEGER32
t.type_name = "My integer AVP"
r,
my_type_int =
fd_dict_new(d,
DICT_TYPE, t, my_appl)
my_type_int =
d.new_obj(
DICT_TYPE, t, my_appl)
t.type_base = AVP_TYPE_OCTETSTRING
t.type_name = "My binary buffer AVP"
r,
my_type_os =
fd_dict_new(d,
DICT_TYPE, t, my_appl)
my_type_os =
d.new_obj(
DICT_TYPE, t, my_appl)
del t
# Constants
c = dict_enumval_data()
c.enum_name = "AVP_VALUE_TROIS"
c.enum_value.i32 = 3
fd_dict_new(d,
DICT_ENUMVAL, c, my_type_int)
d.new_obj(
DICT_ENUMVAL, c, my_type_int)
c.enum_name = "A_BUFFER_CONSTANT"
c.enum_value.os = "This is a very long AVP value that we prefer to represent as a constant"
c.enum_value.os.dump()
fd_dict_new(d,
DICT_ENUMVAL, c, my_type_os)
d.new_obj(
DICT_ENUMVAL, c, my_type_os)
del c
# AVP
...
...
@@ -134,14 +134,14 @@ a.avp_code = 234
a.avp_name = "my integer avp"
a.avp_flag_mask = AVP_FLAG_MANDATORY
a.avp_basetype = AVP_TYPE_INTEGER32
r,
my_avp_int =
fd_dict_new(d,
DICT_AVP, a, my_type_int)
my_avp_int =
d.new_obj(
DICT_AVP, a, my_type_int)
a.avp_vendor = 123
a.avp_name = "my OS avp"
a.avp_flag_mask = AVP_FLAG_MANDATORY + AVP_FLAG_VENDOR
a.avp_flag_val = AVP_FLAG_VENDOR
a.avp_basetype = AVP_TYPE_OCTETSTRING
r,
my_avp_os =
fd_dict_new(d,
DICT_AVP, a, my_type_os)
my_avp_os =
d.new_obj(
DICT_AVP, a, my_type_os)
del a
# Command
...
...
@@ -150,24 +150,24 @@ c.cmd_code = 345
c.cmd_name = "My-Python-Request"
c.cmd_flag_mask = CMD_FLAG_REQUEST + CMD_FLAG_PROXIABLE
c.cmd_flag_val = CMD_FLAG_REQUEST + CMD_FLAG_PROXIABLE
r,
my_req =
fd_dict_new(d,
DICT_COMMAND, c, my_appl)
my_req =
d.new_obj(
DICT_COMMAND, c, my_appl)
c.cmd_name = "My-Python-Answer"
c.cmd_flag_val = CMD_FLAG_PROXIABLE
r,
my_ans =
fd_dict_new(d,
DICT_COMMAND, c, my_appl)
my_ans =
d.new_obj(
DICT_COMMAND, c, my_appl)
del c
# Rule
r
d
= dict_rule_data()
r
d
.rule_avp = my_avp_int
r
d
.rule_position = RULE_REQUIRED
r
d
.rule_min = -1
r
d
.rule_max = -1
r, my_rule1 = fd_dict_new(d,
DICT_RULE, r
d
, my_req)
r, my_rule2 = fd_dict_new(d,
DICT_RULE, r
d
, my_ans)
r
d
.rule_avp = my_avp_os
r, my_rule3 = fd_dict_new(d,
DICT_RULE, r
d
, my_req)
r, my_rule4 = fd_dict_new(d,
DICT_RULE, r
d
, my_ans)
del r
d
r = dict_rule_data()
r.rule_avp = my_avp_int
r.rule_position = RULE_REQUIRED
r.rule_min = -1
r.rule_max = -1
d.new_obj(
DICT_RULE, r, my_req)
d.new_obj(
DICT_RULE, r, my_ans)
r.rule_avp = my_avp_os
d.new_obj(
DICT_RULE, r, my_req)
d.new_obj(
DICT_RULE, r, my_ans)
del r
d.dump()
del d
...
...
@@ -177,70 +177,70 @@ del d
gdict = cvar.fd_g_config.cnf_dict
r,
appl =
fd_
dict
_
search (
gdict,
DICT_APPLICATION, APPLICATION_BY_ID, 3
, -1
)
obj
.dump()
r,
avp =
fd_
dict
_
search(
gdict,
DICT_AVP, AVP_BY_NAME, "Origin-Host"
, -1
)
obj
.dump()
r,
errcmd =
fd_
dict
_get_
error_cmd(
gdict
)
appl =
g
dict
.
search ( DICT_APPLICATION, APPLICATION_BY_ID, 3 )
appl
.dump()
avp =
g
dict
.
search
( DICT_AVP, AVP_BY_NAME, "Origin-Host")
avp
.dump()
errcmd =
g
dict
.
error_cmd()
data = dict_avp_data()
fd_dict_getval(avp, data)
print data.avp_code
del data
v = avp.getval()
print v.avp_code
del v
r, t = fd_dict_gettype(appl)
t = avp.gettype()
print t
del t
r,
dict =
fd_dict_
getdict(
avp
)
dict =
avp.
getdict()
del dict
############# Sessions ############
# handler
def my_cleanup(state,sid):
print "Cleaning up python state for session:", sid
print "Received state:", state
del state
hdl = session_handler(my_cleanup)
hdl.dump()
del hdl
hdl = session_handler(my_cleanup)
# Session
hdl = session_handler(my_cleanup)
s1 = session()
s1.getsid()
s2 = session("this.is.a.full.session.id")
r,s3,isnew = fd_sess_fromsid("this.is.a.full.session.id")
s4 = session("host.id", "opt.part")
s4.settimeout(30) # the python wrapper takes a number of seconds as parameter for simplicity
s4.dump()
# states
mystate = [ 34, "blah", [ 32, 12 ] ]
s1.store(hdl, mystate)
del mystate
gotstate = s1.retrieve(hdl)
print gotstate
del gotstate
# state
mystate = [ 34, "clah", [ 32, 12 ] ]
s4.store(hdl, mystate)
############# Routing ############
rd = rt_data()
## TODO : debug the following (segfault)
rd.add("p1.testbed.aaa", "testbed.aaa")
rd.add("p2.testbed.aaa", "testbed.aaa")
rd.add("p3.testbed.aaa", "testbed.aaa")
rd.add("p4.testbed.aaa", "testbed.aaa")
def my_cleanup(state,sid):
print "Cleaning up python state for session:", sid
print "Received state:", state
hdl = session_handler(my_cleanup)
s4 = session("host.id", "opt.part")
mystate = [ 34, "clah", [ 32, 12 ] ]
s4.store(hdl, mystate)
del hdl
rd.remove("p2.testbed.aaa")
rd.error("p3.testbed.aaa", "relay.testbed.aaa", 3002)
list = rd.extract(-1)
list[0].dump()
...
...
@@ -249,22 +249,6 @@ del hdl
######################### old stuff (need update) ######################
# Routing data
prtd = new_rt_data_pptr()
fd_rtd_init(prtd)
fd_rtd_candidate_add(rt_data_pptr_value(prtd), "p1.testbed.aaa", "testbed.aaa")
fd_rtd_candidate_add(rt_data_pptr_value(prtd), "p2.testbed.aaa", "testbed.aaa")
fd_rtd_candidate_add(rt_data_pptr_value(prtd), "p3.testbed.aaa", "testbed.aaa")
fd_rtd_candidate_del(rt_data_pptr_value(prtd), "p2.testbed.aaa", 0)
pcands = new_fd_list_pptr()
fd_rtd_candidate_extract(rt_data_pptr_value(prtd), pcands, 0)
li = fd_list_pptr_value(pcands)
li = fd_list_next_get(li)
c = fd_list_to_rtd_candidate(li)
rtd_candidate_diamid_get(c)
li = fd_list_next_get(li)
c = fd_list_to_rtd_candidate(li)
rtd_candidate_diamid_get(c)
# Messages
...
...
extensions/dbg_interactive/dbg_interactive.i
View file @
12b195dd
This diff is collapsed.
Click to expand it.
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment