diff --git a/internal/client/state.go b/internal/client/state.go index 4ecd27b..e663a49 100644 --- a/internal/client/state.go +++ b/internal/client/state.go @@ -5,6 +5,7 @@ import ( "encoding/json" "errors" "io/ioutil" + "strconv" "strings" "time" @@ -23,6 +24,7 @@ type rawConfig struct { Transport string NumConn int StreamTimeout int + RemotePort int } // State stores the parsed configuration fields @@ -142,5 +144,15 @@ func (sta *State) ParseConfig(conf string) (err error) { } sta.staticPub = pub + // OPTIONAL: set RemotePort via JSON + // if RemotePort is specified in the JSON we overwrite sta.RemotePort + // if not, don't do anything, since sta.RemotePort is already initialised in ck-client.go + if preParse.RemotePort != 0 { + // basic validity check + if preParse.RemotePort >= 1 && preParse.RemotePort <= 65535 { + sta.RemotePort = strconv.Itoa(preParse.RemotePort) + } + } + return nil }