Skip to content

Commit 62dec83

Browse files
committed
Use original address for forwarded channel. Fix #237
1 parent c54d681 commit 62dec83

File tree

4 files changed

+7
-4
lines changed

4 files changed

+7
-4
lines changed

sshmuxer/aliashandler.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import (
1919
func handleAliasListener(check *channelForwardMsg, stringPort string, requestMessages string, listenerHolder *utils.ListenerHolder, state *utils.State, sshConn *utils.SSHConnection) (*utils.AliasHolder, *url.URL, string, string, error) {
2020
validAlias, aH := utils.GetOpenAlias(check.Addr, stringPort, state, sshConn)
2121

22-
if !strings.HasPrefix(validAlias, strings.ToLower(check.Addr)) && viper.GetBool("force-requested-aliases") || validAlias == "" {
22+
if !strings.HasPrefix(validAlias, check.Addr) && viper.GetBool("force-requested-aliases") || validAlias == "" {
2323
return nil, nil, "", "", fmt.Errorf("error assigning requested alias to tunnel")
2424
}
2525

sshmuxer/channels.go

+2
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,8 @@ func handleAlias(newChannel ssh.NewChannel, sshConn *utils.SSHConnection, state
250250
return
251251
}
252252

253+
check.Addr = strings.ToLower(check.Addr)
254+
253255
tcpAliasToConnect := fmt.Sprintf("%s:%d", check.Addr, check.Port)
254256
loc, ok := state.AliasListeners.Load(tcpAliasToConnect)
255257
if !ok {

sshmuxer/httphandler.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import (
2121
func handleHTTPListener(check *channelForwardMsg, stringPort string, requestMessages string, listenerHolder *utils.ListenerHolder, state *utils.State, sshConn *utils.SSHConnection, scheme string) (*utils.HTTPHolder, *url.URL, string, error) {
2222
hostUrl, pH := utils.GetOpenHost(check.Addr, state, sshConn)
2323

24-
if (hostUrl == nil || !strings.HasPrefix(hostUrl.Host, strings.ToLower(check.Addr))) && viper.GetBool("force-requested-subdomains") {
24+
if (hostUrl == nil || !strings.HasPrefix(hostUrl.Host, check.Addr)) && viper.GetBool("force-requested-subdomains") {
2525
return nil, nil, "", fmt.Errorf("error assigning requested subdomain to tunnel")
2626
}
2727

sshmuxer/requests.go

+3-2
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ func handleRemoteForward(newRequest *ssh.Request, sshConn *utils.SSHConnection,
5757
log.Println("Error unmarshaling remote forward payload:", err)
5858
}
5959

60+
originalAddress := check.Addr
6061
check.Addr = strings.ToLower(check.Addr)
6162

6263
bindPort := check.Rport
@@ -299,9 +300,9 @@ func handleRemoteForward(newRequest *ssh.Request, sshConn *utils.SSHConnection,
299300
}
300301

301302
resp := &forwardedTCPPayload{
302-
Addr: check.Addr,
303+
Addr: originalAddress,
303304
Port: portChannelForwardReplyPayload.Rport,
304-
OriginAddr: check.Addr,
305+
OriginAddr: originalAddress,
305306
OriginPort: portChannelForwardReplyPayload.Rport,
306307
}
307308

0 commit comments

Comments
 (0)