@@ -18,9 +18,11 @@ import (
1818 "encoding/json"
1919 "fmt"
2020 "io"
21+ "net"
2122 "net/http"
2223 "os"
2324 "sort"
25+ "strconv"
2426 "strings"
2527
2628 "github.com/fatedier/frp/client/proxy"
@@ -105,48 +107,48 @@ func NewProxyStatusResp(status *proxy.WorkingStatus, serverAddr string) ProxySta
105107 switch cfg := status .Cfg .(type ) {
106108 case * config.TCPProxyConf :
107109 if cfg .LocalPort != 0 {
108- psr .LocalAddr = fmt . Sprintf ( "%s:%d" , cfg .LocalIP , cfg .LocalPort )
110+ psr .LocalAddr = net . JoinHostPort ( cfg .LocalIP , strconv . Itoa ( cfg .LocalPort ) )
109111 }
110112 psr .Plugin = cfg .Plugin
111113 if status .Err != "" {
112- psr .RemoteAddr = fmt . Sprintf ( "%s:%d" , serverAddr , cfg .RemotePort )
114+ psr .RemoteAddr = net . JoinHostPort ( serverAddr , strconv . Itoa ( cfg .RemotePort ) )
113115 } else {
114116 psr .RemoteAddr = serverAddr + status .RemoteAddr
115117 }
116118 case * config.UDPProxyConf :
117119 if cfg .LocalPort != 0 {
118- psr .LocalAddr = fmt . Sprintf ( "%s:%d" , cfg .LocalIP , cfg .LocalPort )
120+ psr .LocalAddr = net . JoinHostPort ( cfg .LocalIP , strconv . Itoa ( cfg .LocalPort ) )
119121 }
120122 if status .Err != "" {
121- psr .RemoteAddr = fmt . Sprintf ( "%s:%d" , serverAddr , cfg .RemotePort )
123+ psr .RemoteAddr = net . JoinHostPort ( serverAddr , strconv . Itoa ( cfg .RemotePort ) )
122124 } else {
123125 psr .RemoteAddr = serverAddr + status .RemoteAddr
124126 }
125127 case * config.HTTPProxyConf :
126128 if cfg .LocalPort != 0 {
127- psr .LocalAddr = fmt . Sprintf ( "%s:%d" , cfg .LocalIP , cfg .LocalPort )
129+ psr .LocalAddr = net . JoinHostPort ( cfg .LocalIP , strconv . Itoa ( cfg .LocalPort ) )
128130 }
129131 psr .Plugin = cfg .Plugin
130132 psr .RemoteAddr = status .RemoteAddr
131133 case * config.HTTPSProxyConf :
132134 if cfg .LocalPort != 0 {
133- psr .LocalAddr = fmt . Sprintf ( "%s:%d" , cfg .LocalIP , cfg .LocalPort )
135+ psr .LocalAddr = net . JoinHostPort ( cfg .LocalIP , strconv . Itoa ( cfg .LocalPort ) )
134136 }
135137 psr .Plugin = cfg .Plugin
136138 psr .RemoteAddr = status .RemoteAddr
137139 case * config.STCPProxyConf :
138140 if cfg .LocalPort != 0 {
139- psr .LocalAddr = fmt . Sprintf ( "%s:%d" , cfg .LocalIP , cfg .LocalPort )
141+ psr .LocalAddr = net . JoinHostPort ( cfg .LocalIP , strconv . Itoa ( cfg .LocalPort ) )
140142 }
141143 psr .Plugin = cfg .Plugin
142144 case * config.XTCPProxyConf :
143145 if cfg .LocalPort != 0 {
144- psr .LocalAddr = fmt . Sprintf ( "%s:%d" , cfg .LocalIP , cfg .LocalPort )
146+ psr .LocalAddr = net . JoinHostPort ( cfg .LocalIP , strconv . Itoa ( cfg .LocalPort ) )
145147 }
146148 psr .Plugin = cfg .Plugin
147149 case * config.SUDPProxyConf :
148150 if cfg .LocalPort != 0 {
149- psr .LocalAddr = fmt . Sprintf ( "%s:%d" , cfg .LocalIP , cfg .LocalPort )
151+ psr .LocalAddr = net . JoinHostPort ( cfg .LocalIP , strconv . Itoa ( cfg .LocalPort ) )
150152 }
151153 psr .Plugin = cfg .Plugin
152154 }
0 commit comments