feat: allow setting unix socket mode (#661)

This commit is contained in:
Mr Snake
2025-06-19 00:41:57 +08:00
committed by GitHub
parent 1f65c01b04
commit 7677a3de2c
2 changed files with 16 additions and 0 deletions

View File

@@ -7,6 +7,8 @@ import (
"log"
"net"
"net/http"
"os"
"strconv"
"time"
"github.com/pocket-id/pocket-id/backend/frontend"
@@ -119,6 +121,18 @@ func initRouterInternal(db *gorm.DB, svc *services) (utils.Service, error) {
return nil, fmt.Errorf("failed to create %s listener: %w", network, err)
}
// Set the socket mode if using a Unix socket
if network == "unix" && common.EnvConfig.UnixSocketMode != "" {
mode, err := strconv.ParseUint(common.EnvConfig.UnixSocketMode, 8, 32)
if err != nil {
return nil, fmt.Errorf("failed to parse UNIX socket mode '%s': %w", common.EnvConfig.UnixSocketMode, err)
}
if err := os.Chmod(addr, os.FileMode(mode)); err != nil {
return nil, fmt.Errorf("failed to set UNIX socket mode '%s': %w", common.EnvConfig.UnixSocketMode, err)
}
}
// Service runner function
runFn := func(ctx context.Context) error {
log.Printf("Server listening on %s", addr)