41 lines
806 B
Go
41 lines
806 B
Go
package main
|
|
|
|
import (
|
|
"flag"
|
|
"log"
|
|
"net"
|
|
)
|
|
|
|
func main() {
|
|
var clientAddrStr string
|
|
var serverAddrStr string
|
|
flag.StringVar(&clientAddrStr, "c", "", "Connect to unix socket as client")
|
|
flag.StringVar(&serverAddrStr, "s", "", "Connect to unix socket as server")
|
|
flag.Parse()
|
|
|
|
var addrStr string
|
|
var isClient bool
|
|
if clientAddrStr != "" && serverAddrStr != "" {
|
|
log.Panicf("Can't connect as client and server at the same time")
|
|
} else if clientAddrStr != "" {
|
|
isClient = true
|
|
addrStr = clientAddrStr
|
|
} else if serverAddrStr != "" {
|
|
isClient = false
|
|
addrStr = serverAddrStr
|
|
} else {
|
|
flag.Usage()
|
|
return
|
|
}
|
|
|
|
unixAddr, err := net.ResolveUnixAddr("unix", addrStr)
|
|
if err != nil {
|
|
log.Panic(err)
|
|
}
|
|
if isClient {
|
|
connectClient(unixAddr)
|
|
} else {
|
|
connectServer(unixAddr)
|
|
}
|
|
}
|