]> jfr.im git - irc/rizon/plexus4.git/commitdiff
invite: do not require +ip for invite-notify
authorDwarf <redacted>
Wed, 14 Apr 2021 19:22:13 +0000 (21:22 +0200)
committerDwarf <redacted>
Wed, 14 Apr 2021 19:25:41 +0000 (21:25 +0200)
modules/m_invite.c
test/tests/invite.c

index f34c55202f16116e34e70ef01c8dad5c9d6d9df0..1fb28cc27db01d143869230df69df8dde87b9731 100644 (file)
@@ -208,12 +208,13 @@ m_invite(struct Client *client_p, struct Client *source_p,
                                 chptr,
                                 ":%s NOTICE %%%s :%s is inviting %s to %s.",
                                  me.name, chptr->chname, source_p->name, target_p->name, chptr->chname);
-    sendto_channel_local_butone(NULL, CHFL_OWNER | CHFL_PROTECTED | CHFL_CHANOP | CHFL_HALFOP,
+  }
+
+  sendto_channel_local_butone(NULL, CHFL_OWNER | CHFL_PROTECTED | CHFL_CHANOP | CHFL_HALFOP,
                                 CAP_INVITE_NOTIFY, 0,
                                 chptr,
                                 ":%s!%s@%s INVITE %s %s",
                                 source_p->name, source_p->username, source_p->host, target_p->name, chptr->chname);
-  }
 
   if (MyConnect(target_p))
   {
index e47c381028de85b876a4438b513a4bf88f350c99..46e74d7d42c416dd3c1bd3b986c6db82ce3bc8f7 100644 (file)
@@ -28,8 +28,6 @@ START_TEST(invite)
   struct PlexusClient *client1 = client_register("test1"),
                       *client2 = client_register("test2");
 
-  client1->client->localClient->cap_active |= CAP_INVITE_NOTIFY;
-
   irc_join(client1, "#a");
   expect_message(client1, client1->client, "JOIN");
 
@@ -38,6 +36,30 @@ START_TEST(invite)
 
   chptr->mode.mode |= MODE_INVITEONLY | MODE_PRIVATE;
 
+  irc_invite(client1, chptr, client2->client);
+  expect_numeric(client1, RPL_INVITING);
+
+  expect_message(client2, client1->client, "INVITE");
+
+  plexus_down();
+}
+END_TEST
+
+START_TEST(invite_notify)
+{
+  plexus_up();
+
+  struct PlexusClient *client1 = client_register("test1"),
+                      *client2 = client_register("test2");
+
+  client1->client->localClient->cap_active |= CAP_INVITE_NOTIFY;
+
+  irc_join(client1, "#a");
+  expect_message(client1, client1->client, "JOIN");
+
+  struct Channel *chptr = hash_find_channel("#a");
+  ck_assert_ptr_ne(chptr, NULL);
+
   irc_invite(client1, chptr, client2->client);
   expect_numeric(client1, RPL_INVITING);
   expect_message(client1, client1->client, "INVITE"); // invite-notify