aboutsummaryrefslogtreecommitdiff
path: root/parse/parse.go
diff options
context:
space:
mode:
Diffstat (limited to 'parse/parse.go')
-rw-r--r--parse/parse.go37
1 files changed, 25 insertions, 12 deletions
diff --git a/parse/parse.go b/parse/parse.go
index f128440..3d74e58 100644
--- a/parse/parse.go
+++ b/parse/parse.go
@@ -37,30 +37,43 @@ func main() {
//fmt.Println(ber.Dump(s))
switch s[0] {
case 0xa1:
- v := &rose.Invoke{}
- unmarshal(s, v)
- if v.Opcode == 211 {
+ id, opcode, buf, err := rose.Unmarshal(s)
+ if err != nil {
+ fmt.Println(err)
+ }
+ if opcode == csta.SystemStatusOpcode {
ss := &csta.SystemStatusArg{}
- unmarshal(v.RawValue.FullBytes, ss)
- fmt.Println(ss.SystemStatus)
+ asn1.Unmarshal(buf, ss)
+ fmt.Println("Status", ss.SystemStatus)
+ null, _ := asn1.Marshal(asn1.Null{})
+ res, err := rose.Marshal(id, opcode, null)
+ if err != nil {
+ fmt.Println(err)
+ }
+ fmt.Printf("%x\n", s)
+ fmt.Printf("%x\n", res)
+ } else {
+ unmarshal(s, &rose.Invoke{})
}
case 0xa2:
- v := &rose.ReturnResult{}
- unmarshal(s, v)
- if v.Result.Opcode == 211 {
- ss := &csta.SystemStatusRes{}
- unmarshal(v.Result.RawValue.FullBytes, ss)
- }
+ unmarshal(s, &rose.ReturnResult{})
case 0x60:
unmarshal(s, &acse.AARQ{})
+ a, _ := acse.Associate()
+ fmt.Printf("%x\n", s)
+ fmt.Printf("%x\n", a)
case 0x61:
unmarshal(s, &acse.AARE{})
+ reason, _ := acse.AssociateResult(s)
+ fmt.Println("Reason", reason)
case 0x62:
unmarshal(s, &acse.RLRQ{})
case 0x63:
unmarshal(s, &acse.RLRE{})
case 0x64:
- unmarshal(s, &acse.ABRT{})
+ a := &acse.ABRT{}
+ unmarshal(s, a)
+ fmt.Println(a)
}
}