diff options
| author | ilotterytea <iltsu@alright.party> | 2025-08-03 17:02:03 +0500 |
|---|---|---|
| committer | ilotterytea <iltsu@alright.party> | 2025-08-03 17:02:03 +0500 |
| commit | f70cb8879086b8e3769553375ef817adb1d7f2f0 (patch) | |
| tree | 457abaf13134aeb86c5a37fad16b57a89aa81257 | |
| parent | 40eb34ed8c932ae00f3a6cc97ff34ba59ab8066e (diff) | |
| -rw-r--r-- | cmd/ircd/main.go | 11 | ||||
| -rw-r--r-- | go.mod | 2 | ||||
| -rw-r--r-- | go.sum | 2 | ||||
| -rw-r--r-- | internal/server.go | 8 |
4 files changed, 21 insertions, 2 deletions
diff --git a/cmd/ircd/main.go b/cmd/ircd/main.go index ee96ab7..13da2be 100644 --- a/cmd/ircd/main.go +++ b/cmd/ircd/main.go @@ -3,12 +3,21 @@ package main import ( ircd "ilotterytea/tinyircd/internal" "log" + "os" + + "github.com/go-ini/ini" ) func main() { + cfg, err := ini.Load("tinyircd.ini") + if err != nil { + log.Fatalf("Failed to read configuration file: %v\n", err) + os.Exit(1) + } + log.Println("Starting TinyIRCd...") - server, err := ircd.NewIRCServer(":6667") + server, err := ircd.NewIRCServer(cfg) if err != nil { panic(err) } @@ -1,3 +1,5 @@ module ilotterytea/tinyircd go 1.24.3 + +require github.com/go-ini/ini v1.67.0 // indirect @@ -0,0 +1,2 @@ +github.com/go-ini/ini v1.67.0 h1:z6ZrTEZqSWOTyH2FlglNbNgARyHG8oLW9gMELqKr06A= +github.com/go-ini/ini v1.67.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= diff --git a/internal/server.go b/internal/server.go index 667aa97..f317fd6 100644 --- a/internal/server.go +++ b/internal/server.go @@ -3,11 +3,14 @@ package ircd import ( "log" "net" + + "github.com/go-ini/ini" ) type Server struct { clients []*Client listener net.Listener + cfg *ini.File } func (s *Server) Run() { @@ -29,7 +32,9 @@ func (s *Server) Close() { s.listener.Close() } -func NewIRCServer(address string) (*Server, error) { +func NewIRCServer(cfg *ini.File) (*Server, error) { + address := cfg.Section("address").Key("host").String() + listener, err := net.Listen("tcp", address) if err != nil { return nil, err @@ -40,6 +45,7 @@ func NewIRCServer(address string) (*Server, error) { s := Server{ clients: []*Client{}, listener: listener, + cfg: cfg, } return &s, nil |
