aboutsummaryrefslogtreecommitdiff
path: root/forged/internal/server
diff options
context:
space:
mode:
Diffstat (limited to 'forged/internal/server')
-rw-r--r--forged/internal/server/server.go32
1 files changed, 23 insertions, 9 deletions
diff --git a/forged/internal/server/server.go b/forged/internal/server/server.go
index 4ed9b44..1f2cce6 100644
--- a/forged/internal/server/server.go
+++ b/forged/internal/server/server.go
@@ -7,16 +7,26 @@ import (
"go.lindenii.runxiyu.org/forge/forged/internal/config"
"go.lindenii.runxiyu.org/forge/forged/internal/database"
- "go.lindenii.runxiyu.org/forge/forged/internal/hooki"
- "go.lindenii.runxiyu.org/forge/forged/internal/lmtp"
+ "go.lindenii.runxiyu.org/forge/forged/internal/incoming/hooks"
+ "go.lindenii.runxiyu.org/forge/forged/internal/incoming/lmtp"
+ "go.lindenii.runxiyu.org/forge/forged/internal/incoming/ssh"
+ "go.lindenii.runxiyu.org/forge/forged/internal/incoming/web"
)
type Server struct {
config config.Config
- database database.Database
- hookPool hooki.Pool
- lmtpPool lmtp.Pool
+ database database.Database
+ hookServer *hooks.Server
+ lmtpServer *lmtp.Server
+ webServer *web.Server
+ sshServer *ssh.Server
+
+ globalData struct {
+ SSHPubkey string
+ SSHFingerprint string
+ Version string
+ }
}
func New(ctx context.Context, configPath string) (server *Server, err error) {
@@ -33,6 +43,12 @@ func New(ctx context.Context, configPath string) (server *Server, err error) {
return server, fmt.Errorf("open database: %w", err)
}
+ server.hookServer = hooks.New(server.config.Hooks)
+
+ server.lmtpServer = lmtp.New(server.config.LMTP)
+
+ // TODO: Add HTTP and SSH servers
+
return server, nil
}
@@ -41,15 +57,13 @@ func (s *Server) Run() error {
// This needs to be documented somewhere, hence a TODO here for now.
go func() {
- s.hookPool = hooki.New(s.config.Hooks)
- if err := s.hookPool.Run(); err != nil {
+ if err := s.hookServer.Run(); err != nil {
log.Fatalf("run hook pool: %v", err)
}
}()
go func() {
- s.lmtpPool = lmtp.New(s.config.LMTP)
- if err := s.lmtpPool.Run(); err != nil {
+ if err := s.lmtpServer.Run(); err != nil {
log.Fatalf("run LMTP pool: %v", err)
}
}()