Files

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.")
}
}