]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/inspircd.cpp
Don't hardcode conf/inspircd.conf as the config file, allow the configure script...
[user/henk/code/inspircd.git] / src / inspircd.cpp
index 005a11dd7c239e502932e956905defbfa7fc059c..4abfb496a3e26e80b63aa186fa3b1453b98a2999 100644 (file)
@@ -195,24 +195,21 @@ void InspIRCd::ResetMaxBans()
 void InspIRCd::RehashUsersAndChans()
 {
        user_hash* old_users = Users->clientlist;
-       user_hash* old_uuid  = Users->uuidlist;
-       chan_hash* old_chans = chanlist;
-
-       Users->clientlist = new user_hash();
-       Users->uuidlist = new user_hash();
-       chanlist = new chan_hash();
-
+       Users->clientlist = new user_hash;
        for (user_hash::const_iterator n = old_users->begin(); n != old_users->end(); n++)
                Users->clientlist->insert(*n);
+       delete old_users;
 
+       user_hash* old_uuid = Users->uuidlist;
+       Users->uuidlist = new user_hash;
        for (user_hash::const_iterator n = old_uuid->begin(); n != old_uuid->end(); n++)
                Users->uuidlist->insert(*n);
+       delete old_uuid;
 
+       chan_hash* old_chans = chanlist;
+       chanlist = new chan_hash;
        for (chan_hash::const_iterator n = old_chans->begin(); n != old_chans->end(); n++)
                chanlist->insert(*n);
-
-       delete old_users;
-       delete old_uuid;
        delete old_chans;
 
        // Reset the already_sent IDs so we don't wrap it around and drop a message
@@ -220,6 +217,7 @@ void InspIRCd::RehashUsersAndChans()
        for (std::vector<LocalUser*>::const_iterator i = Users->local_users.begin(); i != Users->local_users.end(); i++)
        {
                (**i).already_sent = 0;
+               (**i).RemoveExpiredInvites();
        }
 }
 
@@ -305,7 +303,7 @@ void InspIRCd::WritePID(const std::string &filename)
 }
 
 InspIRCd::InspIRCd(int argc, char** argv) :
-        ConfigFileName("conf/inspircd.conf"),
+        ConfigFileName(CONFIG_PATH "/inspircd.conf"),
 
         /* Functor pointer initialisation.
          *