mirror of
https://github.com/tuxdotrs/trok.git
synced 2025-07-06 11:56:34 +05:30
feat: setup addr arg
This commit is contained in:
@ -15,16 +15,17 @@ var serverCmd = &cobra.Command{
|
|||||||
Short: "Initiates the remote proxy server",
|
Short: "Initiates the remote proxy server",
|
||||||
Long: "Initiates the remote proxy server",
|
Long: "Initiates the remote proxy server",
|
||||||
Run: func(cmd *cobra.Command, args []string) {
|
Run: func(cmd *cobra.Command, args []string) {
|
||||||
port, err := cmd.Flags().GetUint16("port")
|
addr, err := cmd.Flags().GetString("addr")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
server.Start(port)
|
server.Start(addr)
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
rootCmd.AddCommand(serverCmd)
|
rootCmd.AddCommand(serverCmd)
|
||||||
|
|
||||||
serverCmd.Flags().Uint16P("port", "p", 1421, "Port for the server to listen on")
|
serverCmd.Flags().StringP("addr", "a", "0.0.0.0:1337", "Addr for the server to listen on")
|
||||||
|
clientCmd.MarkFlagRequired("addr")
|
||||||
}
|
}
|
||||||
|
@ -11,9 +11,9 @@ import (
|
|||||||
"github.com/rs/zerolog/log"
|
"github.com/rs/zerolog/log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func Start(port uint16) {
|
func Start(addr string) {
|
||||||
var trok Trok
|
var trok Trok
|
||||||
if err := trok.Init(port); err != nil {
|
if err := trok.Init(addr); err != nil {
|
||||||
log.Fatal().Msgf("failed to init trok %v", err)
|
log.Fatal().Msgf("failed to init trok %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5,7 +5,6 @@ Copyright © 2024 tux <0xtux@pm.me>
|
|||||||
package server
|
package server
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
|
||||||
"net"
|
"net"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -14,13 +13,8 @@ type TCPServer struct {
|
|||||||
listener net.Listener
|
listener net.Listener
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *TCPServer) Init(port uint16, title string) error {
|
func (s *TCPServer) Init(addr, title string) error {
|
||||||
address := ":"
|
ln, err := net.Listen("tcp", addr)
|
||||||
if port > 0 {
|
|
||||||
address = fmt.Sprintf(":%d", port)
|
|
||||||
}
|
|
||||||
|
|
||||||
ln, err := net.Listen("tcp", address)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -44,6 +38,14 @@ func (s *TCPServer) Stop() error {
|
|||||||
return s.listener.Close()
|
return s.listener.Close()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *TCPServer) Addr() string {
|
||||||
|
return s.listener.Addr().String()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *TCPServer) Host() string {
|
||||||
|
return c.listener.Addr().(*net.TCPAddr).IP.String()
|
||||||
|
}
|
||||||
|
|
||||||
func (s *TCPServer) Port() uint16 {
|
func (s *TCPServer) Port() uint16 {
|
||||||
return uint16(s.listener.Addr().(*net.TCPAddr).Port)
|
return uint16(s.listener.Addr().(*net.TCPAddr).Port)
|
||||||
}
|
}
|
||||||
|
@ -27,20 +27,20 @@ type Trok struct {
|
|||||||
mutex sync.Mutex
|
mutex sync.Mutex
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *Trok) Init(port uint16) error {
|
func (t *Trok) Init(addr string) error {
|
||||||
t.publicConns = make(map[string]Conn)
|
t.publicConns = make(map[string]Conn)
|
||||||
err := t.controlServer.Init(port, "Controller")
|
err := t.controlServer.Init(addr, "Controller")
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *Trok) Start() {
|
func (t *Trok) Start() {
|
||||||
go t.controlServer.Start(t.ControlConnHandler)
|
go t.controlServer.Start(t.ControlConnHandler)
|
||||||
log.Info().Msgf("started Trok server on port %d", t.controlServer.Port())
|
log.Info().Msgf("started Trok server on %s", t.controlServer.Addr())
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *Trok) Stop() {
|
func (t *Trok) Stop() {
|
||||||
t.controlServer.Stop()
|
t.controlServer.Stop()
|
||||||
log.Info().Msgf("stopped Trok server on port %d", t.controlServer.Port())
|
log.Info().Msgf("stopped Trok server on %s", t.controlServer.Addr())
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *Trok) ControlConnHandler(conn net.Conn) {
|
func (t *Trok) ControlConnHandler(conn net.Conn) {
|
||||||
@ -75,7 +75,7 @@ func (t *Trok) handleCMDHELO(p *lib.ProtocolHandler, m *lib.Message) {
|
|||||||
log.Info().Msgf("[CMD] %s [ARG] %s", m.CMD, m.ARG)
|
log.Info().Msgf("[CMD] %s [ARG] %s", m.CMD, m.ARG)
|
||||||
|
|
||||||
var s TCPServer
|
var s TCPServer
|
||||||
err := s.Init(0, "Handler")
|
err := s.Init(":", "Handler")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Error().Msgf("error handling HELO cmd: %v", err)
|
log.Error().Msgf("error handling HELO cmd: %v", err)
|
||||||
return
|
return
|
||||||
|
Reference in New Issue
Block a user