@@ -18,9 +18,11 @@ import (
18
18
"encoding/json"
19
19
"fmt"
20
20
"io"
21
+ "net"
21
22
"net/http"
22
23
"os"
23
24
"sort"
25
+ "strconv"
24
26
"strings"
25
27
26
28
"github.com/fatedier/frp/client/proxy"
@@ -105,48 +107,48 @@ func NewProxyStatusResp(status *proxy.WorkingStatus, serverAddr string) ProxySta
105
107
switch cfg := status .Cfg .(type ) {
106
108
case * config.TCPProxyConf :
107
109
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 ) )
109
111
}
110
112
psr .Plugin = cfg .Plugin
111
113
if status .Err != "" {
112
- psr .RemoteAddr = fmt . Sprintf ( "%s:%d" , serverAddr , cfg .RemotePort )
114
+ psr .RemoteAddr = net . JoinHostPort ( serverAddr , strconv . Itoa ( cfg .RemotePort ) )
113
115
} else {
114
116
psr .RemoteAddr = serverAddr + status .RemoteAddr
115
117
}
116
118
case * config.UDPProxyConf :
117
119
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 ) )
119
121
}
120
122
if status .Err != "" {
121
- psr .RemoteAddr = fmt . Sprintf ( "%s:%d" , serverAddr , cfg .RemotePort )
123
+ psr .RemoteAddr = net . JoinHostPort ( serverAddr , strconv . Itoa ( cfg .RemotePort ) )
122
124
} else {
123
125
psr .RemoteAddr = serverAddr + status .RemoteAddr
124
126
}
125
127
case * config.HTTPProxyConf :
126
128
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 ) )
128
130
}
129
131
psr .Plugin = cfg .Plugin
130
132
psr .RemoteAddr = status .RemoteAddr
131
133
case * config.HTTPSProxyConf :
132
134
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 ) )
134
136
}
135
137
psr .Plugin = cfg .Plugin
136
138
psr .RemoteAddr = status .RemoteAddr
137
139
case * config.STCPProxyConf :
138
140
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 ) )
140
142
}
141
143
psr .Plugin = cfg .Plugin
142
144
case * config.XTCPProxyConf :
143
145
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 ) )
145
147
}
146
148
psr .Plugin = cfg .Plugin
147
149
case * config.SUDPProxyConf :
148
150
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 ) )
150
152
}
151
153
psr .Plugin = cfg .Plugin
152
154
}
0 commit comments