1
0
Fork 0
forked from External/grumble

Fix protobuf enum types.

This commit is contained in:
Mikkel Krautz 2011-09-08 13:40:05 +02:00
parent 0161969df1
commit 92e6ac5276
3 changed files with 39 additions and 43 deletions

View file

@ -181,14 +181,14 @@ func (client *Client) ForceDisconnect() {
}
// Reject an authentication attempt
func (client *Client) RejectAuth(kind, reason string) {
func (client *Client) RejectAuth(rejectType mumbleproto.Reject_RejectType, reason string) {
var reasonString *string = nil
if len(reason) > 0 {
reasonString = proto.String(reason)
}
client.sendProtoMessage(&mumbleproto.Reject{
Type: mumbleproto.NewReject_RejectType(mumbleproto.Reject_RejectType_value[kind]),
Type: mumbleproto.NewReject_RejectType(rejectType),
Reason: reasonString,
})
@ -245,16 +245,15 @@ func (c *Client) sendProtoMessage(msg interface{}) (err os.Error) {
}
// Send permission denied by type
func (c *Client) sendPermissionDeniedType(kind string) {
c.sendPermissionDeniedTypeUser(kind, nil)
func (c *Client) sendPermissionDeniedType(denyType mumbleproto.PermissionDenied_DenyType) {
c.sendPermissionDeniedTypeUser(denyType, nil)
}
// Send permission denied by type (and user)
func (c *Client) sendPermissionDeniedTypeUser(kind string, user *Client) {
val, ok := mumbleproto.PermissionDenied_DenyType_value[kind]
if ok {
pd := &mumbleproto.PermissionDenied{}
pd.Type = mumbleproto.NewPermissionDenied_DenyType(val)
func (c *Client) sendPermissionDeniedTypeUser(denyType mumbleproto.PermissionDenied_DenyType, user *Client) {
pd := &mumbleproto.PermissionDenied{
Type: mumbleproto.NewPermissionDenied_DenyType(denyType),
}
if user != nil {
pd.Session = proto.Uint32(uint32(user.Session))
}
@ -267,9 +266,6 @@ func (c *Client) sendPermissionDeniedTypeUser(kind string, user *Client) {
buf: d,
kind: mumbleproto.MessagePermissionDenied,
}
} else {
c.Panicf("Unknown permission denied type.")
}
}
// Send permission denied by who, what, where
@ -290,9 +286,9 @@ func (c *Client) sendPermissionDenied(who *Client, where *Channel, what Permissi
}
// Send permission denied fallback
func (c *Client) sendPermissionDeniedFallback(kind string, version uint32, text string) {
func (c *Client) sendPermissionDeniedFallback(denyType mumbleproto.PermissionDenied_DenyType, version uint32, text string) {
// fixme(mkrautz): Do fallback kind of stuff...
c.sendPermissionDeniedType(kind)
c.sendPermissionDeniedType(denyType)
}
// UDP receiver.

View file

@ -196,7 +196,7 @@ func (server *Server) handleChannelStateMessage(client *Client, msg *Message) {
if chanstate.Description != nil {
description, err = server.FilterText(*chanstate.Description)
if err != nil {
client.sendPermissionDeniedType("TextTooLong")
client.sendPermissionDeniedType(mumbleproto.PermissionDenied_TextTooLong)
return
}
}
@ -221,7 +221,7 @@ func (server *Server) handleChannelStateMessage(client *Client, msg *Message) {
}
for _, iter := range evalp.children {
if iter.Name == name {
client.sendPermissionDeniedType("ChannelName")
client.sendPermissionDeniedType(mumbleproto.PermissionDenied_ChannelName)
return
}
}
@ -248,13 +248,13 @@ func (server *Server) handleChannelStateMessage(client *Client, msg *Message) {
// Only registered users can create channels.
if !client.IsRegistered() && !client.HasCertificate() {
client.sendPermissionDeniedTypeUser("MissingCertificate", client)
client.sendPermissionDeniedTypeUser(mumbleproto.PermissionDenied_MissingCertificate, client)
return
}
// We can't add channels to a temporary channel
if parent.Temporary {
client.sendPermissionDeniedType("TemporaryChannel")
client.sendPermissionDeniedType(mumbleproto.PermissionDenied_TemporaryChannel)
return
}
@ -372,7 +372,7 @@ func (server *Server) handleChannelStateMessage(client *Client, msg *Message) {
// A temporary channel must not have any subchannels, so deny it.
if parent.Temporary {
client.sendPermissionDeniedType("TemporaryChannel")
client.sendPermissionDeniedType(mumbleproto.PermissionDenied_TemporaryChannel)
return
}
@ -391,7 +391,7 @@ func (server *Server) handleChannelStateMessage(client *Client, msg *Message) {
// If a sibling of parent already has this name, don't allow it.
for _, iter := range parent.children {
if iter.Name == channel.Name {
client.sendPermissionDeniedType("ChannelName")
client.sendPermissionDeniedType(mumbleproto.PermissionDenied_ChannelName)
return
}
}
@ -604,7 +604,7 @@ func (server *Server) handleUserStateMessage(client *Client, msg *Message) {
if userstate.Mute != nil || userstate.Deaf != nil || userstate.Suppress != nil || userstate.PrioritySpeaker != nil {
// Disallow for SuperUser
if target.IsSuperUser() {
client.sendPermissionDeniedType("SuperUser")
client.sendPermissionDeniedType(mumbleproto.PermissionDenied_SuperUser)
return
}
@ -636,14 +636,14 @@ func (server *Server) handleUserStateMessage(client *Client, msg *Message) {
// Only allow empty text.
if len(comment) > 0 {
client.sendPermissionDeniedType("TextTooLong")
client.sendPermissionDeniedType(mumbleproto.PermissionDenied_TextTooLong)
return
}
}
filtered, err := server.FilterText(comment)
if err != nil {
client.sendPermissionDeniedType("TextTooLong")
client.sendPermissionDeniedType(mumbleproto.PermissionDenied_TextTooLong)
return
}
@ -654,7 +654,7 @@ func (server *Server) handleUserStateMessage(client *Client, msg *Message) {
if userstate.Texture != nil {
maximg := server.cfg.IntValue("MaxImageMessageLength")
if maximg > 0 && len(userstate.Texture) > maximg {
client.sendPermissionDeniedType("TextTooLong")
client.sendPermissionDeniedType(mumbleproto.PermissionDenied_TextTooLong)
return
}
}
@ -674,7 +674,7 @@ func (server *Server) handleUserStateMessage(client *Client, msg *Message) {
}
if len(target.CertHash) == 0 {
client.sendPermissionDeniedTypeUser("MissingCertificate", target)
client.sendPermissionDeniedTypeUser(mumbleproto.PermissionDenied_MissingCertificate, target)
return
}
}
@ -961,7 +961,7 @@ func (server *Server) handleTextMessage(client *Client, msg *Message) {
filtered, err := server.FilterText(*txtmsg.Message)
if err != nil {
client.sendPermissionDeniedType("TextTooLong")
client.sendPermissionDeniedType(mumbleproto.PermissionDenied_TextTooLong)
return
}

View file

@ -427,7 +427,7 @@ func (server *Server) handleAuthenticate(client *Client, msg *Message) {
// Did we get a username?
if auth.Username == nil || len(*auth.Username) == 0 {
client.RejectAuth("InvalidUsername", "Please specify a username to log in")
client.RejectAuth(mumbleproto.Reject_InvalidUsername, "Please specify a username to log in")
return
}
@ -449,17 +449,17 @@ func (server *Server) handleAuthenticate(client *Client, msg *Message) {
if client.Username == "SuperUser" {
if auth.Password == nil {
client.RejectAuth("WrongUserPW", "")
client.RejectAuth(mumbleproto.Reject_WrongUserPW, "")
return
} else {
if server.CheckSuperUserPassword(*auth.Password) {
client.user, ok = server.UserNameMap[client.Username]
if !ok {
client.RejectAuth("InvalidUsername", "")
client.RejectAuth(mumbleproto.Reject_InvalidUsername, "")
return
}
} else {
client.RejectAuth("WrongUserPW", "")
client.RejectAuth(mumbleproto.Reject_WrongUserPW, "")
return
}
}
@ -470,7 +470,7 @@ func (server *Server) handleAuthenticate(client *Client, msg *Message) {
if len(client.CertHash) > 0 && user.CertHash == client.CertHash {
client.user = user
} else {
client.RejectAuth("WrongUserPW", "Wrong certificate hash")
client.RejectAuth(mumbleproto.Reject_WrongUserPW, "Wrong certificate hash")
return
}
}
@ -538,7 +538,7 @@ func (server *Server) finishAuthenticate(client *Client) {
// The user is already present on the server.
if found {
// todo(mkrautz): Do the address checking.
client.RejectAuth("UsernameInUse", "A client is already connected using those credentials.")
client.RejectAuth(mumbleproto.Reject_UsernameInUse, "A client is already connected using those credentials.")
return
}