Skip to content

Instantly share code, notes, and snippets.

@shutej
Created January 20, 2015 19:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save shutej/a4ff36ebadb6e56cbaf4 to your computer and use it in GitHub Desktop.
Save shutej/a4ff36ebadb6e56cbaf4 to your computer and use it in GitHub Desktop.
package logout
var (
logoutQuery = bson.D{
bson.DocElem{Name: "logout", Value: 1},
}
)
type logoutResponse struct {
Ok bool `bson:"ok,omitempty"`
ErrMsg *string `bson:"errmsg,omitempty"`
Extra bson.M `bson:",inline"`
}
// logout sends a logout message on a server connection.
func logout(c net.Conn) (*logoutResponse, error) {
// The mgo driver does this.
// https://github.com/go-mgo/mgo/blob/v2/session.go#L667
// https://github.com/go-mgo/mgo/blob/v2/session.go#L62
// https://github.com/go-mgo/mgo/blob/v2/socket.go#L40
// https://github.com/go-mgo/mgo/blob/v2/auth.go#L410
// https://github.com/go-mgo/mgo/blob/v2/socket.go#L68
// https://github.com/go-mgo/mgo/blob/v2/auth.go#L430
h := &messageHeader{
OpCode: OpQuery,
}
var res logoutResponse
if err := s.Run(logoutQuery, &res); err != nil {
return nil, fmt.Errorf("error in logout: %s", err)
}
return &res, nil
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment