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
ae3ed52d16
fix(port): add atomic ClaimPort() to prevent race condition
...
- Replace GetPortStatus/SetPortStatus calls with atomic ClaimPort() operation.
- Fixed a logic error when handling headless tunneling.
2026-01-14 16:51:50 +07:00
fb638636bf
refactor: consolidate error handling with fail() function in session handlers
...
- Replace repetitive error handling code with fail() function in HandleGlobalRequest
- Standardize error response pattern across all handler methods
- Improve code maintainability and reduce duplication
2026-01-14 16:51:50 +07:00
da29df85b7
feat: add headless mode support for SSH -N connections
...
- use s.lifecycle.GetConnection().Wait() to block until SSH connection closes
- Prevent premature session closure in headless mode
In headless mode (ssh -N), there's no channel interaction to block on,
so the session would immediately return and close. Now blocking on
conn.Wait() keeps the session alive until the client disconnects.
2026-01-14 16:51:50 +07:00
8b0e08c629
fix(deps): update module github.com/caddyserver/certmagic to v0.25.1
2026-01-14 16:51:50 +07:00
f0804d6946
ci: remove renovate
2026-01-14 16:51:50 +07:00
09e526cd1e
feat: add authenticated user info and restructure handleConnection
...
- Display authenticated username in welcome page information box
- Refactor handleConnection function for better structure and clarity
2026-01-14 16:51:50 +07:00
887ebf78b1
refactor(grpc/client): simplify processEventStream with per-event handlers
...
- Extract eventHandlers dispatch table
- Add per-event handlers: handleSlugChange, handleGetSessions, handleTerminateSession
- Introduce sendNode helper to centralize send/error handling and preserve connection-error propagation
- Add protoToTunnelType for tunnel-type validation
- Map unknown proto.TunnelType to types.UNKNOWN in protoToTunnelType and return a descriptive error
- Reduce boilerplate and improve readability of processEventStream
2026-01-14 16:51:50 +07:00
bef7a49f88
feat: implement forwarder session termination
2026-01-14 16:51:50 +07:00
17633b4e3c
refactor: inject SessionRegistry interface instead of individual functions
2026-01-14 16:51:50 +07:00
f25d61d1d1
update: proto file to v1.3.0
2026-01-14 16:51:50 +07:00
8782b77b74
feat(session): use session key for registry
2026-01-14 16:51:50 +07:00
fc3cd886db
fix: use correct environment variable key
2026-01-14 16:51:50 +07:00
b0da57db0d
fix: startup order
2026-01-14 16:51:50 +07:00
0bd6eeadf3
feat: implement sessions request from grpc server
2026-01-14 16:51:50 +07:00
449f546e04
feat: implement sessions request from grpc server
2026-01-14 16:51:50 +07:00
4644420eee
feat: implement get sessions by user
2026-01-14 16:51:50 +07:00
c9bf9e62bd
feat(grpc): integrate slug edit handling
2026-01-14 16:51:50 +07:00
57d2136377
WIP: gRPC integration, initial implementation
2026-01-14 16:51:47 +07:00
8a34aaba80
WIP: gRPC integration, initial implementation
2026-01-14 16:51:35 +07:00
ff995a929e
revert 01ddc76f7e
...
revert Merge pull request 'fix(deps): update module github.com/caddyserver/certmagic to v0.25.1' (#58 ) from renovate/github.com-caddyserver-certmagic-0.x into main
2026-01-14 16:51:35 +07:00
32ac9c1749
fix(deps): update module github.com/caddyserver/certmagic to v0.25.1
...
# Conflicts:
# go.mod
2026-01-14 16:51:30 +07:00
e051a5b742
Merge pull request 'fix(deps): update module golang.org/x/crypto to v0.47.0' ( #64 ) from renovate/golang.org-x-crypto-0.x into main
Docker Build and Push / build-and-push-tags (push) Has been skipped
Docker Build and Push / build-and-push-branches (push) Successful in 9m51s
renovate / renovate (push) Successful in 55s
2026-01-12 18:20:57 +00:00
d35228759c
fix(deps): update module golang.org/x/crypto to v0.47.0
2026-01-12 18:20:53 +00:00
2e8767f17a
chore: upgrade TLS configuration to TLS 1.3
renovate / renovate (push) Successful in 1m34s
Docker Build and Push / build-and-push-tags (push) Has been skipped
Docker Build and Push / build-and-push-branches (push) Successful in 2m49s
2026-01-01 00:57:48 +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
b115369913
fix: wait for both goroutines before cleanup in HandleConnection
...
renovate / renovate (push) Successful in 1m42s
Docker Build and Push / build-and-push-branches (push) Successful in 4m46s
Docker Build and Push / build-and-push-tags (push) Successful in 4m51s
Only waited for one of two copy goroutines, leaking the second. Now waits
for both to complete before closing connections.
Fixes file descriptor leak causing 'too many open files' under load.
Fixes : #56
2025-12-31 22:22:51 +07:00
9276430fae
refactor(session): add registry to manage SSH sessions
...
renovate / renovate (push) Successful in 36s
Docker Build and Push / build-and-push-branches (push) Successful in 4m41s
Docker Build and Push / build-and-push-tags (push) Successful in 4m38s
- 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
- Fix Connection closed by remote because HandleTCPIPForward run on a goroutine
2025-12-31 18:33:47 +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