2354 Commits

Author SHA1 Message Date
Peter Powell
226a95aab0 Add method for writing server notices.
This allows us to send a server notice to a user without worrying
about whether they are registered or not.

If a user receives a server notice and they are not registered
then the nickname field will contain an asterisk instead of their
nick name.
2013-05-14 23:30:12 +01:00
Peter Powell
b89aa87280 Clean up cross-platform compatibility.
- Move compatibility macros to a new header file.
- Sort system include files in alphabetical order.
- Clean up signal handling (thanks to Adam).
2013-05-07 05:00:33 +02:00
attilamolnar
8790551dc1 Merge insp20 2013-04-28 00:32:14 +02:00
Peter Powell
f2566ff550 Move <performance:nouserdns> to <connect:nouserdns>. 2013-04-27 05:59:54 +01:00
Adam
8428bbb387 Modularize DNS
The DNS modules are temporarily in commands/ so they're loaded automatically

Thanks to Attila for helping with much of this.
2013-04-26 16:59:29 -05:00
attilamolnar
2bb64c5dcf Move SocketEngine::IgnoreError() code into socketengine.h and add test for EWOULDBLOCK 2013-04-24 19:54:58 +02:00
attilamolnar
1638ee6193 Timer changes and TimerManager enhancements
Timer::Tick() now has a bool return value: if false is returned the timer is deleted using operator delete, otherwise, if it's a repeating timer then it's rescheduled (readded)
Timers are removed from the TimerManager automatically at destruction

Timers are now stored in a multimap instead of a sorted vector
2013-04-21 18:00:09 +02:00
Peter Powell
0d3a6719b8 Fix building with libc++.
- Purged std::tr1::strlower (was never used).
- Moved std::tr1::insensitive to irc::insensitive.
- Added TR1NS macro to point to the correct C++ TR1 namespace.
2013-04-19 01:34:07 +01:00
attilamolnar
326852f7dd Fix Windows build 2013-04-17 22:13:26 +02:00
Adam
47332d6e9b Fix m_ssl_gnutls and perhaps some other things on Windows by recognizing WSAEWOULDBLOCK 2013-04-16 18:19:42 -05:00
attilamolnar
895554aebc Use std::string internally in UIDGenerator, move UUID_LENGTH into the class as a constant 2013-04-14 18:35:41 +02:00
attilamolnar
48f7fa6b11 Extract UID/SID generation logic into a new class: UIDGenerator 2013-04-14 18:20:02 +02:00
attilamolnar
f8127cf8c5 Remove const char* versions of InspIRCd::FindNick()/FindNickOnly()/FindUUID()/FindChan() 2013-04-13 17:43:37 +02:00
attilamolnar
b98acac5c9 Channel::JoinUser() and Channel::ForceChan() changes
Convert static Channel::ForceChan() to non-static Channel::ForceJoin() that joins a user to a channel, no permission checks

