3 Commits

Author SHA1 Message Date
0b8bc1dbba Merge pull request 'refactor' (#24) from refactor into staging
All checks were successful
Docker Build and Push / build-and-push (push) Successful in 4m25s
Reviewed-on: bagas/tunnl_please#24
2025-12-05 17:03:36 +00:00
43178d51b5 refactor: remove docker compose 2025-12-06 00:03:19 +07:00
368cc0b3e3 fix: resolve nil pointer dereference in interaction on TLS request 2025-12-06 00:01:25 +07:00
3 changed files with 11 additions and 8 deletions

View File

@@ -11,11 +11,13 @@ import (
"regexp"
"strings"
"tunnel_pls/session"
"tunnel_pls/session/interaction"
"tunnel_pls/types"
"tunnel_pls/utils"
)
type Interaction interface {
SendMessage(message string)
}
type CustomWriter struct {
RemoteAddr net.Addr
writer io.Writer
@@ -24,13 +26,13 @@ type CustomWriter struct {
buf []byte
respHeader *ResponseHeaderFactory
reqHeader *RequestHeaderFactory
interaction interaction.Controller
interaction Interaction
respMW []ResponseMiddleware
reqStartMW []RequestMiddleware
reqEndMW []RequestMiddleware
}
func (cw *CustomWriter) SetInteraction(interaction interaction.Controller) {
func (cw *CustomWriter) SetInteraction(interaction Interaction) {
cw.interaction = interaction
}
@@ -176,7 +178,7 @@ func (cw *CustomWriter) Write(p []byte) (int, error) {
return n, nil
}
func (cw *CustomWriter) AddInteraction(interaction *interaction.Interaction) {
func (cw *CustomWriter) AddInteraction(interaction Interaction) {
cw.interaction = interaction
}

View File

@@ -112,7 +112,7 @@ func HandlerTLS(conn net.Conn) {
return
}
cw := NewCustomWriter(conn, dstReader, conn.RemoteAddr())
cw.SetInteraction(sshSession.Interaction)
forwardRequest(cw, reqhf, sshSession)
return
}

View File

@@ -4,7 +4,6 @@ import (
"fmt"
"net"
"time"
"tunnel_pls/session/interaction"
)
type RequestMiddleware interface {
@@ -29,20 +28,22 @@ func (h *TunnelFingerprint) HandleResponse(header *ResponseHeaderFactory, body [
}
type RequestLogger struct {
interaction interaction.Controller
interaction Interaction
remoteAddr net.Addr
}
func NewRequestLogger(interaction interaction.Controller, remoteAddr net.Addr) *RequestLogger {
func NewRequestLogger(interaction Interaction, remoteAddr net.Addr) *RequestLogger {
return &RequestLogger{
interaction: interaction,
remoteAddr: remoteAddr,
}
}
func (rl *RequestLogger) HandleRequest(header *RequestHeaderFactory) error {
rl.interaction.SendMessage(fmt.Sprintf("\033[32m%s %s -> %s %s \033[0m\r\n", time.Now().UTC().Format(time.RFC3339), rl.remoteAddr.String(), header.Method, header.Path))
return nil
}
func (rl *RequestLogger) HandleResponse(header *ResponseHeaderFactory, body []byte) error { return nil }
//TODO: Implement caching atau enggak