-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathproxy.go
52 lines (45 loc) · 1.14 KB
/
proxy.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
package message
// ProxyData defines data for proxy message
type ProxyData struct {
ID string `json:"id"`
URL string `json:"url"`
Request []byte `json:"request"`
Response []byte `json:"response"`
ServerID string `json:"server_id"`
SessionID string `json:"session_id"`
}
// Proxy defines message for url forwarding protocol.
type Proxy struct {
BaseMessage
Data ProxyData `json:"data"`
}
// NewProxyRequest creates instance of Proxy with request bytes
func NewProxyRequest(serverID, id, sessionID, url string, req []byte) Message {
data := ProxyData{
ID: id,
Request: req,
URL: url,
ServerID: serverID,
SessionID: sessionID,
}
m := &Proxy{
Data: data,
}
m.MessageType = "proxy"
m.Model = "proxy_request"
return m
}
// NewProxyResponse creates instance of Proxy with response bytes
func NewProxyResponse(requestData ProxyData, res []byte) Message {
requestData.Response = res
m := &Proxy{
Data: requestData,
}
m.MessageType = "proxy"
m.Model = "proxy_response"
return m
}
// SetResponse set a response to proxy data
func (p *Proxy) SetResponse(response []byte) {
p.Data.Response = response
}