mirror of
https://github.com/coder/coder.git
synced 2025-07-09 11:45:56 +00:00
fix: track JetBrains connections (#10968)
* feat: implement jetbrains agentssh tracking Based on tcp forwarding instead of ssh connections * Add JetBrains tracking to bottom bar
This commit is contained in:
50
scripts/echoserver/main.go
Normal file
50
scripts/echoserver/main.go
Normal file
@ -0,0 +1,50 @@
|
||||
package main
|
||||
|
||||
// A simple echo server. It listens on a random port, prints that port, then
|
||||
// echos back anything sent to it.
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"log"
|
||||
"net"
|
||||
)
|
||||
|
||||
func main() {
|
||||
l, err := net.Listen("tcp", "127.0.0.1:0")
|
||||
if err != nil {
|
||||
log.Fatalf("listen error: err=%s", err)
|
||||
}
|
||||
|
||||
defer l.Close()
|
||||
tcpAddr, valid := l.Addr().(*net.TCPAddr)
|
||||
if !valid {
|
||||
log.Fatal("address is not valid")
|
||||
}
|
||||
|
||||
remotePort := tcpAddr.Port
|
||||
_, err = fmt.Println(remotePort)
|
||||
if err != nil {
|
||||
log.Fatalf("print error: err=%s", err)
|
||||
}
|
||||
|
||||
for {
|
||||
conn, err := l.Accept()
|
||||
if err != nil {
|
||||
log.Fatalf("accept error, err=%s", err)
|
||||
return
|
||||
}
|
||||
|
||||
go func() {
|
||||
defer conn.Close()
|
||||
_, err := io.Copy(conn, conn)
|
||||
|
||||
if errors.Is(err, io.EOF) {
|
||||
return
|
||||
} else if err != nil {
|
||||
log.Fatalf("copy error, err=%s", err)
|
||||
}
|
||||
}()
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user