Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
ulixee
GitHub Repository: ulixee/secret-agent
Path: blob/main/mitm-socket/go/domain_ipc.go
1029 views
1
package main
2
3
import (
4
"encoding/json"
5
"fmt"
6
"log"
7
"net"
8
)
9
10
var conn net.Conn
11
var encoder *json.Encoder
12
13
func ConnectIpc(path string) (net.Conn, error) {
14
var err error
15
conn, err = DialOnDomain(path)
16
if err != nil {
17
return nil, err
18
}
19
encoder = json.NewEncoder(conn)
20
21
return conn, nil
22
}
23
24
func SendToIpc(id int, status string, extras map[string]interface{}) {
25
msg := map[string]interface{}{
26
"id": id,
27
"status": status,
28
}
29
30
if extras != nil {
31
for k := range extras {
32
msg[k] = extras[k]
33
}
34
}
35
36
err := encoder.Encode(&msg)
37
if err != nil {
38
log.Fatalf("[id=%d] WriteMessage Error: %+v\n", id, err)
39
}
40
}
41
42
func SendErrorToIpc(id int, step string, err error) {
43
msg := map[string]interface{}{
44
"id": id,
45
"status": "error",
46
"error-step": step,
47
"error": fmt.Sprintf("%+v", err),
48
}
49
writeError := encoder.Encode(&msg)
50
51
if writeError != nil {
52
log.Fatalf("[id=%d] WriteMessage Error: %+v\n", id, writeError)
53
}
54
}
55
56