consul: Write the byte to set the RPC mode

pull/19/head
Armon Dadgar 11 years ago
parent 8f2d9f9b0d
commit ee4b1ce9dd

@ -14,7 +14,9 @@ type Conn struct {
// ConnPool is used to maintain a connection pool to other // ConnPool is used to maintain a connection pool to other
// Consul servers. This is used to reduce the latency of // Consul servers. This is used to reduce the latency of
// RPC requests between servers // RPC requests between servers. It is only used to pool
// connections in the rpcConsul mode. Raft connections
// are pooled seperately.
type ConnPool struct { type ConnPool struct {
sync.Mutex sync.Mutex
@ -99,6 +101,9 @@ func (p *ConnPool) getNewConn(addr net.Addr) (*Conn, error) {
conn.SetKeepAlive(true) conn.SetKeepAlive(true)
conn.SetNoDelay(true) conn.SetNoDelay(true)
// Write the Consul RPC byte to set the mode
conn.Write([]byte{byte(rpcConsul)})
// Wrap the connection // Wrap the connection
c := &Conn{ c := &Conn{
addr: addr, addr: addr,

@ -74,5 +74,12 @@ func (l *RaftLayer) Addr() net.Addr {
// Dial is used to create a new outgoing connection // Dial is used to create a new outgoing connection
func (l *RaftLayer) Dial(address string, timeout time.Duration) (net.Conn, error) { func (l *RaftLayer) Dial(address string, timeout time.Duration) (net.Conn, error) {
return net.DialTimeout("tcp", address, timeout) conn, err := net.DialTimeout("tcp", address, timeout)
if err != nil {
return nil, err
}
// Write the Raft byte to set the mode
conn.Write([]byte{byte(rpcRaft)})
return conn, err
} }

Loading…
Cancel
Save