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  }