Browse Source

Fixing formatting so that we're faithfully passing on port information.

Stephen Huenneke 12 years ago
parent
commit
53e28ef0c1

+ 2 - 1
src/ngrok/client/main.go

@@ -191,8 +191,9 @@ func control(s *State, ctl *ui.Controller) {
 	}
 
 	// update UI state
-	conn.Info("Tunnel established at %v", regAck.Url)
 	s.publicUrl = regAck.Url
+	s.publicPort = regAck.Port
+	conn.Info("Tunnel established at %v", s.GetPublicUrl())
 	s.status = "online"
 	s.serverVersion = regAck.MmVersion
 	ctl.Update(s)

+ 10 - 1
src/ngrok/client/state.go

@@ -1,6 +1,7 @@
 package client
 
 import (
+	"fmt"
 	metrics "github.com/inconshreveable/go-metrics"
 	"ngrok/client/ui"
 	"ngrok/proto"
@@ -11,6 +12,7 @@ import (
 type State struct {
 	id            string
 	publicUrl     string
+	publicPort    int
 	serverVersion string
 	update        ui.UpdateStatus
 	protocol      proto.Protocol
@@ -24,13 +26,20 @@ type State struct {
 // implement client.ui.State
 func (s State) GetClientVersion() string    { return version.MajorMinor() }
 func (s State) GetServerVersion() string    { return s.serverVersion }
-func (s State) GetPublicUrl() string        { return s.publicUrl }
 func (s State) GetLocalAddr() string        { return s.opts.localaddr }
 func (s State) GetWebPort() int             { return s.opts.webport }
 func (s State) GetStatus() string           { return s.status }
 func (s State) GetProtocol() proto.Protocol { return s.protocol }
 func (s State) GetUpdate() ui.UpdateStatus  { return s.update }
 
+func (s State) GetPublicUrl() string {
+	publicUrl := s.publicUrl
+	if s.publicPort != 80 && s.publicPort != 443 {
+		publicUrl += fmt.Sprintf(":%d", s.publicPort)
+	}
+	return publicUrl
+}
+
 func (s State) GetConnectionMetrics() (metrics.Meter, metrics.Timer) {
 	return s.metrics.connMeter, s.metrics.connTimer
 }

+ 1 - 0
src/ngrok/msg/msg.go

@@ -46,6 +46,7 @@ type RegAckMsg struct {
 	Version   string
 	MmVersion string
 	Url       string
+	Port      int
 	ProxyAddr string
 	Error     string
 }

+ 1 - 1
src/ngrok/server/http.go

@@ -3,9 +3,9 @@ package server
 import (
 	"fmt"
 	"net"
-	"strings"
 	"ngrok/conn"
 	"ngrok/log"
+	"strings"
 )
 
 const (

+ 2 - 0
src/ngrok/server/main.go

@@ -24,6 +24,7 @@ var (
 	tunnels           *TunnelRegistry
 	registryCacheSize uint64 = 1024 * 1024 // 1 MB
 	domain            string
+	publicPort        int
 )
 
 func parseArgs() *Options {
@@ -108,6 +109,7 @@ func Main() {
 	// parse options
 	opts := parseArgs()
 	domain = opts.domain
+	publicPort = opts.publicPort
 
 	// init logging
 	log.LogTo(opts.logto)

+ 1 - 0
src/ngrok/server/tunnel.go

@@ -115,6 +115,7 @@ func newTunnel(m *msg.RegMsg, ctl *Control) (t *Tunnel) {
 	t.Info("Registered new tunnel")
 	t.ctl.out <- &msg.RegAckMsg{
 		Url:       t.url,
+		Port:      publicPort,
 		ProxyAddr: fmt.Sprintf("%s", proxyAddr),
 		Version:   version.Proto,
 		MmVersion: version.MajorMinor(),