The (static) Channel::JoinUser() now has a LocalUser parameter, and no longer have TS and bursting parameters. If the channel doesn't exist, it is created using current time as TS
2013-04-13 16:05:54 +02:00
attilamolnar
988d821807 OnUserPreJoin is a local-only hook, change User* parameter to LocalUser* 2013-04-13 15:34:12 +02:00
attilamolnar
d71b6a8b27 Remove the deprecated invite API 2013-04-13 15:34:11 +02:00
Peter Powell
11cafc12d5 Tidy up source files:
- Use #pragma once instead of include guards.
- Move header files in src/modules to include/modules.
- Fixed various spacing issues.
2013-04-12 17:03:05 +01:00
Peter Powell
645f7e18c6 Add LOG_ prefix to the log level enum values. 2013-04-12 02:21:19 +01:00
Peter Powell
5c29c53f65 Convert ISUPPORT to use a map instead of a string. 2013-04-11 23:08:03 +01:00
attilamolnar
295b3e7ba1 Fix clang warning about IsOper() 2013-04-11 21:58:23 +02:00
attilamolnar
01ea7ce9c3 BanCache: Move expiration code into a function, call it from RemoveEntries() 2013-04-10 19:27:24 +02:00
attilamolnar
2b1328c3f4 BanCache: Remove BanCacheManager::RehashCache()
The function was never called
2013-04-10 19:27:24 +02:00
attilamolnar
05ea981523 BanCache: Simplify BanCacheManager::RemoveEntries() 2013-04-10 19:27:24 +02:00
attilamolnar
a0fdf5fcd5 BanCache: Remove BanCacheHit::IP field, and BanCacheManager::RemoveHit()
The IP field was only used in RemoveHit(), RemoveHit() was only called from GetHit()
2013-04-10 19:27:24 +02:00
attilamolnar
c5d1a7843e BanCache: Don't repeat ourselves, one BanCacheManager::AddHit() and one BanCacheHit constructor is enough 2013-04-10 19:27:23 +02:00
attilamolnar
ca0083cba9 Replace IS_AWAY() and IS_OPER() macros with User::IsAway() and User::IsOper() 2013-04-10 17:28:08 +02:00
attilamolnar
99461ac66d Fix ListModeBase on Windows 2013-04-09 21:41:18 +02:00
attilamolnar
01b71ef43f Move most whois related code from the core into cmd_whois 2013-04-09 18:36:49 +02:00
attilamolnar
8c4dfd8add XLine: Provide a default implementation for DisplayExpiry() 2013-04-09 18:30:50 +02:00
attilamolnar
98beba078b ListModeBase: Cache max items per channel 2013-04-08 23:13:25 +02:00
attilamolnar
9de86c34d4 ListModeBase: Minor changes to original u_listmode code
- Add constructors to ListItem, ListLimit
- Rename fields in ListItem
- Store time as time_t instead of string
- Store limits in a vector instead of a list
- Don't deallocate the list when it becomes empty
2013-04-08 23:13:25 +02:00
attilamolnar
ebe5b201aa Migrate u_listmode.h into the core, change +b to use it 2013-04-08 23:13:24 +02:00
attilamolnar
0ce252f05c Add builtin modes using AddService() 2013-04-08 23:13:24 +02:00
attilamolnar
1bf6cf727d Unite include/modes/*.h into include/builtinmodes.h 2013-04-08 23:13:24 +02:00
attilamolnar
9eeae94195 Allow dynamic references to reference ServiceProviders, introduce ModeReference
Mode handlers can be referenced using mode/<modename>
2013-04-08 23:13:24 +02:00
attilamolnar
927937d610 Rework dynamic_reference management, introduce dynamic_reference_nocheck
New dynamic references are now resolved at construction and all of them are re-resolved when a relevant service is added or removed; resolution is no longer done in operator->

dynamic_reference_nocheck is a variant of dynamic_reference that does not check for value being null in operator-> / operator*
dynamic_reference still throws an exception when used in this case

Both kinds of dynamic references support .check(): an exception is thrown if this is called when value is null
2013-04-08 23:13:24 +02:00
attilamolnar
9fc218c005 Remove OnAddBan and OnDelBan hooks 2013-04-08 21:55:53 +02:00
Peter Powell
2ae42bbb1f Default to the XML config format. 2013-04-06 11:47:56 +01:00
attilamolnar
0fa365373e Don't attempt to unload or reload modules that are waiting to be unloaded 2013-04-05 18:23:44 +02:00
Peter Powell
362f3009ac Merge inspircd_{config,version}.h into a single header file. 2013-04-05 16:39:40 +01:00
attilamolnar
bb3aa2fb37 Stop recreating hashmaps every hour, move garbage collection code related to local users to UserManager 2013-04-04 19:23:16 +02:00
attilamolnar
f86f450701 Move whowas settings into cmd_whowas from ConfigReader 2013-04-04 19:05:20 +02:00
attilamolnar
8c08130e19 Make cmd_whowas act like a module, remove special handling 2013-04-04 19:05:20 +02:00
attilamolnar
886f1ba488 Convert InspIRCd::Duration() to be static 2013-04-03 15:54:28 +02:00
attilamolnar
26e7bb0b9a Whitespace and empty destructor removal, minor coding style changes 2013-04-01 21:56:13 +02:00
Attila Molnar
66b90807bb Merge pull request #452 from SaberUK/master+nuke-hashmap
Purge the deprecated hash_map from existance.
2013-04-01 09:50:50 -07:00
attilamolnar
80e88c163d Move member variables from User to LocalUser
- idle_lastmsg
- dns_done
- quitting_sendq
- exempt
- lastping
2013-04-01 17:05:12 +02:00
attilamolnar
713416ddfc Change IsNickHandler()/IsIdentHandler()/IsChannelHandler() to use C++ strings as arguments instead of C strings 2013-04-01 16:20:35 +02:00
attilamolnar
6a080dfd91 Convert IsSID() to a static member function, modules shouldn't override it 2013-04-01 16:15:19 +02:00
attilamolnar
de9cf90b6b Remove more deprecated code
- ConfigReader
- FloodQuitUserHandler
- IsValidModuleCommand
- CallCommandHandler
- DoCleanup from u_listmode.h
2013-04-01 16:10:45 +02:00