Skip to content

Commit

Permalink
connect: add fix for long socket paths
Browse files Browse the repository at this point in the history
Now relative path is used instead of real for console socket.
It is used to prevent console socket path from being too long.

Closes #124
  • Loading branch information
better0fdead committed Nov 2, 2022
1 parent b7df3d0 commit 84c85cc
Showing 1 changed file with 15 additions and 0 deletions.
15 changes: 15 additions & 0 deletions cli/connector/connector.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ package connector
import (
"fmt"
"net"
"os"
"path/filepath"
"time"

"github.com/tarantool/go-tarantool"
Expand Down Expand Up @@ -37,6 +39,19 @@ type Connector interface {

// Connect connects to the tarantool instance according to options.
func Connect(opts ConnectOpts) (Connector, error) {
// It became common that address is longer than 108 symbols(sun_path limit).
// To reduce length of address we use relative path
// with chdir into a directory of socket.
// e.g blablabla/bla/123.sock -> ./123.sock
workDir, err := os.Getwd()
if err != nil {
return nil, err
}
if _, err := os.Stat(opts.Address); err == nil {
os.Chdir(filepath.Dir(opts.Address))
opts.Address = "./" + filepath.Base(opts.Address)
defer os.Chdir(workDir)
}
// Connect to specified address.
greetingConn, err := net.Dial(opts.Network, opts.Address)
if err != nil {
Expand Down

0 comments on commit 84c85cc

Please sign in to comment.