Commit Graph

46 Commits

Author SHA1 Message Date
9a4539cc02 refactor(httpheader): extract header parsing into dedicated package
Docker Build and Push / build-and-push-tags (push) Has been skipped
Docker Build and Push / build-and-push-branches (push) Successful in 11m19s
Moved HTTP header parsing and building logic from server package to internal/httpheader
2026-01-20 21:15:34 +07:00
e3ead4d52f refactor: optimize header parsing and remove factory naming
Docker Build and Push / build-and-push-tags (push) Has been skipped
Docker Build and Push / build-and-push-branches (push) Successful in 11m20s
- Remove factory naming
- Use direct byte indexing instead of bytes.TrimRight
- Extract parseStartLine and setRemainingHeaders helpers
2026-01-20 20:56:08 +07:00
27f49879af refactor(server): enhance HTTP handler modularity and fix resource leak
Docker Build and Push / build-and-push-tags (push) Has been skipped
Docker Build and Push / build-and-push-branches (push) Successful in 11m43s
- Rename customWriter struct to httpWriter for clarity
- Add closeWriter field to properly close write side of connections
- Update all cw variable references to hw
- Merge handlerTLS into handler function to reduce code duplication
- Extract handler into smaller, focused methods
- Split Read/Write/forwardRequest into composable functions

Fixes resource leak where connections weren't properly closed on the
write side, matching the forwarder's CloseWrite() pattern.
2026-01-19 22:41:04 +07:00
8fb19af5a6 fix: resolve copy goroutine deadlock on early connection close
- Add proper CloseWrite handling to signal EOF to other goroutine
- Ensure both copy goroutines terminate when either side closes
- Prevent goroutine leaks for SSH forwarded-tcpip channels:
    - Use select with default when sending result to resultChan
    - Close unused SSH channels and discard requests if main goroutine has already timed out
