-/* Copyright (C) 2009-2011, Martin Johansson <martin@fatbob.nu>
- Copyright (C) 2005-2011, Thorvald Natvig <thorvald@natvig.com>
+/* Copyright (C) 2009-2012, Martin Johansson <martin@fatbob.nu>
+ Copyright (C) 2005-2012, Thorvald Natvig <thorvald@natvig.com>
All rights reserved.
break;
}
- SSLi_getSHA1Hash(client->ssl, client->hash);
- if (Ban_isBanned(client))
+ if (SSLi_getSHA1Hash(client->ssl, client->hash) && Ban_isBanned(client)) {
+ char hexhash[41];
+ SSLi_hash2hex(client->hash, hexhash);
+ Log_info("Client with hash '%s' is banned. Disconnecting", hexhash);
goto disconnect;
+ }
client->authenticated = true;
}
if (msg->payload.userState->has_user_id || msg->payload.userState->has_suppress ||
- msg->payload.userState->has_texture) {
+ msg->payload.userState->has_priority_speaker || msg->payload.userState->has_texture) {
sendPermissionDenied(client, "Not supported by uMurmur");
break;
}
if (msg->payload.userState->has_deaf) {
target->deaf = msg->payload.userState->deaf;
+ if (target->deaf) {
+ msg->payload.userState->has_mute = true;
+ msg->payload.userState->mute = true;
+ }
}
if (msg->payload.userState->has_mute) {
target->mute = msg->payload.userState->mute;
break;
case TextMessage:
+ if (!getBoolConf(ALLOW_TEXTMESSAGE))
+ break;
msg->payload.textMessage->has_actor = true;
msg->payload.textMessage->actor = client->sessionId;
case PermissionQuery:
Msg_inc_ref(msg); /* Re-use message */
msg->payload.permissionQuery->has_permissions = true;
+
if (client->isAdmin)
msg->payload.permissionQuery->permissions = PERM_ADMIN;
else
msg->payload.permissionQuery->permissions = PERM_DEFAULT;
+ if (!getBoolConf(ALLOW_TEXTMESSAGE))
+ msg->payload.permissionQuery->permissions &= ~PERM_TEXTMESSAGE;
+
Client_send_message(client, msg);
break;
case UDPTunnel: