add a new api: NewConnNet
This commit is contained in:
parent
ef8155bf17
commit
a1d1151017
|
@ -29,6 +29,17 @@ func (c *Conn) connect(display string) error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return c.postConnect()
|
||||||
|
}
|
||||||
|
|
||||||
|
// connect init from to the net.Conn,
|
||||||
|
func (c *Conn) connectNet(netConn net.Conn) error {
|
||||||
|
c.conn = netConn
|
||||||
|
return c.postConnect()
|
||||||
|
}
|
||||||
|
|
||||||
|
// do the postConnect action after Conn get it's underly net.Conn
|
||||||
|
func (c *Conn) postConnect() error {
|
||||||
// Get authentication data
|
// Get authentication data
|
||||||
authName, authData, err := readAuthority(c.host, c.display)
|
authName, authData, err := readAuthority(c.host, c.display)
|
||||||
noauth := false
|
noauth := false
|
||||||
|
|
20
nexgb/xgb.go
20
nexgb/xgb.go
|
@ -98,6 +98,26 @@ func NewConnDisplay(display string) (*Conn, error) {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return postNewConn(conn)
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewConnDisplay is just like NewConn, but allows a specific net.Conn
|
||||||
|
// to be used.
|
||||||
|
func NewConnNet(netConn net.Conn) (*Conn, error) {
|
||||||
|
conn := &Conn{}
|
||||||
|
|
||||||
|
// First connect. This reads authority, checks DISPLAY environment
|
||||||
|
// variable, and loads the initial Setup info.
|
||||||
|
err := conn.connectNet(netConn)
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return postNewConn(conn)
|
||||||
|
}
|
||||||
|
|
||||||
|
func postNewConn(conn *Conn) (*Conn, error) {
|
||||||
conn.Extensions = make(map[string]byte)
|
conn.Extensions = make(map[string]byte)
|
||||||
|
|
||||||
conn.cookieChan = make(chan *Cookie, cookieBuffer)
|
conn.cookieChan = make(chan *Cookie, cookieBuffer)
|
||||||
|
|
Loading…
Reference in New Issue