70 lines
1.4 KiB
Go
70 lines
1.4 KiB
Go
package main
|
|
|
|
import (
|
|
"flag"
|
|
"log"
|
|
)
|
|
|
|
import "i2pgit.org/idk/i2pt/server"
|
|
import "i2pgit.org/idk/i2pt/client"
|
|
|
|
var (
|
|
keyPath = flag.String("listen-keys", "i2p-pt.i2pkeys", "Path to load and store I2P hidden service keys. Listening address is derived from these keys.")
|
|
keyBlind = flag.Bool("blind-keys", false, "Employ blinding strategy to prevent floodfills from discovering listening address.")
|
|
)
|
|
|
|
func clientOrServer() string {
|
|
client := false
|
|
server := false
|
|
args := flag.Args()
|
|
if len(args) == 0 {
|
|
return "client"
|
|
}
|
|
for _, arg := range args {
|
|
switch arg {
|
|
case "server":
|
|
if client {
|
|
return "both"
|
|
}
|
|
server = true
|
|
case "client":
|
|
if server {
|
|
return "both"
|
|
}
|
|
client = true
|
|
default:
|
|
log.Println("invalid argument:", arg, "ignoring")
|
|
}
|
|
}
|
|
if !client && !server {
|
|
return "client"
|
|
}
|
|
if client && server {
|
|
return "both"
|
|
}
|
|
if client {
|
|
return "client"
|
|
}
|
|
if server {
|
|
return "server"
|
|
}
|
|
return "client"
|
|
}
|
|
|
|
func main() {
|
|
flag.Parse()
|
|
runtype := clientOrServer()
|
|
log.Println("Running SAM PT of type:", runtype)
|
|
switch runtype {
|
|
case "client":
|
|
i2pclient.Main("i2ptclient","127.0.0.1:7656","i2ptclient")
|
|
case "server":
|
|
i2pclient.Main("i2ptserver","127.0.0.1:7656","i2ptserver")
|
|
case "both":
|
|
go i2pclient.Main("i2ptserver","127.0.0.1:7656","i2ptserver")
|
|
i2pclient.Main("i2ptclient","127.0.0.1:7656","i2ptclient")
|
|
default:
|
|
log.Fatal("Invalid configuration error. Exiting immediately.")
|
|
}
|
|
}
|