]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/cmd_version.cpp
Strlen bashing.
[user/henk/code/inspircd.git] / src / cmd_version.cpp
index 29350734e23f23f34e8252bf0ace4dcf2e3adf35..8e80e3778bd3e28e5220558801bd4387f2d31d5f 100644 (file)
@@ -1,11 +1,11 @@
-/*       +------------------------------------+
+/*   +------------------------------------+
  *       | Inspire Internet Relay Chat Daemon |
  *       +------------------------------------+
  *
- *  Inspire is copyright (C) 2002-2005 ChatSpike-Dev.
+ *  InspIRCd is copyright (C) 2002-2006 ChatSpike-Dev.
  *                       E-mail:
- *                <brain.net>
- *                <Craig.net>
+ *                <brain@chatspike.net>
+ *                <Craig@chatspike.net>
  *
  * Written by Craig Edwards, Craig McLure, and others.
  * This program is free but copyrighted software; see
@@ -51,20 +51,29 @@ using namespace std;
 
 extern ServerConfig* Config;
 extern InspIRCd* ServerInstance;
-extern int MODCOUNT;
-extern std::vector<Module*> modules;
-extern std::vector<ircd_module*> factory;
-extern time_t TIME;
-extern user_hash clientlist;
-extern chan_hash chanlist;
-extern whowas_hash whowas;
-extern std::vector<userrec*> all_opers;
-extern std::vector<userrec*> local_users;
-extern userrec* fd_ref_table[65536];
 
 void cmd_version::Handle (char **parameters, int pcnt, userrec *user)
 {
-        WriteServ(user->fd,"351 %s :%s",user->nick,ServerInstance->GetVersionString().c_str());
+       std::stringstream out(Config->data005);
+       std::string token = "";
+       std::string line5 = "";
+       int token_counter = 0;
+
+       WriteServ(user->fd,"351 %s :%s",user->nick,ServerInstance->GetVersionString().c_str());
+
+       while (!out.eof())
+       {
+               out >> token;
+               line5 = line5 + token + " ";
+               token_counter++;
+
+               if ((token_counter >= 13) || (out.eof() == true))
+               {
+                       WriteServ(user->fd,"005 %s %s:are supported by this server",user->nick,line5.c_str());
+                       line5 = "";
+                       token_counter = 0;
+               }
+       }
 }