diff options
-rw-r--r-- | ReadFile.cmake | 1 | ||||
-rw-r--r-- | docs/Changes | 3 | ||||
-rw-r--r-- | docs/Changes.conf | 4 | ||||
-rw-r--r-- | docs/Changes.lang | 4 | ||||
-rw-r--r-- | docs/TODO | 76 | ||||
-rw-r--r-- | include/configreader.h | 14 | ||||
-rw-r--r-- | include/services.h | 2 | ||||
-rw-r--r-- | src/config.c | 5 | ||||
-rw-r--r-- | src/core/cs_access.c | 3 | ||||
-rw-r--r-- | src/hostserv.c | 6 | ||||
-rw-r--r-- | src/modes.cpp | 5 | ||||
-rw-r--r-- | src/users.c | 14 | ||||
-rw-r--r-- | version.log | 4 |
13 files changed, 63 insertions, 78 deletions
diff --git a/ReadFile.cmake b/ReadFile.cmake index 205764d01..be60f1fa7 100644 --- a/ReadFile.cmake +++ b/ReadFile.cmake @@ -3,4 +3,3 @@ file(READ "${FILE}" RESULT) message("${RESULT}") - diff --git a/docs/Changes b/docs/Changes index 17b91ebd6..0e9cca93d 100644 --- a/docs/Changes +++ b/docs/Changes @@ -1,3 +1,6 @@ +Anope Version 1.9.3 +-------------------- + Anope Version 1.9.2 -------------------- A K alias to chanserv kick command diff --git a/docs/Changes.conf b/docs/Changes.conf index de91d3808..5420f66fd 100644 --- a/docs/Changes.conf +++ b/docs/Changes.conf @@ -1,3 +1,7 @@ +Anope Version 1.9.3 +------------------- + + Anope Version 1.9.2 -------------------- ** ADDED CONFIGURATION DIRECTIVES ** diff --git a/docs/Changes.lang b/docs/Changes.lang index 65240fa6a..ea711a609 100644 --- a/docs/Changes.lang +++ b/docs/Changes.lang @@ -1,3 +1,7 @@ +Anope Version 1.9.3 +------------------- + + Anope Version 1.9.2 -------------------- *** New Strings: @@ -3,68 +3,45 @@ Legend: ? = unsure + = in progress -1.9.2 +1.9.3 ----- -[x] Redo database insanity. - [x] Move database load/save to a module - [x] realtime SQL/whatever module using events (possibly ongoing) - [x] flatfile save on a periodic timer - [x] SANE password encryption - prefix password with the method it was encrypted with, allowing for *seamless* upgrading to different methods - [x] Salted SHA256 (contact Special for this) - [x] New database format (text, not binary - works very well for merging and so on) -[x] generic database routines modules can use to create their own database -[?] IRCd capability support: don't rely on CAPAB, provide an interface to turn capabilities on specifically -[x] Socket subsystem needs some serious loving - [x] Multiple sockets - [x] Asynchronous, using select() (multiple engines? not really needed..) - [x] Callbacks, event style, see also inspircd -[x] generic way to check which modes a user has set (u->HasUmode(UMODE_OPER)) -[x] way for one module to depend on another... not like 2 MOD_HEADs and it being unpredictable which is loaded first.. - the MOD_HEAD MOD_TAIL allows for too few combinations (interface code of insp, hooks code of insp?) -[x] Last used time on AKICK/access entries -[x] Channel passwords seem to be of limited use, think of a more appropriate way to handle this -[+] General options block, ability to turn LOGCHAN on from the config file.. -[x] Docs directory cleanup -[x] Fix permanent channels support properly -[x] CS SET INHABIT to keep pseudoclient in a channel after it empties to maintain banlists and such -[x] Set forbidden channels +s -[x] SendAkill should just take a pointer to the Akill class instead of millions of fields (same for some other stuff) -[x] burn do_sjoin with fire -[x] Channel access additions - [x] Setter - [x] Last used + [ ] Add in a subcommand system, ns_set, cs_set, etc. + [ ] Threading + [ ] Mail sending needs to be threaded + [ ] process_numlist needs to die + [ ] SList needs to die + [ ] SSL + [ ] Command handling system needs to die, strtok() needs to die more + [ ] Asynchronous DNS + [ ] CIDR Akills, session exceptions, etc + [ ] Hashing system for storing just about everything needs to die + [ ] Add support for +k, +q, etc type umodes + [ ] Language system is disgusting, it must die. + [ ] Modules should also have a way to add strings programatically + [ ] Should be able to add many strings by dropping a file in a set location. + [+] Method to store listmodes (more generically than AKICK, too) for e.g. +beI and extbans, etc. + [ ] Config bailing on /os reload needs to be non fatal + [ ] AutoID needs to be able to live through /os restart, current system is just annoying. + [ ] SQL tables need to changed to have references etc + [ ] MS IGNORE. Make it take nick (accounts) or n!u@h masks. Fake success of memo send still, but send to opers? + [ ] NS IDENTIFY changes + [?] Last failed identify? Maybe more useful for sopers only, so users don't get unnecessarily worried + [?] Last successful login time/ip? perhaps both of these should be a new nick setting +[ ] NS INFO: seperate field for last seen realhost, shown to SRA only +[ ] NS SUSPEND: show suspender and reason, probably to sopers only (see CS SUSPEND) +[ ] Merge NS INFO blah ALL with NS INFO blah, if you're requesting info, you really want the info anyway. Future ------ -[ ] Asynchronous DNS -[ ] CIDR Akills, session exceptions, etc -[ ] Hashing system for storing just about everything needs to die [ ] Move a (lot) of stuff to class members as a defined interface rather than copypasta everywhere (ns_set, ns_saset!) [?] Remote identification (1.9.1? will this break stuff?) [ ] Language charset stuff, including collation (1.9.1? phoenix?) -[ ] Add support for +k, +q, etc type umodes [ ] fantasy: allow replies/notifications to fantasy commands to go to the channel via notice [?] a way for a module to queue itself (or even another module) for unloading -[ ] Language system is disgusting, it must die. - [ ] Modules should also have a way to add strings programatically - [ ] Should be able to add many strings by dropping a file in a set location. - [ ] I forsee this working via a function rather than defines, as it seems to do now: e.g. _("NS_NICK_IS_REGISTERED"). -[?] Update help to reflect the fact /msg memoserv set notify mail - works just fine ;) [ ] Useful/common "third party" modules to core distro [ ] NS AJOIN -[+] Method to store listmodes (more generically than AKICK, too) for e.g. +beI and extbans, etc. -[ ] Channel access additions - [ ] Time added - [ ] Time modified - [ ] Expiry (useful?) -[ ] NS INFO: seperate field for last seen realhost, shown to SRA only -[ ] NS SUSPEND: show suspender and reason, probably to sopers only (see CS SUSPEND) -[ ] Merge NS INFO blah ALL with NS INFO blah, if you're requesting info, you really want the info anyway. [?] Don't allow soper accounts to expire [?] Reason for CS SET RESTRICTED -[ ] NS IDENTIFY changes - [?] Last failed identify? Maybe more useful for sopers only, so users don't get unnecessarily worried - [?] Last successful login time/ip? perhaps both of these should be a new nick setting [x] AKILL/SGLINE/etc.. [x] Setter [x] Time added @@ -74,7 +51,6 @@ Future [ ] Unique IDs on each AKILL/blah so that networks may use them as ticket IDs [ ] HS ACTIVATE -ALL (rob sez this all needs reviewing) [?] NS MARK, CS MARK. Allow multiple marks. Combine into OS MARK? (AKA os_info) -[?] MS IGNORE. Make it take nick (accounts) or n!u@h masks. Fake success of memo send still, but send to opers? [?] More "friendly" date displays of some things like registration time ("November 7th 2006 (2 years, 0 months, 0 days ago)") [?] OS INJECT [?] Drop CS SET ENTRYMSG, replace with a 'news' type system? (limited to a configured number of items, default 3) diff --git a/include/configreader.h b/include/configreader.h index c6dbbefb8..7015eab99 100644 --- a/include/configreader.h +++ b/include/configreader.h @@ -453,7 +453,7 @@ class ServerConfig bool StrictPasswords; /* How many times you're allowed to give a bad password before being killed */ unsigned BadPassLimit; - /* How long before bad passwords are forgotten */ + /* How long before bad passwords are forgotten */ time_t BadPassTimeout; /* Delay between automatic database updates */ time_t UpdateTimeout; @@ -510,7 +510,7 @@ class ServerConfig char *NSGuestNickPrefix; /* Allow users to set kill immed on */ bool NSAllowKillImmed; - /* Don't allow nicks to use /ns group to regroup nicks */ + /* Don't allow nicks to use /ns group to regroup nicks */ bool NSNoGroupChange; /* Default flags for newly registered nicks */ Flags<NickCoreFlag> NSDefFlags; @@ -579,9 +579,9 @@ class ServerConfig unsigned MSMaxMemos; /* Time you must wait between sending memos */ time_t MSSendDelay; - /* Notify all of the aliases of the core the memo was sent to */ + /* Notify all of the aliases of the core the memo was sent to */ bool MSNotifyAll; - /* Who can use memos reciepts */ + /* Who can use memos reciepts */ unsigned MSMemoReceipt; /* Defai;t BotServ flags */ @@ -686,13 +686,13 @@ class ServerConfig unsigned DefSessionLimit; /* How long before exceptions expire */ time_t ExceptionExpiry; - /* How many times to kill before adding an KILL */ + /* How many times to kill before adding an KILL */ int MaxSessionKill; /* Max limit that can be used for exceptions */ unsigned MaxSessionLimit; /* How long session akills should last */ time_t SessionAutoKillExpiry; - /* Reason to use for session kills */ + /* Reason to use for session kills */ char *SessionLimitExceeded; /* Optional second reason */ char *SessionLimitDetailsLoc; @@ -776,7 +776,7 @@ class ConfigException : public CoreException * Actually no, it does nothing. Never mind. * @throws Nothing! */ - virtual ~ConfigException() throw() { }; + virtual ~ConfigException() throw() { } }; #define CONF_NO_ERROR 0x000000 diff --git a/include/services.h b/include/services.h index a38c8a207..2741e0178 100644 --- a/include/services.h +++ b/include/services.h @@ -456,7 +456,7 @@ class CoreExport HostInfo * @param creator Who created the vhost * @param time When the vhost was craated */ - void SetVhost(const std::string &ident, const std::string &host, const std::string &creator, time_t time = time(NULL)); + void SetVhost(const std::string &ident, const std::string &host, const std::string &creator, time_t created = time(NULL)); /** Remove a users vhost **/ diff --git a/src/config.c b/src/config.c index 6216a6afc..1846edfe5 100644 --- a/src/config.c +++ b/src/config.c @@ -1701,9 +1701,10 @@ int read_config(int reload) /** * Check all DEFCON dependiencies... **/ - if (Config.DefConLevel) { + if (Config.DefConLevel) + { /* Build DefCon's */ - DefCon.reserve(6); + DefCon.resize(6); DefCon[5].reset(); for (unsigned int level = 1; level < 5; ++level) { DefCon[level] = 0; diff --git a/src/core/cs_access.c b/src/core/cs_access.c index fdca01dfd..bc68c8c58 100644 --- a/src/core/cs_access.c +++ b/src/core/cs_access.c @@ -88,7 +88,7 @@ static int access_view(User *u, int index, ChannelInfo *ci, int *sent_header) if (!access || !access->in_use) return 0; - + if (!*sent_header) { notice_lang(Config.s_ChanServ, u, CHAN_ACCESS_LIST_HEADER, ci->name.c_str()); @@ -121,6 +121,7 @@ static int access_view_callback(User *u, int num, va_list args) { ChannelInfo *ci = va_arg(args, ChannelInfo *); int *sent_header = va_arg(args, int *); + if (num < 1 || num > ci->GetAccessCount()) return 0; return access_view(u, num - 1, ci, sent_header); } diff --git a/src/hostserv.c b/src/hostserv.c index 262bf30b0..53ccd57da 100644 --- a/src/hostserv.c +++ b/src/hostserv.c @@ -111,12 +111,12 @@ void hostserv(User * u, char *buf) * @param creator Who created the vhost * @param time When the vhost was craated */ -void HostInfo::SetVhost(const std::string &ident, const std::string &host, const std::string &creator, time_t time) +void HostInfo::SetVhost(const std::string &ident, const std::string &host, const std::string &creator, time_t created) { Ident = ident; Host = host; Creator = creator; - Time = time; + Time = created; } /** Remove a users vhost @@ -197,7 +197,7 @@ void do_on_id(User *u) NickAlias *na = findnick(u->nick); if (!na || !na->hostinfo.HasVhost()) return; - + if (!u->vhost || u->vhost != na->hostinfo.GetHost() || (!na->hostinfo.GetIdent().empty() && u->GetVIdent() != na->hostinfo.GetIdent())) { ircdproto->SendVhost(u, na->hostinfo.GetIdent(), na->hostinfo.GetHost()); diff --git a/src/modes.cpp b/src/modes.cpp index 4f5879846..5350fcce0 100644 --- a/src/modes.cpp +++ b/src/modes.cpp @@ -487,9 +487,6 @@ StackerInfo *ModeManager::GetInfo(void *Item) return PItem.second; } - tackerInfo *s = new StackerInfo; - StackerObjects.push_back(std::make_pair(Item, s)); - return s; } /** Build a list of mode strings to send to the IRCd from the mode stacker @@ -565,7 +562,7 @@ std::list<std::string> ModeManager::BuildModeStrings(StackerInfo *info) if (!buf.empty()) ret.push_back(buf + parambuf); - + return ret; } diff --git a/src/users.c b/src/users.c index 4ff223ee6..8614a6beb 100644 --- a/src/users.c +++ b/src/users.c @@ -243,12 +243,12 @@ User::~User() if (is_oper(this)) opcnt--; - + while (!this->chans.empty()) { this->chans.front()->chan->DeleteUser(this); } - + if (this->prev) this->prev->next = this->next; else @@ -460,7 +460,7 @@ void User::Logout() { if (!this->nc) return; - + std::list<User *>::iterator it = std::find(this->nc->Users.begin(), this->nc->Users.end(), this); if (it != this->nc->Users.end()) { @@ -492,7 +492,7 @@ const bool User::IsIdentified(bool CheckNick) const { return true; } - + return false; } @@ -955,7 +955,7 @@ User *do_nick(const char *source, const char *nick, const char *username, const { const char *logrealname = normalizeBuffer(user->realname); Alog() << "LOGUSERS: " << user->nick << " (" << user->GetIdent() << "@" << user->host - << (ircd->vhost ? " => " : "") << (ircd->vhost ? user->GetDisplayedHost() : "") << ") (" + << (ircd->vhost ? " => " : "") << (ircd->vhost ? user->GetDisplayedHost() : "") << ") (" << logrealname << ") " << "changed nick to " << nick << " (" << user->server->name << ")."; if (logrealname) delete [] logrealname; @@ -1082,7 +1082,7 @@ void do_kill(const std::string &nick, const std::string &msg) return; } Alog(LOG_DEBUG) << nick << " killed"; - if ((na = findnick(user->nick)) && !na->HasFlag(NS_FORBIDDEN) && !na->nc->HasFlag(NI_SUSPENDED) && (user->IsRecognized() || user->IsIdentified(true))) + if ((na = findnick(user->nick)) && !na->HasFlag(NS_FORBIDDEN) && !na->nc->HasFlag(NI_SUSPENDED) && (user->IsRecognized() || user->IsIdentified(true))) { na->last_seen = time(NULL); if (na->last_quit) @@ -1267,7 +1267,7 @@ void UserSetInternalModes(User *user, int ac, const char **av) Alog(LOG_DEBUG) << "Changing user modes for " << user->nick << " to " << merge_args(ac, av); - for (; *modes; *modes++) + for (; *modes; modes++) { UserMode *um; diff --git a/version.log b/version.log index 63d59f885..9b131cefa 100644 --- a/version.log +++ b/version.log @@ -7,8 +7,8 @@ VERSION_MAJOR="1" VERSION_MINOR="9" -VERSION_PATCH="2" -VERSION_EXTRA="-eats-children" +VERSION_PATCH="3" +VERSION_EXTRA="-tastes-good-on-toast" VERSION_BUILD="0" |