Skip to content

Commit

Permalink
Add NewUnixClient to connect to the unix sockets.
Browse files Browse the repository at this point in the history
  • Loading branch information
vmihailenco committed Feb 2, 2013
1 parent 9f494b2 commit f647618
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 2 deletions.
10 changes: 10 additions & 0 deletions redis.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,12 @@ func TLSConnector(addr string, tlsConfig *tls.Config) OpenConnFunc {
}
}

func UnixConnector(addr string) OpenConnFunc {
return func() (net.Conn, error) {
return net.DialTimeout("unix", addr, 3*time.Second)
}
}

func AuthSelectFunc(password string, db int64) InitConnFunc {
if password == "" && db < 0 {
return nil
Expand Down Expand Up @@ -182,3 +188,7 @@ func NewTLSClient(addr string, tlsConfig *tls.Config, password string, db int64)
AuthSelectFunc(password, db),
)
}

func NewUnixClient(addr string, password string, db int64) *Client {
return NewClient(UnixConnector(addr), nil, AuthSelectFunc(password, db))
}
25 changes: 23 additions & 2 deletions redis_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -52,9 +52,30 @@ func (t *RedisShutdownTest) TestShutdown(c *C) {

//------------------------------------------------------------------------------

type RedisConnectorTest struct{}

var _ = Suite(&RedisConnectorTest{})

func (t *RedisConnectorTest) TestTCPConnector(c *C) {
client := redis.NewTCPClient(":6379", "", -1)
ping := client.Ping()
c.Check(ping.Err(), IsNil)
c.Check(ping.Val(), Equals, "PONG")
}

func (t *RedisConnectorTest) TestUnixConnector(c *C) {
client := redis.NewUnixClient("/tmp/redis.sock", "", -1)
ping := client.Ping()
c.Check(ping.Err(), IsNil)
c.Check(ping.Val(), Equals, "PONG")
}

//------------------------------------------------------------------------------

type RedisConnPoolTest struct {
openedConnCount, closedConnCount, initedConnCount int64
client *redis.Client

client *redis.Client
}

var _ = Suite(&RedisConnPoolTest{})
Expand Down Expand Up @@ -2734,7 +2755,7 @@ func (t *RedisTest) TestScriptingScriptFlush(c *C) {

func (t *RedisTest) TestScriptingScriptKill(c *C) {
scriptKill := t.client.ScriptKill()
c.Assert(scriptKill.Err(), ErrorMatches, "ERR No scripts in execution right now.")
c.Assert(scriptKill.Err(), ErrorMatches, ".*No scripts in execution right now.")
c.Assert(scriptKill.Val(), Equals, "")
}

Expand Down

0 comments on commit f647618

Please sign in to comment.