2026-01-19 00:20:28 +07:00
dbdf8094fa refactor: replace Get/Set patterns with idiomatic Go interfaces
Docker Build and Push / build-and-push-branches (push) Has been skipped
Docker Build and Push / build-and-push-tags (push) Successful in 13m4s
- rename constructors to New
- remove Get/Set-style accessors
- replace string-based enums with iota-backed types
2026-01-14 16:54:10 +07:00
8782b77b74 feat(session): use session key for registry 2026-01-14 16:51:50 +07:00
c9bf9e62bd feat(grpc): integrate slug edit handling 2026-01-14 16:51:50 +07:00
7716eb7f29 perf: optimize header parsing with zero-copy ReadSlice
renovate / renovate (push) Successful in 35s
Docker Build and Push / build-and-push-branches (push) Successful in 4m39s
Docker Build and Push / build-and-push-tags (push) Successful in 4m52s
- Replace ReadString with ReadSlice to eliminate allocations
- Use bytes operations instead of strings
- Add FromBytes variant for in-memory parsing
2025-12-31 23:18:53 +07:00
f8a6f0bafe refactor(session): add registry to manage SSH sessions
renovate / renovate (push) Successful in 39s
Docker Build and Push / build-and-push-branches (push) Successful in 4m27s
Docker Build and Push / build-and-push-tags (push) Successful in 4m22s
- Implement thread-safe session registry with sync.RWMutex
- Add Registry interface for session management operations
- Support Get, Register, Update, and Remove session operations
- Enable dynamic slug updates for existing sessions
2025-12-31 17:47:35 +07:00
acd02aadd3 refactor: restructure project architecture
renovate / renovate (push) Successful in 45s
Docker Build and Push / build-and-push-branches (push) Successful in 5m54s
Docker Build and Push / build-and-push-tags (push) Successful in 6m21s
2025-12-31 15:49:37 +07:00
85f21e7698 feat(tui): update interaction layer to Bubble Tea TUI
renovate / renovate (push) Successful in 27s
Docker Build and Push / build-and-push (push) Successful in 3m49s
2025-12-29 21:55:39 +07:00
2644b4521c refactor: improve encapsulation
renovate / renovate (push) Successful in 20s
Docker Build and Push / build-and-push (push) Successful in 3m25s
2025-12-29 12:37:03 +07:00
b5862bd7a0 feat: add configurable HTTP port
renovate / renovate (push) Successful in 20s
Docker Build and Push / build-and-push (push) Successful in 1m45s
2025-12-28 20:09:31 +07:00
76d1202b8e fix: correct logic when checking tcpip-forward request
Docker Build and Push / build-and-push (push) Successful in 5m34s
2025-12-26 23:17:13 +07:00
7bc5a01ba7 feat: add pprof for debuging
Docker Build and Push / build-and-push (push) Successful in 3m51s
2025-12-18 18:30:49 +07:00
6451304ed7 fix: potential resource leak
Docker Build and Push / build-and-push (push) Successful in 4m17s
2025-12-17 21:38:00 +07:00
ad034ef681 fix: resolve random SSH disconnections caused by 'unexpected bytes remain' errors 2025-12-09 23:39:22 +07:00
8c8fdf251d refactor: remove error shadowing
Docker Build and Push / build-and-push (push) Successful in 6m13s
2025-12-06 23:47:02 +07:00
69c3e78728 fix: correct read/write handling in CustomWriter
Docker Build and Push / build-and-push (push) Successful in 5m7s
2025-12-06 22:18:43 +07:00
368cc0b3e3 fix: resolve nil pointer dereference in interaction on TLS request 2025-12-06 00:01:25 +07:00
af951b8fa7 fix: discard unused buffers in the ssh channel before disconnecting 2025-12-05 22:26:38 +07:00
659f6c3ee7 refactor: move CreateForwardedTCPIPPayload to forwarder interface 2025-12-05 13:49:33 +07:00
7a31047bb9 refactor: restructure session initialization to avoid circular references 2025-12-04 22:48:15 +07:00
039e979142 refactor: restructure session initialization to avoid circular references 2025-12-04 19:32:00 +07:00
515bc30559 fix: conn reader stuck when header have body
Docker Build and Push / build-and-push (push) Has been cancelled
2025-12-03 21:14:42 +07:00
a3eb08e7ae fix: try writing to a close network
Docker Build and Push / build-and-push (push) Has been cancelled
2025-12-02 22:17:14 +07:00
f59de03a50 fix: panic due to nil pointer when disconnecting a session
Docker Build and Push / build-and-push (push) Has been cancelled
2025-12-02 21:52:23 +07:00
626b6b5feb fix: unexpected byte size
Docker Build and Push / build-and-push (push) Has been cancelled
2025-12-02 20:15:51 +07:00
b967619a3a fix: chunk request not sent properly
Docker Build and Push / build-and-push (push) Has been cancelled
2025-12-02 19:17:20 +07:00
ecd6ab2618 feat: head ping
Docker Build and Push / build-and-push (push) Has been cancelled
2025-12-02 18:44:30 +07:00
52a7adc4f7 feat: head ping
Docker Build and Push / build-and-push (push) Has been cancelled
2025-12-02 18:21:33 +07:00
d7d6e24a42 feat: add header factory
Docker Build and Push / build-and-push (push) Has been cancelled
2025-12-02 17:14:17 +07:00
8442fedef1 refactor: handle error
Docker Build and Push / build-and-push (push) Has been cancelled
2025-11-28 16:57:13 +07:00
d3a5007d68 refactor: separate session responsibilities and inject dependencies
Docker Build and Push / build-and-push (push) Has been cancelled
2025-11-28 13:29:43 +07:00
659b2b82ec update: improve cors checking logic
Docker Build and Push / build-and-push (push) Successful in 3m44s
2025-09-11 13:18:28 +07:00
f5a995e20f update: remove unuse debug message
Docker Build and Push / build-and-push (push) Successful in 3m49s
2025-09-11 13:10:09 +07:00
41f9835365 update: add new env variable for setting cors list
Docker Build and Push / build-and-push (push) Successful in 3m49s
2025-09-11 13:02:16 +07:00
9e794bf53f update: redirect user to not found tunnel page
Docker Build and Push / build-and-push (push) Successful in 3m49s
2025-09-08 10:18:47 +07:00
0999196ee9 update: redirect user to not found tunnel page
Docker Build and Push / build-and-push (push) Successful in 3m52s
2025-09-08 09:59:41 +07:00
334655b116 chore: allow all origins for WebSocket requests temporarily
Docker Build and Push / build-and-push (push) Successful in 3m49s
2025-09-06 18:25:02 +07:00
96dcea1f2c feat: add dedicated WebSocket service for subdomain ping
Docker Build and Push / build-and-push (push) Successful in 6m33s
2025-09-06 17:17:43 +07:00
9f18cfa954 fix: remove timeouts from HTTP/HTTPS handlers and improve concurrency
Docker Build and Push / build-and-push (push) Successful in 3m40s
2025-07-21 19:54:17 +07:00
0117931817 fix: reject non tunnel request & reject duplicated port 2025-04-08 23:14:42 +07:00
5350bc13a9 refactor: optimize HTTP header parsing 2025-04-08 12:59:58 +07:00
4912aafe65 update: implement tls server 2025-04-05 23:27:32 +07:00
221adf9581 update: use raw TCP for HTTP server 2025-04-02 23:27:39 +07:00