// socketPathBytes is the longest path of a Unix socket on Linux.
socketPathBytes = 107
+
+ // terminalSource is the source of the user messages from the clients of
+ // the socket.
+ terminalSource = "terminal"
)
// errTokensInUse tells that another onechat process uses the token file.
return err
}
+ // Check the socket path before the daemon writes a file, so that a data
+ // directory with a long path stays empty.
+ socket := filepath.Join(dir, socketFileName)
+ err = checkSocketPath(socket)
+ if err != nil {
+ return err
+ }
+
config, err := loadConfig(dir)
if err != nil {
return err
err = errors.Join(err, memory.Close())
}()
- listener, err := listenSocket(filepath.Join(dir, socketFileName))
+ listener, err := listenSocket(socket)
if err != nil {
return err
}
return errors.New("empty message")
}
- _, err := l.Submit(request.Text)
+ _, err := l.Submit(terminalSource, request.Text)
return err
case "interrupt":