]> jfr.im git - irc/rqf/shadowircd.git/blobdiff - modules/m_away.c
mkpasswd: Default to SHA512 instead of inherently insecure DES.
[irc/rqf/shadowircd.git] / modules / m_away.c
index 0d462f9d00b2af9fd788c41507c275912a1bb218..557371ecb04f069da729b8416c8100e3182350db 100644 (file)
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
  *
- *  $Id: m_away.c 3370 2007-04-03 10:15:39Z nenolod $
  */
 
 #include "stdinc.h"
 #include "client.h"
-#include "irc_string.h"
+#include "match.h"
 #include "ircd.h"
 #include "numeric.h"
 #include "send.h"
@@ -64,52 +63,43 @@ DECLARE_MODULE_AV1(away, NULL, NULL, away_clist, NULL, NULL, "$Revision: 3370 $"
 
 /*
 ** m_away
-**      parv[0] = sender prefix
 **      parv[1] = away message
 */
 static int
 m_away(struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
 {
-       if(MyClient(source_p) && !IsFloodDone(source_p))\r
-               flood_endgrace(source_p);\r
-\r
-       if(!IsClient(source_p))\r
-               return 0;\r
-\r
-       if(parc < 2 || EmptyString(parv[1]))\r
-       {\r
-               /* Marking as not away */\r
-               if(source_p->user->away != NULL)\r
-               {\r
-                       /* we now send this only if they were away before --is */\r
-                       sendto_server(client_p, NULL, CAP_TS6, NOCAPS,\r
-                                     ":%s AWAY", use_id(source_p));\r
-                       sendto_server(client_p, NULL, NOCAPS, CAP_TS6, \r
-                                     ":%s AWAY", source_p->name);\r
-                       free_away(source_p);\r
-               }\r
-               if(MyConnect(source_p))\r
-                       sendto_one(source_p, form_str(RPL_UNAWAY),\r
-                                  me.name, source_p->name);\r
-               return 0;\r
-       }\r
-\r
-\r
-       if(source_p->user->away == NULL)\r
-       {\r
-               allocate_away(source_p);\r
-               rb_strlcpy(source_p->user->away, parv[1], AWAYLEN);\r
-               sendto_server(client_p, NULL, CAP_TS6, NOCAPS, \r
-                             ":%s AWAY :%s", use_id(source_p), source_p->user->away);\r
-               sendto_server(client_p, NULL, NOCAPS, CAP_TS6,\r
-                             ":%s AWAY :%s", source_p->name, source_p->user->away);\r
-                       \r
-       } else {\r
-               rb_strlcpy(source_p->user->away, parv[1], AWAYLEN);\r
-       }\r
-       \r
-       if(MyConnect(source_p))\r
-               sendto_one(source_p, form_str(RPL_NOWAWAY), me.name, source_p->name);\r
-\r
+       if(MyClient(source_p) && !IsFloodDone(source_p))
+               flood_endgrace(source_p);
+
+       if(!IsClient(source_p))
+               return 0;
+
+       if(parc < 2 || EmptyString(parv[1]))
+       {
+               /* Marking as not away */
+               if(source_p->user->away != NULL)
+               {
+                       /* we now send this only if they were away before --is */
+                       sendto_server(client_p, NULL, CAP_TS6, NOCAPS,
+                                     ":%s AWAY", use_id(source_p));
+                       free_away(source_p);
+               }
+               if(MyConnect(source_p))
+                       sendto_one_numeric(source_p, RPL_UNAWAY, form_str(RPL_UNAWAY));
+               return 0;
+       }
+
+       if(source_p->user->away == NULL)
+               allocate_away(source_p);
+       if(strncmp(source_p->user->away, parv[1], AWAYLEN - 1))
+       {
+               rb_strlcpy(source_p->user->away, parv[1], AWAYLEN);
+               sendto_server(client_p, NULL, CAP_TS6, NOCAPS, 
+                             ":%s AWAY :%s", use_id(source_p), source_p->user->away);
+       }
+       
+       if(MyConnect(source_p))
+               sendto_one_numeric(source_p, RPL_NOWAWAY, form_str(RPL_NOWAWAY));
+
        return 0;
 }