github.com/Cloud-Foundations/Dominator@v0.3.4/lib/srpc/connection.go (about) 1 package srpc 2 3 import "io" 4 5 func (conn *Conn) close() error { 6 err := conn.Flush() 7 if conn.parent != nil { 8 conn.parent.callLock.Unlock() 9 } 10 return err 11 } 12 13 func (conn *Conn) getAuthInformation() *AuthInformation { 14 if conn.parent != nil { 15 panic("cannot call GetAuthInformation() for client connection") 16 } 17 return &AuthInformation{ 18 GroupList: conn.groupList, 19 HaveMethodAccess: conn.haveMethodAccess, 20 Username: conn.username, 21 } 22 } 23 24 func (conn *Conn) getCloseNotifier() <-chan error { 25 closeChannel := make(chan error, 1) 26 go func() { 27 for { 28 buf := make([]byte, 1) 29 if _, err := conn.Read(buf); err != nil { 30 if err == io.EOF { 31 err = nil 32 } 33 closeChannel <- err 34 return 35 } 36 } 37 }() 38 return closeChannel 39 } 40 41 func (conn *Conn) getUsername() string { 42 if conn.parent != nil { 43 panic("cannot call GetUsername() for client connection") 44 } 45 return conn.username 46 }