Skip to content

Commit a46e331

Browse files
ntozaksAptimex
andauthored
Server auto-detects simple configuration (#84)
* initial --simple auto-detect * updating logic to check for pubkey to run in simple mode * resolving changes to add_server * better error messages * removing simple from commands --------- Co-authored-by: Adam <[email protected]>
1 parent e3e4e5d commit a46e331

File tree

4 files changed

+32
-25
lines changed

4 files changed

+32
-25
lines changed

src/cmd/add_server.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -389,7 +389,7 @@ func (c addServerCmdConfig) Run() {
389389
defer file.Close()
390390

391391
data := []string{
392-
peer.CreateServerFile(serverConfigRelay, serverConfigE2EE),
392+
peer.CreateServerFile(serverConfigRelay, serverConfigE2EE, false),
393393
"# POSIX Shell: " + peer.CreateServerCommand(serverConfigRelay, serverConfigE2EE, peer.POSIX, false, disableV6),
394394
"# Powershell: " + peer.CreateServerCommand(serverConfigRelay, serverConfigE2EE, peer.PowerShell, false, disableV6),
395395
}

src/cmd/configure.go

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,7 @@ func init() {
128128
"relay-output",
129129
"e2ee-output",
130130
"server-output",
131+
"simple",
131132
} {
132133
err := cmd.Flags().MarkHidden(f)
133134
if err != nil {
@@ -326,7 +327,7 @@ func (c configureCmdConfig) Run() {
326327
defer file.Close()
327328

328329
data := []string{
329-
peer.CreateServerFile(serverConfigRelay, serverConfigE2EE),
330+
peer.CreateServerFile(serverConfigRelay, serverConfigE2EE, c.simple),
330331
"# POSIX Shell: " + peer.CreateServerCommand(serverConfigRelay, serverConfigE2EE, peer.POSIX, c.simple, c.disableV6),
331332
"# Powershell: " + peer.CreateServerCommand(serverConfigRelay, serverConfigE2EE, peer.PowerShell, c.simple, c.disableV6),
332333
}
@@ -341,9 +342,6 @@ func (c configureCmdConfig) Run() {
341342

342343
// Make config file string
343344
serverConfigFile := fmt.Sprintf("./wiretap serve -f %s", c.configFileServer)
344-
if c.simple {
345-
serverConfigFile = fmt.Sprintf("%s --simple", serverConfigFile)
346-
}
347345
if c.disableV6 {
348346
serverConfigFile = fmt.Sprintf("%s --disable-ipv6", serverConfigFile)
349347
}

src/cmd/serve.go

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -315,8 +315,20 @@ func (c serveCmdConfig) Run() {
315315
}
316316

317317
// Check for required flags.
318-
if !viper.IsSet("Relay.Peer.publickey") || (!viper.IsSet("simple") && !viper.IsSet("E2EE.Peer.publickey")) {
319-
check("config error", errors.New("public key of peer is required"))
318+
if !viper.IsSet("Relay.Peer.publickey") && !viper.IsSet("E2EE.Peer.publickey") {
319+
check("config error", errors.New("no peer public keys provided"))
320+
}
321+
322+
if viper.IsSet("E2EE.Peer.publickey") && !viper.IsSet("Relay.Peer.publickey") {
323+
check("config error", errors.New("only E2EE public key provided"))
324+
}
325+
326+
if !viper.IsSet("E2EE.Peer.publickey") {
327+
fmt.Println("E2EE peer public key missing, running Wiretap in simple mode.")
328+
serveCmd.simple = true
329+
if !viper.IsSet("Relay.Peer.publickey") {
330+
check("config error", errors.New("public key of Relay peer is required"))
331+
}
320332
}
321333

322334
if viper.IsSet("disableipv6") && netip.MustParseAddr(viper.GetString("E2EE.Interface.api")).Is6() {

src/peer/config.go

Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -522,11 +522,7 @@ func CreateServerCommand(relayConfig Config, e2eeConfig Config, shell Shell, sim
522522
keys = append(keys, "WIRETAP_E2EE_PEER_ENDPOINT")
523523
vals = append(vals, e2eeConfig.GetPeerEndpoint(0))
524524
}
525-
} else {
526-
keys = append(keys, "WIRETAP_SIMPLE")
527-
vals = append(vals, "true")
528-
}
529-
525+
}
530526
if disableV6 {
531527
keys = append(keys, "WIRETAP_DISABLEIPV6")
532528
vals = append(vals, "true")
@@ -553,7 +549,7 @@ func CreateServerCommand(relayConfig Config, e2eeConfig Config, shell Shell, sim
553549
return s.String()
554550
}
555551

556-
func CreateServerFile(relayConfig Config, e2eeConfig Config) string {
552+
func CreateServerFile(relayConfig Config, e2eeConfig Config, simple bool) string {
557553
var s strings.Builder
558554

559555
// Relay Interface.
@@ -594,20 +590,21 @@ func CreateServerFile(relayConfig Config, e2eeConfig Config) string {
594590
if len(relayConfig.GetPeerEndpoint(0)) > 0 {
595591
s.WriteString(fmt.Sprintf("Endpoint = %s\n", relayConfig.GetPeerEndpoint(0)))
596592
}
593+
if !simple {
594+
// E2EE Interface.
595+
s.WriteString("\n[E2EE.Interface]\n")
596+
s.WriteString(fmt.Sprintf("PrivateKey = %s\n", e2eeConfig.GetPrivateKey()))
597597

598-
// E2EE Interface.
599-
s.WriteString("\n[E2EE.Interface]\n")
600-
s.WriteString(fmt.Sprintf("PrivateKey = %s\n", e2eeConfig.GetPrivateKey()))
601-
602-
if len(e2eeConfig.addresses) == 1 {
603-
s.WriteString(fmt.Sprintf("Api = %s\n", e2eeConfig.addresses[0].IP.String()))
604-
}
598+
if len(e2eeConfig.addresses) == 1 {
599+
s.WriteString(fmt.Sprintf("Api = %s\n", e2eeConfig.addresses[0].IP.String()))
600+
}
605601

606-
// E2EE Peer.
607-
s.WriteString("\n[E2EE.Peer]\n")
608-
s.WriteString(fmt.Sprintf("PublicKey = %s\n", e2eeConfig.GetPeerPublicKey(0)))
609-
if len(e2eeConfig.GetPeerEndpoint(0)) > 0 {
610-
s.WriteString(fmt.Sprintf("Endpoint = %s\n", e2eeConfig.GetPeerEndpoint(0)))
602+
// E2EE Peer.
603+
s.WriteString("\n[E2EE.Peer]\n")
604+
s.WriteString(fmt.Sprintf("PublicKey = %s\n", e2eeConfig.GetPeerPublicKey(0)))
605+
if len(e2eeConfig.GetPeerEndpoint(0)) > 0 {
606+
s.WriteString(fmt.Sprintf("Endpoint = %s\n", e2eeConfig.GetPeerEndpoint(0)))
607+
}
611608
}
612609

613610
return s.String()

0 commit comments

Comments
 (0)