MCPcopy
hub / github.com/deepflowio/deepflow / SendToServer

Function SendToServer

server/libs/debug/udp.go:100–130  ·  view source on GitHub ↗
(module ModuleId, operate ModuleOperate, args *bytes.Buffer)

Source from the content-addressed store, hash-verified

98}
99
100func SendToServer(module ModuleId, operate ModuleOperate, args *bytes.Buffer) (*net.UDPConn, *bytes.Buffer, error) {
101 ip := hostIp
102 if strings.Contains(ip, ":") {
103 ip = "[" + ip + "]"
104 }
105 conn, err := net.Dial("udp", ip+":"+strconv.Itoa(hostPort))
106 if err != nil {
107 return nil, nil, err
108 }
109 sendBuffer := bytes.Buffer{}
110
111 conn.SetReadDeadline(time.Now().Add(time.Minute))
112 msg := DebugMessage{Module: uint16(module), Operate: uint16(operate), Result: 0}
113 if args != nil {
114 msg.Args = args.Bytes()
115 }
116 encoder := gob.NewEncoder(&sendBuffer)
117 if err := encoder.Encode(msg); err != nil {
118 return conn.(*net.UDPConn), nil, err
119 }
120
121 conn.Write(sendBuffer.Bytes())
122
123 var recv *bytes.Buffer
124 if module > MODULE_MAX {
125 recv, err = RecvFromServerMulti(conn.(*net.UDPConn))
126 } else {
127 recv, err = RecvFromServer(conn.(*net.UDPConn))
128 }
129 return conn.(*net.UDPConn), recv, err
130}
131
132func SendToClient(conn *net.UDPConn, remote *net.UDPAddr, result uint32, args *bytes.Buffer) {
133 buffer := bytes.Buffer{}

Callers 2

CommmandGetResultFunction · 0.85
sendCmdFunction · 0.85

Calls 7

EncodeMethod · 0.95
RecvFromServerMultiFunction · 0.85
RecvFromServerFunction · 0.85
ContainsMethod · 0.80
AddMethod · 0.45
BytesMethod · 0.45
WriteMethod · 0.45

Tested by

no test coverage detected