diff options
author | Adam <Adam@anope.org> | 2012-01-25 15:48:07 -0500 |
---|---|---|
committer | Adam <Adam@anope.org> | 2012-01-25 15:48:07 -0500 |
commit | 52eaa7d6d61e3373340fd5a69b92b0fb3b5609e0 (patch) | |
tree | 428f2b440ab5675ae3a9c19ae5b813f132497c79 /modules/database/db_old.cpp | |
parent | e88e37c59b45cc43b714d1d28719eb3c2ca9579a (diff) |
Windows
Diffstat (limited to 'modules/database/db_old.cpp')
-rw-r--r-- | modules/database/db_old.cpp | 29 |
1 files changed, 16 insertions, 13 deletions
diff --git a/modules/database/db_old.cpp b/modules/database/db_old.cpp index 61a8bc1b2..e7a6fa390 100644 --- a/modules/database/db_old.cpp +++ b/modules/database/db_old.cpp @@ -723,6 +723,7 @@ static void LoadChannels() ci->SetLevel(GetLevelName(j), level); } + service_reference<AccessProvider> provider("AccessProvider", "access/access"); uint16_t tmpu16; READ(read_uint16(&tmpu16, f)); for (uint16_t j = 0; j < tmpu16; ++j) @@ -731,27 +732,29 @@ static void LoadChannels() READ(read_uint16(&in_use, f)); if (in_use) { - service_reference<AccessProvider> provider("access/access"); - if (!provider) - break; - - ChanAccess *access = provider->Create(); - access->ci = ci; + ChanAccess *access = provider ? provider->Create() : NULL; + if (access) + access->ci = ci; int16_t level; READ(read_int16(&level, f)); - access->Unserialize(stringify(level)); + if (access) + access->Unserialize(stringify(level)); Anope::string mask; READ(read_string(mask, f)); - access->mask = mask; + if (access) + access->mask = mask; READ(read_int32(&tmp32, f)); - access->last_seen = tmp32; - access->creator = "Unknown"; - access->created = Anope::CurTime; - - ci->AddAccess(access); + if (access) + { + access->last_seen = tmp32; + access->creator = "Unknown"; + access->created = Anope::CurTime; + + ci->AddAccess(access); + } } } |