From 64bde599f4ffa0ce49de5072ee2bd4bd2dc8a2ac Mon Sep 17 00:00:00 2001 From: Runxi Yu Date: Mon, 17 Feb 2025 11:25:17 +0800 Subject: git_hooks_handle.go: Move from git_hooks.go --- git_hooks.go | 45 --------------------------------------------- git_hooks_handle.go | 45 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+), 45 deletions(-) delete mode 100644 git_hooks.go create mode 100644 git_hooks_handle.go diff --git a/git_hooks.go b/git_hooks.go deleted file mode 100644 index 86300cb..0000000 --- a/git_hooks.go +++ /dev/null @@ -1,45 +0,0 @@ -package main - -import ( - "errors" - "fmt" - "net" - "os" - "syscall" -) - -var err_not_unixconn = errors.New("Not a unix connection") - -func hooks_handle_connection(conn net.Conn) (err error) { - defer conn.Close() - - unix_conn, ok := conn.(*net.UnixConn) - if !ok { - return err_not_unixconn - } - - fd, err := unix_conn.File() - if err != nil { - return err - } - defer fd.Close() - - ucred, err := get_ucred(fd) - if err != nil { - return err - } - - pid := ucred.Pid - - _ = pid - - return nil -} - -func get_ucred(fd *os.File) (*syscall.Ucred, error) { - ucred, err := syscall.GetsockoptUcred(int(fd.Fd()), syscall.SOL_SOCKET, syscall.SO_PEERCRED) - if err != nil { - return nil, fmt.Errorf("failed to get credentials: %v", err) - } - return ucred, nil -} diff --git a/git_hooks_handle.go b/git_hooks_handle.go new file mode 100644 index 0000000..86300cb --- /dev/null +++ b/git_hooks_handle.go @@ -0,0 +1,45 @@ +package main + +import ( + "errors" + "fmt" + "net" + "os" + "syscall" +) + +var err_not_unixconn = errors.New("Not a unix connection") + +func hooks_handle_connection(conn net.Conn) (err error) { + defer conn.Close() + + unix_conn, ok := conn.(*net.UnixConn) + if !ok { + return err_not_unixconn + } + + fd, err := unix_conn.File() + if err != nil { + return err + } + defer fd.Close() + + ucred, err := get_ucred(fd) + if err != nil { + return err + } + + pid := ucred.Pid + + _ = pid + + return nil +} + +func get_ucred(fd *os.File) (*syscall.Ucred, error) { + ucred, err := syscall.GetsockoptUcred(int(fd.Fd()), syscall.SOL_SOCKET, syscall.SO_PEERCRED) + if err != nil { + return nil, fmt.Errorf("failed to get credentials: %v", err) + } + return ucred, nil +} -- cgit v1.2.3