-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.go
123 lines (110 loc) · 2.57 KB
/
main.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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
package main
import (
"bufio"
"fmt"
"gopkg.in/gcfg.v1"
"net"
"os"
"strings"
"time"
)
type ConfigT struct {
Main struct {
Server string
Port string
Host string
HTTPHost string
HTTPPort string
OCIPPort string
Wraptime time.Duration
TargetID []string
Name []string
CCID string
}
}
type ConfigTlocal struct {
Main struct {
Owner string
Password string
}
}
func ConnectSrv (Config ConfigT) net.Conn {
var dialer net.Dialer
dialer.Timeout=time.Second
dialer.KeepAlive=time.Minute
chandesc, err := dialer.Dial("tcp", ConcatStr(":",Config.Main.Server,Config.Main.Port))
if err != nil {
LogErr(err,"serv dial")
return nil
} else {
var send string = Config.Main.CCID
for _,target := range Config.Main.TargetID {
send=ConcatStr(" ",send,target)
}
fmt.Fprintf(chandesc,"%s",send)
return chandesc
}
}
func clientMain (ch chan string,Config ConfigT) {
for {
chandesc:=ConnectSrv(Config)
if chandesc != nil {
breader := bufio.NewReader(chandesc)
for{
str,err := breader.ReadString('\n')
if err == nil {
ch<- string(str)
} else {
chandesc.Close()
break
}
}
} else {
time.Sleep(time.Second*1)
}
}
}
func ReadConfig(Configfile string) ConfigT {
var Config ConfigT
err := gcfg.ReadFileInto(&Config, Configfile)
if err != nil {
LogErr(err,"Config file is missing:", Configfile)
os.Exit (1)
}
return Config
}
func ReadConfiglocal(Configfile string) ConfigTlocal {
var Config ConfigTlocal
err := gcfg.ReadFileInto(&Config, Configfile)
if err != nil {
LogErr(err,"Config file is missing:", Configfile)
os.Exit (1)
}
return Config
}
func ConcatStr(sep string, args ... string) string {
return strings.Join(args, sep)
}
func LogErr (err error,args ... string) {
fmt.Fprint(os.Stderr,time.Now(),args,err,"\n")
}
func LogOut (log string) {
fmt.Fprint(os.Stdout,log,"\n\n")
}
func Log2Out (args ... string) {
fmt.Fprint(os.Stdout,args,"\n\n")
}
type point struct {
x int
y int
}
func main() {
larg:=len(os.Args)
if larg < 3 {
LogErr(nil,"no args")
os.Exit (1)
}
var globalconf string = os.Args[1]
var localconf string = os.Args[2]
guiMain(globalconf,localconf)
}