func handleClient(conn net.Conn) { defer conn.Close() for { m, err := diam.ReadMessage(conn, dict.Default) if err != nil { log.Fatal(err) } log.Println(m) } }
func main() { err := dict.Default.Load(bytes.NewReader(customApp)) if err != nil { log.Fatal(err) } m := diam.NewMessage(1111, diam.RequestFlag, 999, 1, 2, dict.Default) m.NewAVP(avp.ProductName, avp.Mbit, 0, datatype.Unsigned32(1)) m.NewAVP(7070, avp.Mbit, 0, &diam.GroupedAVP{ AVP: []*diam.AVP{ diam.NewAVP(avp.VendorID, avp.Mbit, 0, datatype.Unsigned32(10)), diam.NewAVP(8080, avp.Mbit, 0, &diam.GroupedAVP{ AVP: []*diam.AVP{ diam.NewAVP(avp.VendorID, avp.Mbit, 0, datatype.Unsigned32(20)), diam.NewAVP(9090, avp.Mbit, 0, &diam.GroupedAVP{ AVP: []*diam.AVP{ diam.NewAVP(avp.VendorID, avp.Mbit, 0, datatype.Unsigned32(30)), diam.NewAVP(avp.VendorID, avp.Mbit, 0, datatype.Unsigned32(40)), }, }), }, }), }, }) log.Printf("m:\n%s\n", m) var b bytes.Buffer _, err = m.WriteTo(&b) if err != nil { log.Fatal(err) } z, err := diam.ReadMessage(&b, dict.Default) if err != nil { log.Fatal(err) } log.Printf("z:\n%s\n", z) var y customMsg err = z.Unmarshal(&y) if err != nil { log.Fatal(err) } log.Printf("y:\n%+v\n", y) }