Skip to content

Commit

Permalink
Fix bug in remote forward handling
Browse files Browse the repository at this point in the history
  • Loading branch information
NHAS committed Feb 23, 2024
1 parent d7f3263 commit 4e13423
Showing 1 changed file with 11 additions and 18 deletions.
29 changes: 11 additions & 18 deletions internal/client/handlers/remoteforward.go
Original file line number Diff line number Diff line change
Expand Up @@ -99,43 +99,36 @@ func StartRemoteForward(user *internal.User, r *ssh.Request, sshConn ssh.Conn) {
if err != nil {
return
}
go handleData(proxyCon, sshConn)
go handleData(rf, proxyCon, sshConn)
}

}

func handleData(proxyCon net.Conn, sshConn ssh.Conn) error {
func handleData(rf internal.RemoteForwardRequest, proxyCon net.Conn, sshConn ssh.Conn) error {

log.Println("Accepted new connection: ", proxyCon.RemoteAddr())

lHost, strPort, err := net.SplitHostPort(proxyCon.RemoteAddr().String())
originatorAddress, originatorPort, err := net.SplitHostPort(proxyCon.LocalAddr().String())
if err != nil {
return err
}

lPort, err := strconv.Atoi(strPort)
if err != nil {
return err
}

rHost, strPort, err := net.SplitHostPort(proxyCon.LocalAddr().String())
if err != nil {
return err
}

rPort, err := strconv.Atoi(strPort)
originatorPortInt, err := strconv.Atoi(originatorPort)
if err != nil {
return err
}

drtMsg := internal.ChannelOpenDirectMsg{
Laddr: lHost,
Lport: uint32(lPort),

Raddr: rHost,
Rport: uint32(rPort),
Raddr: rf.BindAddr,
Rport: rf.BindPort,

Laddr: originatorAddress,
Lport: uint32(originatorPortInt),
}

log.Printf("formed drtMsg: %+v", drtMsg)

b := ssh.Marshal(&drtMsg)

destination, reqs, err := sshConn.OpenChannel("forwarded-tcpip", b)
Expand Down

0 comments on commit 4e13423

Please sign in to comment.