Author: Isomer <isomer@coders.net>
[ircu2.10.12-pk.git] / ircd / m_invite.c
index 43ef8f5d84cdfa3e71e0ce5353748b5a6953d4b7..ae9be8271b7c6172fe87b0d2d245a503ca6f8b60 100644 (file)
@@ -240,6 +240,7 @@ int ms_invite(struct Client* cptr, struct Client* sptr, int parc, char* parv[])
     /*
      * should have been handled upstream, ignore it.
      */
+    protocol_violation(sptr,"Too few arguments to invite");
     return need_more_params(sptr,"INVITE");
   }
   if ('#' != *parv[2]) {
@@ -286,135 +287,3 @@ int ms_invite(struct Client* cptr, struct Client* sptr, int parc, char* parv[])
 }
 
 
-#if 0
-/*
- * m_invite
- *
- *   parv[0] - sender prefix
- *   parv[1] - user to invite
- *   parv[2] - channel name
- *
- * - INVITE now is accepted only if who does it is chanop (this of course
- *   implies that channel must exist and he must be on it).
- *
- * - On the other side it IS processed even if channel is NOT invite only
- *   leaving room for other enhancements like inviting banned ppl.  -- Nemesi
- *
- * - Invite with no parameters now lists the channels you are invited to.
- *                                                         - Isomer 23 Oct 99
- */
-int m_invite(struct Client* cptr, struct Client *sptr, int parc, char *parv[])
-{
-  struct Client *acptr;
-  struct Channel *chptr;
-  
-  if (parc < 2 ) { 
-    /*
-     * list the channels you have an invite to.
-     */
-    struct SLink *lp;
-    for (lp = sptr->user->invited; lp; lp = lp->next)
-      sendto_one(cptr, rpl_str(RPL_INVITELIST), me.name, cptr->name, /* XXX DEAD */
-                lp->value.chptr->chname);
-    sendto_one(cptr, rpl_str(RPL_ENDOFINVITELIST), me.name, cptr->name); /* XXX DEAD */
-    return 0;
-  }
-
-  if (parc < 3 || *parv[2] == '\0')
-    return need_more_params(sptr, "INVITE");
-
-  if (!(acptr = FindUser(parv[1])))
-  {
-    sendto_one(sptr, err_str(ERR_NOSUCHNICK), me.name, parv[0], parv[1]); /* XXX DEAD */
-    return 0;
-  }
-
-  if (is_silenced(sptr, acptr))
-    return 0;
-
-  if (MyUser(sptr))
-    clean_channelname(parv[2]);
-  else if (IsLocalChannel(parv[2]))
-    return 0;
-
-  if (*parv[2] == '0' || !IsChannelName(parv[2]))
-    return 0;
-
-  if (!(chptr = FindChannel(parv[2])))
-  {
-    if (IsModelessChannel(parv[2]) || IsLocalChannel(parv[2]))
-    {
-      sendto_one(sptr, err_str(ERR_NOTONCHANNEL), me.name, parv[0], parv[2]); /* XXX DEAD */
-      return 0;
-    }
-
-    /* Do not disallow to invite to non-existant #channels, otherwise they
-       would simply first be created, causing only MORE bandwidth usage. */
-    if (MyConnect(sptr))
-    {
-      if (check_target_limit(sptr, acptr, acptr->name, 0))
-        return 0;
-
-      sendto_one(sptr, rpl_str(RPL_INVITING), me.name, parv[0], /* XXX DEAD */
-          acptr->name, parv[2]);
-
-      if (acptr->user->away)
-        sendto_one(sptr, rpl_str(RPL_AWAY), me.name, parv[0], /* XXX DEAD */
-            acptr->name, acptr->user->away);
-    }
-
-    sendto_prefix_one(acptr, sptr, ":%s INVITE %s :%s", parv[0], /* XXX DEAD */
-        acptr->name, parv[2]);
-
-    return 0;
-  }
-
-  if (!find_channel_member(sptr, chptr))
-  {
-    sendto_one(sptr, err_str(ERR_NOTONCHANNEL), me.name, parv[0], /* XXX DEAD */
-        chptr->chname);
-    return 0;
-  }
-
-  if (find_channel_member(acptr, chptr))
-  {
-    sendto_one(sptr, err_str(ERR_USERONCHANNEL), /* XXX DEAD */
-        me.name, parv[0], acptr->name, chptr->chname);
-    return 0;
-  }
-
-  if (MyConnect(sptr))
-  {
-    if (!is_chan_op(sptr, chptr))
-    {
-      sendto_one(sptr, err_str(ERR_CHANOPRIVSNEEDED), /* XXX DEAD */
-          me.name, parv[0], chptr->chname);
-      return 0;
-    }
-
-    /* If we get here, it was a VALID and meaningful INVITE */
-
-    if (check_target_limit(sptr, acptr, acptr->name, 0))
-      return 0;
-
-    sendto_one(sptr, rpl_str(RPL_INVITING), me.name, parv[0], /* XXX DEAD */
-        acptr->name, chptr->chname);
-
-    if (acptr->user->away)
-      sendto_one(sptr, rpl_str(RPL_AWAY), me.name, parv[0], /* XXX DEAD */
-          acptr->name, acptr->user->away);
-  }
-
-  if (MyConnect(acptr)) {
-    add_invite(acptr, chptr);
-  sendto_prefix_one(acptr, sptr, ":%s INVITE %s :%s", parv[0], /* XXX DEAD */
-      acptr->name, chptr->chname);
-  }
-  else
-    sendto_highprot_butone(acptr, 10, "%s%s " TOK_INVITE " %s :%s", /* XXX DEAD */
-       NumNick(sptr), acptr->name, chptr->chname);
-
-  return 0;
-}
-#endif /* 0 */
-