package main import ( "fmt" "os" "github.com/spf13/pflag" "stuner/internal/stuner" ) func main() { port := pflag.Uint16("port", 9443, "listening port; address is fixed to 0.0.0.0") enc := pflag.String("enc", "", "transport encryption acknowledgement; pass none") stdio := pflag.Bool("stdio", false, "run stdio demo instead of TCP server") pflag.Parse() if *stdio { if err := stuner.RunServerStdio(); err != nil { fmt.Fprintf(os.Stderr, "server stdio: %v\n", err) os.Exit(1) } return } if !pflag.Lookup("enc").Changed { fmt.Fprintln(os.Stderr, stuner.NoTransportEncryptionMessage) panic(stuner.NoTransportEncryptionMessage) } encMode, err := stuner.ParseEncryptionMode(*enc) if err != nil { fmt.Fprintln(os.Stderr, err) panic(err) } if err := stuner.RunTCPServerOnPort(*port, encMode); err != nil { fmt.Fprintf(os.Stderr, "tcp server: %v\n", err) os.Exit(1) } }