- channelJoinResult_t chjoin_rc = Chan_userJoin_id_test(msg->payload.userState->channel_id, target);
-
- if (chjoin_rc != CHJOIN_OK) {
- if (chjoin_rc == CHJOIN_WRONGPW) {
- if (target == client && !client->isAdmin) {
- sendPermissionDenied(client, "Wrong channel password");
- break;
- }
- /* Tricky one: if user hasn't the password, but is moved to the channel by admin then let
- * the user in. Also let admin user in regardless of channel password.
- * Take no action on other errors.
- */
- else if (!client->isAdmin)
- break;
+
+ channelJoinResult_t result = Chan_userJoin_id_test(msg->payload.userState->channel_id, target);
+
+ if (result.CHJOIN_NOENTER || result.CHJOIN_NOTFOUND)
+ break;
+
+ if (result.CHJOIN_WRONGPW) {
+ if (target == client && !client->isAdmin) {
+ sendPermissionDenied(client, "Wrong channel password");
+ break;