MCPcopy Index your code
hub / github.com/coder/coder / createSocket

Function createSocket

agent/agentsocket/socket_unix.go:17–45  ·  view source on GitHub ↗
(path string)

Source from the content-addressed store, hash-verified

15const defaultSocketPath = "/tmp/coder-agent.sock"
16
17func createSocket(path string) (net.Listener, error) {
18 if path == "" {
19 path = defaultSocketPath
20 }
21
22 if !isSocketAvailable(path) {
23 return nil, xerrors.Errorf("socket path %s is not available", path)
24 }
25
26 if err := os.Remove(path); err != nil && !os.IsNotExist(err) {
27 return nil, xerrors.Errorf("remove existing socket: %w", err)
28 }
29
30 parentDir := filepath.Dir(path)
31 if err := os.MkdirAll(parentDir, 0o700); err != nil {
32 return nil, xerrors.Errorf("create socket directory: %w", err)
33 }
34
35 listener, err := net.Listen("unix", path)
36 if err != nil {
37 return nil, xerrors.Errorf("listen on unix socket: %w", err)
38 }
39
40 if err := os.Chmod(path, 0o600); err != nil {
41 _ = listener.Close()
42 return nil, xerrors.Errorf("set socket permissions: %w", err)
43 }
44 return listener, nil
45}
46
47func cleanupSocket(path string) error {
48 return os.Remove(path)

Callers 1

NewServerFunction · 0.70

Calls 6

isSocketAvailableFunction · 0.85
MkdirAllMethod · 0.80
RemoveMethod · 0.65
ListenMethod · 0.65
CloseMethod · 0.65
ErrorfMethod · 0.45

Tested by

no test coverage detected