1
0
mirror of https://github.com/anope/anope.git synced 2026-06-14 07:24:46 +02:00

Compare commits

..

306 Commits

Author SHA1 Message Date
Adam a1607f41b6 Add travis config exempting 1.8 2014-04-01 23:33:14 -04:00
Adam 10901dd05b Anope 1.8.9 Release 2014-03-03 00:41:39 -05:00
Adam 01177212bd Update NSIS scripts for Anope 1.8.9 2014-03-03 00:41:07 -05:00
Robby- 64f83b3ccf Bump and update version.log 2014-02-10 21:35:04 +01:00
Robby- 172325ee97 listchans: Fix typo: nickname -> channel 2014-02-10 07:50:53 +01:00
Adam 969aacbf78 Update copyright to 2014. This was done with:
find include/ src/ lang/ docs/ *.* Config -exec sed -i 's/-20.. Anope Team/-2014 Anope Team/i' {} \;
2014-01-01 20:51:08 -05:00
Adam 304e6eaabe Bump version.log and Changes 2013-12-09 20:59:18 -05:00
Adam 564b8b8d9d Merge pull request #30 from trystanscott/patch-1
Fix undefined symbol error on Solaris11
2013-12-09 17:57:52 -08:00
trystanscott 309807c67f Fix undefined symbol error on Solaris11 2013-11-29 12:21:10 -07:00
Adam 5fd1485938 Internally process bounced channel modes from a deopped user.
Even though we never process the modes from the deopped user,
the bounced modes can't be trusted.
2013-09-29 11:42:22 -04:00
Adam 7a741b467c Add padding to struct memo for non mysql builds to keep abi compat with mysql builds 2013-09-18 20:01:08 -04:00
Adam d24ae1f961 Fix kick reason in cs_suspend and cs_forbid if no reason is given 2013-08-16 14:51:58 -04:00
Adam eab5abb351 hs_request: Improve logging of new vhost requests 2013-08-16 14:21:58 -04:00
Adam f7b1b1907c Properly jupe servers on inspircd by using RSQUIT, waiting for the corresponding SQUIT, and then introducing the new server 2013-07-26 12:35:55 -04:00
Adam a563c8fb2f Fix dumb modules 2013-07-25 20:31:51 -04:00
Adam def6a6deee CSMaxReg cant be reloaded, so this is unnecessary 2013-07-25 20:03:06 -04:00
Adam 1a3f890613 Update version.log for the last two commits 2013-07-25 19:52:27 -04:00
mokkori d2d89ac412 Memory: Properly initialize and free new module languages.
Memory: Properly free strings in module config directive lookups.

Memory: Do not leak module version and author in rare situations.

Memory: Memory leak when deleting a module callback.

Memory: Memory leaks with module messages.

Memory: Memory leaks with module commands.

Memory: Memory leaks with module event handlers.

Memory: Memory leaks with module event hooks.

Memory: Every module config entry of type string is leaked on config reload.

Memory: Leak services root list, ulines list, host setters list, modules autoload list, modules delayed autoload list, hostserv/memoserv/helpserv/botserv/operserv/chanserv/nickserv core modules lists on config reload.

Memory: Leaks with channel bans/invites/exceptions.

Memory: Leak when updating already existing ignore.

Memory: Invalid pointer read in slists.

Memory: Leak when using /cs appendtopic.

Memory: Leak on (currently impossible) config reload.

Memory: Syscall param write(buf) points to uninitialised byte(s) in save_ns_dbase().

Memory: Leak if PreNickServDB is set and NSEmailReg is not.

Removing a command no longer calls free() on help_param*, reversed previous changes
Changes to CSMaxReg, MSMaxMemos and NewsCount are now properly reflected in help notices after config reload
Small adjustments

Fixed copy&paste mistake

Fix findCommand() searching in the wrong command tables
2013-07-25 19:42:18 -04:00
mokkori e090eaea65 Bug: Remove server from internal list if it exists on /os jupe on Unreal. Not doing so leads to duplicated entries which cause side-effects such as sending a global to the same server more than once. 2013-07-25 19:42:10 -04:00
Adam 1dbd7b406f Fix fd leak in mail.c with ForkForMail enabled 2013-07-07 05:33:16 -04:00
DukePyrolator 27dde3266c updated Hybrid protocol module to support vhosts 2013-06-21 07:42:09 +02:00
Viper f1c3f0d820 Bug #1527 - Fixed modules being loaded regardless of the load abort signal returned by a modules AnopeInit function. (Introduced in commit. e0c3069c) 2013-06-05 17:28:46 +02:00
Viper 0a78656804 Fixed messy indentation using a combination of spaces and tabs. 2013-06-05 16:54:02 +02:00
Michael Wobst e2213e3cd2 Update Hybrid protocol module for Hybrid 8.1 2013-05-25 15:41:48 -04:00
Adam ec9931288b Allow loading nicks with no core... just in case 2013-05-25 15:39:40 -04:00
Adam 71ec1a93dd Bump for 1.8.9-git 2013-03-03 01:57:16 -05:00
Adam 245a25877f Anope 1.8.8 Release 2013-03-03 00:55:11 -05:00
Adam ae071cef75 Update language instructions in README to use git instead of svn. Add
japanese language file to Windows makefile and installer.
2013-03-03 00:55:11 -05:00
Adam 57b31d43eb Update NSIS scripts for Anope 1.8.8 2013-03-03 00:55:11 -05:00
Charles Kingsley 43152007c6 Update COPYING 2013-02-21 07:22:08 +00:00
Charles Kingsley 91ff17d10f Update COPYING 2013-02-20 21:50:28 +00:00
Adam 357cd44bea Also mark bots that were previously -o on UnrealIRCd as +H to hide them from the oper count in /lusers and /stats, which is closer to the old behavior. 2013-02-17 15:10:58 -05:00
DukePyrolator 46271fc348 updated Changes, version.log and .gitignore 2013-02-17 13:31:31 +01:00
Jens Voß d8ca7c63bf Merge pull request #10 from l/translation_ja_1.8
Japanese Translation for 1.8 branch
2013-02-17 04:20:13 -08:00
Adam f7bac0839b Do not allow invalid nicknames to be forbidden in ns_forbid 2013-02-17 14:08:34 +09:00
AYANOKOUZI, Ryuunosuke 862b101935 add japanese translation 2013-02-17 14:08:20 +09:00
Adam 20d40fdc75 Do not allow invalid nicknames to be forbidden in ns_forbid 2013-02-13 13:14:22 -05:00
Adam 9650a3ffa5 Bug #1474 - Fixed setting user modes on BotServ bots on Unreal3.2.10
This was caused by Unreal's revision 58c35ea52a1f
2013-01-29 05:12:52 -05:00
Adam 14a957f8a0 Update copyright to 2013. This was done with:
find include/ src/ lang/ docs/ *.* Config -exec sed -i 's/-2012 Anope Team/-2013 Anope Team/i' {} \;
2013-01-09 04:23:25 -05:00
Viper 8fb31b6441 Updated Changes and version.log to include Hybrid support changes. 2012-12-23 23:46:32 +01:00
jan Milants 969258352a Merge pull request #3 from Faw-kes/1.8
Added Hybrid 8.0 support. (This replaces the experimental Hybrid 7 support.)
2012-12-23 14:34:54 -08:00
Faw-kes a6b09c1d9f Updated README 2012-12-23 18:29:28 +01:00
Faw-kes a9021f6284 Adding Hybrid 8.0 support since Hybrid 8.0 has some services support now.
Removed experimental Hybrid 7.x support, because Hybrid 7 is now deprecated.
Updated example.conf file.

Protocol Module provided by the Hybrid Development Team.
Special thanks to Michael.
2012-12-23 17:13:37 +01:00
DukePyrolator fa33bb2842 Added french language support to some modules (patch provided by Coolsmile) 2012-12-17 21:09:26 +01:00
DukePyrolator cb9ab016f5 updated the Polish language file 2012-12-16 09:43:45 +01:00
DukePyrolator 83e42f2adc updated .gitignore 2012-12-16 09:41:52 +01:00
Adam e0c3069c5f Cleanup many compile warnings from make and make strict 2012-10-31 22:16:15 -04:00
Adam 3e6d838285 Use base 10 for strtol() in the config parser to prevent numbers beginning with 0 from confusing it 2012-10-31 14:31:43 -04:00
Adam 64dd3c6655 Update Windows install script for VS 2012, update Windows README, and fixed VS 2012 build 2012-10-27 07:12:39 -04:00
Adam 9486cf9ecb Fix typo in NICK_SASET_MSG_SYNTAX 2012-10-15 03:53:11 -04:00
Adam 0106d0b6bd Fixed some warnings caused from the last commit 2012-09-22 16:23:19 -04:00
Adam 3779ed916a Made all module functions static to fix OSX's linker from linking
modules with similar function names to each other which causes
complete and total chaos.
2012-09-21 21:39:32 -04:00
Adam 3f05a42515 Do not apply akills or sxlines that are pending expiration 2012-08-07 22:16:32 -04:00
Adam d0e5a18848 Fixed crash when InspIRCd sends user MODE changes
for users that don't "exist" (probably us)
2012-07-30 02:25:46 -04:00
Adam 670e73d69d Fixed crash with cs_enforce and registered empty permanent channels 2012-07-14 02:17:23 -04:00
Adam 07fffb0b90 Bug #1380 - Do not allow akill masks to end in @.
This can be used to cause the IRCd to SQUIT us by
adding invalid akills. The only known affected is
Charybdis.

Also fixed a crash caused by receiving a SQUIT for ourselves.
2012-02-25 15:10:52 -05:00
DukePyrolator 1d3ca36768 Fixed several grammar errors in docs/ (patch provided by Simba) 2012-02-22 07:41:58 +01:00
Adam 8559c57cd6 Updated Copyright to 2012 2012-01-02 21:10:40 -05:00
Adam 792790a4d4 Bug #1369 - Fixed os_svsnick to allow changing the case of a users' nick 2011-12-31 02:38:17 -05:00
Adam 381d95e6da Bump for 1.8.8-git 2011-12-23 14:08:04 -05:00
Adam 74556b77c0 Anope 1.8.7 Release 2011-12-23 14:08:04 -05:00
Adam 91527cdcef Bump installer scripts for 1.8.7 release 2011-12-23 14:08:04 -05:00
Adam b9aa534731 Update Windows installer script for MySQL 5.5 2011-12-23 14:07:40 -05:00
Viper 658ecee817 Implemented API support for the SVSJOIN and SVSPART commands on UltimateIRCd 3. 2011-12-15 00:59:10 +01:00
DukePyrolator fb99dc43c9 Fixed some typos in the spanish language file 2011-12-08 19:05:07 +01:00
Viper 144029fd61 Fixed ignore not matching against users' real host or IP (introduced in rev. 3049). 2011-11-20 15:22:18 +01:00
Viper 2a1cd54bc7 Use vident instead of ident in combination with the vhost for botserv kick(ban)s and nickserv access list checking. 2011-11-16 16:30:45 +01:00
Viper 0dd4a98e53 Match bans against the vident/vhost instead of real ident/vhost when available. 2011-11-16 15:57:07 +01:00
Adam f1577975a9 Use _exit, not exit, to exit mail forks to prevent our atexit() functions from being called, and removing our pidfile 2011-09-03 03:49:45 -04:00
Adam fa833766a0 Made os_sxline and os_akill use a stored value to curent time to prevent the off-chance of time changing while executing the function which can mess up our globops/log messages 2011-08-23 19:29:59 -04:00
Viper 783f77d367 Added event to warn modules a nickcore gets a new display nick or is about to be dropped. (This should enable modules to more easily link their data to anopes core data.) 2011-08-22 00:25:34 +02:00
unknown dc840e9b99 Send DROP event when forbidding nicks and channels, if applicable. 2011-08-21 23:30:23 +02:00
Adam 0982becd98 Bug #1318 - #1320 - Added support for Hybrid's +S and +O channel modes, and removed support for +a 2011-08-18 17:23:14 -04:00
Adam f83096c729 Fixed loading bs_fantasy_owner on startup when using InspIRCd 2.0 2011-08-10 21:19:42 -04:00
Adam eb7c9d0a86 Bug #1287 - Fixed chan_set_correct_modes to not deop the first user from syncing servers 2011-08-09 17:57:35 -04:00
lethality 8007cc8a3a Bug #1269 - Fixed install.js for Windows 7 builds. 2011-07-28 18:22:52 +01:00
Adam 30ea6365de Fixed a potential crash in the badwords kicker, and fixed matching BW_SINGLE with BSCaseSensitive enabled 2011-07-23 05:01:44 -04:00
Adam a11155551e Bug #1273 - Fixed removing vhosts on InspIRCd when m_cloaking is unloaded 2011-05-30 19:48:14 -04:00
Charles Kingsley d45222798b Reinitialise git for post 1.8.6 development 2011-05-14 09:13:04 +01:00
Charles Kingsley edb362eace Anope 1.8.6 Release 2011-05-14 08:48:16 +01:00
Charles Kingsley 1e9f1b09f5 Clarified ForkForMail entry in Changes.conf - thanks Kyle! 2011-05-08 12:09:22 +01:00
Charles Kingsley 16439f52a5 Prepare NSIS scripts for future 1.8.6 release 2011-05-08 09:47:16 +01:00
Adam 45640c43d3 Removed atheme2anope database converter as its out of date 2011-05-07 13:08:55 -04:00
Adam 6ebbec79ea Bug #1236 - Fixed crash in enc_md5 on Mac 2011-05-02 14:18:52 -04:00
Viper 096de4fb25 Bug #1263 - Fixed /ns REGISTER not getting an "unknown cmd" reply when ns_register is not loaded & ns_maxemail is loaded.
This Bug cannot be structurally fixed, needs to be addressed by 3rd party module authors for similar situations. This implementation can serve as a template.
2011-04-28 22:16:18 +02:00
Viper 01946cb467 Added events for module loading/unloading and command creation/deletion.
Enables modules expanding on other modules to adjust hooks if needed.
- Related to bug #1263.
2011-04-28 21:00:46 +02:00
Charles Kingsley 0e0538408d Usage update for ./listchans thanks katsklaw 2011-04-10 12:30:21 +01:00
Viper 841b3f689e Fixed bug #1252 - The group display nick showing in HS req memos instead of the requesting alias.
Also cleaned up the mess in Changes...
2011-03-24 23:43:53 +01:00
Adam 0315bd31f8 Fixed make strict 2011-03-24 17:57:27 -04:00
Adam 2539f34d3c Forgot vidents 2011-03-21 03:06:43 -04:00
Adam 7eb437b9fe Added support m_services.c and m_change.c from Hybrid's contrib folder 2011-03-21 02:47:46 -04:00
lethality 0e0eb38b2a Change to users masked host instead of the real one after turning vhost off in inspircd. 2011-03-04 22:30:44 +00:00
Adam 6fca33a2ba Updated Changes 2011-03-03 19:21:58 -05:00
Adam 66e2dce646 Fixed opping our clients on ratbox when TS6 is not used. 2011-03-03 19:21:51 -05:00
Adam 06679e487e Do not show SENDPASS in NickServ and ChanServ help to users who can't use it 2011-03-01 19:27:03 -05:00
Adam 54acc25eb3 Rejoin our clients if kicked on TS6 IRCDs and made ratbox protocol module use account tracking 2011-02-23 18:52:13 -05:00
lethality a4c81c72c1 Fixed bug 1248, an error in fr.l - reported by SaKa 2011-02-22 20:40:23 +00:00
Adam 2060bacdea Fixed Mac build 2011-02-11 18:21:57 -05:00
Adam 8d1fe0a36f Merge branch '1.8' of anope.git.sf.net:/gitroot/anope/anope into 1.8 2011-02-04 22:19:01 -05:00
Adam 165c0588d4 Fixed the wiki URLs in install.js 2011-02-04 22:15:58 -05:00
DukePyrolator 7c14f76bc8 fixed a typo in the german language file 2011-01-30 01:03:51 +01:00
DukePyrolator a86e15afe9 Updated german language file 2011-01-29 14:13:08 +01:00
Adam 2b847c63e9 Fixed not introducing our clients with usermode +k on InspIRCd 2.0 2011-01-28 13:03:10 -05:00
lethality 11b91fdc67 Bug #1233 - Fixed some misuse of apostrophes - patch by binki 2011-01-21 00:20:25 +00:00
Adam 0dda705cdb Bug #1227 - Fixed 'make install' recompiling src/tools 2011-01-18 23:57:21 -05:00
Adam f4d7ae2e12 Do not allow services opers to send one person more than 32767 memos 2011-01-09 20:05:11 -05:00
Adam 826e040d41 Enable NICKIP for InspIRCd 1.2+ 2011-01-08 00:27:14 -05:00
lethality 3ef227aa88 Some more copyright/typo fixes, spotted by chaz :P 2011-01-07 21:41:49 +00:00
lethality f592417ec2 Updated Copyright to 2011 2011-01-06 02:32:32 +00:00
Adam ed13cd11ec Made the moduleGetData debug messages for level 2+ 2010-12-28 18:01:55 -05:00
Adam f8a0a645b0 Remove vhost requests from nicks that expire 2010-12-23 19:01:49 -05:00
Adam 12b0ff0593 Bug #1079 - Prevent /cs ban, akick, unban, etc, from matching against users real hostname and IPs in an attempt to prevent unauthorized users from gaining other users IPs via brute force attacks. 2010-12-23 16:59:56 -05:00
Adam 13688c595b Bug #1213 - Fixed /cs enforce #channel to say SET was enforced not (null) 2010-12-15 12:10:36 -05:00
Adam 2b7dd6c2a0 Fixed some warnings found by cppcheck 2010-12-07 17:01:58 -05:00
Adam c5fc11f5fe Fixed bug #1202 - Made Anope aware of plexus3's channel mode +z 2010-10-31 14:01:39 -04:00
Adam bf2f151c68 Fixed some improper english in the HOST_GROUP language strings 2010-10-14 16:18:20 -04:00
Adam 4c64c86ef4 Fixed a potential crash from accessing invalid memory after unbanning people when checking whether a host is akick stuck. Fixes /cs unban not reapplying stuck ban masks. 2010-10-06 16:20:50 -04:00
Adam cb975f4a6c Properly handle being unable to open the SendMailPath when forking 2010-09-29 20:10:35 -04:00
Adam 0383868a29 Fixed bug #1193 - Fixed /nickserv saset display to change the nicktracking of the users affected by it, not the user executing it 2010-09-28 18:37:14 -04:00
Adam b92711dc15 Fixed bug #1194 - Fixed /nickserv group to use nicktracking if enabled 2010-09-28 18:23:04 -04:00
Adam e990259d6d Rewrote the mail forking code to use pipes, sometimes mails wouldn't work with the old method 2010-09-28 18:08:07 -04:00
Adam 5a4de87df1 Fixed configure failing on some systems which have a partial MySQL installation 2010-09-14 19:26:45 -04:00
Adam 9a488327b2 Fixed db-merger handling some hostserv collisions 2010-09-11 16:52:08 -04:00
Charles Kingsley f302367fc4 Initialise git for 1.8-git 2010-09-11 11:16:09 +01:00
Charles Kingsley 3866b002d6 1.8.5 Release 2010-09-11 10:46:00 +01:00
Charles Kingsley fab8b8b137 Fix Windows installer nsis build scripts to clean up properly and update version.log 2010-09-11 10:29:08 +01:00
Charles Kingsley 80d0e03f64 Update Windows installer nsis build scripts for additional modules and make ready for windows build on release 2010-09-11 10:12:24 +01:00
Charles Kingsley a32ab376db Fix makefile.inc.win32 to build few modules not previously built on Windows 2010-09-11 10:07:28 +01:00
Charles Kingsley f39d94c84e Update credits 2010-09-11 09:41:13 +01:00
Viper ac338266f4 Fixed InspIRCd 1.1,1.2 and 2.0 protocol modules to oper pseudo-clients only when needed. 2010-09-10 16:32:23 +02:00
Viper 7385580ffa Fixed comments to be accepted by all compilers.. 2010-09-10 16:12:25 +02:00
Adam f4a0ee30b3 Fixed Windows build 2010-09-08 16:23:16 -04:00
Adam bd94cbc25b Merge branch '1.8' of git.sigterm.info:gitroot/anope/anope into 1.8 2010-09-07 18:41:44 -04:00
Adam 3a97d196f9 Fixed make strict build and cleaned up some warnings 2010-09-07 18:39:57 -04:00
Adam 22894e9e09 Fixed linking the test MySQL program on some systems that hate me. 2010-09-05 20:54:49 -04:00
Adam 24f3066224 Added a .gitignore 2010-09-05 20:10:42 -04:00
Adam d53c25b043 Added InspIRCd 2.0 support 2010-09-05 12:51:15 -04:00
Adam 7dfc8e8ee8 Fixed do_sjoin to properly find the server source on TS6 IRCds 2010-08-31 17:53:39 -04:00
Adam 3a9a0ef135 Fixed InspIRCd1.2 protocol module passing invalid users in the SJOIN string which made internal debug messages confusing/wrong 2010-08-25 14:27:25 -04:00
Charles Kingsley e594937c0b Change default EncModule to enc_md5 2010-08-21 09:08:55 +01:00
Viper 085976adf5 We tell everyone to use 127.0.0.1 instead of localhost so we should too.. 2010-08-18 16:07:06 +02:00
Adam a2be8c402f Kill users using our nicks when on InspIRCd 1.2
Apparently InspIRCd does not value ULines
2010-08-16 23:54:27 -04:00
Han a29845cc56 Updated german language file. 2010-08-14 18:27:46 -04:00
Adam fac3b85903 Merge branch '1.8' of ssh://git.sigterm.info/gitroot/anope/anope into 1.8
Conflicts:
	version.log
2010-08-14 12:22:29 -04:00
Adam d1b5797f5d Added a config option that allows nix users to fork when sending mail, can drastically speed up mail sending on some boxes 2010-08-14 12:21:39 -04:00
Adam f1fa7e1a5f Fixed some line endings in version.log that would make ./Config fail 2010-08-13 14:01:19 -04:00
lethality a2e9e45e37 fixed line break in my last commit :( 2010-08-12 16:32:13 +01:00
lethality ee0636ac46 Fixed some English when unreals link block is incorrect and bump version number from my last commit 2010-08-12 16:22:52 +01:00
lethality ed9ec89061 Removed /'s that showed when not using BSGentleBWReason 2010-08-12 00:27:55 +01:00
lethality b7c6f8ec7f Removed Example.confs DefSessionLimit's reference to accepting 0, it doesn't. 2010-08-10 23:13:27 +01:00
Adam 94f7962e1a Fixed bug #1180 - Fixed tracking of internal clients when they change nicks on TS6 IRCds 2010-08-05 23:18:36 -04:00
Adam 3308ab7153 Fixed bug #1178 - properly track users hosts when a user is -x and has a vhost via chghost 2010-08-03 23:09:18 -04:00
Viper 951de6b39d Accommodate for the InspIRCd 2.0 protocol being even more oversized then we previously thought.. 2010-08-04 00:44:06 +02:00
Adam 388fe38d00 Fixed a typo in the NICK_SASET_MSG_SYNTAX lang string 2010-08-02 23:23:04 -04:00
Adam d034a9c36a Log out superadmins when someone forces them to logout, and fixed crash when using /os umode +r on an unregistered user when using inspircd12 2010-07-27 23:56:26 -04:00
Adam 49064ec67d Properly handle FMODEs from InspIRCd with more than 25 arguments.. reported by Angel-SL 2010-07-25 02:37:55 -04:00
Adam a9fa7edf82 Allow clearing of access lists while in XOP 2010-07-17 17:33:35 -04:00
Viper 42dd49233c Increased command buffer size. Insp 2.0 has a bigger appetite it seems.. 2010-07-13 22:11:18 +02:00
Adam 3a422777c5 Fixed Windows build 2010-07-06 16:28:58 -04:00
Adam e42f125a85 Removed enc_encrypt_in_place, it is unnecessary and using it like it was designed breaks long passwords. 2010-07-05 15:45:28 -04:00
Adam f5a7a5d8bc Made install.js detect VS 2010 on 64bit machines 2010-07-04 15:10:06 -04:00
Adam ca7769d8b4 Fixed bug #1172: Encrypt the whole password given to nickserv and chanserv REGISTER
This prevents us from truncating peoples passwords without telling them,
which makes it so you can't identify with the same password you registered
with if your password is really long.
2010-07-03 15:17:58 -04:00
Viper e5bd79ba19 Fixed charybdis and ratbox protocol modules not (properly) translating TS6 UIDs into nicks on kills. 2010-06-24 22:33:28 +02:00
Adam 804cb9b051 Changed VERSION_EXTRA from -svn to -git 2010-06-22 10:55:31 -04:00
Adam 7582b6503f Removed all references to the SVN keyword Id 2010-06-18 18:55:41 -04:00
Adam cd9ec6fe10 Set all of the core modules versions to VERSION_STRING - SVN is now officially not used anymore 2010-06-18 18:44:52 -04:00
Adam- 8f60562dfa Fixed ./Config to correctly load the previously used settings from config.cache
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@3005 5417fbe8-f217-4b02-8779-1006273d7864
2010-06-15 17:08:33 +00:00
Adam- 3bf6cdb6ac Grab users cloaked hosts on Unreal after setting +x, fixes us never knowing cloaked hosts if the user is introduced with a vhost
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@3003 5417fbe8-f217-4b02-8779-1006273d7864
2010-06-15 17:04:10 +00:00
Adam- c01f8cad22 Never unset mod_current_module in functions that modules might call, instead save the old values and reset them
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@3000 5417fbe8-f217-4b02-8779-1006273d7864
2010-06-08 16:28:50 +00:00
phil-lavin cea53460b0 Moved EVENT_CHANGE_NICK call to after anope_cmd_nc_change() call
Added user identified check to validate_user() to prevent identified user being told to identify


git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2999 5417fbe8-f217-4b02-8779-1006273d7864
2010-06-04 09:57:54 +00:00
Adam- d8642972d9 Fixed db-mergers handling of bot collisions
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2993 5417fbe8-f217-4b02-8779-1006273d7864
2010-06-01 19:22:41 +00:00
Adam- 9b26a0dc09 Fixed a crash on shutdown when running Anope on Mac
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2991 5417fbe8-f217-4b02-8779-1006273d7864
2010-05-30 03:01:33 +00:00
Adam- 15c66af4e5 Backport of r2980 - Fixed bug #1167 - Fixed SQUITing juped servers on InspIRCd 1.2
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2981 5417fbe8-f217-4b02-8779-1006273d7864
2010-05-23 20:50:06 +00:00
phil-lavin 6661c3ebdb Added param to EVENT_CHANGE_NICK for old nickname
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2978 5417fbe8-f217-4b02-8779-1006273d7864
2010-05-23 01:25:54 +00:00
phil-lavin 0c9117abce Fixed terrible English from last commit
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2977 5417fbe8-f217-4b02-8779-1006273d7864
2010-05-23 00:56:45 +00:00
phil-lavin ff17a9af7e Added an internal events called when nick is ghosted and when nick is recovered
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2976 5417fbe8-f217-4b02-8779-1006273d7864
2010-05-23 00:47:37 +00:00
phil-lavin 1b636ed4ff Extension to r2952 adding logging for BS BOT
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2969 5417fbe8-f217-4b02-8779-1006273d7864
2010-05-19 21:16:20 +00:00
phil-lavin 61b6c92ee2 Fixed English and grammar in e-mail messages
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2966 5417fbe8-f217-4b02-8779-1006273d7864
2010-05-18 21:17:45 +00:00
Adam- e604e04847 Fixed version.log
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2963 5417fbe8-f217-4b02-8779-1006273d7864
2010-05-15 19:30:52 +00:00
phil-lavin 461bc4c87e Fixed bug with r2952 (%s was used rather than %d)
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2962 5417fbe8-f217-4b02-8779-1006273d7864
2010-05-15 16:55:58 +00:00
phil-lavin d049bf0d8f Added a tonne of alog()s to log all stateful commands
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2952 5417fbe8-f217-4b02-8779-1006273d7864
2010-05-12 18:13:34 +00:00
Adam- a53cbd82cc Added support for building with Microsoft Visual Studio 2010 and removed support for Microsoft Visual Studio 98
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2950 5417fbe8-f217-4b02-8779-1006273d7864
2010-05-12 01:40:43 +00:00
Adam- 571ff82f69 Fixed a memory leak and use of uninitialized values in unreal_jointhrottle_mode_check. Note we don't even use this function currently.
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2947 5417fbe8-f217-4b02-8779-1006273d7864
2010-05-10 19:20:31 +00:00
Adam- 7ddc6d8be5 Fixed bug #1161 - Fixed setting expiry times on akills in the atheme2anope database converter
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2946 5417fbe8-f217-4b02-8779-1006273d7864
2010-05-10 17:36:27 +00:00
Adam- dd258b36d2 Added an Atheme to Anope database converter
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2943 5417fbe8-f217-4b02-8779-1006273d7864
2010-05-09 17:21:19 +00:00
Adam- 8e59e58987 Fixed unloading modules commands, fixes a crash introduced by the last commit
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2935 5417fbe8-f217-4b02-8779-1006273d7864
2010-05-06 00:56:29 +00:00
Adam- de902c6db3 Always set mod_current_module and mod_current_module_name, fixes a few of the functions in modules.c relying on it.
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2931 5417fbe8-f217-4b02-8779-1006273d7864
2010-05-05 20:09:28 +00:00
Adam- e02967bd4a Print an error if the TS6 SID isn't set/is set incorrectly, most people don't know how to work logfiles
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2930 5417fbe8-f217-4b02-8779-1006273d7864
2010-05-05 16:52:39 +00:00
Adam- 92bf0c800f Added an internal event called when a nick is requested
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2929 5417fbe8-f217-4b02-8779-1006273d7864
2010-05-05 14:17:54 +00:00
Adam- 40c9226e3a Fixed deleting nick requests to only delete the requested nick
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2918 5417fbe8-f217-4b02-8779-1006273d7864
2010-04-29 00:23:06 +00:00
Adam- e897082f69 Removed some unnecessary redundant code in cs_clear
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2903 5417fbe8-f217-4b02-8779-1006273d7864
2010-04-21 22:49:14 +00:00
Adam- b67dada56f Fixed /ns info to show when a nick expires to services opers, not only admins
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2900 5417fbe8-f217-4b02-8779-1006273d7864
2010-04-20 02:11:46 +00:00
DukePyrolator c66f28ed61 fixed missing SID on FJOIN in inspircd12 protocol module
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2899 5417fbe8-f217-4b02-8779-1006273d7864
2010-04-17 16:17:20 +00:00
Adam- 87e96d6f52 Fixed bug #1153 - Always save channel topics internally, even if the new topic matches the last saved topic. Also only call the topic updated event once we are uplinked, as then the topic really is being changed by someone.
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2896 5417fbe8-f217-4b02-8779-1006273d7864
2010-04-15 17:36:23 +00:00
Adam- f590c52321 Fixed bug #1154 - Fixed a potential crash in cs_clear ops
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2895 5417fbe8-f217-4b02-8779-1006273d7864
2010-04-15 14:26:17 +00:00
Adam- 911cc43d9c Check if a command routine exists before all command calls
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2894 5417fbe8-f217-4b02-8779-1006273d7864
2010-04-15 14:25:35 +00:00
Adam- 6ba8f8b264 Closed a forgotten file pointer in os_info that would make Windows backups of os_info.db fail
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2893 5417fbe8-f217-4b02-8779-1006273d7864
2010-04-15 04:32:11 +00:00
sjaz 94f465832f Version bumps for 1.8-SVN
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2861 5417fbe8-f217-4b02-8779-1006273d7864
2010-04-04 09:32:32 +00:00
sjaz 9ab97ae21a Bump versions for 1.8.4 release.
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2859 5417fbe8-f217-4b02-8779-1006273d7864
2010-04-04 07:35:51 +00:00
Adam- 246a2c664b Updated Changes
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2858 5417fbe8-f217-4b02-8779-1006273d7864
2010-04-04 07:28:27 +00:00
sjaz ad4180e2d6 Update version.log from my commit r2854.
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2856 5417fbe8-f217-4b02-8779-1006273d7864
2010-04-03 20:27:59 +00:00
Adam- 01906d0b74 Don't save databases when rehashed or shutdown from anoperc when in readonly mode
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2855 5417fbe8-f217-4b02-8779-1006273d7864
2010-04-03 20:25:57 +00:00
sjaz 005d3f9558 Small change to the win32 makefile to use Config.bat rather than install.js after spotless.
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2854 5417fbe8-f217-4b02-8779-1006273d7864
2010-04-03 20:23:18 +00:00
Adam- a895077b54 Moved an entry in the Changelog I had oringinally put in the wrong place
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2853 5417fbe8-f217-4b02-8779-1006273d7864
2010-04-01 20:02:19 +00:00
Adam- 7e10fca23b Fix Windows build
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2851 5417fbe8-f217-4b02-8779-1006273d7864
2010-03-31 07:26:16 +00:00
Adam- b2d258328a Fixed catserv module demo to work correctly on TS6 IRCDs
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2843 5417fbe8-f217-4b02-8779-1006273d7864
2010-03-30 08:55:34 +00:00
Adam- ef5c945e0b Fixed bug #1149 - Number memos in MySQL correctly
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2842 5417fbe8-f217-4b02-8779-1006273d7864
2010-03-29 21:01:52 +00:00
Adam- 1e0bfbd15a Fixed bugs #1146 and #1147 - Fixed check_modes to only apply defcon settings when defcon is actually on
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2841 5417fbe8-f217-4b02-8779-1006273d7864
2010-03-29 21:01:48 +00:00
Adam- cb73ab9d23 Fixed bug #1144 - replaced some strcpy calls with strscpy to be safer
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2840 5417fbe8-f217-4b02-8779-1006273d7864
2010-03-29 21:01:43 +00:00
Adam- ac90a6935a Log deleting and clearing XOP access lists
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2837 5417fbe8-f217-4b02-8779-1006273d7864
2010-03-24 21:24:22 +00:00
Adam- 766fe138e4 Document usage of the -protocoldebug option in services help
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2836 5417fbe8-f217-4b02-8779-1006273d7864
2010-03-24 01:31:55 +00:00
Adam- dafccc1821 Removed some unused functions from extern.h and changed docs/IRCD to not tell lies
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2834 5417fbe8-f217-4b02-8779-1006273d7864
2010-03-24 01:17:34 +00:00
Adam- ace25983a4 Fixed bug #1143 - Fixed a blind sprintf in sighandler that would write an error message to unallocated memory
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2821 5417fbe8-f217-4b02-8779-1006273d7864
2010-03-19 01:40:01 +00:00
Adam- bb7b8e27ee Fixed a bug introduced in r2667 that could cause some access entries to not convert to XOP correctly
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2819 5417fbe8-f217-4b02-8779-1006273d7864
2010-03-17 21:28:22 +00:00
Adam- 72fa53c20e Fixed bug #1141, reordered some access checks in cs_kick and cs_modes to hide who is on the channel
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2818 5417fbe8-f217-4b02-8779-1006273d7864
2010-03-16 20:21:54 +00:00
Adam- eb0c255fad Fixed os_info to display syntax errors if you entered no text, found by Cronus
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2816 5417fbe8-f217-4b02-8779-1006273d7864
2010-03-16 05:52:05 +00:00
Adam- 01994c1ba1 Fixed os_info to backup its databases properly with the now-working ModuleDatabaseBackup function
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2815 5417fbe8-f217-4b02-8779-1006273d7864
2010-03-16 05:52:00 +00:00
Adam- ec7bc8dd41 Fixed the second part of bug #1138
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2813 5417fbe8-f217-4b02-8779-1006273d7864
2010-03-13 21:00:59 +00:00
Adam- 6ee50f852e Fixed bug #1140 - Made ModuleDatabaseBackup() not fail when multiple modules want to back up their databases
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2811 5417fbe8-f217-4b02-8779-1006273d7864
2010-03-13 20:46:28 +00:00
Adam- 6cd3b56805 Fixed bug #1139 - Delete the correct nicks from hs_request database when they are dropped
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2810 5417fbe8-f217-4b02-8779-1006273d7864
2010-03-13 20:46:24 +00:00
Adam- 27ad395a56 Fixed bug #1138 - Fix maximum hostname length checking in hs_request
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2809 5417fbe8-f217-4b02-8779-1006273d7864
2010-03-13 20:46:21 +00:00
Adam- c4247b71b2 Fixed check_ban to apply bans even if TTB was changed after the user has been kicked
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2808 5417fbe8-f217-4b02-8779-1006273d7864
2010-03-13 20:46:16 +00:00
Adam- 5a51984db1 Added support for tracking permanent channels
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2807 5417fbe8-f217-4b02-8779-1006273d7864
2010-03-11 22:59:43 +00:00
Adam- b75abf9ba3 Fixed some memory leaks in ns_register
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2801 5417fbe8-f217-4b02-8779-1006273d7864
2010-03-04 04:28:47 +00:00
Adam- f39c428ac5 Fixed a bug that would cause users access in channels to seemingly disappear. Introduced in release 1.8.3, revision 2667
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2800 5417fbe8-f217-4b02-8779-1006273d7864
2010-03-02 04:25:41 +00:00
Adam- 60f0b2ff87 Documented /nickserv list's ability to accept ranges
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2792 5417fbe8-f217-4b02-8779-1006273d7864
2010-02-19 03:45:34 +00:00
Adam- 6242a60134 Don't show unconfirmed nicks when services admins list suspended nicks
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2791 5417fbe8-f217-4b02-8779-1006273d7864
2010-02-18 18:13:53 +00:00
Adam- dd198b89c0 Fixed it so halfops can not be marked as forcibly deopped, fixes us sometimes undoing all modes by some halfops
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2787 5417fbe8-f217-4b02-8779-1006273d7864
2010-02-09 05:27:08 +00:00
sjaz 2cfcf3c512 Changes docs bump to 1.8 SVN and credit for tr.l added to docs/README (Sorry I missed this for release).
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2774 5417fbe8-f217-4b02-8779-1006273d7864
2010-01-19 08:59:13 +00:00
sjaz 29bd5a7daa Bump files to 1.8.3 for release
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2771 5417fbe8-f217-4b02-8779-1006273d7864
2010-01-19 07:58:13 +00:00
sjaz 975b0cd374 Update docs/INSTALL with some more upto date information
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2770 5417fbe8-f217-4b02-8779-1006273d7864
2010-01-19 07:52:44 +00:00
Adam- a0ebea2049 Updated docs/IRCD to be up to date
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2769 5417fbe8-f217-4b02-8779-1006273d7864
2010-01-18 22:14:41 +00:00
sjaz cc8e88aec8 Another attempt at making the makefile understand
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2768 5417fbe8-f217-4b02-8779-1006273d7864
2010-01-17 20:15:48 +00:00
sjaz 11d47efc7a Fix small omission in src/tools/Makefile and update version.log
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2767 5417fbe8-f217-4b02-8779-1006273d7864
2010-01-17 15:09:43 +00:00
sjaz c7154edb4d Small documentation update.
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2766 5417fbe8-f217-4b02-8779-1006273d7864
2010-01-17 15:03:02 +00:00
Adam- 5559f91fae Fixed bug #1135 - Don't allow BotServ to kick and ban ULined clients
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2761 5417fbe8-f217-4b02-8779-1006273d7864
2010-01-15 19:29:39 +00:00
pimpmylinux 3dd71f207d updated copyright info for 2010
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2752 5417fbe8-f217-4b02-8779-1006273d7864
2010-01-11 19:22:52 +00:00
pimpmylinux 7776fb8548 Some language fixes closing issue #1124 and #1122, fixed wrong language string invoked in bot add closing issue #1118
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2750 5417fbe8-f217-4b02-8779-1006273d7864
2010-01-11 18:51:50 +00:00
Adam- 7954542a86 Fixed a reply in bs_bot to be correct when you use an invalid ident, reported by Phil
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2747 5417fbe8-f217-4b02-8779-1006273d7864
2010-01-11 14:25:56 +00:00
Adam- a1c45be517 Fix a crash introduced in r2679 cause by is_on_access messing up the users host buffers
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2743 5417fbe8-f217-4b02-8779-1006273d7864
2010-01-09 20:49:21 +00:00
Adam- bab5a37970 Added two missing language strings to de.l and ru.l
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2735 5417fbe8-f217-4b02-8779-1006273d7864
2010-01-06 19:56:17 +00:00
Adam- da1162f770 Made elist_match_user also check against the users cloaked host
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2734 5417fbe8-f217-4b02-8779-1006273d7864
2010-01-06 19:56:06 +00:00
Adam- abc8b4aa4e Mark users as unrecognized on Inspircd 1.2 if no/invalid metadata is recieved for them before the next uid/eob
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2731 5417fbe8-f217-4b02-8779-1006273d7864
2010-01-03 23:53:28 +00:00
jantje_85 60c7b5b10f Fixed typo in inspircd12.h causing 2 modes to use the same bit.
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2730 5417fbe8-f217-4b02-8779-1006273d7864
2010-01-03 14:19:11 +00:00
Adam- a939b821a7 Fixed a few SASET help replies to reply to services opers, and fixed the rest to not reply to anyone who requests help
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2727 5417fbe8-f217-4b02-8779-1006273d7864
2010-01-02 20:10:17 +00:00
Adam- 14150647bc Fixed help system to use notice_help instead of notice_lang (bug from r2473)
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2726 5417fbe8-f217-4b02-8779-1006273d7864
2010-01-02 18:48:30 +00:00
Adam- 1b265bf291 Using SQL with RDB will now automatically fix databases affected by the bug fixed in r2386
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2712 5417fbe8-f217-4b02-8779-1006273d7864
2009-12-20 19:05:56 +00:00
Adam- ac279a1637 Documented the SQL table change in Changes.mysql from r2386
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2707 5417fbe8-f217-4b02-8779-1006273d7864
2009-12-16 20:50:44 +00:00
jantje_85 6ed06539be Reverted & updated Changes.. ;)
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2680 5417fbe8-f217-4b02-8779-1006273d7864
2009-12-01 00:16:48 +00:00
Adam- b5242e3be0 Fixed bug #1106 - Anope now keeps track of users cloaked hosts as well as virtual host and will use both in matching for things
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2679 5417fbe8-f217-4b02-8779-1006273d7864
2009-12-01 00:06:21 +00:00
jantje_85 84ac00e953 Fix bug #1114. Fixed a bug in cs_clear caused by do_cmode() modifying params passed to it.
Also fixed some warnings in cs_xop.

git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2671 5417fbe8-f217-4b02-8779-1006273d7864
2009-11-25 22:57:00 +00:00
Adam- 822e75b501 Fix a few more XOP related problems
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2668 5417fbe8-f217-4b02-8779-1006273d7864
2009-11-25 20:57:22 +00:00
Adam- e2c6825cd2 Cleaned up a lot of the channel access reordering code, properly change users with less than voice access on channels to XOP, and fix a potential crashbug after switching to XOP on IRCds that do not support halfop
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2667 5417fbe8-f217-4b02-8779-1006273d7864
2009-11-25 04:52:49 +00:00
jantje_85 fdcc5b5ee1 Added missing entry to version.log.
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2606 5417fbe8-f217-4b02-8779-1006273d7864
2009-11-03 14:19:38 +00:00
jantje_85 4f438917f1 All usermodes are now recognized and properly set internally on Insp 1.2.
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2601 5417fbe8-f217-4b02-8779-1006273d7864
2009-10-30 20:45:16 +00:00
jantje_85 250aecb683 More dynamic detection of channel modes on InspIRCd 1.2.
Also fixes params being linked to the wrong mode.

git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2598 5417fbe8-f217-4b02-8779-1006273d7864
2009-10-30 02:03:57 +00:00
jantje_85 4ca2b60f91 Fixed small typo in dutch translation.
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2571 5417fbe8-f217-4b02-8779-1006273d7864
2009-10-18 18:42:21 +00:00
sjaz e305db41ce Removed proxy server from ulined servers in example config as more people use a client proxy scanner and this should reduce occurences of user servers being listed.
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2550 5417fbe8-f217-4b02-8779-1006273d7864
2009-10-11 12:40:42 +00:00
Adam- 6ad63349c1 Reset errno before calling strtol in bs_kick, it would sometimes not allow valid kick settings to work
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2546 5417fbe8-f217-4b02-8779-1006273d7864
2009-10-10 16:21:29 +00:00
Adam- d0646a37dc Now send the QUIT command before changing bots internally for /botserv bot change, so InspIRCd 1.2 (and possibly others) can get the UID and other info from the bot
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2545 5417fbe8-f217-4b02-8779-1006273d7864
2009-10-09 22:34:17 +00:00
Adam- b80e0cb996 Fixed the NICK command syntax on InspIRCd 1.2 to work when changing clients nicknames
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2544 5417fbe8-f217-4b02-8779-1006273d7864
2009-10-09 22:33:39 +00:00
Adam- 5b65c9ce87 Fixed crash when juping servers on InspIRCd 1.2
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2543 5417fbe8-f217-4b02-8779-1006273d7864
2009-10-09 22:33:23 +00:00
Adam- f07f92e30d Fixed remote whoises on services clients on InspIRCd 1.2
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2542 5417fbe8-f217-4b02-8779-1006273d7864
2009-10-09 22:33:00 +00:00
Adam- 594c161622 Added InspIRCd 1.2 protocol module into Windows makefiles and installer scripts
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2537 5417fbe8-f217-4b02-8779-1006273d7864
2009-10-06 21:54:33 +00:00
jantje_85 0570b57a99 This is it! Added InspIRCd 1.2 protocol module.
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2536 5417fbe8-f217-4b02-8779-1006273d7864
2009-10-06 13:21:05 +00:00
jantje_85 727bcf1fde Added option for delayed pseudo-client introduction. (Required for Insp 1.2)
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2535 5417fbe8-f217-4b02-8779-1006273d7864
2009-10-06 13:08:37 +00:00
jantje_85 699bee06c3 Added ability to mark users as either ID'd or UNID'd after user introduction. This is the responsibility of the protocol module!(Required for Insp 1.2)
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2534 5417fbe8-f217-4b02-8779-1006273d7864
2009-10-06 12:52:14 +00:00
Adam- ab337e8de0 Backport of r2531, reset +r on registered channels after a netmerge when our creation time is newer than what we recieved
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2533 5417fbe8-f217-4b02-8779-1006273d7864
2009-10-05 21:26:29 +00:00
sjaz 381f74a26e Test Commit Please Ignore! :)
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2530 5417fbe8-f217-4b02-8779-1006273d7864
2009-10-04 16:33:04 +00:00
jantje_85 471043c5c4 git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2525 5417fbe8-f217-4b02-8779-1006273d7864 2009-10-03 00:32:52 +00:00
adam- 29c8702c35 Updated french language file, patch from Saka
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2511 5417fbe8-f217-4b02-8779-1006273d7864
2009-09-22 00:38:26 +00:00
jantje_85 0b82d74262 Fixed a number of TS6 issues, mainly related to nicks instead of IDs being given to anope_cmd_mode() in combination with a status change (Bug #1096). Also Fixed a small bug in os_oline.
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2495 5417fbe8-f217-4b02-8779-1006273d7864
2009-09-09 22:23:09 +00:00
Adam- 5cb5dc197a Fixed typo in install.js so it will correctly detect MySQL 5.1 on Windows
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2491 5417fbe8-f217-4b02-8779-1006273d7864
2009-09-01 22:28:54 +00:00
jantje_85 664ca1bbf2 Fixed MLOCK locked mode removal getting priority over DEFCON locked
mode setting.

git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2485 5417fbe8-f217-4b02-8779-1006273d7864
2009-08-30 17:37:35 +00:00
jantje_85 efa7c81ca8 Fixed defcon not setting modes on newly created unregged channels and
failing to force remove defcon-locked modes.

git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2480 5417fbe8-f217-4b02-8779-1006273d7864
2009-08-28 23:54:25 +00:00
adam- 2874513e0a Updated German language file, patch from Han`
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2479 5417fbe8-f217-4b02-8779-1006273d7864
2009-08-28 23:42:16 +00:00
adam- 51d9b5056d Fixed bug #1104 - Corrected help replies for /operserv HELP *NEWS to say services admin is always required
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2477 5417fbe8-f217-4b02-8779-1006273d7864
2009-08-28 21:49:18 +00:00
sjaz 3c219be3c7 Updated version.log and bumped build version because I forgot in previous commit.
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2476 5417fbe8-f217-4b02-8779-1006273d7864
2009-08-28 19:35:22 +00:00
sjaz cc8f2117f8 Clarify installing of PSDK in windows installation requirements.
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2475 5417fbe8-f217-4b02-8779-1006273d7864
2009-08-28 19:32:13 +00:00
sjaz 230f9e9a35 Updated docs/README to include real help for incorporating new languages into builds.
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2474 5417fbe8-f217-4b02-8779-1006273d7864
2009-08-28 07:05:33 +00:00
adam- d468567a12 Made help system fall back to the highest help string available instead of giving "no help" to services opers etc everywhere.
Fixes bug #1102 and any other bugs related to it.


git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2473 5417fbe8-f217-4b02-8779-1006273d7864
2009-08-26 22:35:43 +00:00
adam- d3d36ff73c Fixed bug #1103 - show services opers /nickserv help saset
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2472 5417fbe8-f217-4b02-8779-1006273d7864
2009-08-26 22:04:47 +00:00
adam- 4897cdf60f Fixed bug #1099 and #1100 - Show services opers /chanserv help (un)suspend and /nickserv help (un)suspend
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2471 5417fbe8-f217-4b02-8779-1006273d7864
2009-08-25 21:29:34 +00:00
pimpmylinux ef8db98e5c fixed typo. i apologize for being an idiot, i promise i will test even oneliners next time...
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2468 5417fbe8-f217-4b02-8779-1006273d7864
2009-08-24 19:41:29 +00:00
pimpmylinux d9e57f5651 trying to delete sessions when a ulined server quits
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2467 5417fbe8-f217-4b02-8779-1006273d7864
2009-08-24 19:29:06 +00:00
adam- e50c6a5efb Fixed entry_match to work properly when matching hostnames and given a NULL username (although this should never happen in the core)
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2464 5417fbe8-f217-4b02-8779-1006273d7864
2009-08-23 22:06:22 +00:00
adam- a331432030 Fixed bug #1094
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2456 5417fbe8-f217-4b02-8779-1006273d7864
2009-08-19 21:30:34 +00:00
adam- ac338268c9 Updated Turkish language file
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2448 5417fbe8-f217-4b02-8779-1006273d7864
2009-08-11 23:42:05 +00:00
DukePyrolator 1354bf8815 another small update for the german langfile
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2438 5417fbe8-f217-4b02-8779-1006273d7864
2009-08-08 09:28:55 +00:00
sjaz ed1469d3b1 Updated German Translation from Han. (han@mefalcon.org)
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2437 5417fbe8-f217-4b02-8779-1006273d7864
2009-08-08 09:07:32 +00:00
sjaz 6b8277f152 Updated FAQ and pointing to wiki for updates. (yay wiki)
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2434 5417fbe8-f217-4b02-8779-1006273d7864
2009-08-06 19:02:15 +00:00
sjaz 2d69fea6d2 Fixed wording in short description of CHANKILL from OS HELP except in ru.l because it's scary. (Thanks Taros!)
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2430 5417fbe8-f217-4b02-8779-1006273d7864
2009-08-06 17:53:31 +00:00
sjaz af916f28f4 dos2unix'd several files.
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2428 5417fbe8-f217-4b02-8779-1006273d7864
2009-08-06 17:25:38 +00:00
jantje_85 7c2db57965 Fixed possible segfault introduced by TS6 fix in rev. 2401.
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2406 5417fbe8-f217-4b02-8779-1006273d7864
2009-08-04 18:14:50 +00:00
jantje_85 b13836f3cf Fixed do_server() so it doesn't go nuts if a SID is the source. Added some sanity checks and debug output as well.
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2402 5417fbe8-f217-4b02-8779-1006273d7864
2009-08-03 17:25:32 +00:00
jantje_85 2bd483c273 Added forgotten entries to version.log and Changes, some cleanup, and fixed a few minor TS6 issues.
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2401 5417fbe8-f217-4b02-8779-1006273d7864
2009-08-01 17:11:58 +00:00
adam- 217a375517 Fixed some memory leaks when setting vhosts on users
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2400 5417fbe8-f217-4b02-8779-1006273d7864
2009-08-01 08:16:56 +00:00
jantje_85 97a42e4f7d Fixed a TS6 bug in chan_set_modes() causing restrictions such as secureops to fail if the IRCd sends UUIDs instead of nicks.
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2398 5417fbe8-f217-4b02-8779-1006273d7864
2009-07-31 17:55:24 +00:00
jantje_85 113237964d Fixed a bug in UMODE causing anope to send an extra umode change as a channel mode change.
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2397 5417fbe8-f217-4b02-8779-1006273d7864
2009-07-31 17:17:19 +00:00
DukePyrolator a3afe44ca6 Added german language support to hs_request.c. Patch provided by Han.
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2395 5417fbe8-f217-4b02-8779-1006273d7864
2009-07-28 16:47:40 +00:00
DukePyrolator b60b06ad76 Updated german language file. Update provided by Han.
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2394 5417fbe8-f217-4b02-8779-1006273d7864
2009-07-28 16:20:41 +00:00
adam- 902158671a Fixed a problem with saving and loading nickcore access lists when using
MySQL and RDB


git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2386 5417fbe8-f217-4b02-8779-1006273d7864
2009-07-20 01:53:54 +00:00
adam- 1873d67093 Fix some syntax error replies to use syntax_error
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2378 5417fbe8-f217-4b02-8779-1006273d7864
2009-07-13 02:50:05 +00:00
adam- 2629a580a1 Fixed elist_match_user to check against vhosts, patch from sergio
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2376 5417fbe8-f217-4b02-8779-1006273d7864
2009-07-12 19:52:32 +00:00
adam- cfc81d5aca Updated Polish language file, thanks to Szymek
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2374 5417fbe8-f217-4b02-8779-1006273d7864
2009-07-11 18:53:34 +00:00
sjaz 72ae5cacd4 Updated NSIS Windows Installer Scripts post 1.8.2 Release
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2372 5417fbe8-f217-4b02-8779-1006273d7864
2009-07-11 13:12:56 +00:00
293 changed files with 24741 additions and 15260 deletions
+35
View File
@@ -0,0 +1,35 @@
*.so
*.o
*.s
Makefile
Makefile.inc
autom4te.cache/
config.cache
config.log
config.status
include/sysconf.h
include/version.h
include/language.h
lang/language.h
src/bin/anoperc
lang/cat
lang/de
lang/en_us
lang/es
lang/fr
lang/gr
lang/hun
lang/index
lang/it
lang/langcheck
lang/langcomp
lang/nl
lang/pl
lang/pt
lang/ru
lang/tr
lang/ja_utf8
src/services
src/tools/anopesmtp
src/tools/db-merger
src/tools/epona2anope
+3
View File
@@ -0,0 +1,3 @@
branches:
except:
- 1.8
+153 -1
View File
@@ -1,5 +1,157 @@
Anope Version 1.8 SVN
Anope Version 1.8.9
-------------------
06/05 F Fixed modules being loaded regardless of the load abort signal. [#1527]
08/16 F Fixed hs_request to show requested ident in memos [#1545]
08/16 F Fix kick reason in cs_suspend/cs_forbid if no reason is given [#1544]
12/09 F Fix undefined symbol error on Solaris11 [ #00]
Provided by Michael Wobst - 2013
05/25 U Update Hybrid protocol module to support Hybrid 8.1
06/21 U Update Hybrid protocol module to support vhosts
Anope Version 1.8.8
-------------------
01/29 F Fixed user modes on BotServ bots on Unreal3.2.10 [#1474]
02/13 F Do not allow invalid nicknames to be forbidden in ns_forbid [ #00]
Provided by Ryuunosuke Ayanokouzi - 2013
02/17 A Added Japanese language support [ #00]
Provided by Anope Dev. <team@anope.org> - 2012
02/22 F Fixed several grammar errors in docs/ (patch provided by Simba) [ #00]
02/25 F Do not allow akill masks to end in @ [#1380]
07/14 F Fixed crash with cs_enforce and empty permanent channels [ #00]
12/23 A Added Hybrid 8.0 support. (Patch provided by Hybrid Team) [ #00]
12/23 R Removed experimental Hybrid 7.0 support. [ #00]
Provided by Anope Dev. <team@anope.org> - 2011
12/31 F Fixed os_svsnick to allow changing the case of a users' nick [#1369]
Anope Version 1.8.7
-------------------
08/18 A Added support for Hybrid's channel mode +S [#1319]
08/18 A Added support for Hybrid's channel mode +O [#1320]
08/21 A Added internal event when a nickcore is dropped. [ #00]
08/21 A Added internal event when a nickcore gets a new display nick. [ #00]
08/18 R Removed support for Hybrid's (old) channel mode +a [#1318]
12/15 C Added API support for SVSJOIN and SVSPART on UltimateIRCd 3. [ #00]
05/30 F Fixed removing vhosts on InspIRCd when m_cloaking is unloaded [#1273]
07/23 F Fixed a potential crash in the badwords kicker [ #00]
08/09 F Fixed deopping the first user to join a channel during a burst [#1287]
08/10 F Fixed loading bs_fantasy_owner on InspIRCd 2.0 on startup [ #00]
08/21 F Send DROP event when forbidding nicks and channels. [ #00]
11/16 F Fixed ident being used instead of vident in some comparisons. [ #00]
11/20 F Fixed ignore not matching against users' real host or IP. [ #00]
12/06 F Fixed some typos in the spanish language file [ #00]
Anope Version 1.8.6
-------------------
10/31 A Added support for plexus3's channel mode +z [#1202]
02/23 A Added account tracking support to ratbox protocol module [ #00]
03/21 A Added support for Hybrid's m_services and m_change [ #00]
03/28 A Added internal events called when a module is loaded/unloaded. [ #00]
03/28 A Added internal events called when a command is added/deleted. [ #00]
09/11 F Fixed db-convert handling some vhost collisions [ #00]
09/14 F Fixed ./configure failing with partial SQL installations [ #00]
09/28 F Fixed ForkForMail to always work [ #00]
09/28 F Fixed /nickserv saset display to use nicktracking if enabled [#1193]
09/28 F Fixed /nickserv group to use nicktracking if enabled [#1194]
12/12 F Remove vhost requests from nicks that expire [ #00]
12/15 F Fixed /cs enforce #channel to say SET was enforced not (null) [#1213]
12/23 F Fixed /cs (un)ban and akick from matching users real hosts/IP [#1079]
01/19 F Fixed 'make install' recompiling src/tools [#1227]
01/21 F Fixed many incorrect apostrophe usages [#1223]
01/28 F Fixed not introducing our clients with usermode k on InspIRCd2.0[ #00]
01/29 F Updated german language file. [ #00]
02/05 F Fixed wiki URLs in Windows configure script [ #00]
02/11 F Fixed build on Mac [ #00]
02/23 F Fixed rejoining our clients if they are kicked on a TS6 IRCd [ #00]
03/02 F Fixed showing SENDPASS in HELP to users who can't use it [ #00]
03/03 F Fixed opping our clients on ratbox when not using TS6 [ #00]
03/04 F Fixed setting a users host in InspIRCd when vhost is turned off [ #00]
03/24 F Fixed groups display nick showing in HS req memos for aliases. [#1252]
04/28 F Fixed missing NS REGISTER reply when ns_register is not loaded. [#1263]
05/02 F Fixed crash in enc_md5 on Mac [#1236]
Anope Version 1.8.5
-------------------
05/05 A Added an internal event called when a nick is requested [ #00]
05/09 A Added an Atheme to Anope database converter [ #00]
05/12 A Added logging for stateful commands [ #00]
05/22 A Added an internal event called when a nick is ghosted [ #00]
05/22 A Added an internal event called when a nick is recovered [ #00]
05/23 A Added old nick parameter to EVENT_CHANGE_NICK [ #00]
08/13 A Added forking for mail sending on supporting operating systems [ #00]
09/05 A Added InspIRCd 2.0 support [ #00]
10/31 A Added support for Plexus3's channel mode +z [#1202]
04/15 F Fixed os_info to backup its database on Windows [ #00]
04/15 F Fixed a potential crash in cs_clear ops when using UnrealIRCd [#1154]
04/16 F Fixed missing TS6SID on FJOIN in inspircd12 [ #00]
04/19 F Fixed ns_info to show nick expire times to opers not only admins[ #00]
04/28 F Fixed a bug that could make some nick requests disappear [ #00]
05/18 F Fixed English and grammar in e-mail messages [ #00]
05/23 F Fixed SQUITing juped servers on InspIRCd 1.2 [#1165]
06/15 F Fixed ./Config to correctly load config.cache [ #00]
06/24 F Fixed pseudo-client kills not being detected on some TS6 IRCDs. [ #00]
07/01 F Fixed encrypting very long passwords when registering [#1172]
08/03 F Fixed tracking users vhosts when there is no vhost mode [#1178]
08/05 F Fixed tracking of our clients after nick changing on InspIRCd [#1180]
09/10 F Fixed pseudo-clients always getting oper on InspIRCd. [ #00]
Provided by Han` <Han@mefalcon.org> - 2010
08/14 F Updated german language file. [ #00]
Anope Version 1.8.4
-------------------
03/10 A Added support for tracking permanent channels [ #00]
03/24 A Added logging of deleting and clearing XOP access lists [ #00]
02/09 F Fixed marking halfops as deopped, stops unsetting modes by them [#1136]
02/18 F Fixed listing unconfirmed nicks with suspended nicks to SA+ [ #00]
03/02 F Fixed a bug that could cause access entries to disappear [ #00]
03/13 F Fixed maximum hostname checking in HS SET and HS REQUEST [#1138]
03/13 F Fixed deleting force dropped nicks from the hs_waiting list [#1139]
03/13 F Fixed backing up 3rd party module DBs more than once a day [#1140]
03/16 F Fixed os_info to display syntax errors if no command is entered [ #00]
03/29 F Fixed defcon to only apply its mode parameters when it's on [#1146]
03/29 F Fixed numbering of memos when saved in SQL [#1149]
03/30 F Fixed module demos to work correctly on TS6 IRCDs [ #00]
04/03 F Fixed saving databases in readonly mode when using anoperc [ #00]
Anope Version 1.8.3
-------------------
Provided by Anope Dev. <team@anope.org> - 2009
10/05 A Added InspIRCd 1.2 support. [ #00]
07/31 F Fixed anope sending umode change using channels' syntax. [ #00]
07/31 F Fixed TS6 UUID issue while parsing modechanges. [ #00]
08/01 F Fixed several memory leaks in HostServ. [ #00]
08/01 F Fixed several memory leaks in HostServ. [ #00]
08/03 F Fixed TS6 SID issue when introducing new servers. [ #00]
08/19 F Fixed NS SASET displaying wrong language. [#1094]
08/24 F Fixed entry_match() failing when given no username. [ #00]
08/27 F Fixed NS SUSPEND not being shown to services opers. [#1099]
08/27 F Fixed NS UNSUSPEND not being shown to services opers. [#1100]
08/27 F Fixed services sending no or wrong help to opers. [#1102]
08/27 F Fixed services sending no or wrong help to opers. [#1103]
08/27 F Fixed services sending no or wrong help to opers. [#1104]
08/29 F Fixed defcon failing to set and remove modes. [#1101]
08/30 F Fixed MLOCK superseding DEFCON mode lock. [ #00]
09/09 F Fixed number of TS6 compatibility issues. [#1096]
10/06 F Fixed CS FORBID not clearing excepts & invites. [#1097]
11/25 F Fixed a number of major XOP related issues. [ #00]
11/25 F Fixed a bug in CLEAR OPS causing incorrect mode removal. [#1114]
12/01 F Fixed tracking of users host when they disable their vhost [#1106]
12/20 F Fixed nickcores access list being loaded from SQL with RDB [ #00]
01/15 F Fixed BotServ from kicking and banning ULined clients [#1135]
Provided by Han` <Han@mefalcon.org> - 2009
07/28 F Updated german language file. [ #00]
07/28 F Added german language support to hs_request.c. [ #00]
Provided by Yusuf Kurekci <ysfm.20@gmail.com> - 2009
08/11 F Updated Turkish language file. [ #00]
Provided by Christopher N. <saka@epiknet.org> - 2009
09/20 F Updated French language file. [ #00]
Anope Version 1.8.2
-------------------
+77 -2
View File
@@ -1,5 +1,80 @@
Anope Version 1.8 SVN
---------------------
Anope Version 1.8.9
-------------------
** ADDED CONFIGURATION DIRECTIVES **
** MODIFIED CONFIGURATION DIRECTIVES **
** DELETED CONFIGURATION DIRECTIVES **
Anope Version 1.8.8
-------------------
** ADDED CONFIGURATION DIRECTIVES **
** MODIFIED CONFIGURATION DIRECTIVES **
** DELETED CONFIGURATION DIRECTIVES **
Anope Version 1.8.7
-------------------
** ADDED CONFIGURATION DIRECTIVES **
** MODIFIED CONFIGURATION DIRECTIVES **
** DELETED CONFIGURATION DIRECTIVES **
Anope Version 1.8.6
-------------------
** ADDED CONFIGURATION DIRECTIVES **
** MODIFIED CONFIGURATION DIRECTIVES **
** DELETED CONFIGURATION DIRECTIVES **
Anope Version 1.8.5
-------------------
** ADDED CONFIGURATION DIRECTIVES **
# ForkForMail [OPTIONAL]
#
# When enabled, services will fork when sending mail, which means there is no
# services lag from mail. This is only supported on operating systems that allow
# the use of forking (eg, not Windows).
#
#ForkForMail
inspircd20 - IRCDModule
** MODIFIED CONFIGURATION DIRECTIVES **
# DefSessionLimit <limit> [REQUIRED]
# Default session limit per host. Once a host reaches it's session limit,
# all clients attempting to connect from that host will be killed.
DefSessionLimit 3
** DELETED CONFIGURATION DIRECTIVES **
Anope Version 1.8.4
-------------------
** ADDED CONFIGURATION DIRECTIVES **
** MODIFIED CONFIGURATION DIRECTIVES **
** DELETED CONFIGURATION DIRECTIVES **
Anope Version 1.8.3
-------------------
** ADDED CONFIGURATION DIRECTIVES **
inspircd12 - IRCDModule
** MODIFIED CONFIGURATION DIRECTIVES **
** DELETED CONFIGURATION DIRECTIVES **
Anope Version 1.8.2
-------------------
+65 -2
View File
@@ -1,5 +1,68 @@
Anope Version 1.8 SVN
---------------------
Anope Version 1.8.9
-------------------
*** New Strings:
*** Mod Strings:
*** Del Strings:
Anope Version 1.8.8
-------------------
*** New Strings:
*** Mod Strings:
*** Del Strings:
Anope Version 1.8.7
-------------------
*** New Strings:
*** Mod Strings:
*** Del Strings:
Anope Version 1.8.6
-------------------
*** New Strings:
*** Mod Strings:
*** Del Strings:
Anope Version 1.8.5
-------------------
*** New Strings:
*** Mod Strings:
*** Del Strings:
Anope Version 1.8.4
-------------------
*** New Strings:
*** Mod Strings:
NICK_HELP_LIST
*** Del Strings:
Anope Version 1.8.3
-------------------
*** New Strings:
*** Mod Strings:
NEWS_HELP_LOGON
NEWS_HELP_OPER
NEWS_HELP_RANDOM
*** Del Strings:
Anope Version 1.8.2
-------------------
+27 -2
View File
@@ -1,5 +1,30 @@
Anope Version 1.8 SVN
---------------------
Anope Version 1.8.9
-------------------
- NONE
Anope Version 1.8.8
-------------------
- NONE
Anope Version 1.8.7
-------------------
- NONE
Anope Version 1.8.6
-------------------
- NONE
Anope Version 1.8.5
-------------------
- NONE
Anope Version 1.8.4
-------------------
- NONE
Anope Version 1.8.3
-------------------
ALTER TABLE `anope_ns_access` DROP INDEX `display` ;
Anope Version 1.8.2
-------------------
+2 -2
View File
@@ -2,7 +2,7 @@
#
# Configuration script for Services.
#
# Anope (c) 2003-2007 Anope team
# Anope (c) 2003-2014 Anope Team
# Contact us at team@anope.org
#
# This program is free but copyrighted software; see the file COPYING for
@@ -29,7 +29,7 @@ Load_Cache () {
if [ -f config.cache -a -r config.cache -a ! "$IGNORE_CACHE" ] ; then
echo "Using defaults from config.cache. To ignore, ./Config -nocache"
echo ""
. config.cache
. ./config.cache
CAN_QUICK="yes"
else
CAN_QUICK="no"
+2 -2
View File
@@ -1,6 +1,6 @@
# Makefile for Anope.
#
# (C) 2003-2009 Anope Team
# (C) 2003-2014 Anope Team
# Contact us at team@anope.org
#
# This program is free but copyrighted software; see the file COPYING for
@@ -44,7 +44,7 @@ spotless:
-@erase include\language.h include\version.h *.manifest *~ anope.exe version.sh.exe *.obj anopesmtp.exe
-@echo --
-@echo NOTICE:
-@echo You will need to run cscript /nologo install.js again
-@echo You will need to run config.bat again
-@echo --
mypasql:
Vendored
+1838 -5875
View File
File diff suppressed because it is too large Load Diff
+10 -8
View File
@@ -1,6 +1,6 @@
dnl autoconf.in for Services.
dnl
dnl Anope (c) 2003-2007 Anope team
dnl Anope (c) 2003-2014 Anope Team
dnl Contact us at team@anope.org
dnl This program is free but copyrighted software; see the file COPYING for
@@ -99,8 +99,9 @@ AC_ARG_WITH(mysql, [ --without-mysql Do not use MySQL or attempt to fin
fi
CFLAGS="$CFLAGS $MYSQL_CFLAGS"
LDFLAGS="$LDFLAGS $MYSQL_LDFLAGS"
LIBS="$MYSQL_LDFLAGS"
echo $ECHO_N "checking if mysql_config produces valid values... $ECHO_C" >&6
AC_TRY_RUN([
AC_RUN_IFELSE([AC_LANG_SOURCE([[
#include <mysql.h>
int main()
@@ -109,7 +110,7 @@ int main()
return 0;
}
], ac_cv_mysql_valid=yes, ac_cv_mysql_valid=no)
]])],[ac_cv_mysql_valid=yes],[ac_cv_mysql_valid=no],[])
echo $ac_cv_mysql_valid >&6
if test "$ac_cv_mysql_valid" = "yes"; then
AC_DEFINE_UNQUOTED(USE_MYSQL,1,"Use Mysql")
@@ -122,12 +123,13 @@ int main()
else
CFLAGS="$hold_cflags"
LDFLAGS="$hold_ldflags"
LIBS=""
fi
fi
])
AC_MSG_CHECKING(whether this is a bit or little endian system)
AC_TRY_RUN([
AC_RUN_IFELSE([AC_LANG_SOURCE([[
int main()
{
short s = 1;
@@ -135,12 +137,12 @@ int main()
unsigned char c = *((char*)ptr);
return c;
}
]
, AC_DEFINE(BIG_ENDIAN)
]])],[AC_DEFINE(BIG_ENDIAN)
AC_MSG_RESULT(big)
, AC_DEFINE(LITTLE_ENDIAN)
],[AC_DEFINE(LITTLE_ENDIAN)
AC_MSG_RESULT(little)
)
],[])
AC_SUBST(ANOPELIBS)
AC_SUBST(LDFLAGS)
+35 -12
View File
@@ -78,8 +78,10 @@
# Bahamut 1.4.27 [or later] - "bahamut"
# Charybdis 1.0 [or later] - "charybdis"
# DreamForge 4.6.7 - "dreamforge"
# Hybrid IRCd 7.0 [experimental] - "hybrid"
# Hybrid IRCd 8.1 - "hybrid"
# InspIRCd 1.1 [beta 8 or later] - "inspircd11"
# InspIRCd 1.2 [RC3 or later] - "inspircd12"
# InspIRCd 2.0 - "inspircd20"
# Plexus 3.0 [or later] - "plexus3"
# Plexus 2.0 [or later] - "plexus2"
# PTLink 6.15.0 [experimental] - "ptlink"
@@ -107,9 +109,10 @@
# This determines how the passwords are stored in the databases,
# and does not add any security as far as transmitting passwords over
# the network goes.
#
# enc_none provides no password encryption, storing the password in
# plain text, this is the most versiatle as passwords can easily be
# recovered.
# plain text, this is the most versatile as passwords can easily be
# recovered but is not secure and therefore not recommended for use.
#
# NOTE: users of anope's previous (broken) md5 implementation should
# select the enc_old option, or things may break.
@@ -124,7 +127,7 @@
# SHA1 - enc_sha1
#
EncModule "enc_none"
EncModule "enc_md5"
###########################################################################
#
@@ -192,9 +195,9 @@ ChanCoreModules "cs_help cs_register cs_identify cs_set cs_xop cs_access cs_akic
# RemoteServer2 (if defined). If they can't connect to RemoteServer2,
# they will use RemoteServer3 (if defined).
RemoteServer localhost 6667 "mypass"
#RemoteServer2 localhost 6667 "mypass"
#RemoteServer3 localhost 6667 "mypass"
RemoteServer 127.0.0.1 6667 "mypass"
#RemoteServer2 127.0.0.1 6667 "mypass"
#RemoteServer3 127.0.0.1 6667 "mypass"
# LocalAddress <hostname> [port] [OPTIONAL]
# Specifies the local address to bind to before connecting to the
@@ -347,9 +350,19 @@ NetworkName "LocalNet"
# Numeric [OPTIONAL]
# Many ircd identify themselves with a Numeric ID when using this option
# consult your ircds documentation before using this
# consult your ircds documentation before using this.
#
# This option is REQUIRED when linking to InspIRCd 1.2. Then this should
# contain the services SID and must be in the following form:
# [0-9][A-Z0-9][A-Z0-9]
# An example is shown below.
#Numeric "64"
# TS6 (InspIRCd 1.2+) compliant:
#Numeric "3AX"
# NickLen [RECOMMENDED]
# Set this to the maximum allowed nick length on your network. Anope does
# not support values larger than 31, so setting them makes no sense. Be
@@ -611,13 +624,15 @@ UnRestrictSAdmin
# can set channel modes and we will not attempt to take them from them
# WARNING: do not put your user servers in this option
UlineServers "stats.your.network proxy.your.network"
UlineServers "stats.your.network"
# UseTS6 [OPTIONAL]
#
# Modern hybrid ircd like Ratbox 2.0.x support a protocol called TS6.
# However this protocol is optional thus our default support is for without
# TS6, if you want to take advantage of TS6, enable this option.
#
# This option is REQUIRED when linking to InspIRCd 1.2.
#UseTS6
@@ -688,6 +703,15 @@ MailDelay 5m
#DontQuoteAddresses
# ForkForMail [OPTIONAL]
#
# When enabled, services will fork when sending mail, which means there is no
# services lag from mail. This is only supported on operating systems that allow
# the use of forking (eg, not Windows).
#
#ForkForMail
###########################################################################
#
# NickServ configuration
@@ -1281,8 +1305,7 @@ LimitSessions
# DefSessionLimit <limit> [REQUIRED]
# Default session limit per host. Once a host reaches it's session limit,
# all clients attempting to connect from that host will be killed. A value
# of zero means an unlimited session limit.
# all clients attempting to connect from that host will be killed.
DefSessionLimit 3
@@ -1476,7 +1499,7 @@ OSOpersOnly
# MysqlSock defines the Mysql UNIX socket
# MysqlPort defines the Mysql TCP port
#
#MysqlHost "localhost"
#MysqlHost "127.0.0.1"
#MysqlUser "Anonymous"
#MysqlPass ""
#MysqlName "anope"
+1 -2
View File
@@ -226,8 +226,7 @@ CREATE TABLE anope_ns_access (
display varchar(255) NOT NULL default '',
access text NOT NULL,
active tinyint(1) NOT NULL default '1',
PRIMARY KEY (na_id),
UNIQUE KEY display (display)
PRIMARY KEY (na_id)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
-- --------------------------------------------------------
+1 -1
View File
@@ -1,4 +1,4 @@
Reported Bugs from Bugzilla: http://bugs.anope.org/
Reported Bugs from Tracker: http://bugs.anope.org/
---------------------------------------------------
+260 -252
View File
@@ -1,339 +1,347 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
675 Mass Ave, Cambridge, MA 02139, USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
Preamble
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the entire
whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three years,
to give any third party, for a charge no more than your cost of
physically performing source distribution, a complete machine-readable
copy of the corresponding source code, to be distributed under the terms
of Sections 1 and 2 above on a medium customarily used for software
interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is allowed
only for noncommercial distribution and only if you received the program
in object code or executable form with such an offer, in accord with
Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent license
would not permit royalty-free redistribution of the Program by all those
who receive copies directly or indirectly through you, then the only way
you could satisfy both it and this License would be to refrain entirely
from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is implemented
by public license practices. Many people have made generous contributions
to the wide range of software distributed through that system in reliance
on consistent application of that system; it is up to the author/donor to
decide if he or she is willing to distribute software through any other
system and a licensee cannot impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
This section is intended to make thoroughly clear what is believed to be
a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
Appendix: How to Apply These Terms to Your New Programs
END OF TERMS AND CONDITIONS
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
How to Apply These Terms to Your New Programs
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make
it free software which everyone can redistribute and change under
these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) 19yy <name of author>
<one line to give the program's name and an idea of what it does.>
Copyright (C) yyyy name of author
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) 19yy name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details
type `show w'. This is free software, and you are welcome
to redistribute it under certain conditions; type `show c'
for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.
+75 -15
View File
@@ -183,9 +183,9 @@ Anope Internal Events
EVENT_BOT_BAN
A BotServ bot has banned a user, e.g. kickers.
av[0] The nick of the user banned.
av[1] The Channel the user was banned from.
av[2] The mask that was banned.
av[0] The nick of the user banned.
av[1] The Channel the user was banned from.
av[2] The mask that was banned.
EVENT_BOT_CHANGE
The properties of a BotServ bot have been changed.
@@ -214,10 +214,10 @@ Anope Internal Events
EVENT_BOT_FANTASY_NO_ACCESS
A fantasy command of the bot has been triggered by someone without
access to BotServ FANTASY commands on the channel. This will NOT
trigger if someone with access has triggered a fantasy command; use
EVENT_BOT_FANTASY for those. Hook to both events to catch both event
triggers.
access to BotServ FANTASY commands on the channel. This will NOT
trigger if someone with access has triggered a fantasy command; use
EVENT_BOT_FANTASY for those. Hook to both events to catch both event
triggers.
av[0] The fantasy command that has been triggered without leading '!'.
av[1] The nickname of the user that has triggered the fantasy
command.
@@ -234,9 +234,9 @@ Anope Internal Events
EVENT_BOT_KICK
A BotServ bot has kicked a user from a channel.
av[0] The name of the user that has been kicked.
av[1] The name of the channel the user was kicked from.
av[2] The reason for the kick.
av[0] The name of the user that has been kicked.
av[1] The name of the channel the user was kicked from.
av[2] The reason for the kick.
EVENT_BOT_UNASSIGN
A BotServ bot is being unassigned from a channel. This event is being
@@ -266,6 +266,10 @@ Anope Internal Events
A new channel has been registered.
av[0] The name of the channel that has been registered.
EVENT_NICK_REQUESTED
A new nick has been requested, and mail has been sent to confirm the nick.
av[0] The name of the nick that was requested
EVENT_CHAN_SUSPENDED
A channel has been suspended (ChanServ SUSPEND).
av[0] The name of the channel that has been suspended.
@@ -275,8 +279,10 @@ Anope Internal Events
av[0] The name of the channel that has been unsuspended.
EVENT_CHANGE_NICK
A user has just changed it's nick.
av[0] The new nickname of the user.
A user has just changed its nick.
av[0] The new nickname of the user. Event is called after the user has been changed
to this nickname.
av[1] The old nickname of the user.
EVENT_CONNECT
This event is emitted when the connection to our uplink hub is being
@@ -308,7 +314,7 @@ Anope Internal Events
av[0] The new level of DefCon being invoked.
EVENT_GROUP
A user has grouped it's nickname to another user group.
A user has grouped its nickname to another user group.
av[0] The nickname of the user that joined the group.
EVENT_JOIN_CHANNEL
@@ -338,16 +344,43 @@ Anope Internal Events
A user's nick has just been forbidden.
av[0] The nickname that has just been forbidden.
EVENT_CORE_DROPPED
A NickCore will be dropped. Usually send when the last alias is dopped.
This is send BEFORE the event that confirms deletion of the alias.
Note that this event is send before the core data is removed.
av[0] The display nickname of the core that is being dropped.
EVENT_CORE_NEWDISPLAY
The display nick of a NickCore is being changed.
This is send BEFORE the actual change is made in the database.
av[0] The old display nickname of the core.
av[1] The new display nickname of the core.
EVENT_NICK_GHOSTED
A user has just been ghosted.
av[0] EVENT_START or EVENT_STOP. EVENT_START when the user is about
to be removed from the network, EVENT_STOP when this has been
done.
av[1] The nickname of the user doing the ghosting.
av[2] The nickname being ghosted.
EVENT_NICK_IDENTIFY
A user has just identified for it's nickname with NickServ.
A user has just identified for its nickname with NickServ.
av[0] The nickname of the user that just identified.
EVENT_NICK_LOGOUT
A user has just (been) logged out.
av[0] The nickname of the user that has (been) logged out.
EVENT_NICK_RECOVERED
A user's nickname has just been recovered.
av[0] EVENT_START or EVENT_STOP. EVENT_START when the user is about
to be recovered, EVENT_STOP when this has been done.
av[1] The nickname of the user doing the recovery.
av[2] The nickname being recovered.
EVENT_NICK_REGISTERED
A new user has just registered it's nickname. This event is being
A new user has just registered its nickname. This event is being
emitted when the registration is completed, but the user modes have not
yet been set.
av[0] The nickname of the newly registered user.
@@ -414,3 +447,30 @@ Anope Internal Events
A user has left the network. This event is emitted before the internal
removal is performed, so the user still exists internally.
av[0] The nickname of the user leaving the network.
EVENT_MODLOAD
A module has been loaded. This event is emitted after the loading
sequence has been finished: AnopeInit() has been called and the
module has already been added to the modules table.
av[0] Name of the loaded module.
EVENT_MODUNLOAD
A module has been unloaded. This event is emitted when the unloading
sequence is almost complete: AnopeFini() has been called and all
commands, hooks and callbacks have been removed. The module itself
is still in memory however.
av[0] Name of the unloaded module.
EVENT_ADDCOMMAND
A command hook has been added to anopes command table.
Note that the command may have previously existed and merely a new hook
was added before or after an existing command hook.
av[0] Name of the module adding the command.
av[1] Name of the command hook that was added.
EVENT_DELCOMMAND
A command hook has been removed from anopes command table.
Note that the command may still exist in anopes command table if other
modules have hooks for the same command.
av[0] Name of the module deleting the command.
av[1] Name of the command hook that was removed.
+1 -480
View File
File diff suppressed because one or more lines are too long
+22 -6
View File
@@ -73,7 +73,8 @@ Note: You should also read the README and FAQ files!
section 1. There are however a few specific guidelines:
* IMPORTANT: Back up your old databases!
* If you are upgrading to a new major release, ALWAYS restart a
* Check Changes.conf for the new version for small config changes.
* If you are upgrading to a new major release, create a
fresh configuration file from example.conf.
3) Setting up the IRCd
@@ -115,21 +116,34 @@ Note: You should also read the README and FAQ files!
Don't forget to /rehash your IRCd to apply changes.
A new trend in ircd configuration is popping all over the place, good
examples are the latest Hybrid, Unreal and Bahamut, which use a more
examples are the latest Hybrid, Unreal, Bahamut & InspIRCd, which use a more
"readable" form of configuration. For those, use something like:
UnrealIRCd
link services.localhost.net
{
username *;
hostname localhost;
bind-ip *;
port 6667;
port 7000;
hub *;
password-connect "mypass";
password-receive "mypass";
class servers;
};
InspIRCd
<link name="services.localhost.net"
ipaddr="127.0.0.1"
port="7000"
allowmask="127.0.0.0/8"
sendpass="mypass"
recvpass="mypass">
Note that this block-style configuration files differ heavily, depending
on the IRCd. Consult the interactive link maker (link is below) for more
details on the exact configuration used by your IRCd.
@@ -137,7 +151,9 @@ Note: You should also read the README and FAQ files!
If you're unable to get a link with your IRCd after reading this section,
you might try the interactive link maker, which is located at:
http://anope.org/ilm.php
http://www.anope.org/ilm.php
Or finally, contact your IRCd Support Community to seek advice.
4) Starting Anope
@@ -154,8 +170,8 @@ Note: You should also read the README and FAQ files!
to launch Anope with ./services -debug -nofork to see any errors that it
encounters, and try to correct them.
If you need help to solve errors, feel free to subscribe to the Anope
mailing list and ask there. See the README file for details.
If you need help to solve errors, feel free to visit us on IRC at
irc.anope.org #anope and ask there. See the README file for further details.
5) Setting up a crontab
+83 -162
View File
@@ -15,45 +15,11 @@ How To Add IRCd Support
A) Make a copy of the .c and .h file of the IRCd that matches the ircd
that you are attempting to add support for best.
B) Make a backup copy of include/services.h, include/sysconf.h.in
C) Make a backup copy of Config and configure.in
First step in this process is to rename the .c and .h file after the IRCd
that you are going to be adding support for. Its recommended that you come
up with a name that is clear and easy to understand.
Now that you have the files that you will need to create your own ircd
support, starting with Config. This file is a shell script file; scroll
down until you find the list of ircs for the user to select. Indicate
the based ircd version which is supported such as a series 1.x or 2.2.x,
placing in the comment side an exact version that the support is for or
"experimental" if you are not the ircd developer. The next step is to
decide how the IRCd will be defined, following the existing examples edit
'IRCTYPE_DEF="IRC_RATBOX"' to be the descriptive define for your ircd.
With the Config file ready to go, edit configure.in and find in there the
reference to --with-ircd. You should see the various other ircds, and
you will want to add yours in there using the same IRC_ name you came up
with above. Important in this step is to make sure that you set the
IRCDFILE to the name of the .c file you set in step 1. Once you have the
configure.in created you can remove the old configure and at the command
prompt type "autconf"; this will generate the new configure file.
Getting close to actually modify code. Open sysconf.h.in and add two
lines for your given ircd, which is similar to this:
/* "First IRCD type" */
#undef IRC_RATBOX
Open services.h and add a line with the rest of the ircd include files to
match the name of the .h file you set in step 1.
#include "ratbox.h"
Taking the .c and .h file open them and replace the #ifdef IRC_* with the
IRC_ name you set in step two. Ensure that the code comments at the top
of the file match the ircd that the code will be for.
You are now ready to start getting into the code.
2) Modifying the Header File
@@ -65,28 +31,10 @@ How To Add IRCd Support
Open the .h file and find the section of code with
#define PROTECT_SET_MODE "+"
#define PROTECT_UNSET_MODE "-"
#define CS_CMD_PROTECT "PROTECT"
#define CS_CMD_DEPROTECT "DEPROTECT"
#define FANT_PROTECT_ADD "!protect"
#define FANT_PROTECT_DEL "!deprotect"
#define LEVEL_PROTECT_WORD "AUTOPROTECT"
#define LEVELINFO_PROTECT_WORD "PROTECT"
#define LEVELINFO_PROTECTME_WORD "PROTECTME"
#define UMODE_a 0x00000001
#define UMODE_b 0x00000002
If the ircd supports a protective/admin (not owner) mode, set the
PROTECT_SET_MODE and PROTECT_UNSET_MODE to be that mode. On most ircds
it's usermode "a" so you will be setting it to "+a" and "-a". The next
two are based more on what this mode is called. When you message ChanServ
to get this mode, this is the command you will be using. After this are
the fantasy commands which can be used in channel to get these modes. The
next three relate to the ACCESS LEVEL list system. Again these are the
words to gain these levels in the ACCESS LEVEL system. If your ircd does
not have these functions, leave them at what ever value is currently set;
the core code will ignore the request of the user.
Now that this is set, you can define the MODES. All user modes are stored
This is where you define the MODES. All user modes are stored
with UMODE_ followed by a letter matching the modes case; be careful to
use the correct case as this will make it clear when you setup MODES in
the .c in a few. Use hex values for the modes so starting at 0x00000001
@@ -101,7 +49,10 @@ How To Add IRCd Support
Finally we come to DEFAULT_MLOCK; this is the mode that services will set
by default on channels when they are registered. In general you want this
to be what is acceptable by the ircd; in most cases this is "+nt"
to be what is acceptable by the ircd; in most cases this is "+ntr". This is
expressed by:
#define DEFAULT_MLOCK CMODE_n | CMODE_t | CMODE_r
3) The Code
@@ -113,33 +64,6 @@ How To Add IRCd Support
The first bit of code you will face is:
const char version_protocol[] = "Ratbox IRCD";
This the protocol name which will appear in various places; especially
when you do -version at the command prompt, this is where you state the
server name. The version is not always needed unless you are showing that
the support is for one branch of a ircd family, such as Unreal 3.1 and
Unreal 3.2.
Once you have decided on this little piece of code, you will come to
flood mode characters being used for setting and removing. If your IRCd
does not support flood modes, you can just use ""; we will be setting if
your IRCD supports flooding or not in a little bit.
const char flood_mode_char_set[] = "+f";
const char flood_mode_char_remove[] = "-f";
The next task that you will face is setting whether the IRCD sends time
stamps on modes but does not tell us that it will do so. If it does, set
UseTSMODE to 1; if it does not set it to be 0. If you're not sure refer
to your IRCd's documentation on how MODE is sent.
int UseTSMODE = 0;
Now you've come to the part where you setup your ircd. There are two
structs which hold this information; This allows you to quickly setup
your specific ircd.
IRCDVar ircd[] = { }
This struct contains your basic IRCd functions. Your base source file has
@@ -148,7 +72,7 @@ How To Add IRCd Support
of each.
1) Name: This member tells Anope about the IRCD's name. It may contain
text about it's name and version. This is used to identify the
text about its name and version. This is used to identify the
build on startup.
2) NickServ Mode: This is the user mode set by Anope on NickServ.
@@ -273,172 +197,176 @@ How To Add IRCd Support
a mode to be set on registration, you should
set this to NULL.
32) Mode on Nick Unregister: What mode to set give users when they cancel
32) Mode on Root ID: What modes to set on services roots when they identify
33) Mode on Admin ID: What modes to set on services admins when they identify
34) Mode on Oper ID: What modes to set on services opers when they identify
35) Mode on Nick Unregister: What mode to set give users when they cancel
their registration with NickServ. If your
IRCd doesn't set a mode for registered users
you should set this to NULL.
33) Mode on Nick Change: What mode to give users when they change their
36) Mode on Nick Change: What mode to give users when they change their
nick. If your ircd doesn't set a mode, you
should set this to NULL.
34) SGLINE: Does the IRCd support realname (geocs) bans? Use 1 for yes,
37) SGLINE: Does the IRCd support realname (geocs) bans? Use 1 for yes,
0 for no.
35) SQLINE: Does the IRCd support nick bans? Use 1 for yes, 0 for no.
38) SQLINE: Does the IRCd support nick bans? Use 1 for yes, 0 for no.
36) SZLINE: Does the IRCd support SZLINES? Use 1 for yes, 0 for no.
39) SZLINE: Does the IRCd support SZLINES? Use 1 for yes, 0 for no.
37) HALFOP: Is channel mode +h for halfop supported by the IRCd? Use 1 for
40) HALFOP: Is channel mode +h for halfop supported by the IRCd? Use 1 for
yes, 0 for no.
38) Number of Server Args: When an IRCd connects, this is the number of
41) Number of Server Args: When an IRCd connects, this is the number of
parameters that are passed.
39) Join to Set: Services must join a channel to set any modes on that
42) Join to Set: Services must join a channel to set any modes on that
channel. Use 1 for yes, 0 for no.
40) Join to Message: Services must join a channel to send any message to
43) Join to Message: Services must join a channel to send any message to
that channel (cannot override +n). Use 1 for yes,
0 for no.
41) Exceptions: Support for channel exceptions (mode +e). Use 1 for yes,
44) Exceptions: Support for channel exceptions (mode +e). Use 1 for yes,
0 for no.
42) TS Topic Forward: Some IRCd's (like UnrealIRCd) like their topic TS
45) TS Topic Forward: Some IRCd's (like UnrealIRCd) like their topic TS
set forward by +1. Use 1 for yes, 0 for no.
43) TS Topic Backward: Some IRCd's (mainly older DreamForge-like ones)
46) TS Topic Backward: Some IRCd's (mainly older DreamForge-like ones)
like their topic TS set back by -1. Use 1 for yes,
0 for no.
44) Protected Umode: UMODE_ define that defines the protected usermod.
47) Protected Umode: UMODE_ define that defines the protected usermod.
Use 0 for no support, or enter the UMODE_ define.
45) Admin: Support for channel admins (Mainly used by UltimateIRCd). Use
48) Admin: Support for channel admins (Mainly used by UltimateIRCd). Use
1 for yes, 0 for no.
46) SQline Channels: The IRCd's supports banning channel names via
49) SQline Channels: The IRCd's supports banning channel names via
SQLINES. Use 1 for yes, 0 for no.
47) Quit On Kill: When we (SVS)KILL a user, does the IRCd send back a
50) Quit On Kill: When we (SVS)KILL a user, does the IRCd send back a
QUIT message for that user? Use 1 for yes, 0 for no.
48) SVSMODE -b: We can use SVSMODE to unban hosts from a channel. Use
51) SVSMODE -b: We can use SVSMODE to unban hosts from a channel. Use
1 for yes, 0 for no.
49) Protect: Support for channel protect (mode +a, mainly being used by
52) Protect: Support for channel protect (mode +a, mainly being used by
UnrealIRCd and ViagraIRCd). Use 1 for yes, 0 for no.
50) Reverse: We can do a reverse check when unbanning. For use with
53) Reverse: We can do a reverse check when unbanning. For use with
DreamForge based IRCd's. Use 1 for yes, 0 for no.
51) Register Channels: Supports sending a channelmode for registered
54) Register Channels: Supports sending a channelmode for registered
channels. Use 1 for yes, 0 for no.
52) Registered Mode: Channelmode to set on registered channels, see the
55) Registered Mode: Channelmode to set on registered channels, see the
option above. Use 1 for yes, 0 for no.
53) vIdent: Support for including a user's ident in their vHost. Use
56) vIdent: Support for including a user's ident in their vHost. Use
1 for yes, 0 for no.
54) SVSHOLD: Support for temporarily 'holding' a nick, instead of using
57) SVSHOLD: Support for temporarily 'holding' a nick, instead of using
a nick enforcer client. Use 1 for yes, 0 for no.
55) TS on MODE: We need to send a timestamp when modes are being changed.
58) TS on MODE: We need to send a timestamp when modes are being changed.
Use 1 for yes, 0 for no.
56) NICKIP: The IP address of new users is being sent along with their
59) NICKIP: The IP address of new users is being sent along with their
hostname when new users are being introduced on the network.
Use 1 for yes, 0 for no.
57) Umode: We can use OperServ to change a user's mode. Use 1 for yes,
60) Omode: We can use OperServ to change a user's mode. Use 1 for yes,
0 for no.
58) O:LINE: We can use OperServ to give some user a temporary O:LINE.
Use 1 for yes, 0 for no.
59) Vhost On Nick: On NICK the IRCd sends the VHOST. Use 1 for yes,
61) Umode: We can use OperServ to change a user's mode. Use 1 for yes,
0 for no.
62) Vhost On Nick: On NICK the IRCd sends the VHOST. Use 1 for yes,
0 for no.
60) Change Realname: Change real name. Use 1 for yes, 0 for no.
63) Change Realname: Change real name. Use 1 for yes, 0 for no.
61) Extra Help: If the IRCd has more help for functions in ChanServ than
the default help, you should put the language string
identifier here. Use 0 for no extra help.
64) No Knock: CMODE_ that defines NO KNOCK. Use 0 for no support.
62) No Knock: CMODE_ that defines NO KNOCK. Use 0 for no support.
65) Admin Only: CMODE_ that defines Admin Only. Use 0 for no support.
63) Admin Only: CMODE_ that defines Admin Only. Use 0 for no support.
66) Default MLock: Default channelmodes for MLOCK. Use 0 for no modes.
64) Default MLock: Default channelmodes for MLOCK. Use 0 for no modes.
65) Vhost Umode: UMODE_ that indicates if the user currently has a vHost.
67) Vhost Umode: UMODE_ that indicates if the user currently has a vHost.
Use 0 for no support.
66) Flood Mode: The IRCd has a channelmode for blocking floods. Use 1 for
68) Flood Mode: The IRCd has a channelmode for blocking floods. Use 1 for
yes, 0 for no.
67) Link Mode: The IRCd has a channelmode for linking a channel to some
69) Link Mode: The IRCd has a channelmode for linking a channel to some
other channel. Use 1 for yes, 0 for no.
68) CMode F: CMODE_ that defines flood mode. Use 0 for no support.
70) CMode F: CMODE_ that defines flood mode. Use 0 for no support.
69) CMode L: CMODE_ that defines link mode. Use 0 for no support.
71) CMode L: CMODE_ that defines link mode. Use 0 for no support.
70) Check Nick ID: Should we check if a user should remain identified when
72) Check Nick ID: Should we check if a user should remain identified when
changing their nick? This is for IRCd's that remove
their registered-user mode when someone changes their
nick (like Bahamut does).
Use 1 for yes, 0 for no.
71) No Knock Requires +i: Does the No Knock channel mode require invite
73) No Knock Requires +i: Does the No Knock channel mode require invite
only channels? Use 1 for yes, 0 for no.
72) Chan Modes: If sent in CAPAB/PROTOCOL, we store it in here. This is
74) Chan Modes: If sent in CAPAB/PROTOCOL, we store it in here. This is
NULL by default.
73) Tokens: Can we use tokens to talk to the IRCd? Use 1 for yes,
75) Tokens: Can we use tokens to talk to the IRCd? Use 1 for yes,
0 for no.
74) Token Case Senstive: Are the IRCd's TOKENS/COMMANDS case sensitive?
76) Token Case Senstive: Are the IRCd's TOKENS/COMMANDS case sensitive?
Use 1 for yes, 0 for no.
75) base64 SJOIN TS: Are the timestamps sent with a SJOIN in base64? Use
77) base64 SJOIN TS: Are the timestamps sent with a SJOIN in base64? Use
1 for yes, 0 for no.
76) Supports +I: Does the IRCd support channelmode +I? Use 1 for yes,
78) Supports +I: Does the IRCd support channelmode +I? Use 1 for yes,
0 for no.
77) SJOIN Ban Char: Character used to identify bans. Use ''.
79) SJOIN Ban Char: Character used to identify bans. Use ''.
78) SJOIN Except Char: Character used to identify exceptions. use ''.
80) SJOIN Except Char: Character used to identify exceptions. Use ''.
79) SVSMODE UCMODE: Can we clear user channel modes with SVSMODE? Use
81) SJOIN Invex Char: Character used to identify invexes. Use ''.
82) SVSMODE UCMODE: Can we clear user channel modes with SVSMODE? Use
1 for yes, 0 for no.
80) SGline Enforce: Does the IRCd enforce SGLINES for us or do we need to
83) SGline Enforce: Does the IRCd enforce SGLINES for us or do we need to
do so? Use 1 for yes, 0 for no.
81) Vhost Character: The character used to represent the vHost mode, if
84) Vhost Character: The character used to represent the vHost mode, if
this is supported by the IRCd.
82) TS6: Does the IRCd support TS6? Use 1 for yes, 0 for no.
85) TS6: Does the IRCd support TS6? Use 1 for yes, 0 for no.
83) UMode +h: Does the IRCd support usermode +h for helpers?
86) UMode +h: Does the IRCd support usermode +h for helpers?
Use 1 for yes, 0 for no.
84) P10: Is this IRCd a P10-style IRCd? Use 1 for yes, 0 for no.
87) P10: Is this IRCd a P10-style IRCd? Use 1 for yes, 0 for no.
85) Character Set: Unreal passes the character set during PROTOCTL,
88) Character Set: Unreal passes the character set during PROTOCTL,
the value is stored here. Set this NULL to start.
86) Reports sync: Does the IRCd report when it's in sync (or done bursting,
89) Reports sync: Does the IRCd report when it's in sync (or done bursting,
depending on how you want to say it)? Remember to set
the sync state for servers correctly if it does.
Use 1 for yes, 0 for no.
87) Channel CIDR: Set to 1 if channel bans, excepts and invites
90) Channel CIDR: Set to 1 if channel bans, excepts and invites
support CIDR masks. Expected syntax: *!*@ip/mask.
When set to 1, anope will only parse strict CIDR masks.
IRCd's that try to correct invalid CIDR's (like nefarious)
@@ -446,10 +374,14 @@ How To Add IRCd Support
Contact the anope Dev Team if this is the case.
Set to 0 if CIDR's are not supported by your IRCd.
88) Throttle Mode: The IRCd has a channelmode for throttling joins per-user.
91) Throttle Mode: The IRCd has a channelmode for throttling joins per-user.
Use 1 for yes, 0 for no.
89) CMode j: CMODE_ that defines throttle mode. Use 0 for no support.
92) CMode j: CMODE_ that defines throttle mode. Use 0 for no support.
93) Delayed client introduction: Delay the introduction of services pseudo-
client till after we have received the uplinks
CAPAB.
So we've had this long list. Now there's a second struct to fill. This
struct isn't as long as the previous one though, so we'll handle it quite
@@ -533,7 +465,7 @@ How To Add IRCd Support
void moduleAddIRCDMsgs(void)
{
m = createMessage("NICK", anope_event_nick);
addCoreMessage(IRCD,m);
addCoreMessage(IRCD, m);
}
Each event should have a event handler if its important enough to be
@@ -569,30 +501,19 @@ How To Add IRCd Support
to read these lines and set itself up to to handle these events better.
When adding support for your ircd, take the following steps.
1) In the ircd.c find the function anope_cmd_capab(); this function will
send the CAPAB/PROTOCTL line (consult your ircd documentation for
which to send). In a single line type in the tokens that anope must
send. Here is an example of Hybrid's capab line:
/* CAPAB */
void anope_cmd_capab()
{
send_cmd(NULL, "CAPAB TS5 EX IE HOPS HUB AOPS");
}
2) In the ircd.h file make sure to place the defines (see below) that
1) In the ircd.h file make sure to place the defines (see below) that
match your IRCd's tokens; only use the ones that matter to your ircd.
Should your IRCd add new features not covered in the defined, please
contact the Anope Dev team before doing so. See README for information
on how to contact the Anope team.
3) Ensure that the CAPAB/PROTOCTL event his handled correctly.
2) Ensure that the CAPAB/PROTOCTL event his handled correctly.
A) In the function "moduleAddIRCDMsgs" making sure that you have the
following two lines:
m = createMessage("CAPAB", anope_event_capab);
addCoreMessage(IRCD,m);
addCoreMessage(IRCD, m);
B) Add the function to handle the event
+1 -1
View File
@@ -8,7 +8,7 @@ Anope MySQL Support
core, we decided to save it for 2.0. However, having your db's easily
accessible on your website is still a great feature.
PHASE 1:Anope will be able to save all it's databases to MySQL. It will
PHASE 1:Anope will be able to save all its databases to MySQL. It will
happen in conjunction with the current FFF databases. This first step is
nothing more than a MySQL dump of the databases (i.e. read-only), since
Anope will not (for now) read from Mysql. (COMPLETED)
+2 -1
View File
@@ -1,5 +1,6 @@
Highlighted News in Anope 1.8
============================================
* Added optional mail forking on non Windows OS
* Added a new and improved ./Config script.
* Added MySQL phase 2 implementation (see docs/MYSQL).
* Added NickServ registration delays.
@@ -21,7 +22,7 @@ Highlighted News in Anope 1.8
- Charybdis 1.0 or later
- DreamForge 4.6.7
- Hybrid 7 or later
- InspIRCd 1.0 or later (including 1.1)
- InspIRCd 1.x and 2.0
- Plexus 2.0 or later (including 3.0)
- PTLink 6.15 or later
- RageIRCd 2.0 or later
+1 -1
View File
@@ -167,7 +167,7 @@ Provided by Anope Dev. <team@anope.org>
2003/07/20 Fixed chanserv badword MySQL issue
2003/08/30 Allow for E/F lines when handling akilled host's joining the network
2003/07/25 Added External socket support (*VERY* EXPERIMENTAL)
2003/07/20 Made MySQL ns_id, na_id and ci_id useful by preserving it's value across updates
2003/07/20 Made MySQL ns_id, na_id and ci_id useful by preserving its value across updates
2003/07/20 Some MySQL Optimizations (MySQL 3.23.32+ required)
Provided by DrStein
+2 -2
View File
@@ -6,9 +6,9 @@ Anope Proxy Detector
1) Introduction
Anope has had a built-in proxy detector since it's first version. Recently,
Anope has had a built-in proxy detector since its first version. Recently,
however, this built-in proxy detector has been removed. This was because
the Anope team found that the proxy detector was showing it's age, and the
the Anope team found that the proxy detector was showing its age, and the
time needed to restore it to a good state wasn't worth it, also considering
that there are currently good alternatives out there which do the job as
good as it can be done already.
+61 -12
View File
@@ -1,7 +1,7 @@
Anope -- a set of IRC services for IRC networks
-----------------------------------------------
Anope - a set of IRC services for IRC networks
----------------------------------------------
Anope is 2003-2009 Anope Team <team@anope.org>.
Anope is 2003-2014 Anope Team <team@anope.org>.
Based on Epona 2000-2002 PegSoft <epona@pegsoft.net>.
Based on Services 1996-1999 Andrew Church <achurch@achurch.org>.
@@ -19,7 +19,8 @@ Table of Contents
3) Installation
4) Command Line Options
5) Messages Translation
6) Contact and Mailing List
6) Adding Your Translation Into The Source
7) Contact and Mailing List
1) Credits
@@ -91,12 +92,16 @@ Table of Contents
* Jens Voss <dukepyrolator@anope.org>
* JH <jh@irc-chat.net>
* Joris Vink <joris@anope.org>
* Lee Holmes <lethality@anope.org>
* Lucas Nussbaum <lucas@lucas-nussbaum.net>
* Mark Summers <mark@goopler.net>
* Matthew Beeching <jobe@invictachat.net>
* Naram Qashat <cyberbotx@anope.org>
* Phil Lavin <phil@anope.org>
* Pieter Bootsma <geniusdex@anope.org>
* Robin Burchell <w00t@inspircd.org>
* Sean Roe <therock247uk@anope.org>
* Sebastian V <hal9000@anope.org>
* Thomas Juberg Stensås <ShadowMaster@Shadow-Realm.org>
* Trystan .S Lee <trystan@nomadirc.net>
* openglx <openglx@brasnerd.com.br>
@@ -105,10 +110,12 @@ Table of Contents
* GeniusDex <geniusdex@anope.org> (nl.l)
* Kein <kein-of@yandex.ru> (ru.l)
* Stuff <the.stuff@gmx.de> (de.l)
* Maik Funke <Han@mefalcon.org> (de.l)
* Gabriel Acevedo H. <drstein@anope.org> (es.l)
* Janos Kapitany <sarkanyka@cjbchat.hu> (hun.l)
* Szymon S'wierkosz <szymek@adres.pl> (pl.l)
* Christopher N. <saka@epiknet.org> (fr.l)
* Yusuf Kurekci <ysfm.20@gmail.com> (tr.l)
Anope uses the strlcat() and strlcpy() functions from OpenSSH 2.5.1p2.
These functions are copyrighted by Todd C. Miller:
@@ -195,8 +202,8 @@ Table of Contents
* Bahamut 1.4.27 or later (including 1.8)
* Charybdis 1.0 or later
* DreamForge 4.6.7
* Hybrid 7 or later
* InspIRCd 1.0 or later (including 1.1)
* Hybrid 8.1 or later
* InspIRCd 1.x, and 2.0
* Plexus 2.0 or later (including 3.0)
* PTlink 6.15 or later
* RageIRCd 2.0 beta-6 or later
@@ -339,10 +346,9 @@ Table of Contents
by most speakers of that language ;)).
* When this is done, you have two solutions: either patch Services
source code so they take in account the new language file
(basically, you'll have to modify lang/Makefile, language.c and
maybe services.h), or send us the translated file so we can make
the patch and include your language in the next Anope release.
source code so they take in account the new language file (section 6),
or send us the translated file so we can make the patch and include
your language in the next Anope release.
* Note that there is a language tool on bin/langtool.pl that can aid
the verification process on newly created language files. Try to
@@ -358,7 +364,50 @@ Table of Contents
credit for it, and will even get future final major releases before
anyone else to complete the translation!... ;)
6) Contact
6) Adding Your Translation Into The Source
First, get the latest version of Anope. This can be done by doing
'git clone git://github.com/anope/anope anope-stable'
Second, Place your language file in lang/, and type 'git add file.l`. Where file is
your language file.
Next, edit lang/Makefile(.win32) and add your file into both the LANGOBJS variable and
the LANGSRCS variable (alphabetically please). Then, go down and add an entry for
it similar the others, eg:
en_us: en_us.l langcomp index
./langcomp $@.l
(which creates the english language file)
Now, edit include/services.h and search for "#define LANG_EN_US", and add your language to
the bottom of the list, eg:
#define LANG_BLAH 16 /* Blah language! */
(given the language above its number is 15).
Then change the NUM_LANGS to one more than it currently is (in this case, 17)
and add one to USED_LANGS.
Finially, edit src/language.c and add your language to the bottom of the array there, eg:
...
LANG_HUN, /* Hungarian */
LANG_PL, /* Polish */
LANG_BLAH, /* Blah language! */
};
then, go down and add it with the others using load_lang(), eg:
...
load_lang(LANG_HUN, "hun");
load_lang(LANG_PL, "pl");
load_lang(LANG_BLAH, "blah");
Now use 'git diff HEAD > language.diff` to get the changes you made, and if it looks good (test it)
email it to team@anope.org!
Please be aware we will only include a new language if there is sufficient demand for it.
Please do not be disappointed if we do not include your language within Anope.
Check Changes.lang in order for your language to continue to work on your copy of Anope upgrades.
7) Contact
For announcements and discussions about Anope, please visit our
Portal and Forums at http://www.anope.org/ -- make sure you register
+12 -19
View File
@@ -20,32 +20,25 @@ Anope for Windows
* Current Anope source:
http://sourceforge.net/project/showfiles.php?group_id=94081
If you have Visual C++ 6, 7 (.NET 2002/2003) or 8 (2005) skip ahead to step 2, else you
If you have Visual C++ 2008, 2010, or 2012 skip ahead to step 2, else you
need to download the following free components from Microsoft. Once
downloaded, install these packages.
downloaded, install one of the following, for best results use MS VC 2010.
* Microsoft Visual C++ 2008 Express Edition:
http://www.microsoft.com/express/vc/
* Microsoft Visual C++ 2010 Express
http://www.microsoft.com/visualstudio/eng/products/visual-studio-2010-express
or
* Microsoft Visual C++ 2005 Express Edition:
http://msdn.microsoft.com/vstudio/express/visualc/download/
then download and install:
* Microsoft Visual C++ 2008 Express Edition:
http://www.microsoft.com/en-us/download/details.aspx?id=14597
* Microsoft Windows PlatformSDK: (Requires WGA validation)
http://www.microsoft.com/downloads/details.aspx?FamilyId=0BAF2B35-C656-4969-ACE8-E4C0C0716ADB&displaylang=en
* Microsoft Windows Platform SDK: (Requires WGA validation)
http://www.microsoft.com/en-us/download/details.aspx?id=3138
(NOTE: Although this says for Windows Server 2003, it does infact work on all supported
versions of Windows. When installing, you should select the Custom option, and ensure
that only the top selection, and the bottom selection are checked. This will cut down
install time dramatically)
* MySQL for Windows (only needed if building with MySQL enabled):
http://dev.mysql.com/
* MySQL for Windows (only needed if building with MySQL enabled):
http://dev.mysql.com/
(NOTE: Anope can be compiled against MySQL Version 3.23 and above)
(NOTE: Anope can be compiled against MySQL Version 3.23 and above)
2) Unpack the Anope tarball with your favorite uncompression program
@@ -61,7 +54,7 @@ Anope for Windows
e.g.
cd c:\anope-trunk
cd c:\anope-stable
4) You now need to configure Anope to your requirements. At the prompt type:
+2 -3
View File
@@ -1,14 +1,13 @@
/* Declarations for command data.
*
* (C) 2003-2009 Anope Team
* (C) 2003-2014 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for furhter details.
* Please read COPYING and README for further details.
*
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
+2 -3
View File
@@ -1,14 +1,13 @@
/* Services configuration.
*
* (C) 2003-2009 Anope Team
* (C) 2003-2014 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for furhter details.
* Please read COPYING and README for further details.
*
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
+2 -3
View File
@@ -1,14 +1,13 @@
/* Database file descriptor structure and file handling routine prototypes.
*
* (C) 2003-2009 Anope Team
* (C) 2003-2014 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for furhter details.
* Please read COPYING and README for further details.
*
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
+2 -3
View File
@@ -1,15 +1,14 @@
/* Set default values for any constants that should be in include files but
*
* (C) 2003-2009 Anope Team
* (C) 2003-2014 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for furhter details.
* Please read COPYING and README for further details.
*
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
*
* $Id$
*
*/
+2 -2
View File
@@ -1,9 +1,9 @@
/* depricated.h
*
* (C) 2003-2009 Anope Team
* (C) 2003-2014 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for furhter details.
* Please read COPYING and README for further details.
*
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
+2 -4
View File
@@ -1,20 +1,18 @@
/* Include file for high-level encryption routines.
*
* (C) 2003-2009 Anope Team
* (C) 2003-2014 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for furhter details.
* Please read COPYING and README for further details.
*
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
typedef struct encryption_ {
int (*encrypt)(const char *src, int len, char *dest, int size);
int (*encrypt_in_place)(char *buf, int size);
int (*encrypt_check_len)(int passlen, int bufsize);
int (*decrypt)(const char *src, char *dest, int size);
int (*check_password)(const char *plaintext, const char *password);
+11 -3
View File
@@ -1,14 +1,13 @@
/* Prototypes and external variable declarations.
*
* (C) 2003-2009 Anope Team
* (C) 2003-2014 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for furhter details.
* Please read COPYING and README for further details.
*
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
@@ -42,11 +41,16 @@
#define EVENT_SHUTDOWN "shutdown"
#define EVENT_SIGNAL "signal"
#define EVENT_NICK_REGISTERED "nick_registered"
#define EVENT_NICK_REQUESTED "nick_requested"
#define EVENT_NICK_DROPPED "nick_dropped"
#define EVENT_NICK_FORBIDDEN "nick_forbidden"
#define EVENT_NICK_EXPIRE "nick_expire"
#define EVENT_CORE_DROPPED "nickcore_dropped"
#define EVENT_CORE_NEWDISPLAY "nickcore_newdisplay"
#define EVENT_CHANGE_NICK "change_nick"
#define EVENT_USER_LOGOFF "user_logoff"
#define EVENT_NICK_GHOSTED "nick_ghosted"
#define EVENT_NICK_RECOVERED "nick_recovered"
#define EVENT_GROUP "nick_group"
#define EVENT_NICK_IDENTIFY "nick_id"
#define EVENT_SERVER_SQUIT "server_squit"
@@ -62,3 +66,7 @@
#define EVENT_ACCESS_CLEAR "access_clear"
#define EVENT_NICK_LOGOUT "nick_logout"
#define EVENT_CHAN_KICK "chan_kick"
#define EVENT_MODLOAD "modload"
#define EVENT_MODUNLOAD "modunload"
#define EVENT_ADDCOMMAND "addcommand"
#define EVENT_DELCOMMAND "delcommand"
+18 -26
View File
@@ -1,14 +1,13 @@
/* Prototypes and external variable declarations.
*
* (C) 2003-2009 Anope Team
* (C) 2003-2014 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for furhter details.
* Please read COPYING and README for further details.
*
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
@@ -57,6 +56,7 @@ E void kill_user(char *source, char *user, char *reason);
E void bad_password(User * u);
E void sqline(char *mask, char *reason);
E void common_unban(ChannelInfo * ci, char *nick);
E void common_unban_full(ChannelInfo * ci, char *nick, boolean full);
E void common_svsmode(User * u, char *modes, char *arg);
/**** botserv.c ****/
@@ -109,6 +109,8 @@ E char *get_throttle(Channel * chan);
E void set_throttle(Channel * chan, char *value);
E char *get_redirect(Channel * chan);
E void set_redirect(Channel * chan, char *value);
E char *get_unkwn(Channel * chan);
E void set_unkwn(Channel *chan, char *value);
E void get_channel_stats(long *nrec, long *memuse);
@@ -153,6 +155,7 @@ E int entry_match_mask(Entry *e, char *mask, uint32 ip);
E Entry *elist_match(EList *list, char *nick, char *user, char *host, uint32 ip);
E Entry *elist_match_mask(EList *list, char *mask, uint32 ip);
E Entry *elist_match_user(EList *list, User *u);
E Entry *elist_match_user_full(EList *list, User *u, boolean full);
E Entry *elist_find_mask(EList *list, char *mask);
E long get_memuse(EList *list);
@@ -215,11 +218,14 @@ E char *cs_get_limit(ChannelInfo * ci);
E void cs_set_limit(ChannelInfo * ci, char *value);
E char *cs_get_redirect(ChannelInfo * ci);
E void cs_set_redirect(ChannelInfo * ci, char *value);
E char *cs_get_unkwn(ChannelInfo * ci);
E void cs_set_unkwn(ChannelInfo * ci, char *value);
E int levelinfo_maxwidth;
E ChannelInfo *makechan(const char *chan);
E int is_identified(User * user, ChannelInfo * ci);
E char *get_mlock_modes(ChannelInfo * ci, int complete);
E void CleanAccess(ChannelInfo *ci);
/**** compat.c ****/
@@ -366,6 +372,7 @@ E char *SendFrom;
E int RestrictMail;
E int MailDelay;
E int DontQuoteAddresses;
E int ForkForMail;
E int NSDefFlags;
E int NSDefLanguage;
@@ -525,7 +532,6 @@ E int rdb_save_ns_alias(NickAlias * na);
E int rdb_save_ns_req(NickRequest * nr);
E int rdb_save_cs_info(ChannelInfo * ci);
E int rdb_save_bs_core(BotInfo * bi);
E int rdb_save_bs_rdb_core(BotInfo * bi);
E int rdb_save_hs_core(HostCore * hc);
E int rdb_save_os_db(unsigned int maxucnt, unsigned int maxutime,
SList * ak, SList * sgl, SList * sql, SList * szl);
@@ -569,20 +575,14 @@ E char *DefConOffMessage;
E long unsigned int UserKey1;
E long unsigned int UserKey2;
E long unsigned int UserKey3;
/**** converter.c ****/
E int convert_ircservices_44(void);
/**** encrypt.c ****/
E char *EncModule;
E void initEncryption();
E int enc_encrypt(const char *src, int len, char *dest, int size);
E int enc_encrypt_in_place(char *buf, int size);
E int enc_encrypt_check_len(int passlen, int bufsize);
E int enc_decrypt(const char *src, char *dest, int size);
E int enc_check_password(const char *plaintext, const char *password);
E void encmodule_encrypt(int (*func)(const char *src, int len, char *dest, int size));
E void encmodule_encrypt_in_place(int (*func)(char *buf, int size));
E void encmodule_encrypt_check_len(int (*func)(int passlen, int bufsize));
E void encmodule_decrypt(int (*func)(const char *src, char *dest, int size));
E void encmodule_check_password(int (*func)(const char *plaintext, const char *password));
@@ -611,6 +611,7 @@ E void set_lastmask(User * u);
E void introduce_user(const char *user);
E int init_primary(int ac, char **av);
E int init_secondary(int ac, char **av);
E void init_tertiary();
E int servernum;
/**** ircd.c ****/
@@ -667,6 +668,7 @@ E void pmodule_cmd_chg_nick(void (*func) (char *oldnick, char *newnick));
E void pmodule_cmd_svsnick(void (*func) (char *source, char *guest, time_t when));
E void pmodule_cmd_vhost_on(void (*func) (char *nick, char *vIdent, char *vhost));
E void pmodule_cmd_connect(void (*func) (int servernum));
E void pmodule_cmd_bob(void (*func) ());
E void pmodule_cmd_svshold(void (*func) (char *nick));
E void pmodule_cmd_release_svshold(void (*func) (char *nick));
E void pmodule_cmd_unsgline(void (*func) (char *mask));
@@ -689,6 +691,7 @@ E void pmodule_set_umode(void (*func) (User * user, int ac, char **av));
E void pmodule_valid_nick(int (*func) (char *nick));
E void pmodule_valid_chan(int (*func) (char *chan));
E void pmodule_flood_mode_check(int (*func) (char *value));
E void pmodule_jointhrottle_mode_check(int (*func) (char *value));
E void pmodule_ircd_var(IRCDVar * ircdvar);
E void pmodule_ircd_cap(IRCDCAPAB * cap);
E void pmodule_ircd_version(char *version);
@@ -707,7 +710,7 @@ E void pmodule_secret_cmode(int mode);
E void pmodule_private_cmode(int mode);
E void pmodule_key_mode(int mode);
E void pmodule_limit_mode(int mode);
E void pmodule_jointhrottle_mode_check(int (*func) (char *value));
E void pmodule_permchan_mode(int mode);
E int anope_get_secret_mode();
E int anope_get_invite_mode();
@@ -716,6 +719,7 @@ E int anope_get_limit_mode();
E int anope_get_private_mode();
E int anope_get_invis_mode();
E int anope_get_oper_mode();
E int anope_get_permchan_mode();
/**** language.c ****/
@@ -813,6 +817,7 @@ E void memoserv(User * u, char *buf);
E void check_memos(User * u);
E MemoInfo *getmemoinfo(const char *name, int *ischan, int *isforbid);
E void memo_send(User * u, char *name, char *text, int z);
E void memo_send_from(User * u, char *name, char *text, int z, char *source);
E int delmemo(MemoInfo * mi, int num);
/**** messages.c ****/
@@ -1173,6 +1178,7 @@ E int is_excepted(ChannelInfo * ci, User * user);
E int is_excepted_mask(ChannelInfo * ci, char *mask);
E int match_usermask(const char *mask, User * user);
E int match_usermask_full(const char *mask, User * user, boolean full);
E int match_userip(const char *mask, User * user, char *host);
E void split_usermask(const char *mask, char **nick, char **user,
char **host);
@@ -1239,22 +1245,17 @@ E void anope_cmd_376(char *source); /* 376 */
E void anope_cmd_391(char *source, char *timestr); /* 391 */
E void anope_cmd_401(char *source, char *who); /* 401 */
E void anope_cmd_akill(char *user, char *host, char *who, time_t when, time_t expires, char *reason); /* AKILL */
E void anope_cmd_capab(); /* CAPAB */
E void anope_cmd_chghost(char *nick, char *vhost); /* CHGHOST */
E void anope_cmd_chgident(char *nick, char *vIdent); /* CHGIDENT */
E void anope_cmd_vhost_on(char *nick, char *vIdent, char *vhost); /* CHGHOST + CHGIDENT */
E void anope_cmd_vhost_off(User *u);
E void anope_cmd_connect(int servernum); /* Connect */
E void anope_cmd_ea(); /* EA */
E void anope_cmd_bob();
E void anope_cmd_global(char *source, const char *fmt, ...); /* GLOBOPS */
E void anope_cmd_invite(char *source, char *chan, char *nick); /* INVITE */
E void anope_cmd_join(char *user, char *channel, time_t chantime); /* JOIN */
E void anope_cmd_kick(char *source, char *chan, char *user, const char *fmt, ...); /* KICK */
E void anope_cmd_mode(char *source, char *dest, const char *fmt, ...); /* MODE */
E void anope_cmd_tmode(char *source, char *dest, const char *fmt, ...); /* TMODE */
E void anope_cmd_unban(char *name, char *nick); /* MODE -b */
E void anope_cmd_bot_chan_mode(char *nick, char *chan); /* MODE BotServ */
E void anope_cmd_netinfo(int ac, char **av); /* NETINFO */
E void anope_cmd_nick(char *nick, char *name, char *mode); /* NICK */
E void anope_cmd_chg_nick(char *oldnick, char *newnick); /* NICK */
E void anope_cmd_bot_nick(char *nick, char *user,char *host,char *real,char *modes); /* NICK */
@@ -1264,25 +1265,19 @@ E void anope_cmd_notice_ops(char *source, char *dest, const char *fmt, ...);
E void anope_cmd_notice2(char *source, char *dest, char *msg); /* NOTICE */
E void anope_cmd_serv_notice(char *source, char *dest, char *msg); /* NOTICE */
E void anope_cmd_part(char *nick, char *chan, const char *fmt, ...); /* PART */
E void anope_cmd_pass(char *pass); /* PASS */
E void anope_cmd_pong(char *servname, char *who); /* PONG */
E void anope_cmd_privmsg(char *source, char *dest, const char *fmt, ...); /* PRIVMSG */
E void anope_cmd_action(char *source, char *dest, const char *fmt, ...); /* PRIVMSG */
E void anope_cmd_privmsg2(char *source, char *dest, char *msg); /* PRIVMSG */
E void anope_cmd_serv_privmsg(char *source, char *dest, char *msg); /* PRIVMSG */
E void anope_cmd_protoctl(); /* PROTOCTL */
E void anope_cmd_quit(char *source, const char *fmt, ...); /* QUIT */
E void anope_cmd_remove_akill(char *user, char *host); /* RAKILL */
E void anope_cmd_server(char *servname, int hop, char *descript); /* SERVER */
E void anope_cmd_sgline(char *mask, char *reason); /* SGLINE */
E void anope_cmd_sqline(char *mask, char *reason); /* SQLINE */
E void anope_cmd_szline(char *mask, char *reason, char *whom); /* SZLINE */
E void anope_cmd_squit(char *servname, char *message); /* SQUIT */
E void anope_cmd_svinfo(); /* SVINFO */
E void anope_cmd_svsadmin(char *server, int set); /* SVSADMIN */
E void anope_cmd_svshold(char *nick); /* SVSHOLD */
E void anope_cmd_release_svshold(char *nick); /* SVSHOLD */
E void anope_cmd_svsinfo(); /* SVSINFO */
E void anope_cmd_svsjoin(char *source, char *nick,char *chan, char *param); /* SVSJOIN */
E void anope_cmd_svskill(char *source,char *user, const char *fmt, ...); /* SVSKILL */
E void anope_cmd_svsmode(User * u, int ac, char **av); /* SVSMODE */
@@ -1297,8 +1292,6 @@ E void anope_cmd_unsgline(char *mask); /* UNSGLINE */
E void anope_cmd_unsqline(char *user); /* UNSQLINE */
E void anope_cmd_unszline(char *mask); /* UNSZLINE */
E void anope_cmd_eob(); /* EOB - end of burst */
E void anope_cmd_burst(); /* BURST - use eob to send burst 0 */
E void anope_cmd_svswatch(char *sender, char *nick, char *parm);
E void anope_cmd_ctcp(char *source, char *dest, const char *fmt, ...); /* CTCP */
EI int anope_event_482(char *source, int ac, char **av);
@@ -1346,7 +1339,6 @@ EI int anope_event_eob(char *source, int ac, char **av);
EI int anope_event_pass(char *source, int ac, char **av);
EI int anope_event_netinfo(char *source, int ac, char **av);
EI int anope_event_error(char *source, int ac, char **av);
EI int anope_event_eb(char *source, int ac, char **av);
EI int anope_event_netctrl(char *source, int ac, char **av);
EI int anope_event_notice(char *source, int ac, char **av);
EI int anope_event_snotice(char *source, int ac, char **av);
+1 -2
View File
@@ -1,6 +1,6 @@
# Make file for Win32
#
# (C) 2003-2009 Anope Team
# (C) 2003-2014 Anope Team
# Contact us at team@anope.org
#
# Please read COPYING and README for further details.
@@ -8,7 +8,6 @@
# Based on the original code of Epona by Lara.
# Based on the original code of Services by Andy Church.
#
# $Id$
#
###########################################################################
+2 -3
View File
@@ -1,14 +1,13 @@
/* Declarations of IRC message structures, variables, and functions.
*
* (C) 2003-2009 Anope Team
* (C) 2003-2014 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for furhter details.
* Please read COPYING and README for further details.
*
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
+3 -4
View File
@@ -1,14 +1,13 @@
/* Modular support
*
* (C) 2003-2009 Anope Team
* (C) 2003-2014 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for furhter details.
* Please read COPYING and README for further details.
*
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*/
#ifndef MODULES_H
@@ -313,7 +312,7 @@ MDE int moduleAddCommand(CommandHash *cmdTable[], Command *c, int pos);
MDE int addCommand(CommandHash *cmdTable[], Command *c,int pos);
MDE int delCommand(CommandHash *cmdTable[], Command *c,char *mod_name); /* Del a command from a cmd table */
MDE int moduleDelCommand(CommandHash *cmdTable[],char *name); /* Del a command from a cmd table */
Command *findCommand(CommandHash *cmdTable[], const char *name); /* Find a command */
MDE Command *findCommand(CommandHash *cmdTable[], const char *name); /* Find a command */
/*************************************************************************/
+2 -3
View File
@@ -1,14 +1,13 @@
/* Include extra includes needed by most/all pseudo-clients.
*
* (C) 2003-2009 Anope Team
* (C) 2003-2014 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for furhter details.
* Please read COPYING and README for further details.
*
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
+29 -9
View File
@@ -1,9 +1,9 @@
/*
*
* (C) 2003-2009 Anope Team
* (C) 2003-2014 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for furhter details.
* Please read COPYING and README for further details.
*
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
@@ -87,6 +87,7 @@
#include <winsock.h>
#include <windows.h>
#endif
#define h_addr h_addr_list[0] /* for backwards compatability, see man gethostbyname */
#include <sys/stat.h> /* for umask() on some systems */
#include <sys/types.h>
@@ -265,6 +266,10 @@ typedef enum { false, true } boolean;
/* Protocol tweaks */
/* If the IRCd supports TS6 / p10 and it s being used, this selects the uid instead of the nick.. */
#define GET_USER(u) ((ircd->p10 || (UseTS6 && ircd->ts6)) ? (u->uid ? u->uid : u->nick) : u->nick)
#define GET_BOT(bot) ((ircd->p10 || (UseTS6 && ircd->ts6)) ? (find_uid(bot) ? find_uid(bot)->uid : bot) : bot)
typedef struct ircdvars_ IRCDVar;
typedef struct ircdcapab_ IRCDCAPAB;
@@ -319,7 +324,12 @@ struct ircdvars_ {
int admin; /* Has Admin */
int chansqline; /* Supports Channel Sqlines */
int quitonkill; /* IRCD sends QUIT when kill */
int svsmode_unban; /* svsmode can be used to unban */
int svsmode_unban; /* svsmode can be used to unban
* Note the core no longer uses
* this because it can lead to
* users gaining other users IPs.
* It is kept for API compatability.
*/
int protect; /* Has protect modes */
int reversekickcheck; /* Can reverse ban check */
int chanreg; /* channel mode +r for register */
@@ -359,10 +369,11 @@ struct ircdvars_ {
char *nickchars; /* character set */
int sync; /* reports sync state */
int cidrchanbei; /* channel bans/excepts/invites support CIDR (syntax: +b *!*@192.168.0.0/15)
* 0 for no support, 1 for strict cidr support, anything else
* for ircd specific support (nefarious only cares about first /mask) */
int jmode; /* +j join throttle */
uint32 chan_jmode; /* Mode */
* 0 for no support, 1 for strict cidr support, anything else
* for ircd specific support (nefarious only cares about first /mask) */
int jmode; /* +j join throttle */
uint32 chan_jmode; /* Mode */
int delay_cl_intro; /*Delay client introduction till after receiving CAPAB. */
};
struct ircdcapab_ {
@@ -485,6 +496,8 @@ struct memo_ {
ModuleData *moduleData; /* Module saved data attached to the Memo */
#ifdef USE_MYSQL
uint32 id; /* Database ID; see mysql.c */
#else
uint32 notused; /* ABI compat with no mysql */
#endif
};
@@ -865,6 +878,7 @@ struct user_ {
char *host; /* User's real hostname */
char *hostip; /* User's IP number */
char *vhost; /* User's virtual hostname */
char *chost; /* User's cloaked hostname */
char *vident; /* User's virtual ident */
char *realname; /* Realname */
Server *server; /* Server user is connected to */
@@ -1052,6 +1066,9 @@ typedef struct ignore_data {
struct mailinfo_ {
FILE *pipe;
/* Used only with mail forking */
FILE *writepipe;
FILE *readpipe;
User *sender;
NickCore *recipient;
NickRequest *recip;
@@ -1191,6 +1208,7 @@ typedef struct ircd_proto_ {
void (*ircd_cmd_svsnick)(char *source, char *guest, time_t when);
void (*ircd_cmd_vhost_on)(char *nick, char *vIdent, char *vhost);
void (*ircd_cmd_connect)(int servernum);
void (*ircd_cmd_bob)();
void (*ircd_cmd_svshold)(char *nick);
void (*ircd_cmd_release_svshold)(char *nick);
void (*ircd_cmd_unsgline)(char *mask);
@@ -1224,6 +1242,7 @@ typedef struct ircd_modes_ {
int chan_private;
int chan_key;
int chan_limit;
int chan_perm;
} IRCDModes;
@@ -1309,9 +1328,10 @@ typedef struct ircd_modes_ {
#define LANG_RU 13 /* Russian */
#define LANG_HUN 14 /* Hungarian */
#define LANG_PL 15 /* Polish */
#define LANG_JA_UTF8 16 /* Japanese (UTF-8 encoding) */
#define NUM_LANGS 16 /* Number of languages */
#define USED_LANGS 13 /* Number of languages provided */
#define NUM_LANGS 17 /* Number of languages */
#define USED_LANGS 14 /* Number of languages provided */
#define DEF_LANGUAGE LANG_EN_US
+2 -3
View File
@@ -1,14 +1,13 @@
/* Header for Services list handler.
*
* (C) 2003-2009 Anope Team
* (C) 2003-2014 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for furhter details.
* Please read COPYING and README for further details.
*
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
+2 -2
View File
@@ -1,9 +1,9 @@
/*
*
* (C) 2004-2008 Anope Team
* (C) 2004-2014 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for furhter details.
* Please read COPYING and README for further details.
*
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
+2 -3
View File
@@ -1,14 +1,13 @@
/* Time-delay routine include stuff.
*
* (C) 2003-2009 Anope Team
* (C) 2003-2014 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for furhter details.
* Please read COPYING and README for further details.
*
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
+1 -1
View File
@@ -27,7 +27,7 @@ fi
cat >version.h <<EOF
/* Version information for Services.
*
* (C) 2003-2009 Anope Team
* (C) 2003-2014 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and CREDITS for further details.
+5 -3
View File
@@ -1,9 +1,9 @@
/* version file handler for win32.
*
* (C) 2003-2009 Anope Team
* (C) 2003-2014 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for furhter details.
* Please read COPYING and README for further details.
*
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
@@ -161,6 +161,8 @@ void write_version(FILE * fd)
char buf[1024];
short until_eof = 0;
if (!fdin)
return;
while (fgets(buf, 1023, fdin)) {
strip(buf);
@@ -173,7 +175,7 @@ void write_version(FILE * fd)
if (!strcmp(buf, "cat >version.h <<EOF"))
until_eof = 1;
}
fclose(fdin);
}
void parse_line(FILE * fd, char *line)
+89 -54
View File
@@ -1,7 +1,7 @@
//
// install.js - Windows Configuration
//
// (C) 2003-2009 Anope Team
// (C) 2003-2014 Anope Team
// Contact us at team@anope.org
//
// This program is free but copyrighted software; see the file COPYING for
@@ -10,7 +10,6 @@
// Based on the original code of Epona by Lara.
// Based on the original code of Services by Andy Church.
//
// $Id$
//
var anopeVersion = "Unknown";
@@ -59,8 +58,8 @@ var installerQuestions = [
f.WriteLine("MYSQL_C=mysql.c");
f.WriteLine("MYSQL_O=mysql.obj");
f.WriteLine("BASE_CFLAGS=/D USE_MYSQL /D USE_RDB $(BASE_CFLAGS) /D HAVE_MYSQL_MYSQL_H");
f.WriteLine("MYPASQL_BUILD=$(CC) /LD $(MYSQL_INC_PATH) src\\mypasql.c /link $(MYSQL_LIB_PATH) $(LFLAGS) /DEF:src\mypasql.def libmysql.lib zlib.lib ws2_32.lib advapi32.lib /NODEFAULTLIB:LIBCMTD.lib");
f.WriteLine("LIBS=$(LIBS) libmysql.lib zlib.lib");
f.WriteLine("MYPASQL_BUILD=$(CC) /LD $(MYSQL_INC_PATH) src\\mypasql.c /link $(MYSQL_LIB_PATH) $(LFLAGS) /DEF:src\mypasql.def libmysql.lib ws2_32.lib advapi32.lib /NODEFAULTLIB:LIBCMTD.lib");
f.WriteLine("LIBS=$(LIBS) libmysql.lib");
}
else {
f.WriteLine("USE_MYSQL=0");
@@ -72,7 +71,68 @@ var installerQuestions = [
var buildPackages = [
{
'name' : 'Microsoft Visual Studio 2008 (New PSDK)',
'name' : 'Microsoft Visual Studio 2012',
'libpaths' : [
'Program Files\\Microsoft Visual Studio 11.0\\VC\\lib',
'Program Files (x86)\\Microsoft Visual Studio 11.0\\VC\\lib',
'Program Files\\Microsoft SDKs\\Windows\\v7.0\\Lib',
'Program Files (x86)\\Microsoft SDKs\\Windows\\v7.0\\Lib',
],
'incpaths': [
'Program Files\\Microsoft Visual Studio 11.0\\VC\\include',
'Program Files (x86)\\Microsoft Visual Studio 11.0\\VC\\include',
'Program Files\\Microsoft SDKs\\Windows\\v7.0\\Include',
'Program Files (x86)\\Microsoft SDKs\\Windows\\v7.0\\Include',
],
'nmake' : [
'Program Files\\Microsoft Visual Studio 11.0\\VC\\bin',
'Program Files (x86)\\Microsoft Visual Studio 11.0\\VC\\bin',
],
'additional_switches' : [ '/w' ],
'installedDrive' : 'C'
},
{
'name' : 'Microsoft Visual Studio 2010 (64bit)',
'libpaths' : [
'Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\lib',
'Program Files\\Microsoft SDKs\\Windows\\v7.1\\Lib',
'Program Files\\Microsoft SDKs\\Windows\\v7.0\\Lib',
'Program Files (x86)\\Microsoft SDKs\\Windows\\v7.0A\\Lib'
],
'incpaths': [
'Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include',
'Program Files\\Microsoft SDKs\\Windows\\v7.1\\Include',
'Program Files\\Microsoft SDKs\\Windows\\v7.0\\Include',
'Program Files (x86)\\Microsoft SDKs\\Windows\\v7.0A\\Include'
],
'nmake' : [
'Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\bin',
],
'additional_switches' : [ '/w' ],
'installedDrive' : 'C'
},
{
'name' : 'Microsoft Visual Studio 2010',
'libpaths' : [
'Program Files\\Microsoft Visual Studio 10.0\\VC\\lib',
'Program Files\\Microsoft SDKs\\Windows\\v7.1\\Lib',
'Program Files\\Microsoft SDKs\\Windows\\v7.0\\Lib',
'Program Files\\Microsoft SDKs\\Windows\\v7.0A\\Lib'
],
'incpaths' : [
'Program Files\\Microsoft Visual Studio 10.0\\VC\\include',
'Program Files\\Microsoft SDKs\\Windows\\v7.1\\Include',
'Program Files\\Microsoft SDKs\\Windows\\v7.0\\Include',
'Program Files\\Microsoft SDKs\\Windows\\v7.0A\\Include'
],
'nmake' : [
'Program Files\\Microsoft Visual Studio 10.0\\VC\\bin',
],
'additional_switches' : [ '/w' ],
'installedDrive' : 'C'
},
{
'name' : 'Microsoft Visual Studio 2008',
'libpaths' : [
'Program Files\\Microsoft Visual Studio 9.0\\VC\\Lib',
'Program Files\\Microsoft Platform SDK for Windows Server 2003 R2\\Lib'
@@ -82,13 +142,13 @@ var buildPackages = [
'Program Files\\Microsoft Platform SDK for Windows Server 2003 R2\\Include'
],
'nmake' : [
'Program Files\\Microsoft Platform SDK for Windows Server 2003 R2\\Bin',
'Program Files\\Microsoft Platform SDK for Windows Server 2003 R2\\Bin',
],
'additional_switches' : [ '/w' ],
'installedDrive' : 'C'
},
{
'name' : 'Microsoft Visual Studio 2008 (64bit) (New PSDK)',
{
'name' : 'Microsoft Visual Studio 2008 (64bit)',
'libpaths' : [
'Program Files (x86)\\Microsoft Visual Studio 9.0\\VC\\Lib',
'Program Files\\Microsoft Platform SDK for Windows Server 2003 R2\\Lib'
@@ -105,7 +165,7 @@ var buildPackages = [
},
{
'name' : 'Microsoft Visual Studio 2005 (New PSDK)',
'name' : 'Microsoft Visual Studio 2005',
'libpaths' : [
'Program Files\\Microsoft Visual Studio 8\\VC\\Lib',
'Program Files\\Microsoft Platform SDK for Windows Server 2003 R2\\Lib'
@@ -120,8 +180,8 @@ var buildPackages = [
],
'additional_switches' : [
'/w'
],
'installedDrive' : 'C'
],
'installedDrive' : 'C'
},
{
'name' : 'Microsoft Visual Studio 2005 (Old PSDK)',
@@ -139,50 +199,26 @@ var buildPackages = [
],
'additional_switches' : [
'/w'
],
'installedDrive' : 'C'
},
{
'name' : 'Microsoft Visual Studio .NET 2003',
'libpaths' : [
'Program Files\\Microsoft Visual Studio .NET 2003\\VC7\\Lib',
'Program Files\\Microsoft Visual Studio .NET 2003\\PlatformSDK\\Lib'
],
'incpaths' : [
'Program Files\\Microsoft Visual Studio .NET 2003\\VC7\\Include',
'Program Files\\Microsoft Visual Studio .NET 2003\\PlatformSDK\\Include'
],
'nmake' : [
'Program Files\\Microsoft Visual Studio .NET 2003\\VC7\\Bin',
''
],
'additional_switches' : false,
'installedDrive' : 'C'
},
{
'name' : 'Microsoft Visual Studio 98',
'libpaths' : [
'Program Files\\Microsoft Visual Studio\\VC98\\Lib'
],
'incpaths' : [
'Program Files\\Microsoft Visual Studio\\VC98\\Include'
],
'nmake' : [
'Program Files\\Microsoft Visual Studio\\VC98\\Bin',
''
],
'additional_switches' : [
'/QIfist'
],
'installedDrive' : 'C'
],
'installedDrive' : 'C'
}
];
var mysqlVersions = [
{
'name' : 'MySQL 5.5',
'libpaths' : [
'Program Files\\MySQL\\MySQL Server 5.5\\Lib'
],
'incpaths' : [
'Program Files\\MySQL\\MySQL Server 5.5\\Include'
],
'dllfile' : 'Program Files\\MySQL\\MySQL Server 5.5\\bin\\libmysql.dll',
'installedDrive' : 'C'
},
{
'name' : 'MySQL 5.1',
'libpaths' : [
@@ -191,7 +227,7 @@ var buildPackages = [
'incpaths' : [
'Program Files\\MySQL\\MySQL Server 5.1\\Include'
],
'dllfile' : 'Program Files\\MySQL\\MySQL Server 5.1\\bin\\libmsyql.dll',
'dllfile' : 'Program Files\\MySQL\\MySQL Server 5.1\\bin\\libmysql.dll',
'installedDrive' : 'C'
},
@@ -316,7 +352,7 @@ var buildPackages = [
if (!findCompiler()) {
WScript.Echo("\nERROR: No suitable build tools were found!");
WScript.Echo("Please ensure you have downloaded and installed a version of Visual C++ and/or PlatformSDK.\n");
WScript.Echo("For more information on the tools needed to build Anope on Windows, see:\nhttp://anope.info/wiki/Windows#Compiling\n");
WScript.Echo("For more information on the tools needed to build Anope on Windows, see:\nhttp://wiki.anope.org/index.php/Windows:1.8#Compiling\n");
}
else {
WScript.Echo("\nBuild tools were found successfully!\n");
@@ -510,8 +546,7 @@ var buildPackages = [
if (noPSDK) {
WScript.Echo("Some of the build tools were detected on your computer, but the essential PlatformSDK components were missing.");
WScript.Echo("You will need to download the PlatformSDK from the URL below, ensuring that the Core Windows files, and Debugging Tools are installed.");
WScript.Echo("For more details on installing the PlatformSDK, visit http://anope.info/wiki/Windows#Compiling\n");
WScript.Echo("PSDK: http://download.microsoft.com/download/a/5/f/a5f0d781-e201-4ab6-8c6a-9bb4efed1e1a/PSDK-x86.exe\n");
WScript.Echo("For more details on installing the PlatformSDK, visit http://wiki.anope.org/index.php/Windows:1.8#Compiling\n");
}
return false;
}
+4 -2
View File
@@ -6,8 +6,8 @@ MAKEARGS = 'CFLAGS=${CFLAGS}' 'CC=${CC}' 'ANOPELIBS=${ANOPELIBS}' \
'TOUCH=${TOUCH}' 'SHELL=${SHELL}' 'DATDEST=${DATDEST}' \
'RUNGROUP=${RUNGROUP}' 'USE_MODULES=${USE_MODULES}'
LANGOBJS = cat de en_us es fr gr hun it nl pl pt ru tr
LANGSRCS = cat.l de.l en_us.l es.l fr.l gr.l hun.l it.l nl.l pl.l pt.l ru.l tr.l
LANGOBJS = cat de en_us es fr gr hun it ja_utf8 nl pl pt ru tr
LANGSRCS = cat.l de.l en_us.l es.l fr.l gr.l hun.l it.l ja_utf8.l nl.l pl.l pt.l ru.l tr.l
LANGCOMP = ./langcomp
#LANGCOMP = ./langcomp -w
@@ -59,6 +59,8 @@ hun: hun.l langcomp index
./langcomp $@.l
it: it.l langcomp index
./langcomp $@.l
ja_utf8: ja_utf8.l langcomp index
./langcomp $@.l
nl: nl.l langcomp index
./langcomp $@.l
pl: pl.l langcomp index
+5 -2
View File
@@ -3,8 +3,8 @@
include ../Makefile.inc.win32
LANGOBJS = cat de en_us es fr hun gr nl pl pt tr it ru
LANGSRCS = cat de en_us.l es fr.l hun.l gr.l nl.l pl.l pt.l tr.l it.l ru.l
LANGOBJS = cat de en_us es fr hun gr nl pl pt tr it ja_utf8 ru
LANGSRCS = cat de en_us.l es fr.l hun.l gr.l nl.l pl.l pt.l tr.l it.l ja_utf8.l ru.l
LANGCOMP = ./langcomp
#LANGCOMP = ./langcomp -w
@@ -26,6 +26,7 @@ install: all
-copy pt ..\$(DATDEST)\languages
-copy tr ..\$(DATDEST)\languages
-copy it ..\$(DATDEST)\languages
-copy ja_utf8 ..\$(DATDEST)\languages
-copy ru ..\$(DATDEST)\languages
clean:
@@ -59,6 +60,8 @@ tr: tr.l langtool.exe langcomp.exe index
langcomp $@.l
it: it.l langtool.exe langcomp.exe index
langcomp $@.l
ja_utf8: ja_utf8.l langtool.exe langcomp.exe index
langcomp $@.l
ru: ru.l langtool.exe langcomp.exe index
langcomp $@.l
+15 -21
View File
@@ -1,9 +1,9 @@
# Catalan Language File.
#
# (C) 2003-2009 Anope Team
# (C) 2003-2014 Anope Team
# Contact us at team@anope.org
#
# Please read COPYING and README for furhter details.
# Please read COPYING and README for further details.
#
# Based on the original code of Epona by Lara.
# Based on the original code of Services by Andy Church.
@@ -679,7 +679,7 @@ NICK_SASET_HIDE_STATUS_OFF
# SASET MSG responses
NICK_SASET_MSG_SYNTAX
SSAET nickname PRIVATE {ON | OFF}
SSAET nickname MSG {ON | OFF}
NICK_SASET_MSG_ON
Services will now reply to %s with messages.
NICK_SASET_MSG_OFF
@@ -707,7 +707,7 @@ NICK_SASET_LANGUAGE_SYNTAX
NICK_SASET_LANGUAGE_UNKNOWN
Unknown language number %d. Type %R%s HELP SET LANGUAGE for a list of languages.
NICK_SASET_LANGUAGE_CHANGED
Language changed to Catalan.
Language for %s changed to %s.
# ACCESS responses
@@ -3287,7 +3287,7 @@ OPER_HELP_DEFCON
Syntax: DEFCON [1|2|3|4|5]
The defcon system can be used to implement a pre-defined
set of restrictions to services useful during an attemtped
set of restrictions to services useful during an attempted
attack on the network.
OPER_HELP_DEFCON_NO_NEW_CHANNELS
@@ -3423,14 +3423,12 @@ NEWS_HELP_LOGON
Edits or displays the list of logon news messages. When a
user connects to the network, these messages will be sent
to them. (However, no more than %s messages will be
to them. (However, no more than %d messages will be
sent in order to avoid flooding the user. If there are
more news messages, only the most recent will be sent.)
NewsCount can be configured in services.conf.
LOGONNEWS LIST may be used by any IRC operator to list the
current news messages. ADD and DEL may only be used by
Services admins.
LOGONNEWS may only be used by Services admins.
NEWS_HELP_OPER
Syntax: OPERNEWS ADD text
@@ -3439,14 +3437,12 @@ NEWS_HELP_OPER
Edits or displays the list of oper news messages. When a
user opers up (with the /OPER command), these messages will
be sent to them. (However, no more than %s messages will
be sent to them. (However, no more than %d messages will
be sent in order to avoid flooding the user. If there are
more news messages, only the most recent will be sent.)
NewsCount can be configured in services.conf.
OPERNEWS LIST may be used by any IRC operator to list the
current oper news messages. ADD and DEL may only be used by
Services admins.
OPERNEWS may only be used by Services admins.
NEWS_HELP_RANDOM
Sintaxis: RANDOMNEWS ADD text
@@ -3457,9 +3453,7 @@ NEWS_HELP_RANDOM
Quant un usuari es connecta a la xarxa, un (i nomès un) dels
missatges a l'atzar sera escollit i enviat a ells.
RANDOMNEWS LIST pot ser utilitzat per qualsevol operador
d'IRC per llistar la llista de notícies actual. ADD i DEL
nomès pot ser utilitzats per administradors de serveis.
RANDOMNEWS may only be used by Services admins.
###########################################################################
#
@@ -5705,7 +5699,7 @@ OPER_HELP_CMD_SHUTDOWN
OPER_HELP_CMD_DEFCON
DEFCON Manipulate the DefCon system
OPER_HELP_CMD_CHANKILL
CHANKILL Kill all users on a specific channel
CHANKILL AKILL all users on a specific channel
OPER_HELP_CMD_OLINE
OLINE Give Operflags to a certain user
OPER_HELP_CMD_UMODE
@@ -6733,9 +6727,9 @@ HOST_SET_IDENTTOOLONG
HOST_NOREG
User %s not found in the nickserv db.
HOST_SET_SYNTAX
Syntax %R%s set <nick> <hostmask>.
SET <nick> <hostmask>.
HOST_SETALL_SYNTAX
Syntax %R%s setall <nick> <hostmask>.
SETALL <nick> <hostmask>.
HOST_DENIED
Access Denied.
HOST_NOT_ASSIGNED
@@ -6771,9 +6765,9 @@ HOST_NO_VIDENT
#
###########################################################################
HOST_GROUP
All vhost's in the group %s have been set to %s
All vhosts in the group %s have been set to %s
HOST_IDENT_GROUP
All vhost's in the group %s have been set to %s@%s
All vhosts in the group %s have been set to %s@%s
###########################################################################
#
+65 -74
View File
@@ -1,9 +1,9 @@
# Deutsches Language file.
#
# (C) 2003-2009 Anope Team
# (C) 2003-2014 Anope Team
# Contact us at team@anope.org
#
# Please read COPYING and README for furhter details.
# Please read COPYING and README for further details.
#
# Based on the original code of Epona by Lara.
# Based on the original code of Services by Andy Church.
@@ -11,6 +11,9 @@
# Translated by chemical <chem@gmx.net>,shine <dh@shinewelt.de> bis 28.02.2003
# - Solltest du irgendwelche Rechtschreibfehler oder sonstige
# Verbesserungsvorschläge haben, immer her damit!
#
# INFO ::: Letzte Änderung: 29.01.2011 -- Han` -- Han@mefalcon.org --
#
##########################################################################
#
# This program is free but copyrighted software; see the file COPYING for
@@ -47,13 +50,6 @@
# (including empty lines). This has to be a tab, not spaces.
##########################################################################
#
# INFO ::: Letzte Änderung: 05.07.2009 -- Han` -- Han@mefalcon.org --
#
##########################################################################
###########################################################################
#
# Name of this language
#
###########################################################################
@@ -317,10 +313,13 @@ END_OF_ANY_LIST
# Automatic messages
LIST_INCORRECT_RANGE
Incorrect range specified. The correct syntax is #from-to.
Du hast einen fehlerhaften Bereich angegeben.
Die richtige Schreibweise ist #von-bis.
Beispiel: #1-50 oder #1-100
CS_LIST_INCORRECT_RANGE
To search for channels starting with #, search for the channel
name without the #-sign prepended (anope instead of #anope).
Um nach Channeln zu suchen die mit # beginnen, suche nach Channelnamen
ohne das #-Symbol voranszutellen (anope anstatt #anope).
Wildcards können verwendet werden.
###########################################################################
#
@@ -693,7 +692,7 @@ NICK_SASET_HIDE_STATUS_OFF
# SASET MSG responses
NICK_SASET_MSG_SYNTAX
SASET nickname PRIVATE {ON | OFF}
SASET nickname MSG {ON | OFF}
NICK_SASET_MSG_ON
Die Services werden jetzt %s mit messages antworten.
NICK_SASET_MSG_OFF
@@ -722,7 +721,7 @@ NICK_SASET_LANGUAGE_UNKNOWN
Unbekannte Sprachen-Nummer %d.
Tippe %R%s HELP SET LANGUAGE um eine Liste aller verfügbaren Sprachen zu erhalten.
NICK_SASET_LANGUAGE_CHANGED
Sprache wurde geändert zu Deutsch.
Language for %s changed to %s.
# ACCESS responses
@@ -787,7 +786,7 @@ NICK_INFO_EMAIL
NICK_INFO_VHOST
vHost: %s
NICK_INFO_VHOST2
vHost: %s@%s
vHost: %s@%s
NICK_INFO_ICQ
ICQ #: %d
NICK_INFO_GREET
@@ -857,7 +856,7 @@ NICK_GLIST_FOOTER
NICK_GLIST_REPLY
%c%s
NICK_GLIST_REPLY_ADMIN
%c%s (wird in %s auslaufen)
%c%s (wird am %s auslaufen)
# RECOVER responses
NICK_RECOVER_SYNTAX
@@ -1129,6 +1128,8 @@ CHAN_LOGOUT_SUCCEEDED
Der User %s wurde vom Channel %s ausgeloggt.
CHAN_LOGOUT_ALL_SUCCEEDED
Alle identifizierten User wurden vom Channel ausgeloggt %s (außer dem Channel Founder).
CHAN_LOGOUT_FOUNDER_FAILED
You may not log out of %s (you are founder).
# DROP responses
CHAN_DROP_SYNTAX
@@ -2618,7 +2619,7 @@ OPER_SVSNICK_NEWNICK
OPER_ADMIN_SYNTAX
ADMIN {ADD|DEL|LIST|CLEAR} [Nickname | entry-liste]
OPER_ADMIN_SKELETON
Services sind im Basis-Modus. Das ADMIN-Befehl ist nicht verfügbar.
Services sind im Basis-Modus. Der ADMIN-Befehl ist nicht verfügbar.
OPER_ADMIN_EXISTS
%s existiert bereits auf der Services Administratoren-Liste.
OPER_ADMIN_REACHED_LIMIT
@@ -3242,7 +3243,7 @@ OPER_HELP_STAFF
OPER_HELP_DEFCON
Syntax: DEFCON [1|2|3|4|5]
Das Defcon-System kann benutzt werden, um vordefinierte Einstellung
Das Defcon-System kann benutzt werden, um vordefinierte Einstellung
von einschränkungen der Services einzubinden - nützlich während
versuchter Angriffe auf das Netzwerk.
@@ -3372,15 +3373,12 @@ NEWS_HELP_LOGON
Zeigt oder bearbeitet die Liste der LogonNews.
Nach der Verbindung des Users werden diese Nachrichten
angezeigt. (Es werden jedoch nur max. %s angezeigt, um ein
angezeigt. (Es werden jedoch nur max. %d angezeigt, um ein
Flooding des Users zu verhindern. Wenn mehr News
existieren, werden nur die neuesten angezeigt.)
Die Anzahl der News können in der services.conf festgelegt werden.
LOGONNEWS LIST kann von jedem IRC Operator benutzt werden
um die aktuelle Liste der Logon News anzeigen zu lassen.
ADD oder DEL können allerdings nur von Services Admins
ausgeführt werden.
Diese Funktion ist beschränkt auf die Services Administartoren.
NEWS_HELP_OPER
Syntax: OPERNEWS ADD Text
@@ -3390,15 +3388,12 @@ NEWS_HELP_OPER
Zeigt oder bearbeitet die Liste der Oper-News.Nachdem
sich ein User die Oper-Flags gesetzt hat (mit dem
/OPER Befehl) werden ihm diese Nachrichten angezeigt.
(Es werden jedoch nur max. %s Nachrichten angezeigt, um ein
(Es werden jedoch nur max. %d Nachrichten angezeigt, um ein
Flooding des Users zu verhindern. Wenn mehr News
existieren, werden nur die neüsten angezeigt.)
Die Anzahl der News können in der services.conf festgelegt werden.
OPERNEWS LIST kann von jedem IRC Operator benutzt werden
um die aktuelle Liste der Oper-News anzeigen zu lassen.
ADD oder DEL können allerdings nur von Services Admins
ausgeführt werden.
Diese Funktion ist beschränkt auf die Services Administartoren.
NEWS_HELP_RANDOM
Syntax: RANDOMNEWS ADD Text
@@ -3409,9 +3404,7 @@ NEWS_HELP_RANDOM
Wenn ein User zum Network verbindet, wird eine (und nur eine!) dieser
RandomNews Nachrichten zufällig gewählt und an den User gesendet.
RANDOMNEWS LIST kann von jedem IRC Operator genutzt werden um die
aktuellen News Nachrichten aufzulisten. ADD und DEL können nur von
Services Administratoren genutzt werden.
Diese Funktion ist beschränkt auf die Services Administartoren.
###########################################################################
#
@@ -3763,7 +3756,7 @@ NICK_HELP_SET_GREET
gesendet, wenn du in einen Channel eintrittst, der
die GREET Option eingeschaltet hat. Vorausgesetzt
du hast den nötigen Zugriffslevel in der Access-Liste
des Channels.
des Channels.
NICK_HELP_SET_KILL
Syntax: SET KILL {ON | QUICK | IMMED | OFF}
@@ -4049,7 +4042,7 @@ NICK_HELP_GHOST
wenn dein Computer abstürtzt oder deine Internet-
Verbindung zusammenbricht, wenn du im IRC bist.
Wenn du das GHOST Befehk benutzen willst,muss
Wenn du das GHOST Befehl benutzen willst,muss
deine aktuelle Hostmaske (siehe /WHOIS) in der
Zugriffsliste des entsprechenden Nicknamens oder
in der Gruppe des Nicknamens sein.Weiterhin musst
@@ -4113,7 +4106,7 @@ NICK_HELP_ALIST
NICK_HELP_GLIST
Syntax: GLIST
Zeigt alle Nicknamen die in deiner Gruppe enthalten sind.
Zeigt alle Nicknamen die in deiner Gruppe enthalten sind.
NICK_HELP_STATUS
Syntax: STATUS Nickname
@@ -4276,7 +4269,7 @@ NICK_SERVADMIN_HELP_GETPASS
NICK_SERVADMIN_HELP_GETEMAIL
Syntax: GETEMAIL user@emailhost
Gibt die passenden Nicknamen auf, welche die gegebene eMail benutzen.
Gibt die passenden Nicknamen an, welche die angegebene eMail benutzen.
Beachte, dass du keine wildcards für den User oder emailhost
verwenden kannst. Immer, wenn dieser Befehl benutzt wird, wird
eine Nachricht mit dem Nickname der Person mitgeloggt.
@@ -4351,7 +4344,7 @@ CHAN_HELP_CMD_CLEAR
CLEAR Entfernt bestimmte Einstellungen des angegebenen Channel
CHAN_HELP_CMD_DEVOICE
DEVOICE Enfernt den Voice-Status des angegebenen Nicknamens
in einen Channel
in einem Channel
CHAN_HELP_CMD_GETKEY
GETKEY Gibt das Channel-Passwort wieder
CHAN_HELP_CMD_INFO
@@ -4361,43 +4354,43 @@ CHAN_HELP_CMD_INVITE
CHAN_HELP_CMD_KICK
KICK Kickt den angegebenen Nicknamen aus einen Channel
CHAN_HELP_CMD_LIST
LIST Listet alle registrieten Channels des angegebene Muster
LIST Listet alle registrierten Channels des angegebene Muster
CHAN_HELP_CMD_LOGOUT
LOGOUT Das Befehl wir den angegegenen Nickname abmelden
LOGOUT Meldet den angegebenen Nicknamen ab
CHAN_HELP_CMD_OP
OP Gibt den angegebenen Nicknamen Op-Status in einen Channel
OP Gibt dem angegebenen Nicknamen Op-Status in einem Channel
CHAN_HELP_CMD_TOPIC
TOPIC Ändert den Topic des angegebenen Channels
CHAN_HELP_CMD_UNBAN
UNBAN Enfernt den oder die ban(s) die dich betreffen aus einen Channel
UNBAN Enfernt den oder die Bann(s) die Dich betreffen aus einem Channel
CHAN_HELP_CMD_VOICE
VOICE Gibt den angegebenen User Voice-Status in einen Channel
VOICE Gibt dem angegebenen User Voice-Status in einem Channel
CHAN_HELP_CMD_VOP
VOP Verwaltet die VOP-Liste von einen Channel
VOP Verwaltet die VOP-Liste eines Channels
CHAN_HELP_CMD_DEHALFOP
DEHALFOP Enfernt den HalfOP-Status des angegebenen Nicknamens
in einen Channel
in einem Channel
CHAN_HELP_CMD_DEOWNER
DEOWNER Entfernt dein Founder (Gründer) Status in einen Channel
DEOWNER Entfernt Deinen Founder (Gründer) Status in einem Channel
CHAN_HELP_CMD_DEPROTECT
DEPROTECT Entfernt den schutz des angegebenen Nicknamens
in einen Channel
DEPROTECT Entfernt den Schutz des angegebenen Nicknamens
in einem Channel
CHAN_HELP_CMD_HALFOP
HALFOP Gibt den angegebenen User HalfOP-Status in einen Channel
HALFOP Gibt dem angegebenen User HalfOP-Status in einem Channel
CHAN_HELP_CMD_HOP
HOP Verwaltet die HOP-Liste von einen Channel
CHAN_HELP_CMD_OWNER
OWNER Gibt dir Founder (Gründer) Staus in einen Channel
OWNER Gibt Dir Founder (Gründer) Status in einem Channel
CHAN_HELP_CMD_PROTECT
PROTECT Schützt den angegebenen Nicknamen in einen Channel
PROTECT Schützt den angegebenen Nicknamen in einem Channel
CHAN_HELP_CMD_ADMIN
ADMIN Schützt den angegebenen Nicknamen in einen Channel
ADMIN Schützt den angegebenen Nicknamen in einem Channel
CHAN_HELP_CMD_DEADMIN
DEADMIN Entfernt den Schutz des angegebenen Nicknamens
in einen Channel
in einem Channel
CHAN_HELP_CMD_DEOP
DEOP Enfernt den OP-Status des angegebenen Nicknamens
in einen Channel
in einem Channel
CHAN_HELP
Mit Hilfe von %S kann man Channel registrieren und
@@ -4425,7 +4418,7 @@ CHAN_HELP_REGISTER
einstellst, erlaubt es später anderen Änderungen
am Channel durchzuführen.Der letzte Parameter, der
angegeben werden MUSS,sollte eine allgemeine
Beschreibung des Channels bzw dessen Zweck beinhalten.
Beschreibung des Channels bzw dessen Zweck beinhalten.
Wenn du einen Channel registrierst, wird dein Nickname
als Founder (Gründer) eingetragen. Der Channel-Founder
@@ -4438,7 +4431,7 @@ CHAN_HELP_REGISTER
Hinweis: Für das Registrieren eines Channels musst du
einen registrierten und identifizierten Nickname benutzen.
Hast du dies noch nicht getan, tippe %R%s HELP REGISTER
Hast du dies noch nicht getan, tippe %R%s HELP REGISTER
um weitere Informationen darüber zu erhalten.
CHAN_HELP_IDENTIFY
@@ -4602,7 +4595,7 @@ CHAN_HELP_SET_MLOCK
Die Modes die gelockt werden können sind von dein IRCD abhängig.
Jede einzelne dieser Modes kann ein/aus oder gar nicht gelockt werden.
Der Modi Parameter ist genauso aufgebaut wie das jeweilige /MODE Befehl.
Der Modi Parameter ist genauso aufgebaut wie das jeweilige /MODE Befehl.
Dies bedeutet, Modi die durch ein + gekennzeichnet sind, sind aktiviert,
durch ein - sind sie deaktiviert.
@@ -5244,7 +5237,7 @@ CHAN_HELP_CLEAR
(z.B. Modi i,k,l,m,n,p,s und t)
BANS Entfernt alle Bans in dem Channel
EXCEPTS Entfernt alle Excepts in dem Channel
INVITES Clears all invites on the channel
INVITES Löscht alle Einladungen im Channel.
OPS Entfernt jeden Operator-Status (mode +o)
in dem Channel.
HOPS Entfernt jeden Halfoperator-Status (mode +h)
@@ -5308,7 +5301,7 @@ CHAN_SERVADMIN_HELP_DROP
Entfernt die Registrierung des angegebenen Channels aus
der Datenbank. Zusätzlich werden Zugriffslisten,
Einstellungen usw mit aus der Datenbank entfernt.
Einstellungen usw mit aus der Datenbank entfernt.
Nur Services Administratoren können Channel DROPEN,
(löschen) ohne sich vorher gegenüber dem Channel als
@@ -5723,7 +5716,7 @@ OPER_HELP_CMD_SHUTDOWN
OPER_HELP_CMD_DEFCON
DEFCON Ändert das DefCon System
OPER_HELP_CMD_CHANKILL
CHANKILL Killt alle User des angegebenen Channels
CHANKILL Setzt einen AKILL auf alle User des angegebenen Channels.
OPER_HELP_CMD_OLINE
OLINE Einem User "Operflags" setzen
OPER_HELP_CMD_UMODE
@@ -6128,14 +6121,12 @@ OPER_HELP_SET
Ändert globale Einstellungen der Services Optionen.
Diese Optionen lassen sich ändern:
READONLY Nur-Lese Modus der Datenbank an
oder aus
READONLY Nur-Lese Modus der Datenbank an oder aus
LOGCHAN Zeigt Logmessages in einem Chan
DEBUG Debug-Modus der Services an oder aus
NOEXPIRE Auslauf-Modus der Services
an oder aus
NOEXPIRE Auslauf-Modus der Services an oder aus
SUPERADMIN Den Super-Admin Modus an oder aus
SQL SQL-Modus an oder aus
SQL SQL-Modus an oder aus
IGNORE Ignore-Modus an oder aus
LIST Optionen-Liste
@@ -6292,7 +6283,7 @@ OPER_HELP_RESTART
Die Services werden sich bei diesem Befehl beenden,
die Datenbanken speichern, und danach neustarten
(die ausführbare Datei erneut aufrufen).
(die ausführbare Datei erneut aufrufen).
OPER_HELP_CHANLIST
Syntax: CHANLIST [{Muster | Nickname} [SECRET]]
@@ -6363,20 +6354,20 @@ BOT_HELP_CMD_BADWORDS
BOT_HELP_CMD_ACT
ACT Veranlaßt den Bot ein "/me" Befehl ausführen
BOT_HELP_CMD_INFO
INFO Erlaubt dir Informationen über ein BotServ ServicesBot zu sehen
INFO Erlaubt Dir, Informationen über einen ServicesBot anzuzeigen
BOT_HELP_CMD_SAY
SAY Veranlaßt ein Bot ein Text in einen Channel zu sagen
SAY Veranlaßt den Bot etwas in einem Channel zu sagen
BOT_HELP_CMD_UNASSIGN
UNASSIGN Entfernt ein ServicesBot von einen Channel
UNASSIGN Entfernt ein ServicesBot von einem Channel
BOT_HELP_CMD_BOT
BOT Verwaltung von Bots
BOT_HELP
%S ist dafür geschaffen, Bots in Channels
%S ist dafür geschaffen, Bots in Channels
einzubringen. Geschaffen wurde er für User, die
selbst keinen Bot ausfetzen können, oder auch Netzwerke,
die Bots verbieten. Mögliche Befehle siehe unten,
die Syntax ist %R%S Befehl.
die Bots verbieten. Mögliche Befehle siehe unten,
die Syntax ist %R%S Befehl.
Für weitere Hilfe zu einem bestimmten Befehl
tippe %R%S HELP Befehl
@@ -6738,9 +6729,9 @@ HOST_SET_IDENTTOOLONG
HOST_NOREG
User %s wurde nicht in der NickServ Datenbank gefunden.
HOST_SET_SYNTAX
Syntax %R%s SET Nickname Hostmaske.
SET <Nickname> <Hostmaske>.
HOST_SETALL_SYNTAX
Syntax %R%s SETALL Nickname Hostmaske.
SETALL <Nickname> <Hostmaske>.
HOST_DENIED
Zugriff verweigert.
HOST_NOT_ASSIGNED
@@ -6758,9 +6749,9 @@ HOST_DEL
HOST_DEL_SYNTAX
DEL Nickname.
HOST_OFF
Your vhost was removed and the normal cloaking restored.
Dein vHost wurde deaktiviert und die normale Host-Verschlüsselung wiederhergestellt.
HOST_OFF_UNREAL
Dein vHost wurde gelöscht. Um die normale Host-Verschlüsselung zu reaktivieren, tippe /mode %s +%s
Dein vHost wurde deaktiviert. Um die normale Host-Verschlüsselung zu reaktivieren, tippe /mode %s +%s
HOST_NO_VIDENT
Dein IRCd unterstützt keine vIdents. Falls das inkorrekt sein sollte, melde das bitte als einen Bug.
HOST_GROUP
+47 -49
View File
@@ -1,6 +1,6 @@
# United States English language file.
#
# (C) 2003-2009 Anope Team
# (C) 2003-2014 Anope Team
# Contact us at team@anope.org
#
# Please read COPYING and README for further details.
@@ -664,7 +664,7 @@ NICK_SASET_HIDE_STATUS_OFF
# SASET MSG responses
NICK_SASET_MSG_SYNTAX
SASAET nickname PRIVATE {ON | OFF}
SASET nickname MSG {ON | OFF}
NICK_SASET_MSG_ON
Services will now reply to %s with messages.
NICK_SASET_MSG_OFF
@@ -692,7 +692,7 @@ NICK_SASET_LANGUAGE_SYNTAX
NICK_SASET_LANGUAGE_UNKNOWN
Unknown language number %d. Type %R%s HELP SET LANGUAGE for a list of languages.
NICK_SASET_LANGUAGE_CHANGED
Language changed to English.
Language for %s changed to %s.
# ACCESS responses
@@ -879,13 +879,13 @@ NICK_SENDPASS_HEAD
NICK_SENDPASS_LINE_1
You have requested to receive the password of nickname %s by e-mail.
NICK_SENDPASS_LINE_2
The password is %s for security purposes, you should change it as soon as you receive this mail.
The password is %s. For security reasons, you should change it as soon as possible.
NICK_SENDPASS_LINE_3
If you don't know why this mail is sent to you, please ignore it silently.
If you don't know why this email has been sent to you, please ignore it.
NICK_SENDPASS_LINE_4
PLEASE DON'T ANSWER TO THIS MAIL!
This mailbox is not monitored. Replies to this e-mail will NOT be responded to.
NICK_SENDPASS_LINE_5
%s administrators.
Thanks for using %s
NICK_SENDPASS_OK
Password of %s has been sent.
@@ -935,15 +935,15 @@ NICK_REG_MAIL_SUBJECT
NICK_REG_MAIL_HEAD
Hi,
NICK_REG_MAIL_LINE_1
You have requested to register the following nickname %s.
You have requested to register the nickname "%s".
NICK_REG_MAIL_LINE_2
Please type " %R%s confirm %s " to complete registration.
Please type " %R%s confirm %s " into your IRC client to complete the registration.
NICK_REG_MAIL_LINE_3
If you don't know why this mail is sent to you, please ignore it silently.
If you don't know why this mail has been sent to you, please ignore it.
NICK_REG_MAIL_LINE_4
PLEASE DON'T ANSWER TO THIS MAIL!
This mailbox is not monitored. Replies to this e-mail will NOT get responded to.
NICK_REG_MAIL_LINE_5
%s administrators.
Thanks for using %s
NICK_GETPASS_PASSCODE_IS
Passcode for %s is %s.
NICK_FORCE_REG
@@ -1680,13 +1680,13 @@ CHAN_SENDPASS_HEAD
CHAN_SENDPASS_LINE_1
You have requested to receive the password of channel %s by e-mail.
CHAN_SENDPASS_LINE_2
The password is %s. For security reasons, you should change it as soon as you receive this mail.
The password is %s. For security reasons, you should change it as soon as possible.
CHAN_SENDPASS_LINE_3
If you don't know why this mail is sent to you, please ignore it silently.
If you don't know why this mail has been sent to you, please ignore it.
CHAN_SENDPASS_LINE_4
PLEASE DON'T ANSWER TO THIS MAIL!
This mailbox is not monitored. Replies to this e-mail will NOT be responded to.
CHAN_SENDPASS_LINE_5
%s administrators.
Thanks for using %s
CHAN_SENDPASS_OK
Password of %s has been sent.
@@ -1970,9 +1970,9 @@ MEMO_MAIL_SUBJECT
MEMO_MAIL_TEXT1
Hi %s
MEMO_MAIL_TEXT2
You've just received a new memo from %s. This is memo number %d.
You have just received a new memo from %s. This is memo number %d.
MEMO_MAIL_TEXT3
Memo Text:
The text of the memo is:
# RSEND responses
MEMO_RSEND_PLEASE_WAIT
@@ -2018,7 +2018,7 @@ BOT_NOT_ON_CHANNEL
# Kick reasons (must be a single line)
BOT_REASON_BADWORD
Don't use the word \"%s\" on this channel!
Don't use the word "%s" on this channel!
BOT_REASON_BADWORD_GENTLE
Watch your language!
BOT_REASON_BOLD
@@ -3283,14 +3283,12 @@ NEWS_HELP_LOGON
Edits or displays the list of logon news messages. When a
user connects to the network, these messages will be sent
to them. (However, no more than %s messages will be
to them. (However, no more than %d messages will be
sent in order to avoid flooding the user. If there are
more news messages, only the most recent will be sent.)
NewsCount can be configured in services.conf.
LOGONNEWS LIST may be used by any IRC operator to list the
current news messages. ADD and DEL may only be used by
Services admins.
LOGONNEWS may only be used by Services admins.
NEWS_HELP_OPER
Syntax: OPERNEWS ADD text
@@ -3299,14 +3297,12 @@ NEWS_HELP_OPER
Edits or displays the list of oper news messages. When a
user opers up (with the /OPER command), these messages will
be sent to them. (However, no more than %s messages will
be sent to them. (However, no more than %d messages will
be sent in order to avoid flooding the user. If there are
more news messages, only the most recent will be sent.)
NewsCount can be configured in services.conf.
OPERNEWS LIST may be used by any IRC operator to list the
current oper news messages. ADD and DEL may only be used by
Services admins.
OPERNEWS may only be used by Services admins.
NEWS_HELP_RANDOM
Syntax: RANDOMNEWS ADD text
@@ -3317,9 +3313,7 @@ NEWS_HELP_RANDOM
user connects to the network, one (and only one) of the
random news will be randomly chosen and sent to them.
RANDOMNEWS LIST may be used by any IRC operator to list the
current news messages. ADD and DEL may only be used by
Services admins.
RANDOMNEWS may only be used by Services admins.
###########################################################################
#
@@ -3906,6 +3900,7 @@ NICK_HELP_LIST
Lists all registered nicknames which match the given
pattern, in nick!user@host format. Nicks with the
PRIVATE option set will not be displayed.
Note that a pattern preceding with a '#' specifies a range.
Examples:
@@ -3919,6 +3914,9 @@ NICK_HELP_LIST
LIST *!*@*.bar.org
Lists all nicks owned by users in the bar.org
domain.
LIST #50-100
Lists nicks numbers 50-100
NICK_HELP_ALIST
Syntax: ALIST [level]
@@ -4417,8 +4415,8 @@ CHAN_HELP_SET_PEACE
Syntax: SET channel PEACE {ON | OFF}
Enables or disables the peace option for a channel.
When peace is set, an user won't be able to kick,
ban or remove a channel status of an user that has
When peace is set, a user won't be able to kick,
ban or remove a channel status of a user that has
a level superior or equal to his via %S commands.
CHAN_HELP_SET_PRIVATE
@@ -5422,7 +5420,7 @@ OPER_HELP_CMD_SHUTDOWN
OPER_HELP_CMD_DEFCON
DEFCON Manipulate the DefCon system
OPER_HELP_CMD_CHANKILL
CHANKILL Kill all users on a specific channel
CHANKILL AKILL all users on a specific channel
OPER_HELP_CMD_OLINE
OLINE Give Operflags to a certain user
OPER_HELP_CMD_UMODE
@@ -6152,7 +6150,7 @@ BOT_HELP_KICK_BOLDS
Sets the bolds kicker on or off. When enabled, this
option tells the bot to kick users who use bolds.
ttb is the number of times an user can be kicked
ttb is the number of times a user can be kicked
before it get banned. Don't give ttb to disable
the ban system once activated.
@@ -6162,7 +6160,7 @@ BOT_HELP_KICK_COLORS
Sets the colors kicker on or off. When enabled, this
option tells the bot to kick users who use colors.
ttb is the number of times an user can be kicked
ttb is the number of times a user can be kicked
before it get banned. Don't give ttb to disable
the ban system once activated.
@@ -6172,7 +6170,7 @@ BOT_HELP_KICK_REVERSES
Sets the reverses kicker on or off. When enabled, this
option tells the bot to kick users who use reverses.
ttb is the number of times an user can be kicked
ttb is the number of times a user can be kicked
before it get banned. Don't give ttb to disable
the ban system once activated.
@@ -6182,7 +6180,7 @@ BOT_HELP_KICK_UNDERLINES
Sets the underlines kicker on or off. When enabled, this
option tells the bot to kick users who use underlines.
ttb is the number of times an user can be kicked
ttb is the number of times a user can be kicked
before it get banned. Don't give ttb to disable
the ban system once activated.
@@ -6198,7 +6196,7 @@ BOT_HELP_KICK_CAPS
text line (if not given, it defaults to 10 characters
and 25%%).
ttb is the number of times an user can be kicked
ttb is the number of times a user can be kicked
before it get banned. Don't give ttb to disable
the ban system once activated.
@@ -6210,7 +6208,7 @@ BOT_HELP_KICK_FLOOD
the channel using at least ln lines in secs seconds
(if not given, it defaults to 6 lines in 10 seconds).
ttb is the number of times an user can be kicked
ttb is the number of times a user can be kicked
before it get banned. Don't give ttb to disable
the ban system once activated.
@@ -6222,7 +6220,7 @@ BOT_HELP_KICK_REPEAT
themselves num times (if num is not given, it
defaults to 3).
ttb is the number of times an user can be kicked
ttb is the number of times a user can be kicked
before it get banned. Don't give ttb to disable
the ban system once activated.
@@ -6237,7 +6235,7 @@ BOT_HELP_KICK_BADWORDS
BADWORDS command. Type %R%S HELP BADWORDS for
more information.
ttb is the number of times an user can be kicked
ttb is the number of times a user can be kicked
before it get banned. Don't give ttb to disable
the ban system once activated.
@@ -6254,12 +6252,12 @@ BOT_HELP_BADWORDS
The BADWORDS ADD command adds the given word to the
badword list. If SINGLE is specified, a kick will be
done only if an user says the entire word. If START is
specified, a kick will be done if an user says a word
done only if a user says the entire word. If START is
specified, a kick will be done if a user says a word
that starts with word. If END is specified, a kick
will be done if an user says a word that ends with
will be done if a user says a word that ends with
word. If you don't specify anything, a kick will
be issued every time word is said by an user.
be issued every time word is said by a user.
The BADWORDS DEL command removes the given word from the
bad words list. If a list of entry numbers is given, those
@@ -6366,9 +6364,9 @@ HOST_SET_IDENTTOOLONG
HOST_NOREG
User %s not found in the nickserv db.
HOST_SET_SYNTAX
Syntax %R%s set <nick> <hostmask>.
SET <nick> <hostmask>.
HOST_SETALL_SYNTAX
Syntax %R%s setall <nick> <hostmask>.
SETALL <nick> <hostmask>.
HOST_DENIED
Access Denied.
HOST_NOT_ASSIGNED
@@ -6392,9 +6390,9 @@ HOST_OFF_UNREAL
HOST_NO_VIDENT
Your IRCD does not support vIdent's, if this is incorrect, please report this as a possible bug
HOST_GROUP
All vhost's in the group %s have been set to %s
All vhosts in the group %s have been set to %s
HOST_IDENT_GROUP
All vhost's in the group %s have been set to %s@%s
All vhosts in the group %s have been set to %s@%s
HOST_LIST_FOOTER
Displayed all records (Count: %d)
HOST_LIST_RANGE_FOOTER
+14 -20
View File
@@ -1,9 +1,9 @@
# Spanish Language File.
#
# (C) 2003-2009 Anope Team
# (C) 2003-2014 Anope Team
# Contact us at team@anope.org
#
# Please read COPYING and README for furhter details.
# Please read COPYING and README for further details.
#
# Based on the original code of Epona by Lara.
# Based on the original code of Services by Andy Church.
@@ -473,9 +473,9 @@ NICK_SET_PASSWORD_CHANGED_TO
NICK_SET_LANGUAGE_SYNTAX
SET LANGUAGE numero
NICK_SET_LANGUAGE_UNKNOWN
Numero de lenguage %d desconocido. Tipea %R%s HELP SET LANGUAGE para una lista de lenguages.
Numero de lenguaje %d desconocido. Tipea %R%s HELP SET LANGUAGE para una lista de lenguajes.
NICK_SET_LANGUAGE_CHANGED
Lenguage cambiado a Español.
Lenguaje cambiado a Español.
# SET URL responses
NICK_SET_URL_CHANGED
@@ -683,7 +683,7 @@ NICK_SASET_HIDE_STATUS_OFF
# SASET MSG responses
NICK_SASET_MSG_SYNTAX
SSAET nickname PRIVATE {ON | OFF}
SSAET nickname MSG {ON | OFF}
NICK_SASET_MSG_ON
Services will now reply to %s with messages.
NICK_SASET_MSG_OFF
@@ -711,7 +711,7 @@ NICK_SASET_LANGUAGE_SYNTAX
NICK_SASET_LANGUAGE_UNKNOWN
Unknown language number %d. Type %R%s HELP SET LANGUAGE for a list of languages.
NICK_SASET_LANGUAGE_CHANGED
Language changed to Spanish.
Language for %s changed to %s.
# ACCESS responses
@@ -3397,14 +3397,12 @@ NEWS_HELP_LOGON
Edits or displays the list of logon news messages. When a
user connects to the network, these messages will be sent
to them. (However, no more than %s messages will be
to them. (However, no more than %d messages will be
sent in order to avoid flooding the user. If there are
more news messages, only the most recent will be sent.)
NewsCount can be configured in services.conf.
LOGONNEWS LIST may be used by any IRC operator to list the
current news messages. ADD and DEL may only be used by
Services admins.
LOGONNEWS may only be used by Services admins.
NEWS_HELP_OPER
Syntax: OPERNEWS ADD text
@@ -3413,14 +3411,12 @@ NEWS_HELP_OPER
Edits or displays the list of oper news messages. When a
user opers up (with the /OPER command), these messages will
be sent to them. (However, no more than %s messages will
be sent to them. (However, no more than %d messages will
be sent in order to avoid flooding the user. If there are
more news messages, only the most recent will be sent.)
NewsCount can be configured in services.conf.
OPERNEWS LIST may be used by any IRC operator to list the
current oper news messages. ADD and DEL may only be used by
Services admins.
OPERNEWS may only be used by Services admins.
NEWS_HELP_RANDOM
Sintaxis: RANDOMNEWS ADD texto
@@ -3431,9 +3427,7 @@ NEWS_HELP_RANDOM
Cuando un usuario se conecta a la red, uno (y solo uno) de los
mensajes al azar sera elejido y enviado a ellos.
RANDOMNEWS LIST puede ser usado por cualquier operador de
IRC para listar la lista de noticias actual. ADD y DEL
solo pueden ser usados por administradores de Servicios.
RANDOMNEWS may only be used by Services admins.
###########################################################################
#
@@ -5670,7 +5664,7 @@ OPER_HELP_CMD_SHUTDOWN
OPER_HELP_CMD_DEFCON
DEFCON Manipulate the DefCon system
OPER_HELP_CMD_CHANKILL
CHANKILL Kill all users on a specific channel
CHANKILL AKILL all users on a specific channel
OPER_HELP_CMD_OLINE
OLINE Otorga privilegios IRCOP temporarios
OPER_HELP_CMD_UMODE
@@ -6702,9 +6696,9 @@ HOST_SET_IDENTTOOLONG
HOST_NOREG
Usuario %s no encontrado en la base de datos de nickserv.
HOST_SET_SYNTAX
Sintaxis %R%s set <nick> <hostmask>.
SET <nick> <hostmask>.
HOST_SETALL_SYNTAX
Sintaxis %R%s setall <nick> <hostmask>.
SETALL <nick> <hostmask>.
HOST_DENIED
Acceso Denegado.
HOST_NOT_ASSIGNED
+2679 -2870
View File
File diff suppressed because it is too large Load Diff
+15 -21
View File
@@ -1,9 +1,9 @@
# Greek language file.
#
# (C) 2003-2009 Anope Team
# (C) 2003-2014 Anope Team
# Contact us at team@anope.org
#
# Please read COPYING and README for furhter details.
# Please read COPYING and README for further details.
#
# Based on the original code of Epona by Lara.
# Based on the original code of Services by Andy Church.
@@ -677,7 +677,7 @@ NICK_SASET_HIDE_STATUS_OFF
# SASET MSG responses
NICK_SASET_MSG_SYNTAX
SSAET nickname PRIVATE {ON | OFF}
SSAET nickname MSG {ON | OFF}
NICK_SASET_MSG_ON
Services will now reply to %s with messages.
NICK_SASET_MSG_OFF
@@ -705,7 +705,7 @@ NICK_SASET_LANGUAGE_SYNTAX
NICK_SASET_LANGUAGE_UNKNOWN
Unknown language number %d. Type %R%s HELP SET LANGUAGE for a list of languages.
NICK_SASET_LANGUAGE_CHANGED
Language changed to Greek.
Language for %s changed to %s.
# ACCESS responses
@@ -3279,7 +3279,7 @@ OPER_HELP_DEFCON
Syntax: DEFCON [1|2|3|4|5]
The defcon system can be used to implement a pre-defined
set of restrictions to services useful during an attemtped
set of restrictions to services useful during an attempted
attack on the network.
OPER_HELP_DEFCON_NO_NEW_CHANNELS
@@ -3415,14 +3415,12 @@ NEWS_HELP_LOGON
Edits or displays the list of logon news messages. When a
user connects to the network, these messages will be sent
to them. (However, no more than %s messages will be
to them. (However, no more than %d messages will be
sent in order to avoid flooding the user. If there are
more news messages, only the most recent will be sent.)
NewsCount can be configured in services.conf.
LOGONNEWS LIST may be used by any IRC operator to list the
current news messages. ADD and DEL may only be used by
Services admins.
LOGONNEWS may only be used by Services admins.
NEWS_HELP_OPER
Syntax: OPERNEWS ADD text
@@ -3431,14 +3429,12 @@ NEWS_HELP_OPER
Edits or displays the list of oper news messages. When a
user opers up (with the /OPER command), these messages will
be sent to them. (However, no more than %s messages will
be sent to them. (However, no more than %d messages will
be sent in order to avoid flooding the user. If there are
more news messages, only the most recent will be sent.)
NewsCount can be configured in services.conf.
OPERNEWS LIST may be used by any IRC operator to list the
current oper news messages. ADD and DEL may only be used by
Services admins.
OPERNEWS may only be used by Services admins.
NEWS_HELP_RANDOM
Óýíôáîç: RANDOMNEWS ADD ðåñéå÷üìåíá
@@ -3449,9 +3445,7 @@ NEWS_HELP_RANDOM
¼ôáí Ýíáò ÷ñÞóôçò óõíäåèåß óôï äßêôõï, Ýíá (êáé ìüíï Ýíá) áðü ôá
ìçíýìáôá èá åðéëå÷èåß ôõ÷áßá êáé èá óôáëåß.
RANDOMNEWS LIST ìðïñåß íá ÷ñçóéìïðïéçèåß áðü ôïõò IRC operators ãéá íá
äïýí ôá ìçíýìáôá. ADD êáé DEL ìðïñåß íá ÷ñçóéìïðïéÞóïõí ïé
åðéêåöáëåßò ôùí õðçñåóéþí (Services admins).
RANDOMNEWS may only be used by Services admins.
###########################################################################
#
@@ -5642,7 +5636,7 @@ OPER_HELP_CMD_SHUTDOWN
OPER_HELP_CMD_DEFCON
DEFCON Manipulate the DefCon system
OPER_HELP_CMD_CHANKILL
CHANKILL Kill all users on a specific channel
CHANKILL AKILL all users on a specific channel
OPER_HELP_CMD_OLINE
OLINE Give Operflags to a certain user
OPER_HELP_CMD_UMODE
@@ -6619,9 +6613,9 @@ HOST_SET_IDENTTOOLONG
HOST_NOREG
User %s not found in the nickserv db.
HOST_SET_SYNTAX
Syntax %R%s set <nick> <hostmask>.
SET <nick> <hostmask>.
HOST_SETALL_SYNTAX
Syntax %R%s setall <nick> <hostmask>.
SETALL <nick> <hostmask>.
HOST_DENIED
Access Denied.
HOST_NOT_ASSIGNED
@@ -6657,9 +6651,9 @@ HOST_NO_VIDENT
#
###########################################################################
HOST_GROUP
All vhost's in the group %s have been set to %s
All vhosts in the group %s have been set to %s
HOST_IDENT_GROUP
All vhost's in the group %s have been set to %s@%s
All vhosts in the group %s have been set to %s@%s
###########################################################################
#
+12 -18
View File
@@ -1,6 +1,6 @@
# Hungarian (magyar) language file.
#
# (C) 2003-2009 Anope Team
# (C) 2003-2014 Anope Team
# Contact us at team@anope.org
#
# Translated by:
@@ -9,7 +9,7 @@
# CJB CHAT Magyarország, http://cjbchat.hu
# Ez a fordítás a CJB Chat megrendelésére készült.
#
# Please read COPYING and README for furhter details.
# Please read COPYING and README for further details.
#
# Based on the original code of Epona by Lara.
# Based on the original code of Services by Andy Church.
@@ -676,7 +676,7 @@ NICK_SASET_HIDE_STATUS_OFF
# SASET MSG responses
NICK_SASET_MSG_SYNTAX
SSAET nickname PRIVATE {ON | OFF}
SSAET nickname MSG {ON | OFF}
NICK_SASET_MSG_ON
Services will now reply to %s with messages.
NICK_SASET_MSG_OFF
@@ -704,7 +704,7 @@ NICK_SASET_LANGUAGE_SYNTAX
NICK_SASET_LANGUAGE_UNKNOWN
Unknown language number %d. Type %R%s HELP SET LANGUAGE for a list of languages.
NICK_SASET_LANGUAGE_CHANGED
Language changed to Hungarian.
Language for %s changed to %s.
# ACCESS responses
@@ -3349,14 +3349,12 @@ NEWS_HELP_LOGON
Edits or displays the list of logon news messages. When a
user connects to the network, these messages will be sent
to them. (However, no more than %s messages will be
to them. (However, no more than %d messages will be
sent in order to avoid flooding the user. If there are
more news messages, only the most recent will be sent.)
NewsCount can be configured in services.conf.
LOGONNEWS LIST may be used by any IRC operator to list the
current news messages. ADD and DEL may only be used by
Services admins.
LOGONNEWS may only be used by Services admins.
NEWS_HELP_OPER
Syntax: OPERNEWS ADD text
@@ -3365,14 +3363,12 @@ NEWS_HELP_OPER
Edits or displays the list of oper news messages. When a
user opers up (with the /OPER command), these messages will
be sent to them. (However, no more than %s messages will
be sent to them. (However, no more than %d messages will
be sent in order to avoid flooding the user. If there are
more news messages, only the most recent will be sent.)
NewsCount can be configured in services.conf.
OPERNEWS LIST may be used by any IRC operator to list the
current oper news messages. ADD and DEL may only be used by
Services admins.
OPERNEWS may only be used by Services admins.
NEWS_HELP_RANDOM
Syntax: RANDOMNEWS ADD szöveg
@@ -3383,9 +3379,7 @@ NEWS_HELP_RANDOM
egy felhasználó csatlakozik a hálózathoz, egy (csak egy)
random newst fog véletlenszerûen elküldeni részére.
RANDOMNEWS LIST IRC operátorok,használhatják a parancsot
részükre listázza az aktuális oper news üzeneteket. Add és
Del -t csak szervíz adminok használhatják
RANDOMNEWS may only be used by Services admins.
###########################################################
#
@@ -5551,7 +5545,7 @@ OPER_HELP_CMD_SHUTDOWN
OPER_HELP_CMD_DEFCON
DEFCON Manipulálja a DefCon rendszert
OPER_HELP_CMD_CHANKILL
CHANKILL Kirúgja az összes usert a csatornáról
CHANKILL AKILL az összes usert a csatornáról
OPER_HELP_CMD_OLINE
OLINE Operflaget ad a biztos felhasználónak
OPER_HELP_CMD_UMODE
@@ -6525,9 +6519,9 @@ HOST_SET_IDENTTOOLONG
HOST_NOREG
%s felhasználó nincs a nickserv db fájlban.
HOST_SET_SYNTAX
Syntax %R%s set <nick> <hosztmaszk>.
SET <nick> <hosztmaszk>.
HOST_SETALL_SYNTAX
Syntax %R%s setall <nick> <hosztmaszk>.
SETALL <nick> <hosztmaszk>.
HOST_DENIED
Hozzáférés megtagadva.
HOST_NOT_ASSIGNED
+11 -17
View File
@@ -1,6 +1,6 @@
# Italian language file.
#
# (C) 2003-2009 Anope Team
# (C) 2003-2014 Anope Team
# Contact us at team@anope.org
#
# Please read COPYING and README for further details.
@@ -672,7 +672,7 @@ NICK_SASET_HIDE_STATUS_OFF
# SASET MSG responses
NICK_SASET_MSG_SYNTAX
SSAET nickname PRIVATE {ON | OFF}
SSAET nickname MSG {ON | OFF}
NICK_SASET_MSG_ON
I servizi risponderanno a %s con "messages".
NICK_SASET_MSG_OFF
@@ -700,7 +700,7 @@ NICK_SASET_LANGUAGE_SYNTAX
NICK_SASET_LANGUAGE_UNKNOWN
Unknown language number %d. Type %R%s HELP SET LANGUAGE for a list of languages.
NICK_SASET_LANGUAGE_CHANGED
Language changed to Italian.
Language for %s changed to %s.
# ACCESS responses
@@ -3308,14 +3308,12 @@ NEWS_HELP_LOGON
Edits or displays the list of logon news messages. When a
user connects to the network, these messages will be sent
to them. (However, no more than %s messages will be
to them. (However, no more than %d messages will be
sent in order to avoid flooding the user. If there are
more news messages, only the most recent will be sent.)
NewsCount can be configured in services.conf.
LOGONNEWS LIST may be used by any IRC operator to list the
current news messages. ADD and DEL may only be used by
Services admins.
LOGONNEWS may be used by any IRC operator to list the
NEWS_HELP_OPER
Syntax: OPERNEWS ADD text
@@ -3324,14 +3322,12 @@ NEWS_HELP_OPER
Edits or displays the list of oper news messages. When a
user opers up (with the /OPER command), these messages will
be sent to them. (However, no more than %s messages will
be sent to them. (However, no more than %d messages will
be sent in order to avoid flooding the user. If there are
more news messages, only the most recent will be sent.)
NewsCount can be configured in services.conf.
OPERNEWS LIST may be used by any IRC operator to list the
current oper news messages. ADD and DEL may only be used by
Services admins.
OPERNEWS may only be used by Services admins.
NEWS_HELP_RANDOM
Sintassi: RANDOMNEWS ADD testo
@@ -3343,9 +3339,7 @@ NEWS_HELP_RANDOM
delle informazioni del giorno sarà scelta casualmente e gli
sarà inviata.
RANDOMNEWS LIST può essere usato da qualsiasi IrcOp per
visualizzare i messaggi correnti. ADD e DEL possono essere
utilizzati soltanto dai Services admin.
RANDOMNEWS may only be used by Services admins.
###########################################################################
#
@@ -5583,7 +5577,7 @@ OPER_HELP_CMD_SHUTDOWN
OPER_HELP_CMD_DEFCON
DEFCON Manipola il sistema DefCon
OPER_HELP_CMD_CHANKILL
CHANKILL Killa tutti gli utenti su di un canale specifico
CHANKILL AKILL tutti gli utenti su di un canale specifico
OPER_HELP_CMD_OLINE
OLINE Imposta le operflag di un utente
OPER_HELP_CMD_UMODE
@@ -6590,9 +6584,9 @@ HOST_SET_IDENTTOOLONG
HOST_NOREG
L'utente %s non è presente nel database di NickServ.
HOST_SET_SYNTAX
Sintassi: %R%s set <nick> <hostmask>.
SET <nick> <hostmask>.
HOST_SETALL_SYNTAX
Sintassi: %R%s setall <nick> <hostmask>.
SETALL <nick> <hostmask>.
HOST_DENIED
Accesso negato.
HOST_NOT_ASSIGNED
+6494
View File
File diff suppressed because it is too large Load Diff
+5 -2
View File
@@ -1,6 +1,6 @@
/* Compiler for language definition files.
*
* (C) 2003-2009 Anope Team
* (C) 2003-2014 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
@@ -8,7 +8,6 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
@@ -78,10 +77,12 @@ int read_index_file()
numstrings++;
if (!(stringnames = calloc(sizeof(char *), numstrings))) {
perror("calloc(stringnames)");
fclose(f);
return -1;
}
if (!(strings = calloc(sizeof(char *), numstrings))) {
perror("calloc(strings)");
fclose(f);
return -1;
}
fseek(f, 0, SEEK_SET);
@@ -91,6 +92,7 @@ int read_index_file()
buf[strlen(buf)-1] = '\0';
if (!(stringnames[i++] = anopeStrDup(buf))) {
perror("strdup()");
fclose(f);
return -1;
}
}
@@ -202,6 +204,7 @@ int main(int ac, char **av)
}
if (!(out = fopen(outfile, "wb"))) {
perror(outfile);
fclose(in);
return 1;
}
+3 -3
View File
@@ -1,9 +1,9 @@
/* Language stuff generator for win32.
*
* (C) 2003-2009 Anope Team
* (C) 2003-2014 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for furhter details.
* Please read COPYING and README for further details.
*
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
@@ -66,7 +66,7 @@ int main(int argc, char *argv[])
fprintf(fdout, "#define NUM_STRINGS %d\n", i);
fprintf(stderr, "%d strings\n", i);
fclose(fd);
fclose(fd);
fclose(fdout);
}
return 0;
+15 -22
View File
@@ -1,9 +1,9 @@
# Dutch Language File
#
# (C) 2003-2009 Anope Team
# (C) 2003-2014 Anope Team
# Contact us at team@anope.org
#
# Please read COPYING and README for furhter details.
# Please read COPYING and README for further details.
#
# Based on the original code of Epona by Lara.
# Based on the original code of Services by Andy Church.
@@ -688,7 +688,7 @@ NICK_SASET_HIDE_STATUS_OFF
# SASET MSG responses
NICK_SASET_MSG_SYNTAX
SSAET nickname PRIVATE {ON | OFF}
SSAET nickname MSG {ON | OFF}
NICK_SASET_MSG_ON
Services will now reply to %s with messages.
NICK_SASET_MSG_OFF
@@ -716,7 +716,7 @@ NICK_SASET_LANGUAGE_SYNTAX
NICK_SASET_LANGUAGE_UNKNOWN
Unknown language number %d. Type %R%s HELP SET LANGUAGE for a list of languages.
NICK_SASET_LANGUAGE_CHANGED
Language changed to Dutch.
Language for %s changed to %s.
# ACCESS responses
@@ -1653,7 +1653,7 @@ CHAN_INVITE_SYNTAX
CHAN_UNBAN_SYNTAX
UNBAN kanaal
CHAN_UNBANNED
Bans met betrekking to jou op %s zijn opgeheven.
Bans met betrekking tot jou op %s zijn opgeheven.
# TOPIC responses
CHAN_TOPIC_SYNTAX
@@ -3376,15 +3376,12 @@ NEWS_HELP_LOGON
Wijzigt de lijst met login nieuwsberichten of geeft deze weer.
Wanneer een gebruiker met het netwerk verbindt, worden deze
berichten naar hem/haar verzonden. (Echter, er zullen nooit
meer dan %s berichten worden verstuurd om het flooden van de
meer dan %d berichten worden verstuurd om het flooden van de
gebruiker te voorkomen. Als er meer nieuwsberichten
zijn worden alleen de meest recente vestuurd.)
NewsCount kan geconfigureerd worden in services.conf.
LOGONNEWS LIST mag door elke IRC operator worden gebruikt om
de huidige nieuwsberichten weer te geven. ADD en DEL mogen
alleen door Services admins gebruikt worden.
LOGONNEWS may only be used by Services admins.
NEWS_HELP_OPER
Gebruik: OPERNEWS ADD text
@@ -3394,14 +3391,12 @@ NEWS_HELP_OPER
Wijzigt de lijst met oper nieuwsberichten of geeft deze weer.
Wanneer een gebruiker opert (dmv het /OPER commando), worden
deze berichtennaar hem/haar verzonden. (Echter, er zullen
nooit meer dan %s berichten worden verstuurd om het flooden
nooit meer dan %d berichten worden verstuurd om het flooden
van de gebruiker te voorkomen. Als er meer nieuwsberichten
zijn worden alleen de meest recente vestuurd.)
NewsCount kan geconfigureerd worden in services.conf.
OPERNEWS LIST mag door elke IRC operator worden gebruikt om
de huidige nieuwsberichten weer te geven. ADD en DEL mogen
alleen door Services admins gebruikt worden.
OPERNEWS may only be used by Services admins.
NEWS_HELP_RANDOM
Syntax: RANDOMNEWS ADD text
@@ -3414,9 +3409,7 @@ NEWS_HELP_RANDOM
nieuwsberichten willekeurig uitgekozen en naar hem/haar
verstuurd.
RANDOMNEWS LIST mag door elke IRC operator worden gebruikt om
de huidige nieuwsberichten weer te geven. ADD en DEL mogen
alleen door Services admins gebruikt worden.
RANDOMNEWS may only be used by Services admins.
###########################################################################
#
@@ -5592,7 +5585,7 @@ OPER_HELP_CMD_SHUTDOWN
OPER_HELP_CMD_DEFCON
DEFCON Manipulate the DefCon system
OPER_HELP_CMD_CHANKILL
CHANKILL Kill all users on a specific channel
CHANKILL AKILL all users on a specific channel
OPER_HELP_CMD_OLINE
OLINE Geef Operflags aan een bepaalde gebruiker
OPER_HELP_CMD_UMODE
@@ -6550,9 +6543,9 @@ HOST_SET_IDENTTOOLONG
HOST_NOREG
Gebruiker %s niet gevonden in de nickserv database.
HOST_SET_SYNTAX
Gebruik %R%s set <nick> <hostmask>.
SET <nick> <hostmask>.
HOST_SETALL_SYNTAX
Gebruik %R%s setall <nick> <hostmask>.
SETALL <nick> <hostmask>.
HOST_DENIED
Toegang geweigerd.
HOST_NOT_ASSIGNED
@@ -6576,9 +6569,9 @@ HOST_OFF_UNREAL
HOST_NO_VIDENT
Je IRCD ondersteunt geen vIdent's. Als dit niet klopt, rapporteer dit dan als een mogelijke bug
HOST_GROUP
Alle vhost's in de groep %s zijn ingesteld op %s
Alle vhosts in de groep %s zijn ingesteld op %s
HOST_IDENT_GROUP
Alle vhost's in de groep %s zijn ingesteld op %s@%s
Alle vhosts in de groep %s zijn ingesteld op %s@%s
###########################################################################
#
+42 -46
View File
@@ -14,7 +14,7 @@
#
###########################################################################
#
# (C) 2003-2009 Anope Team
# (C) 2003-2014 Anope Team
# Contact us at team@anope.org
#
# Please read COPYING and README for further details.
@@ -845,7 +845,7 @@ NICK_SASET_HIDE_STATUS_OFF
# SASET MSG responses
NICK_SASET_MSG_SYNTAX
SASAET nick PRIVATE {ON | OFF}
SASET nick MSG {ON | OFF}
NICK_SASET_MSG_ON
Serwisy bêd± teraz wysy³aæ do %s wiadomo¶ci.
@@ -882,7 +882,7 @@ NICK_SASET_LANGUAGE_UNKNOWN
Napisz %R%s HELP SET LANGUAGE, aby uzyskaæ listê dostêpnych jêzyków.
NICK_SASET_LANGUAGE_CHANGED
Jêzyk zosta³ zmieniony na Polski.
Language for %s changed to %s.
# ACCESS responses
NICK_ACCESS_SYNTAX
@@ -2025,7 +2025,7 @@ CHAN_LEVELS_LIST_NORMAL
CHAN_LEVELS_RESET
Poziomy dostêpu kana³u %s zosta³y zresetowane do domy¶lnych.
# Status Messages
# Status messages
CHAN_STATUS_SYNTAX
STATUS ERROR B³±d sk³adni
@@ -2378,7 +2378,7 @@ MEMO_MASS_SENT
# STAFF responses
MEMO_STAFF_SYNTAX
STAFF memo-text
STAFF tre¶æ wiadomo¶ci
# CANCEL responses
MEMO_CANCEL_SYNTAX
@@ -3868,8 +3868,9 @@ OPER_JUPE_SYNTAX
OPER_JUPE_HOST_ERROR
Proszê u¿yæ prawid³owej nazwy serwera.
OPER_JUPE_INVALID_SERVER
You can not jupe your services server or your uplink server.
Nie mo¿na wykluczyæ samych serwisów lub uplinka serwisów.
# RAW responses
OPER_RAW_SYNTAX
@@ -3890,7 +3891,7 @@ OPER_CANNOT_RESTART
# IGNORE respondes
OPER_IGNORE_SYNTAX
IGNORE {ADD|DEL|LIST|CLEAR} [czas] [nick | maska]
IGNORE {ADD|DEL|LIST|CLEAR} [czas] [nick | maska]
OPER_IGNORE_VALID_TIME
Musisz podaæ prawid³ow± liczbê dla czasu.
@@ -4274,7 +4275,7 @@ NEWS_RANDOM_TEXT
[Losowa wiadomo¶æ - %s] %s
NEWS_LOGON_SYNTAX
LOGONNEWS {ADD|DEL|LIST} [tekst|numer]
LOGONNEWS {ADD|DEL|LIST} [tekst|numer]
NEWS_LOGON_LIST_HEADER
Wiadomo¶ci powitalne:
@@ -4287,7 +4288,7 @@ NEWS_LOGON_LIST_NONE
Nie ma wiadomo¶ci powitalnych.
NEWS_LOGON_ADD_SYNTAX
Sk³adnia: LOGONNEWS ADD tekst
LOGONNEWS ADD tekst
NEWS_LOGON_ADD_FULL
Lista wiadomo¶ci powitalnych jest pe³na!
@@ -4296,7 +4297,7 @@ NEWS_LOGON_ADDED
Dodano now± wiadomo¶æ powitaln± (#%d).
NEWS_LOGON_DEL_SYNTAX
LOGONNEWS DEL {numer | ALL}
LOGONNEWS DEL {numer | ALL}
NEWS_LOGON_DEL_NOT_FOUND
Wiadomo¶æ powitalna #%d nie zosta³a znaleziona!
@@ -4311,7 +4312,7 @@ NEWS_LOGON_DELETED_ALL
Wszystkie wiadomo¶ci powitalne zosta³ skasowane.
NEWS_OPER_SYNTAX
Sk³adnia: OPERNEWS {ADD|DEL|LIST} [tekst|numer]
OPERNEWS {ADD|DEL|LIST} [tekst|numer]
NEWS_OPER_LIST_HEADER
Wiadomo¶ci dla operatorów:
@@ -4324,7 +4325,7 @@ NEWS_OPER_LIST_NONE
Nie ma wiadomo¶ci dla operatorów.
NEWS_OPER_ADD_SYNTAX
Sk³adnia: OPERNEWS ADD tekst
OPERNEWS ADD tekst
NEWS_OPER_ADD_FULL
Lista wiadomo¶ci jest pe³na!
@@ -4333,7 +4334,7 @@ NEWS_OPER_ADDED
Dodano now± wiadomo¶æ dla operatorów (#%d).
NEWS_OPER_DEL_SYNTAX
Sk³adnia: OPERNEWS DEL {numer | ALL}
OPERNEWS DEL {numer | ALL}
NEWS_OPER_DEL_NOT_FOUND
Wiadomo¶æ dla operatorów #%d nie zosta³a znaleziona!
@@ -4348,7 +4349,7 @@ NEWS_OPER_DELETED_ALL
Wszystkie wiadomo¶ci dla operatorów zosta³y skasowane.
NEWS_RANDOM_SYNTAX
RANDOMNEWS {ADD|DEL|LIST} [tekst|numer]
RANDOMNEWS {ADD|DEL|LIST} [tekst|numer]
NEWS_RANDOM_LIST_HEADER
Losowe wiadomo¶ci:
@@ -4361,7 +4362,7 @@ NEWS_RANDOM_LIST_NONE
Nie ma losowych wiadomo¶ci.
NEWS_RANDOM_ADD_SYNTAX
RANDOMNEWS ADD tekst
RANDOMNEWS ADD tekst
NEWS_RANDOM_ADD_FULL
Lista wiadomo¶ci jest pe³na!
@@ -4370,7 +4371,7 @@ NEWS_RANDOM_ADDED
Dodano now± losow± wiadomo¶æ (#%d).
NEWS_RANDOM_DEL_SYNTAX
RANDOMNEWS DEL {numer | ALL}
RANDOMNEWS DEL {numer | ALL}
NEWS_RANDOM_DEL_NOT_FOUND
Losowa wiadomo¶æ #%d nie zosta³a znaleziona!
@@ -4391,13 +4392,11 @@ NEWS_HELP_LOGON
Edytuje lub wy¶wietla listê wiadomo¶ci wysy³anych po
przy³±czeniu u¿ytkownika do sieci. Je¶li zdefniowanych
wiadomo¶ci jest wiêcej tylko najnowsze %s zostanie
wiadomo¶ci jest wiêcej tylko najnowsze %d zostanie
wys³anych (aby zapobiec floodowaniu). Warto¶æ NewsCount
mo¿e zostaæ zmieniona w pliku konfiguracyjym serwisów.
Polecenie LOGONNEWS LIST mo¿e byæ u¿yte przez ka¿dego
IRC operatora w celu wylistowania wiadomo¶ci. Polecenia
ADD i DEL s± zarezerwowane dla administratorów serwisów.
LOGONNEWS may only be used by Services admins.
NEWS_HELP_OPER
Sk³adnia: OPERNEWS ADD tekst
@@ -4406,13 +4405,11 @@ NEWS_HELP_OPER
Edytuje lub wy¶wietla listê wiadomo¶ci wysy³anych po
wykonaniu polecenia /OPER. Je¶li zdefiniowanych
wiadomo¶ci jest wiêcej tylko najnowsze %s zostanie
wiadomo¶ci jest wiêcej tylko najnowsze %d zostanie
wys³anych (aby zapobiec floodowaniu). Warto¶æ NewsCount
mo¿e zostaæ zmieniona w pliku konfiguracyjym serwisów.
Polecenie OPERNEWS LIST mo¿e byæ u¿yte przez ka¿dego
IRC operatora w celu wylistowania wiadomo¶ci. Polecenia
ADD i DEL s± zarezerwowane dla administratorów serwisów.
OPERNEWS may only be used by Services admins.
NEWS_HELP_RANDOM
Sk³adnia: RANDOMNEWS ADD tekst
@@ -4423,9 +4420,7 @@ NEWS_HELP_RANDOM
Po po³±czeniu z sieci± u¿ytkownik otrzyma dok³adnie
jedn± wylosowan± z tej listy wiadomo¶æ.
Polecenie RANDOMNEWS LIST mo¿e byæ u¿yte przez ka¿dego
IRC operatora w celu wylistowania wiadomo¶ci. Polecenia
ADD i DEL s± zarezerwowane dla administratorów serwisów.
RANDOMNEWS may only be used by Services admins.
###########################################################################
#
@@ -4805,7 +4800,7 @@ NICK_HELP_SET_HIDE
Sk³adnia: SET HIDE {EMAIL | STATUS | USERMASK | QUIT} {ON | OFF}
To polecenie pozwala na ukrycie czê¶ci informacji, które
s± wy¶wietlane przez polecenie INFO serwisu %s.
s± wy¶wietlane przez polecenie %S INFO serwisu.
Pierwszy argument okre¶la ukrywan± informacjê:
EMAIL - adres e-mail, USERMASK - ostatnio u¿ywany host,
QUIT - ostatnia wiadomo¶æ po¿egnalna, STATUS - status
@@ -4931,7 +4926,7 @@ NICK_HELP_SASET_HIDE
Sk³adnia: SASET nick HIDE {EMAIL | STATUS | USERMASK | QUIT} {ON | OFF}
To polecenie pozwala na ukrycie czê¶ci informacji, które
s± wy¶wietlane przez polecenie INFO serwisu %s.
s± wy¶wietlane przez polecenie %S INFO serwisu.
Pierwszy argument okre¶la ukrywan± informacjê:
EMAIL - adres e-mail, USERMASK - ostatnio u¿ywany host,
QUIT - ostatnia wiadomo¶æ po¿egnalna, STATUS - status
@@ -5312,7 +5307,7 @@ CHAN_HELP_CMD_INFO
INFO Pokazuje informacje o zarejestrowanym kanale
CHAN_HELP_CMD_INVITE
INVITE Tells ChanServ to invite you into a channel
INVITE Zaprasza osobê wydaj±c± polecenie na kana³
CHAN_HELP_CMD_KICK
KICK Wyrzuca wskazany nick z kana³u
@@ -5598,9 +5593,10 @@ CHAN_HELP_SET_PRIVATE
CHAN_HELP_SET_RESTRICTED
Sk³adnia: SET kana³ RESTRICTED {ON | OFF}
Enables or disables the restricted access option for a
channel. When restricted access is set, users not on
the access list will instead be kicked and banned from the channel.
W³±cza lub wy³±cza opcjê ograniczonego dostêpu do kana³u.
Po w³±czeniu tej opcji tylko osoby znajduj±ce siê na
li¶cie dostêpu bêd± mog³y przebywaæ na kanale. Pozostali
u¿ytkownicy bêd± banowani, a nastêpnie usuwani z kana³u.
CHAN_HELP_SET_SECURE
Sk³adnia: SET kana³ SECURE {ON | OFF}
@@ -6224,14 +6220,14 @@ CHAN_HELP_CLEAR
Umo¿liwia kompleksowe usuniêcie niektórych ustawieñ na
kanale poprzez %S. Dostêpne opcje:
MODES Zdejmuje wszystkie tryby z kana³u
BANS Zdejmuje wszystkie bany na kanale
EXCEPTS Zdejmuje wyj±tki od banów na kanale
INVITES Clears all invites on the channel.
MODES Usuwa tryby z kana³u
BANS Usuwa bany z kana³u
EXCEPTS Usuwa wyj±tki od banów z kana³u
INVITES Usuwa zaproszenia z kana³u
OPS Odbiera wszystkim status operatora
HOPS Odbiera wszystkim status pó³-operatora
VOICES Odbiera wszystkim prawo g³osu
USERS Wykopuje wszystkich z kana³u
USERS Usuwa u¿ytkowników z kana³u
Standardowo ta komenda jest dostêpna dla w³a¶ciciela kana³u.
@@ -6511,9 +6507,9 @@ MEMO_HELP_SET_NOTIFY
trybu /AWAY.
NEW Powiadomienie bêdzie wysy³ane jedynie w
momencie otrzymania wiadomo¶ci.
MAIL You will be notified of memos by email aswell as
any other settings you have.
NOMAIL You will not be notified of memos by email.
MAIL Powiadomienia bêd± wysy³ane e-mailem oraz
wedle pozosta³ych ustawieñ.
NOMAIL Powiadomienia nie bêd± wysy³ane e-mailem.
OFF Powiadomienia nie bêd± wysy³ane.
Opcja ON jest kombinacj± opcji LOGON oraz NEW.
@@ -6695,7 +6691,7 @@ OPER_HELP_CMD_DEFCON
DEFCON Modyfikuje poziom systemu DefCon
OPER_HELP_CMD_CHANKILL
CHANKILL Od³±cza wszystkich u¿ytkowników na kanale
CHANKILL AKILL wszystkich u¿ytkowników na kanale
OPER_HELP_CMD_OLINE
OLINE Daje flagi operatora wybranemu u¿ytkownikowi
@@ -7581,7 +7577,7 @@ HOST_DELALL
Vhosty dla grupy %s zosta³y usuniête.
HOST_DELALL_SYNTAX
DELALL <nick>.
DELALL <nick>.
HOST_IDENT_SETALL
Vhosty dla grupy %s zosta³y zmienione na %s@%s.
@@ -7602,10 +7598,10 @@ HOST_NOREG
Nie znaleziono %s w bazie serwisu NickServ.
HOST_SET_SYNTAX
Sk³adnia %R%s SET <nick> <maska-hosta>.
SET <nick> <maska-hosta>.
HOST_SETALL_SYNTAX
Sk³adnia %R%s SETALL <nick> <maska-hosta>.
SETALL <nick> <maska-hosta>.
HOST_DENIED
Brak dostêpu.
@@ -7631,7 +7627,7 @@ HOST_DEL
HOST_DEL_SYNTAX
DEL <nick>.
HOST_OFF
Your vhost was removed and the normal cloaking restored.
Twój vhost zosta³ usuniêty i zosta³o w³±czone normalne ukrywanie hosta.
HOST_OFF_UNREAL
Twój vhost zosta³ usuniêty. Aby w³±czyæ standardowe ukrywanie hosta wpisz /mode %s +%s
+14 -20
View File
@@ -1,9 +1,9 @@
# Portuguese language file.
#
# (C) 2003-2009 Anope Team
# (C) 2003-2014 Anope Team
# Contact us at team@anope.org
#
# Please read COPYING and README for furhter details.
# Please read COPYING and README for further details.
#
# Based on the original code of Epona by Lara.
# Based on the original code of Services by Andy Church.
@@ -683,7 +683,7 @@ NICK_SASET_HIDE_STATUS_OFF
# SASET MSG responses
NICK_SASET_MSG_SYNTAX
SSAET nickname PRIVATE {ON | OFF}
SSAET nickname MSG {ON | OFF}
NICK_SASET_MSG_ON
Services will now reply to %s with messages.
NICK_SASET_MSG_OFF
@@ -711,7 +711,7 @@ NICK_SASET_LANGUAGE_SYNTAX
NICK_SASET_LANGUAGE_UNKNOWN
Unknown language number %d. Type %R%s HELP SET LANGUAGE for a list of languages.
NICK_SASET_LANGUAGE_CHANGED
Language changed to Portuguese.
Language for %s changed to %s.
# ACCESS responses
@@ -3325,14 +3325,12 @@ NEWS_HELP_LOGON
Edits or displays the list of logon news messages. When a
user connects to the network, these messages will be sent
to them. (However, no more than %s messages will be
to them. (However, no more than %d messages will be
sent in order to avoid flooding the user. If there are
more news messages, only the most recent will be sent.)
NewsCount can be configured in services.conf.
LOGONNEWS LIST may be used by any IRC operator to list the
current news messages. ADD and DEL may only be used by
Services admins.
LOGONNEWS may only be used by Services admins.
NEWS_HELP_OPER
Syntax: OPERNEWS ADD text
@@ -3341,14 +3339,12 @@ NEWS_HELP_OPER
Edits or displays the list of oper news messages. When a
user opers up (with the /OPER command), these messages will
be sent to them. (However, no more than %s messages will
be sent to them. (However, no more than %d messages will
be sent in order to avoid flooding the user. If there are
more news messages, only the most recent will be sent.)
NewsCount can be configured in services.conf.
OPERNEWS LIST may be used by any IRC operator to list the
current oper news messages. ADD and DEL may only be used by
Services admins.
OPERNEWS may only be used by Services admins.
NEWS_HELP_RANDOM
Sintaxe: RANDOMNEWS ADD texto
@@ -3359,9 +3355,7 @@ NEWS_HELP_RANDOM
se conecta à rede, uma (apenas uma) das random news será
aleatóriamente escolhida e enviada a ele.
RANDOMNEWS LIST pode ser usado por qualquer Operador
para listar as random news. ADD e DEL só podem ser usados
pelos Administradores dos Services.
RANDOMNEWS may only be used by Services admins.
###########################################################################
#
@@ -5522,7 +5516,7 @@ OPER_HELP_CMD_SHUTDOWN
OPER_HELP_CMD_DEFCON
DEFCON Manipula o sistema DefCon
OPER_HELP_CMD_CHANKILL
CHANKILL Derruba todos os usuários de um canal específico
CHANKILL AKILL todos os usuários de um canal específico
OPER_HELP_CMD_OLINE
OLINE Dá flags de Operador a um determinado usuário
OPER_HELP_CMD_UMODE
@@ -6515,9 +6509,9 @@ HOST_SET_IDENTTOOLONG
HOST_NOREG
Usuário %s não encontrado na DB do NickServ.
HOST_SET_SYNTAX
Sintaxe: %R%s set <nick> <hostmask>.
SET <nick> <hostmask>.
HOST_SETALL_SYNTAX
Sintaxe: %R%s setall <nick> <hostmask>.
SETALL <nick> <hostmask>.
HOST_DENIED
Acesso Negado.
HOST_NOT_ASSIGNED
@@ -6541,9 +6535,9 @@ HOST_OFF_UNREAL
HOST_NO_VIDENT
Seu IRCD não suporta vIdent's, se isto não está certo, por favor reporte isso como um possível bug.
HOST_GROUP
Todos os vhost's no grupo %s foram ajustados para %s
Todos os vhosts no grupo %s foram ajustados para %s
HOST_IDENT_GROUP
Todos os vhost's no grupo %s foram ajustados para %s@%s
Todos os vhosts no grupo %s foram ajustados para %s@%s
HOST_LIST_FOOTER
Exibidos todos os registros (Contador: %d)
HOST_LIST_RANGE_FOOTER
+11 -15
View File
@@ -1,6 +1,6 @@
# Russian language file for Anope
#
# (C) 2003-2009 Anope Team
# (C) 2003-2014 Anope Team
# Contact us at team@anope.org
#
# Please read COPYING and README for further details.
@@ -694,7 +694,7 @@ NICK_SASET_LANGUAGE_SYNTAX
NICK_SASET_LANGUAGE_UNKNOWN
ßçûêà ïîä íîìåðîì %d íå ñóùåñòâóåò. Ñïèñîê äîñòóïíûõ ÿçûêîâ: %R%s HELP SET LANGUAGE.
NICK_SASET_LANGUAGE_CHANGED
ßçûê äëÿ óêàçàííîãî íèêà èçìåíåí íà Ðóññêèé.
Language for %s changed to %s.
# ACCESS responses
NICK_ACCESS_SYNTAX
@@ -2448,6 +2448,8 @@ OPER_STATS_CHANSERV_MEM
ChanServ : %6d çàïèñåé, %5d kB
OPER_STATS_BOTSERV_MEM
BotServ : %6d çàïèñåé, %5d kB
OPER_STATS_HOSTSERV_MEM
HostServ : %6d çàïèñåé, %5d kB
OPER_STATS_OPERSERV_MEM
OperServ : %6d çàïèñåé, %5d kB
OPER_STATS_SESSIONS_MEM
@@ -3297,7 +3299,7 @@ NEWS_HELP_LOGON
Ïîçâîëÿåò óïðàâëÿòü ñïèñêîì íîâîñòåé, êîòîðûå áóäóò àâòîìàòè÷åñêè
âûäàâàòüñÿ ïîëüçîâàòåëþ ñðàçó æå, êàê òîëüêî îí ïîäêëþ÷èòñÿ ê ñåòè.
Ñòîèò çàìåòèòü, ÷òî âî èçáåæàíèå ôëóäà ïîëüçîâàòåëü ïîëó÷èò òîëüêî
%s íîâîñòü(è), òàê ÷òî åñëè ó âàñ â ñïèñêå èõ áîëüøå - ïîêàçàíû
%d íîâîñòü(è), òàê ÷òî åñëè ó âàñ â ñïèñêå èõ áîëüøå - ïîêàçàíû
áóäóò òîëüêî ïîñëåäíèå èç íèõ. Çíà÷åíèå NewsCount, îòâå÷àþùåå çà
îäíîâðåìåííî ïîñûëàåìîå êîë-âî íîâîñòåé, óêàçûâàåòñÿ â services.conf
@@ -3307,9 +3309,7 @@ NEWS_HELP_LOGON
êà÷åñòâå ïàðàìåòðà âû ìîæåòå óêàçàòü íîìåð íîâîñòè - ÷òî áû óäàëèòü
îäíó íîâîñòü, èëè ALL - ÷òî áû î÷èñòèòü ñïèñîê íîâîñòåé ïîëíîñòüþ.
Êîìàíäà LOGONNEWS LIST âûâîäèò ñïèñîê òåêóùèõ íîâîñòåé è ìîæåò áûòü
èñïîëüçîâàíà ëþáûì IRC-îïåðàòîðîì. Êîìàíäû ADD è DEL äîñòóïíû òîëüêî
Àäìèíèñòðàòîðàì ñåðâèñîâ.
LOGONNEWS may only be used by Services admins.
NEWS_HELP_OPER
Ñèíòàêñèñ: OPERNEWS ADD òåêñò
@@ -3320,7 +3320,7 @@ NEWS_HELP_OPER
ïîëüçîâàòåëü ïîëó÷èò ñòàòóñ IRC-îïåðàòîðà (èñïîëüçîâàâ êîìàíäó /OPER),
äàííûå ñîîáùåíèÿ áóäóò åìó îòïðàâëåíû àâòîìàòè÷åñêè.
Ñòîèò çàìåòèòü, ÷òî âî èçáåæàíèå ôëóäà ïîëüçîâàòåëü ïîëó÷èò òîëüêî
%s íîâîñòü(è), òàê ÷òî åñëè ó âàñ â ñïèñêå èõ áîëüøå - ïîêàçàíû
%d íîâîñòü(è), òàê ÷òî åñëè ó âàñ â ñïèñêå èõ áîëüøå - ïîêàçàíû
áóäóò òîëüêî ïîñëåäíèå èç íèõ. Çíà÷åíèå NewsCount, îòâå÷àþùåå çà
îäíîâðåìåííî ïîñûëàåìîå êîë-âî íîâîñòåé, óêàçûâàåòñÿ â services.conf
@@ -3330,9 +3330,7 @@ NEWS_HELP_OPER
êà÷åñòâå ïàðàìåòðà âû ìîæåòå óêàçàòü íîìåð íîâîñòè - ÷òî áû óäàëèòü
îäíó íîâîñòü, èëè ALL - ÷òî áû î÷èñòèòü ñïèñîê íîâîñòåé ïîëíîñòüþ.
Êîìàíäà OPERNEWS LIST âûâîäèò ñïèñîê òåêóùèõ íîâîñòåé è ìîæåò áûòü
èñïîëüçîâàíà ëþáûì IRC-îïåðàòîðîì. Êîìàíäû ADD è DEL äîñòóïíû òîëüêî
Àäìèíèñòðàòîðàì ñåðâèñîâ.
OPERNEWS may only be used by Services admins.
NEWS_HELP_RANDOM
Ñèíòàêñèñ: RANDOMNEWS ADD òåêñò
@@ -3350,9 +3348,7 @@ NEWS_HELP_RANDOM
êà÷åñòâå ïàðàìåòðà âû ìîæåòå óêàçàòü íîìåð íîâîñòè - ÷òî áû óäàëèòü
îäíó íîâîñòü, èëè ALL - ÷òî áû î÷èñòèòü ñïèñîê íîâîñòåé ïîëíîñòüþ.
Êîìàíäà RANDOMNEWS LIST âûâîäèò ñïèñîê òåêóùèõ íîâîñòåé è ìîæåò
áûòü èñïîëüçîâàíà ëþáûì IRC-Îïåðàòîðîì. Êîìàíäû ADD è DEL äîñòóïíû
òîëüêî Àäìèíèñòðàòîðàì ñåðâèñîâ.
RANDOMNEWS may only be used by Services admins.
###########################################################################
#
@@ -6655,9 +6651,9 @@ HOST_SET_IDENTTOOLONG
HOST_NOREG
Ïîëüçîâàòåëü %s íå íàéäåí â ñåðâèñíîé áàçå äàííûõ íèêîâ.
HOST_SET_SYNTAX
Ñèòàêñèñ: %R%s SET <íèê> <õîñòìàñêà>.
SET <íèê> <õîñòìàñêà>.
HOST_SETALL_SYNTAX
Ñèíòàêñèñ %R%s SETALL <íèê> <õîñòìàñêà>.
SETALL <íèê> <õîñòìàñêà>.
HOST_DENIED
Äîñòóï çàïðåùåí.
HOST_NOT_ASSIGNED
+722 -728
View File
File diff suppressed because it is too large Load Diff
+51 -38
View File
@@ -1,6 +1,6 @@
/* Various routines to perform simple actions.
*
* (C) 2003-2009 Anope Team
* (C) 2003-2014 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
@@ -8,7 +8,6 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
@@ -126,9 +125,10 @@ void sqline(char *mask, char *reason)
* Unban the nick from a channel
* @param ci channel info for the channel
* @param nick to remove the ban for
* @param full True to match against realhost
* @return void
*/
void common_unban(ChannelInfo * ci, char *nick)
static void _common_unban(ChannelInfo * ci, char *nick, boolean full)
{
char *av[4];
char *host = NULL;
@@ -163,46 +163,59 @@ void common_unban(ChannelInfo * ci, char *nick)
if (host)
ip = str_is_ip(host);
if (ircd->svsmode_unban) {
anope_cmd_unban(ci->name, nick);
if (ircdcap->tsmode) {
snprintf(buf, BUFSIZE - 1, "%ld", (long int) time(NULL));
av[0] = ci->name;
av[1] = buf;
av[2] = sstrdup("-b");
ac = 4;
} else {
if (ircdcap->tsmode) {
snprintf(buf, BUFSIZE - 1, "%ld", (long int) time(NULL));
av[0] = ci->name;
av[1] = buf;
av[2] = sstrdup("-b");
ac = 4;
} else {
av[0] = ci->name;
av[1] = sstrdup("-b");
ac = 3;
}
for (ban = ci->c->bans->entries; ban; ban = next) {
next = ban->next;
if (entry_match(ban, u->nick, u->username, u->host, ip) ||
entry_match(ban, u->nick, u->username, u->vhost, ip)) {
anope_cmd_mode(whosends(ci), ci->name, "-b %s", ban->mask);
if (ircdcap->tsmode)
av[3] = ban->mask;
else
av[2] = ban->mask;
do_cmode(whosends(ci), ac, av);
}
}
if (ircdcap->tsmode)
free(av[2]);
else
free(av[1]);
av[0] = ci->name;
av[1] = sstrdup("-b");
ac = 3;
}
for (ban = ci->c->bans->entries; ban; ban = next) {
next = ban->next;
if ((full && entry_match(ban, u->nick, u->username, u->host, ip)) ||
entry_match(ban, u->nick, u->vident, u->vhost, 0) ||
entry_match(ban, u->nick, u->username, u->chost, 0)) {
anope_cmd_mode(whosends(ci), ci->name, "-b %s", ban->mask);
if (ircdcap->tsmode)
av[3] = sstrdup(ban->mask);
else
av[2] = sstrdup(ban->mask);
do_cmode(whosends(ci), ac, av);
if (ircdcap->tsmode)
free(av[3]);
else
free(av[2]);
}
}
if (ircdcap->tsmode)
free(av[2]);
else
free(av[1]);
/* host_resolve() sstrdup us this info so we gotta free it */
if (host) {
free(host);
}
}
void common_unban(ChannelInfo * ci, char *nick)
{
_common_unban(ci, nick, false);
}
void common_unban_full(ChannelInfo * ci, char *nick, boolean full)
{
_common_unban(ci, nick, full);
}
/*************************************************************************/
/**
@@ -240,10 +253,10 @@ char *common_get_vhost(User * u)
if (!u)
return NULL;
if (ircd->vhostmode && (u->mode & ircd->vhostmode))
return u->vhost;
else if (ircd->vhost && u->vhost)
if (u->vhost)
return u->vhost;
else if (ircd->vhostmode && (u->mode & ircd->vhostmode) && u->chost)
return u->chost;
else
return u->host;
}
+5 -5
View File
@@ -1,6 +1,6 @@
/* base64 routines.
*
* (C) 2003-2009 Anope Team
* (C) 2003-2014 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
@@ -295,7 +295,7 @@ char *encode_ip(unsigned char *ip)
} else {
s_ip = str_signed(ip);
ia.s_addr = inet_addr(s_ip);
cp = (unsigned char *) ia.s_addr;
cp = (unsigned char *) &ia.s_addr;
b64_encode((char *) &cp, sizeof(struct in_addr), buf, 25);
}
return buf;
@@ -305,14 +305,14 @@ int decode_ip(char *buf)
{
int len = strlen(buf);
char targ[25];
struct in_addr ia;
struct in_addr *ia;
b64_decode(buf, targ, 25);
ia = *(struct in_addr *) targ;
ia = (struct in_addr *) targ;
if (len == 24) { /* IPv6 */
return 0;
} else if (len == 8) /* IPv4 */
return ia.s_addr;
return ia->s_addr;
else /* Error?? */
return 0;
}
-1
View File
@@ -6,7 +6,6 @@
# For usage, see the usage subroutine or run the script with no
# command line arguments.
#
# $Id$
#
# ====================================================================
require 5.6.0;
+1 -2
View File
@@ -2,7 +2,7 @@
#
# Configuration script for Services
#
# (C) 2003-2009 Anope Team
# (C) 2003-2014 Anope Team
# Contact us at team@anope.org
#
# Please read COPYING and README for further details.
@@ -10,7 +10,6 @@
# Based on the original code of Epona by Lara.
# Based on the original code of Services by Andy Church.
#
# $Id$
#
-1
View File
@@ -1,6 +1,5 @@
#!/bin/sh
#
# $Id$
# Location of the .sql file with the schema
DBSQL="tables.sql"
+32 -32
View File
@@ -1,6 +1,6 @@
/* BotServ functions
*
* (C) 2003-2009 Anope Team
* (C) 2003-2014 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
@@ -8,7 +8,6 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
@@ -246,6 +245,7 @@ void botchanmsgs(User * u, ChannelInfo * ci, char *buf)
mustkick = 1;
} else if (bw->type == BW_SINGLE) {
int len = strlen(bw->word);
int buf_len = strlen(nbuf);
if ((BSCaseSensitive && !strcmp(nbuf, bw->word))
|| (!BSCaseSensitive
@@ -253,23 +253,13 @@ void botchanmsgs(User * u, ChannelInfo * ci, char *buf)
mustkick = 1;
/* two next if are quite odd isn't it? =) */
} else if ((strchr(nbuf, ' ') == nbuf + len)
&&
((BSCaseSensitive
&& !strcmp(nbuf, bw->word))
|| (!BSCaseSensitive
&& (stristr(nbuf, bw->word) ==
nbuf)))) {
&& ((BSCaseSensitive && strstr(nbuf, bw->word) == nbuf)
|| (!BSCaseSensitive && stristr(nbuf, bw->word) == nbuf))) {
mustkick = 1;
} else {
if ((strrchr(nbuf, ' ') ==
nbuf + strlen(nbuf) - len - 1)
&&
((BSCaseSensitive
&& (strstr(nbuf, bw->word) ==
nbuf + strlen(nbuf) - len))
|| (!BSCaseSensitive
&& (stristr(nbuf, bw->word) ==
nbuf + strlen(nbuf) - len)))) {
if (len < buf_len && (strrchr(nbuf, ' ') == nbuf + buf_len - len - 1)
&& ((BSCaseSensitive && (strstr(nbuf, bw->word) == nbuf + buf_len - len))
|| (!BSCaseSensitive && (stristr(nbuf, bw->word) == nbuf + buf_len - len)))) {
mustkick = 1;
} else {
char *wordbuf = scalloc(len + 3, 1);
@@ -314,16 +304,10 @@ void botchanmsgs(User * u, ChannelInfo * ci, char *buf)
}
} else if (bw->type == BW_END) {
int len = strlen(bw->word);
int buf_len = strlen(nbuf);
if ((BSCaseSensitive
&&
(!strncmp
(nbuf + strlen(nbuf) - len, bw->word, len)))
|| (!BSCaseSensitive
&&
(!strnicmp
(nbuf + strlen(nbuf) - len, bw->word,
len)))) {
if ((BSCaseSensitive && len <= buf_len && !strncmp(nbuf + buf_len - len, bw->word, len))
|| (!BSCaseSensitive && len <= buf_len && !strnicmp(nbuf + buf_len - len, bw->word, len))) {
mustkick = 1;
} else {
char *wordbuf = scalloc(len + 2, 1);
@@ -676,7 +660,7 @@ static BanData *get_ban_data(Channel * c, User * u)
if (!c || !u)
return NULL;
snprintf(mask, sizeof(mask), "%s@%s", u->username,
snprintf(mask, sizeof(mask), "%s@%s", common_get_vident(u),
common_get_vhost(u));
for (bd = c->bd; bd; bd = next) {
@@ -790,11 +774,16 @@ void bot_join(ChannelInfo * ci)
anope_cmd_mode(whosends(ci), ci->name, "-b %s",
ban->mask);
if (ircdcap->tsmode)
av[3] = ban->mask;
av[3] = sstrdup(ban->mask);
else
av[2] = ban->mask;
av[2] = sstrdup(ban->mask);
do_cmode(whosends(ci), ac, av);
if (ircdcap->tsmode)
free(av[3]);
else
free(av[2]);
}
}
@@ -845,8 +834,15 @@ static void check_ban(ChannelInfo * ci, User * u, int ttbtype)
if (!bd)
return;
/* Bug #1135 - Don't kick/ban ULined clients */
if (is_ulined(u->server->name))
return;
bd->ttb[ttbtype]++;
if (bd->ttb[ttbtype] == ci->ttb[ttbtype]) {
if (ci->ttb[ttbtype] && bd->ttb[ttbtype] >= ci->ttb[ttbtype]) {
/* bd->ttb[ttbtype] can possibly be > ci->ttb[ttbtype] if ci->ttb[ttbtype] was changed after
* the user has been kicked - Adam
*/
char *av[4];
int ac;
char mask[BUFSIZE];
@@ -894,6 +890,10 @@ static void bot_kick(ChannelInfo * ci, User * u, int message, ...)
if (!ci || !ci->bi || !ci->c || !u)
return;
/* Bug #1135 - Don't kick ULined clients */
if (is_ulined(u->server->name))
return;
va_start(args, message);
fmt = getstring(u->na, message);
if (!fmt)
@@ -1078,13 +1078,13 @@ void bot_raw_mode(User * requester, ChannelInfo * ci, char *mode,
av[0] = ci->name;
av[1] = buf;
av[2] = mode;
av[3] = nick;
av[3] = GET_USER(u);
ac = 4;
anope_cmd_mode(ci->bi->nick, av[0], "%s %s", av[2], av[3]);
} else {
av[0] = ci->name;
av[1] = mode;
av[2] = nick;
av[2] = GET_USER(u);
ac = 3;
anope_cmd_mode(ci->bi->nick, av[0], "%s %s", av[1], av[2]);
}
+169 -46
View File
@@ -1,6 +1,6 @@
/* Channel-handling routines.
*
* (C) 2003-2009 Anope Team
* (C) 2003-2014 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
@@ -8,7 +8,6 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
@@ -52,6 +51,10 @@ void chan_deluser(User * user, Channel * c)
anope_cmd_part(c->ci->bi->nick, c->name, NULL);
}
/* Channel is permament and shouldn't be deleted */
if (anope_get_permchan_mode() && c->mode & anope_get_permchan_mode())
return;
if (!c->users)
chan_delete(c);
}
@@ -74,7 +77,7 @@ char *chan_get_modes(Channel * chan, int complete, int plus)
do {
if (chan->mode & cbmi->flag)
*end++ = cbmi->mode;
} while ((++cbmi)->flag != 0 && ++n < sizeof(res) - 1);
} while ((++cbmi)->mode != 0 && ++n < sizeof(res) - 1);
if (complete) {
cbmi = cbmodeinfos;
@@ -90,7 +93,7 @@ char *chan_get_modes(Channel * chan, int complete, int plus)
*end++ = *value++;
}
}
} while ((++cbmi)->flag != 0 && ++n < sizeof(res) - 1);
} while ((++cbmi)->mode != 0 && ++n < sizeof(res) - 1);
}
}
@@ -173,7 +176,12 @@ void chan_set_modes(const char *source, Channel * chan, int ac, char **av,
alog("debug: Changing modes for %s to %s", chan->name,
merge_args(ac, av));
u = finduser(source);
if (UseTS6 && ircd->ts6) {
u = find_byuid(source);
if (!u) u = finduser(source);
} else
u = finduser(source);
if (u && (chan_get_user_status(chan, u) & CUS_DEOPPED)) {
char *s;
@@ -191,6 +199,8 @@ void chan_set_modes(const char *source, Channel * chan, int ac, char **av,
/* Set the resulting mode buffer */
anope_cmd_mode(whosends(chan->ci), chan->name, merge_args(ac, av));
chan_set_modes(whosends(chan->ci), chan, ac, av, check);
return;
}
@@ -239,12 +249,15 @@ void chan_set_modes(const char *source, Channel * chan, int ac, char **av,
}
}
if (!(user = finduser(*av))
&& !(UseTS6 && ircd->ts6 && (user = find_byuid(*av)))) {
if (debug) {
if (UseTS6 && ircd->ts6) {
user = find_byuid(*av);
if (!user) user = finduser(*av);
} else
user = finduser(*av);
if (!user) {
if (debug)
alog("debug: MODE %s %c%c for nonexistent user %s",
chan->name, (add ? '+' : '-'), mode, *av);
}
chan->name, (add ? '+' : '-'), mode, *av);
continue;
}
@@ -254,9 +267,9 @@ void chan_set_modes(const char *source, Channel * chan, int ac, char **av,
if (add) {
chan_set_user_status(chan, user, cum->status);
/* If this does +o, remove any DEOPPED flag */
if (cum->status & CUS_OP)
chan_remove_user_status(chan, user, CUS_DEOPPED);
/* If this does +o or +h, remove any DEOPPED flag */
if (cum->status & CUS_OP || cum->status & CUS_HALFOP)
chan_remove_user_status(chan, user, CUS_DEOPPED);
} else {
chan_remove_user_status(chan, user, cum->status);
}
@@ -302,8 +315,14 @@ void chan_set_modes(const char *source, Channel * chan, int ac, char **av,
}
}
/* Don't bounce modes from u:lined clients or servers, bug #1004. */
user = finduser(source);
/* Don't bounce modes from u:lined clients or servers, bug #1004. *
* We can get UUIDs as well.. don not assume nick ~ Viper */
if (UseTS6 && ircd->ts6) {
user = find_byuid(source);
if (!user) user = finduser(source);
} else
user = finduser(source);
if ((user && is_ulined(user->server->name)) || is_ulined((char *)source))
return;
@@ -317,7 +336,14 @@ void chan_set_modes(const char *source, Channel * chan, int ac, char **av,
real_ac--;
real_av++;
for (i = 0; i < real_ac; i++) {
if ((user = finduser(*real_av)) && is_on_chan(chan, user)) {
if (UseTS6 && ircd->ts6) {
user = find_byuid(*real_av);
if (!user) user = finduser(*real_av);
} else
user = finduser(*real_av);
if (!user && UseTS6 && ircd->ts6) user = find_byuid(*real_av);
if (user && is_on_chan(chan, user)) {
if (check < 2)
chan_set_correct_modes(user, chan, 0);
else if ((chan->ci->flags) && (chan->ci->flags & CI_SECUREOPS))
@@ -616,6 +642,7 @@ void do_kick(const char *source, int ac, char **av)
User *user;
char *s, *t;
struct u_chanlist *c;
Uid *uid;
t = av[1];
while (*(s = t)) {
@@ -623,6 +650,13 @@ void do_kick(const char *source, int ac, char **av)
if (*t)
*t++ = 0;
if (ircd->ts6 && UseTS6)
{
uid = find_nickuid(s);
if (uid)
s = uid->nick;
}
/* If it is the bot that is being kicked, we make it rejoin the
* channel and stop immediately.
* --lara
@@ -770,7 +804,7 @@ void do_sjoin(const char *source, int ac, char **av)
{
Channel *c;
User *user;
Server *serv;
Server *serv = NULL;
struct c_userlist *cu;
char *s = NULL;
char *end, cubuf[7], *end2, *cumodes[6], *buf;
@@ -779,7 +813,10 @@ void do_sjoin(const char *source, int ac, char **av)
int is_created = 0;
int keep_their_modes = 1;
serv = findserver(servlist, source);
if (UseTS6 && ircd->ts6)
serv = findserver_uid(servlist, source);
if (!serv)
serv = findserver(servlist, source);
if (ircd->sjb64) {
ts = base64dects(av[0]);
@@ -799,10 +836,20 @@ void do_sjoin(const char *source, int ac, char **av)
cumodes[2] = cu->user->nick;
chan_set_modes(source, c, 3, cumodes, 2);
}
if (c->ci && c->ci->bi) {
/* This is ugly, but it always works */
anope_cmd_part(c->ci->bi->nick, c->name, "TS reop");
bot_join(c->ci);
if (c->ci)
{
if (c->ci->bi)
{
/* This is ugly, but it always works */
anope_cmd_part(c->ci->bi->nick, c->name, "TS reop");
bot_join(c->ci);
}
/* Make sure +r is set */
if (ircd->chanreg && ircd->regmode)
{
c->mode |= ircd->regmode;
anope_cmd_mode(whosends(c->ci), c->name, "+r");
}
}
/* XXX simple modes and bans */
} else if (c->creation_time < ts)
@@ -1239,10 +1286,18 @@ void do_topic(const char *source, int ac, char **av)
/* If the current topic we have matches the last known topic for this
* channel exactly, there's no need to update anything and we can as
* well just return silently without updating anything. -GD
* But we still need to update the topic internally for the channel - Adam
*/
if ((ac > 3) && *av[3] && ci && ci->last_topic
&& (strcmp(av[3], ci->last_topic) == 0)
&& (strcmp(topicsetter, ci->last_topic_setter) == 0)) {
if (c->topic)
free(c->topic);
c->topic = sstrdup(av[3]);
strscpy(c->topic_setter, topicsetter, sizeof(c->topic_setter));
c->topic_time = topic_time;
free(topicsetter);
return;
}
@@ -1266,10 +1321,13 @@ void do_topic(const char *source, int ac, char **av)
record_topic(av[0]);
if (ci && ci->last_topic) {
send_event(EVENT_TOPIC_UPDATED, 2, av[0], ci->last_topic);
} else {
send_event(EVENT_TOPIC_UPDATED, 2, av[0], "");
/* Only call events if we are synced with the uplink */
if (serv_uplink && is_sync(serv_uplink)) {
if (ci && ci->last_topic) {
send_event(EVENT_TOPIC_UPDATED, 2, av[0], ci->last_topic);
} else {
send_event(EVENT_TOPIC_UPDATED, 2, av[0], "");
}
}
}
@@ -1422,7 +1480,7 @@ void chan_set_correct_modes(User * user, Channel * c, int give_modes)
* Unless the channel has just been created. -heinz
* Or the user matches CA_AUTODEOP... -GD
*/
if (((ci->flags & CI_SECUREOPS) || (c->usercount == 1)
if (((ci->flags & CI_SECUREOPS) || (c->usercount == 1 && is_sync(user->server))
|| check_access(user, ci, CA_AUTODEOP))
&& !is_ulined(user->server->name)) {
if (ircd->owner && (status & CUS_OWNER) && !is_founder(user, ci))
@@ -1456,7 +1514,7 @@ void chan_set_correct_modes(User * user, Channel * c, int give_modes)
strcat(modebuf, tmp);
free(tmp);
strcat(userbuf, " ");
strcat(userbuf, user->nick);
strcat(userbuf, GET_USER(user));
} else {
add_modes &= ~CUS_OWNER;
}
@@ -1465,14 +1523,14 @@ void chan_set_correct_modes(User * user, Channel * c, int give_modes)
strcat(modebuf, tmp);
free(tmp);
strcat(userbuf, " ");
strcat(userbuf, user->nick);
strcat(userbuf, GET_USER(user));
} else {
add_modes &= ~CUS_PROTECT;
}
if ((add_modes & CUS_OP) && !(status & CUS_OP)) {
strcat(modebuf, "o");
strcat(userbuf, " ");
strcat(userbuf, user->nick);
strcat(userbuf, GET_USER(user));
rem_modes |= CUS_DEOPPED;
} else {
add_modes &= ~CUS_OP;
@@ -1480,14 +1538,16 @@ void chan_set_correct_modes(User * user, Channel * c, int give_modes)
if ((add_modes & CUS_HALFOP) && !(status & CUS_HALFOP)) {
strcat(modebuf, "h");
strcat(userbuf, " ");
strcat(userbuf, user->nick);
strcat(userbuf, GET_USER(user));
/* Halfops are ops too, having a halfop with CUS_DEOPPED is not good - Adam */
rem_modes |= CUS_DEOPPED;
} else {
add_modes &= ~CUS_HALFOP;
}
if ((add_modes & CUS_VOICE) && !(status & CUS_VOICE)) {
strcat(modebuf, "v");
strcat(userbuf, " ");
strcat(userbuf, user->nick);
strcat(userbuf, GET_USER(user));
} else {
add_modes &= ~CUS_VOICE;
}
@@ -1499,25 +1559,30 @@ void chan_set_correct_modes(User * user, Channel * c, int give_modes)
strcat(modebuf, tmp);
free(tmp);
strcat(userbuf, " ");
strcat(userbuf, user->nick);
strcat(userbuf, GET_USER(user));
}
if (rem_modes & CUS_PROTECT) {
tmp = stripModePrefix(ircd->adminset);
strcat(modebuf, tmp);
free(tmp);
strcat(userbuf, " ");
strcat(userbuf, user->nick);
strcat(userbuf, GET_USER(user));
}
if (rem_modes & CUS_OP) {
strcat(modebuf, "o");
strcat(userbuf, " ");
strcat(userbuf, user->nick);
add_modes |= CUS_DEOPPED;
strcat(userbuf, GET_USER(user));
/* Do not mark a user as deopped if they are halfopd - Adam */
if (!(add_modes & CUS_HALFOP) && !(status & CUS_HALFOP))
add_modes |= CUS_DEOPPED;
}
if (rem_modes & CUS_HALFOP) {
strcat(modebuf, "h");
strcat(userbuf, " ");
strcat(userbuf, user->nick);
strcat(userbuf, GET_USER(user));
/* Do not mark a user as deopped if they are opped - Adam */
if (!(add_modes & CUS_OP) && !(status & CUS_OP))
add_modes |= CUS_DEOPPED;
}
}
@@ -1678,6 +1743,7 @@ void chan_delete(Channel * c)
while (c->bans->entries) {
entry_delete(c->bans, c->bans->entries);
}
free(c->bans);
}
if (ircd->except) {
@@ -1685,6 +1751,7 @@ void chan_delete(Channel * c)
while (c->excepts->entries) {
entry_delete(c->excepts, c->excepts->entries);
}
free(c->excepts);
}
}
@@ -1693,6 +1760,7 @@ void chan_delete(Channel * c)
while (c->invites->entries) {
entry_delete(c->invites, c->invites->entries);
}
free(c->invites);
}
}
@@ -1721,6 +1789,10 @@ void del_ban(Channel * chan, char *mask)
if (ban) {
entry_delete(chan->bans, ban);
if (chan->bans->count == 0) {
free(chan->bans);
chan->bans = NULL;
}
if (debug)
alog("debug: Deleted ban %s from channel %s", mask,
@@ -1745,6 +1817,10 @@ void del_exception(Channel * chan, char *mask)
if (exception) {
entry_delete(chan->excepts, exception);
if (chan->excepts->count == 0) {
free(chan->excepts);
chan->excepts = NULL;
}
if (debug)
alog("debug: Deleted except %s to channel %s", mask,
@@ -1767,6 +1843,10 @@ void del_invite(Channel * chan, char *mask)
if (invite) {
entry_delete(chan->invites, invite);
if(chan->invites->count == 0) {
free(chan->invites);
chan->invites = NULL;
}
if (debug)
alog("debug: Deleted invite %s to channel %s", mask,
@@ -1818,6 +1898,15 @@ char *get_redirect(Channel * chan)
/*************************************************************************/
/* This is a dummy function part of making anope accept modes
* it does actively parse.. ~ Viper */
char *get_unkwn(Channel * chan)
{
return NULL;
}
/*************************************************************************/
Channel *join_user_update(User * user, Channel * chan, char *name,
time_t chants)
{
@@ -1843,11 +1932,20 @@ Channel *join_user_update(User * user, Channel * chan, char *name,
modes[2] = cu->user->nick;
chan_set_modes(s_OperServ, chan, 3, modes, 2);
}
if (chan->ci && chan->ci->bi)
if (chan->ci)
{
/* This is ugly, but it always works */
anope_cmd_part(chan->ci->bi->nick, chan->name, "TS reop");
bot_join(chan->ci);
if (chan->ci->bi)
{
/* This is ugly, but it always works */
anope_cmd_part(chan->ci->bi->nick, chan->name, "TS reop");
bot_join(chan->ci);
}
/* Make sure +r is set */
if (ircd->chanreg && ircd->regmode)
{
chan->mode |= ircd->regmode;
anope_cmd_mode(whosends(chan->ci), chan->name, "+r");
}
}
/* XXX simple modes and bans */
}
@@ -1932,6 +2030,17 @@ void set_redirect(Channel * chan, char *value)
chan->redirect ? chan->redirect : "no redirect");
}
/*************************************************************************/
/* This is a dummy function to make anope parse a param for a mode,
* yet we don't use that param internally.. ~ Viper */
void set_unkwn(Channel *chan, char *value)
{
/* Do nothing.. */
}
/*************************************************************************/
void do_mass_mode(char *modes)
{
int ac;
@@ -2176,7 +2285,7 @@ int entry_match(Entry * e, char *nick, char *user, char *host, uint32 ip)
&& (!user || stricmp(e->user, user) != 0))
return 0;
if ((e->type & ENTRYTYPE_HOST)
&& (!user || stricmp(e->host, host) != 0))
&& (!host || stricmp(e->host, host) != 0))
return 0;
if ((e->type & ENTRYTYPE_NICK_WILD)
&& !match_wild_nocase(e->nick, nick))
@@ -2302,11 +2411,12 @@ Entry *elist_match_mask(EList * list, char *mask, uint32 ip)
* Check if a user matches an entry on a list.
* @param list EntryList that should be matched against
* @param user The user to match against the entries
* @param full true to match against real host and real IP
* @return Returns the first matching entry, if none, NULL is returned.
*/
Entry *elist_match_user(EList * list, User * u)
static Entry *_elist_match_user(EList * list, User * u, boolean full)
{
Entry *res;
Entry *res = NULL;
char *host;
uint32 ip = 0;
@@ -2329,9 +2439,12 @@ Entry *elist_match_user(EList * list, User * u)
ip = str_is_ip(host);
/* Match what we ve got against the lists.. */
res = elist_match(list, u->nick, u->username, u->host, ip);
if (full)
res = elist_match(list, u->nick, u->username, u->host, ip);
if (!res)
elist_match(list, u->nick, u->username, u->vhost, ip);
res = elist_match(list, u->nick, u->vident, u->vhost, 0);
if (!res)
res = elist_match(list, u->nick, u->username, u->chost, 0);
if (host)
free(host);
@@ -2339,6 +2452,16 @@ Entry *elist_match_user(EList * list, User * u)
return res;
}
Entry *elist_match_user(EList *list, User *u)
{
return _elist_match_user(list, u, false);
}
Entry *elist_match_user_full(EList *list, User *u, boolean full)
{
return _elist_match_user(list, u, full);
}
/**
* Find a entry identical to the given mask..
* @param list EntryList that should be matched against
+134 -50
View File
@@ -1,6 +1,6 @@
/* ChanServ functions.
*
* (C) 2003-2009 Anope Team
* (C) 2003-2014 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
@@ -8,7 +8,6 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
@@ -145,7 +144,7 @@ char *get_mlock_modes(ChannelInfo * ci, int complete)
do {
if (ci->mlock_on & cbmi->flag)
*end++ = cbmi->mode;
} while ((++cbmi)->flag != 0 && ++n < sizeof(res) - 1);
} while ((++cbmi)->mode != 0 && ++n < sizeof(res) - 1);
cbmi = cbmodeinfos;
}
@@ -157,7 +156,7 @@ char *get_mlock_modes(ChannelInfo * ci, int complete)
do {
if (ci->mlock_off & cbmi->flag)
*end++ = cbmi->mode;
} while ((++cbmi)->flag != 0 && ++n < sizeof(res) - 1);
} while ((++cbmi)->mode != 0 && ++n < sizeof(res) - 1);
cbmi = cbmodeinfos;
}
@@ -173,7 +172,7 @@ char *get_mlock_modes(ChannelInfo * ci, int complete)
*end++ = *value++;
}
}
} while ((++cbmi)->flag != 0 && ++n < sizeof(res) - 1);
} while ((++cbmi)->mode != 0 && ++n < sizeof(res) - 1);
}
}
@@ -277,7 +276,7 @@ void listchans(int count_only, const char *chan)
}
if (ci->flags & CI_SUSPENDED) {
printf
("This nickname is currently suspended by %s, reason: %s\n",
("This channel is currently suspended by %s, reason: %s\n",
ci->forbidby,
(ci->forbidreason ? ci->forbidreason : "No reason"));
}
@@ -1082,10 +1081,11 @@ void save_cs_rdb_dbase(void)
void check_modes(Channel * c)
{
char modebuf[64], argbuf[BUFSIZE], *end = modebuf, *end2 = argbuf;
uint32 modes;
uint32 modes = 0;
ChannelInfo *ci;
CBModeInfo *cbmi;
CBMode *cbm;
CBModeInfo *cbmi = NULL;
CBMode *cbm = NULL;
boolean DefConOn = DefConLevel != 5;
if (!c) {
if (debug) {
@@ -1122,14 +1122,16 @@ void check_modes(Channel * c)
anope_cmd_mode(whosends(ci), c->name, "-r");
}
}
return;
/* Channels that are not regged also need the defcon modes.. ~ Viper */
/* return; */
}
/* Initialize te modes-var to set all modes not set yet but which should
/* Initialize the modes-var to set all modes not set yet but which should
* be set as by mlock and defcon.
*/
modes = ~c->mode & ci->mlock_on;
if (DefConModesSet)
if (ci)
modes = ~c->mode & ci->mlock_on;
if (DefConOn && DefConModesSet)
modes |= (~c->mode & DefConModesOn);
/* Initialize the buffers */
@@ -1145,10 +1147,15 @@ void check_modes(Channel * c)
if (cbmi->getvalue && cbmi->csgetvalue) {
char *value;
/* Check if it's a defcon or mlock mode */
if (DefConModesOn & cbmi->flag)
if (DefConOn && DefConModesOn & cbmi->flag)
value = cbmi->csgetvalue(&DefConModesCI);
else
else if (ci)
value = cbmi->csgetvalue(ci);
else {
value = NULL;
if (debug)
alog ("Warning: setting modes with unknown origin.");
}
cbm = &cbmodes[(int) cbmi->mode];
cbm->setvalue(c, value);
@@ -1160,17 +1167,22 @@ void check_modes(Channel * c)
}
}
} else if (cbmi->getvalue && cbmi->csgetvalue
&& ((ci->mlock_on & cbmi->flag)
|| (DefConModesOn & cbmi->flag))
&& ((ci && (ci->mlock_on & cbmi->flag))
|| (DefConOn && DefConModesOn & cbmi->flag))
&& (c->mode & cbmi->flag)) {
char *value = cbmi->getvalue(c);
char *csvalue;
/* Check if it's a defcon or mlock mode */
if (DefConModesOn & cbmi->flag)
if (DefConOn && DefConModesOn & cbmi->flag)
csvalue = cbmi->csgetvalue(&DefConModesCI);
else
else if (ci)
csvalue = cbmi->csgetvalue(ci);
else {
csvalue = NULL;
if (debug)
alog ("Warning: setting modes with unknown origin.");
}
/* Lock and actual values don't match, so fix the mode */
if (value && csvalue && strcmp(value, csvalue)) {
@@ -1184,14 +1196,20 @@ void check_modes(Channel * c)
*end2++ = *csvalue++;
}
}
} while ((++cbmi)->flag != 0);
} while ((++cbmi)->mode != 0);
if (*(end - 1) == '+')
end--;
modes = c->mode & ci->mlock_off;
if (DefConModesSet)
modes |= (~c->mode & DefConModesOff);
modes = 0;
if (ci) {
modes = c->mode & ci->mlock_off;
/* Make sure we don't remove a mode just set by defcon.. ~ Viper */
if (DefConOn && DefConModesSet)
modes &= ~(modes & DefConModesOn);
}
if (DefConOn && DefConModesSet)
modes |= c->mode & DefConModesOff;
if (modes) {
*end++ = '-';
@@ -1219,7 +1237,7 @@ void check_modes(Channel * c)
cbm->setvalue(c, NULL);
}
}
} while ((++cbmi)->flag != 0);
} while ((++cbmi)->mode != 0);
}
if (end == modebuf)
@@ -1228,7 +1246,7 @@ void check_modes(Channel * c)
*end = 0;
*end2 = 0;
anope_cmd_mode(whosends(ci), c->name, "%s%s", modebuf,
anope_cmd_mode((ci ? whosends(ci) : s_OperServ), c->name, "%s%s", modebuf,
(end2 == argbuf ? "" : argbuf));
}
@@ -1250,13 +1268,13 @@ int check_valid_admin(User * user, Channel * chan, int servermode)
if (servermode && !check_access(user, chan->ci, CA_AUTOPROTECT)) {
notice_lang(s_ChanServ, user, CHAN_IS_REGISTERED, s_ChanServ);
anope_cmd_mode(whosends(chan->ci), chan->name, "%s %s",
ircd->adminunset, user->nick);
ircd->adminunset, GET_USER(user));
return 0;
}
if (check_access(user, chan->ci, CA_AUTODEOP)) {
anope_cmd_mode(whosends(chan->ci), chan->name, "%s %s",
ircd->adminunset, user->nick);
ircd->adminunset, GET_USER(user));
return 0;
}
@@ -1287,40 +1305,40 @@ int check_valid_op(User * user, Channel * chan, int servermode)
tmp = stripModePrefix(ircd->ownerunset);
anope_cmd_mode(whosends(chan->ci), chan->name,
"%so%s %s %s %s", ircd->adminunset,
tmp, user->nick,
user->nick, user->nick);
tmp, GET_USER(user),
GET_USER(user), GET_USER(user));
free(tmp);
} else {
tmp = stripModePrefix(ircd->ownerunset);
anope_cmd_mode(whosends(chan->ci), chan->name,
"%sho%s %s %s %s %s",
ircd->adminunset, tmp,
user->nick, user->nick, user->nick,
user->nick);
GET_USER(user), GET_USER(user), GET_USER(user),
GET_USER(user));
free(tmp);
}
} else if (!ircd->owner && ircd->protect) {
if (check_access(user, chan->ci, CA_AUTOHALFOP)) {
anope_cmd_mode(whosends(chan->ci), chan->name,
"%so %s %s", ircd->adminunset,
user->nick, user->nick);
GET_USER(user), GET_USER(user));
} else {
anope_cmd_mode(whosends(chan->ci), chan->name,
"%soh %s %s %s", ircd->adminunset,
user->nick, user->nick, user->nick);
GET_USER(user), GET_USER(user), GET_USER(user));
}
} else {
if (check_access(user, chan->ci, CA_AUTOHALFOP)) {
anope_cmd_mode(whosends(chan->ci), chan->name, "-o %s",
user->nick);
GET_USER(user));
} else {
anope_cmd_mode(whosends(chan->ci), chan->name,
"-ho %s %s", user->nick, user->nick);
"-ho %s %s", GET_USER(user), GET_USER(user));
}
}
} else {
anope_cmd_mode(whosends(chan->ci), chan->name, "-o %s",
user->nick);
GET_USER(user));
}
return 0;
}
@@ -1331,16 +1349,16 @@ int check_valid_op(User * user, Channel * chan, int servermode)
tmp = stripModePrefix(ircd->ownerunset);
anope_cmd_mode(whosends(chan->ci), chan->name,
"%sho%s %s %s %s %s", ircd->adminunset,
tmp, user->nick, user->nick,
user->nick, user->nick);
tmp, GET_USER(user), GET_USER(user),
GET_USER(user), GET_USER(user));
free(tmp);
} else {
anope_cmd_mode(whosends(chan->ci), chan->name, "-ho %s %s",
user->nick, user->nick);
GET_USER(user), GET_USER(user));
}
} else {
anope_cmd_mode(whosends(chan->ci), chan->name, "-o %s",
user->nick);
GET_USER(user));
}
return 0;
}
@@ -1365,7 +1383,7 @@ int check_should_op(User * user, char *chan)
return 0;
if (check_access(user, ci, CA_AUTOOP)) {
anope_cmd_mode(whosends(ci), chan, "+o %s", user->nick);
anope_cmd_mode(whosends(ci), chan, "+o %s", GET_USER(user));
return 1;
}
@@ -1388,7 +1406,7 @@ int check_should_voice(User * user, char *chan)
return 0;
if (check_access(user, ci, CA_AUTOVOICE)) {
anope_cmd_mode(whosends(ci), chan, "+v %s", user->nick);
anope_cmd_mode(whosends(ci), chan, "+v %s", GET_USER(user));
return 1;
}
@@ -1405,7 +1423,7 @@ int check_should_halfop(User * user, char *chan)
return 0;
if (check_access(user, ci, CA_AUTOHALFOP)) {
anope_cmd_mode(whosends(ci), chan, "+h %s", user->nick);
anope_cmd_mode(whosends(ci), chan, "+h %s", GET_USER(user));
return 1;
}
@@ -1425,8 +1443,8 @@ int check_should_owner(User * user, char *chan)
if (((ci->flags & CI_SECUREFOUNDER) && is_real_founder(user, ci))
|| (!(ci->flags & CI_SECUREFOUNDER) && is_founder(user, ci))) {
tmp = stripModePrefix(ircd->ownerset);
anope_cmd_mode(whosends(ci), chan, "+o%s %s %s", tmp, user->nick,
user->nick);
anope_cmd_mode(whosends(ci), chan, "+o%s %s %s", tmp, GET_USER(user),
GET_USER(user));
free(tmp);
return 1;
}
@@ -1446,8 +1464,8 @@ int check_should_protect(User * user, char *chan)
if (check_access(user, ci, CA_AUTOPROTECT)) {
tmp = stripModePrefix(ircd->adminset);
anope_cmd_mode(whosends(ci), chan, "+o%s %s %s", tmp, user->nick,
user->nick);
anope_cmd_mode(whosends(ci), chan, "+o%s %s %s", tmp, GET_USER(user),
GET_USER(user));
free(tmp);
return 1;
}
@@ -1552,7 +1570,7 @@ int check_kick(User * user, char *chan, time_t chants)
if (akick->flags & AK_ISNICK)
get_idealban(ci, user, mask, sizeof(mask));
else
strcpy(mask, akick->u.mask);
strscpy(mask, akick->u.mask, sizeof(mask));
reason = akick->reason ? akick->reason : CSAutokickReason;
goto kick;
}
@@ -1683,7 +1701,7 @@ void restore_topic(char *chan)
if (ircd->join2set) {
if (whosends(ci) == s_ChanServ) {
anope_cmd_join(s_ChanServ, chan, c->creation_time);
anope_cmd_mode(NULL, chan, "+o %s", s_ChanServ);
anope_cmd_mode(NULL, chan, "+o %s", GET_BOT(s_ChanServ));
}
}
anope_cmd_topic(whosends(ci), c->name, c->topic_setter,
@@ -1745,7 +1763,7 @@ int check_topiclock(Channel * c, time_t topic_time)
if (ircd->join2set) {
if (whosends(ci) == s_ChanServ) {
anope_cmd_join(s_ChanServ, c->name, c->creation_time);
anope_cmd_mode(NULL, c->name, "+o %s", s_ChanServ);
anope_cmd_mode(NULL, c->name, "+o %s", GET_BOT(s_ChanServ));
}
}
@@ -1841,6 +1859,7 @@ void cs_remove_nick(const NickCore * nc)
ca->nc = NULL;
}
}
CleanAccess(ci);
for (akick = ci->akick, j = 0; j < ci->akickcount; akick++, j++) {
if ((akick->flags & AK_USED) && (akick->flags & AK_ISNICK)
@@ -2469,6 +2488,15 @@ char *cs_get_redirect(ChannelInfo * ci)
/*************************************************************************/
/* This is a dummy function part of making anope accept modes
* it does actively parse.. ~ Viper */
char *cs_get_unkwn(ChannelInfo * ci)
{
return NULL;
}
/*************************************************************************/
void cs_set_flood(ChannelInfo * ci, char *value)
{
if (!ci) {
@@ -2559,6 +2587,17 @@ void cs_set_redirect(ChannelInfo * ci, char *value)
}
}
/*************************************************************************/
/* This is a dummy function to make anope parse a param for a mode,
* yet we don't use that param internally.. ~ Viper */
void cs_set_unkwn(ChannelInfo * ci, char *value)
{
/* Do nothing.. */
}
/*************************************************************************/
int get_access_level(ChannelInfo * ci, NickAlias * na)
{
ChanAccess *access;
@@ -2709,3 +2748,48 @@ void stick_all(ChannelInfo * ci)
free(av[0]);
}
}
/** Reorder the access list to get rid of unused entries
* @param ci The channel to reorder the access of
*/
void CleanAccess(ChannelInfo *ci)
{
int a, b;
if (!ci)
return;
for (b = 0; b < ci->accesscount; b++)
{
if (ci->access[b].in_use)
{
for (a = 0; a < ci->accesscount; a++)
{
if (a > b)
break;
if (!ci->access[a].in_use)
{
ci->access[a].in_use = 1;
ci->access[a].level = ci->access[b].level;
ci->access[a].nc = ci->access[b].nc;
ci->access[a].last_seen = ci->access[b].last_seen;
ci->access[b].nc = NULL;
ci->access[b].in_use = 0;
break;
}
}
}
}
/* After reordering, entries on the end of the list may be empty, remove them */
for (b = ci->accesscount - 1; b >= 0; --b)
{
if (ci->access[b].in_use)
break;
ci->accesscount--;
}
/* Reallocate the access list to only use the memory we need */
ci->access = srealloc(ci->access, sizeof(ChanAccess) * ci->accesscount);
}
+45 -43
View File
@@ -1,6 +1,6 @@
/* Routines for looking up commands in a *Serv command list.
*
* (C) 2003-2009 Anope Team
* (C) 2003-2014 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
@@ -8,7 +8,6 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
@@ -95,18 +94,19 @@ void do_run_cmd(char *service, User * u, Command * c, const char *cmd)
notice_lang(service, u, OPER_DEFCON_DENIED);
}
} else {
char *mod_current_module_name_save = mod_current_module_name;
Module *mod_current_module_save = mod_current_module;
mod_current_module_name = c->mod_name;
mod_current_module = NULL;
mod_current_module = findModule(c->mod_name);
if ((c->has_priv == NULL) || c->has_priv(u)) {
retVal = c->routine(u);
mod_current_module_name = NULL;
if (retVal == MOD_CONT) {
current = c->next;
while (current && retVal == MOD_CONT) {
mod_current_module_name = current->mod_name;
mod_current_module = NULL;
retVal = current->routine(u);
mod_current_module_name = NULL;
mod_current_module = findModule(current->mod_name);
if (current->routine)
retVal = current->routine(u);
current = current->next;
}
}
@@ -115,7 +115,8 @@ void do_run_cmd(char *service, User * u, Command * c, const char *cmd)
alog("Access denied for %s with service %s and command %s",
u->nick, service, cmd);
}
mod_current_module_name = NULL;
mod_current_module_name = mod_current_module_name_save;
mod_current_module = mod_current_module_save;
}
} else {
if ((!checkDefCon(DEFCON_SILENT_OPER_ONLY)) || is_oper(u)) {
@@ -167,6 +168,8 @@ void do_help_cmd(char *service, User * u, Command * c, const char *cmd)
const char *p1 = NULL, *p2 = NULL, *p3 = NULL, *p4 = NULL;
Module *calling_module = mod_current_module;
char *calling_module_name = mod_current_module_name;
int help_message;
int (*help_message_ptr)(User *u) = NULL;
for (current = c; (current) && (cont == MOD_CONT);
current = current->next) {
@@ -180,6 +183,10 @@ void do_help_cmd(char *service, User * u, Command * c, const char *cmd)
p2 = current->help_param2;
p3 = current->help_param3;
p4 = current->help_param4;
help_message = 0;
help_message_ptr = NULL;
if (current->helpmsg_all >= 0) {
notice_help(service, u, current->helpmsg_all, p1, p2, p3, p4);
has_had_help = 1;
@@ -187,43 +194,38 @@ void do_help_cmd(char *service, User * u, Command * c, const char *cmd)
cont = current->all_help(u);
has_had_help = 1;
}
if (is_services_root(u)) {
if (current->helpmsg_root >= 0) {
notice_help(service, u, current->helpmsg_root, p1, p2, p3,
p4);
has_had_help = 1;
} else if (current->root_help) {
cont = current->root_help(u);
has_had_help = 1;
}
} else if (is_services_admin(u)) {
if (current->helpmsg_admin >= 0) {
notice_help(service, u, current->helpmsg_admin, p1, p2, p3,
p4);
has_had_help = 1;
} else if (current->admin_help) {
cont = current->admin_help(u);
has_had_help = 1;
}
} else if (is_services_oper(u)) {
if (current->helpmsg_oper >= 0) {
notice_help(service, u, current->helpmsg_oper, p1, p2, p3,
p4);
has_had_help = 1;
} else if (current->oper_help) {
cont = current->oper_help(u);
has_had_help = 1;
}
if (is_services_root(u) && (current->helpmsg_root >= 0 || current->root_help)) {
if (current->helpmsg_root >= 0)
help_message = current->helpmsg_root;
else if (current->root_help)
help_message_ptr = current->root_help;
} else if (is_services_admin(u) && (current->helpmsg_admin >= 0 || current->admin_help)) {
if (current->helpmsg_admin >= 0)
help_message = current->helpmsg_admin;
else if (current->admin_help)
help_message_ptr = current->admin_help;
} else if (is_services_oper(u) && (current->helpmsg_oper >= 0 || current->oper_help)) {
if (current->helpmsg_oper >= 0)
help_message = current->helpmsg_oper;
else if (current->oper_help)
help_message_ptr = current->oper_help;
} else {
if (current->helpmsg_reg >= 0) {
notice_help(service, u, current->helpmsg_reg, p1, p2, p3,
p4);
has_had_help = 1;
} else if (current->regular_help) {
cont = current->regular_help(u);
has_had_help = 1;
}
/* Shouldn't we check for the user to be identified? */
if (current->helpmsg_reg >= 0)
help_message = current->helpmsg_reg;
else if (current->regular_help)
help_message_ptr = current->regular_help;
}
if (help_message) {
notice_help(service, u, help_message, p1, p2, p3, p4);
has_had_help = 1;
} else if (help_message_ptr) {
cont = help_message_ptr(u);
has_had_help = 1;
}
}
if (has_had_help == 0) {
notice_lang(service, u, NO_HELP_AVAILABLE, cmd);
+1 -2
View File
@@ -1,6 +1,6 @@
/* Compatibility routines.
*
* (C) 2003-2009 Anope Team
* (C) 2003-2014 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
@@ -8,7 +8,6 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
+82 -41
View File
@@ -1,6 +1,6 @@
/* Configuration file handling.
*
* (C) 2003-2009 Anope Team
* (C) 2003-2014 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
@@ -8,7 +8,6 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
@@ -128,6 +127,7 @@ char *SendFrom;
int RestrictMail;
int MailDelay;
int DontQuoteAddresses;
int ForkForMail;
static int NSDefNone;
char *NSGuestNickPrefix;
@@ -220,7 +220,7 @@ char *GlobalOnCycleMessage;
char *GlobalOnCycleUP;
char *ServicesRoot;
char **ServicesRoots;
int RootNumber;
int RootNumber = 0;
int SuperAdmin;
int LogBot;
int LogMaxUsers;
@@ -272,8 +272,8 @@ int OSOpersOnly;
char *Modules;
char *ModulesDelayed;
char **ModulesAutoload;
int ModulesNumber;
int ModulesDelayedNumber;
int ModulesNumber = 0;
int ModulesDelayedNumber = 0;
char **ModulesDelayedAutoload;
/**
@@ -281,31 +281,31 @@ char **ModulesDelayedAutoload;
**/
char *HostCoreModules;
char **HostServCoreModules;
int HostServCoreNumber;
int HostServCoreNumber = 0;
char *MemoCoreModules;
char **MemoServCoreModules;
int MemoServCoreNumber;
int MemoServCoreNumber = 0;
char *HelpCoreModules;
char **HelpServCoreModules;
int HelpServCoreNumber;
int HelpServCoreNumber = 0;
char *BotCoreModules;
char **BotServCoreModules;
int BotServCoreNumber;
int BotServCoreNumber = 0;
char *OperCoreModules;
char **OperServCoreModules;
int OperServCoreNumber;
int OperServCoreNumber = 0;
char *NickCoreModules;
char **NickServCoreModules;
int NickServCoreNumber;
int NickServCoreNumber = 0;
char *ChanCoreModules;
char **ChanServCoreModules;
int ChanServCoreNumber;
int ChanServCoreNumber = 0;
char *MysqlHost;
@@ -346,7 +346,7 @@ int UnRestrictSAdmin;
char *UlineServers;
char **Ulines;
int NumUlines;
int NumUlines = 0;
int UseTS6;
@@ -430,6 +430,7 @@ Directive directives[] = {
{"DisableRaw", {{PARAM_SET, PARAM_RELOAD, &DisableRaw}}},
{"DontQuoteAddresses",
{{PARAM_SET, PARAM_RELOAD, &DontQuoteAddresses}}},
{"ForkForMail", {{PARAM_SET, PARAM_RELOAD, &ForkForMail}}},
{"DumpCore", {{PARAM_SET, 0, &DumpCore}}},
{"DefConLevel", {{PARAM_INT, PARAM_RELOAD, &DefConLevel}}},
{"DefCon1", {{PARAM_INT, PARAM_RELOAD, &DefCon1}}},
@@ -707,10 +708,16 @@ int parse_directive(Directive * d, char *dir, int ac, char *av[MAXPARAMS],
/* Should we remove PARAM_DEPRECATED because it's
* useless right now? -GD */
if (d->params[i].type == PARAM_DEPRECATED) {
void (*func) (void);
union func_union
{
void *ptr;
void (*func)(void);
} u;
error(linenum, "Deprecated directive `%s' used", d->name);
func = (void (*)(void)) (d->params[i].ptr);
func(); /* For clarity */
u.ptr = d->params[i].ptr;
u.func();
continue;
}
if (optind >= ac) {
@@ -722,7 +729,7 @@ int parse_directive(Directive * d, char *dir, int ac, char *av[MAXPARAMS],
}
switch (d->params[i].type) {
case PARAM_INT:
val = strtol(av[optind++], &s, 0);
val = strtol(av[optind++], &s, 10);
if (*s) {
error(linenum,
"%s: Expected an integer for parameter %d",
@@ -733,7 +740,7 @@ int parse_directive(Directive * d, char *dir, int ac, char *av[MAXPARAMS],
*(int *) d->params[i].ptr = val;
break;
case PARAM_POSINT:
val = strtol(av[optind++], &s, 0);
val = strtol(av[optind++], &s, 10);
if (*s || val <= 0) {
error(linenum,
"%s: Expected a positive integer for parameter %d",
@@ -750,7 +757,7 @@ int parse_directive(Directive * d, char *dir, int ac, char *av[MAXPARAMS],
*(int *) d->params[i].ptr = val;
break;
case PARAM_PORT:
val = strtol(av[optind++], &s, 0);
val = strtol(av[optind++], &s, 10);
if (*s) {
error(linenum,
"%s: Expected a port number for parameter %d",
@@ -767,8 +774,11 @@ int parse_directive(Directive * d, char *dir, int ac, char *av[MAXPARAMS],
*(int *) d->params[i].ptr = val;
break;
case PARAM_STRING:
/* if (reload && *(char **)d->params[i].ptr)
free(*(char **)d->params[i].ptr); */
/*
* Anope_Free(*(char **)d->params[i].ptr);
* Historically dumb modules pass uninitialized values here so
* we can't free this
*/
*(char **) d->params[i].ptr = sstrdup(av[optind++]);
if (!d->params[i].ptr) {
error(linenum, "%s: Out of memory", d->name);
@@ -925,7 +935,9 @@ int read_config(int reload)
perror("Can't open " SERVICES_CONF);
else
alog("Can't open %s", SERVICES_CONF);
#ifndef NOT_MAIN
}
#endif
return 0;
}
while (fgets(buf, sizeof(buf), config)) {
@@ -1238,14 +1250,15 @@ int read_config(int reload)
/* Services Root building */
if (ServicesRoot && !reload) { /* Check to prevent segmentation fault if it's missing */
RootNumber = 0;
while( RootNumber )
free(ServicesRoots[--RootNumber]);
s = strtok(ServicesRoot, " ");
do {
if (s) {
RootNumber++;
ServicesRoots =
realloc(ServicesRoots, sizeof(char *) * RootNumber);
srealloc(ServicesRoots, sizeof(char *) * RootNumber);
ServicesRoots[RootNumber - 1] = sstrdup(s);
}
} while ((s = strtok(NULL, " ")));
@@ -1259,43 +1272,70 @@ int read_config(int reload)
/* Ulines */
if (UlineServers) {
NumUlines = 0;
while( NumUlines )
free(Ulines[--NumUlines]);
s = strtok(UlineServers, " ");
do {
if (s) {
NumUlines++;
Ulines = realloc(Ulines, sizeof(char *) * NumUlines);
Ulines = srealloc(Ulines, sizeof(char *) * NumUlines);
Ulines[NumUlines - 1] = sstrdup(s);
}
} while ((s = strtok(NULL, " ")));
}
/* Host Setters building... :P */
while( HostNumber )
free(HostSetters[--HostNumber]);
Anope_Free(HostSetters);
HostSetters = buildStringList(HostSetter, &HostNumber);
/* Modules Autoload building... :P */
while( ModulesNumber )
free(ModulesAutoload[--ModulesNumber]);
Anope_Free(ModulesAutoload);
ModulesAutoload = buildStringList(Modules, &ModulesNumber);
ModulesDelayedAutoload =
buildStringList(ModulesDelayed, &ModulesDelayedNumber);
HostServCoreModules =
buildStringList(HostCoreModules, &HostServCoreNumber);
MemoServCoreModules =
buildStringList(MemoCoreModules, &MemoServCoreNumber);
HelpServCoreModules =
buildStringList(HelpCoreModules, &HelpServCoreNumber);
BotServCoreModules =
buildStringList(BotCoreModules, &BotServCoreNumber);
while( ModulesDelayedNumber )
free(ModulesDelayedAutoload[--ModulesDelayedNumber]);
Anope_Free(ModulesDelayedAutoload);
ModulesDelayedAutoload = buildStringList(ModulesDelayed, &ModulesDelayedNumber);
OperServCoreModules =
buildStringList(OperCoreModules, &OperServCoreNumber);
while( HostServCoreNumber )
free(HostServCoreModules[--HostServCoreNumber]);
Anope_Free(HostServCoreModules);
HostServCoreModules = buildStringList(HostCoreModules, &HostServCoreNumber);
ChanServCoreModules =
buildStringList(ChanCoreModules, &ChanServCoreNumber);
while( MemoServCoreNumber )
free(MemoServCoreModules[--MemoServCoreNumber]);
Anope_Free(MemoServCoreModules);
MemoServCoreModules = buildStringList(MemoCoreModules, &MemoServCoreNumber);
NickServCoreModules =
buildStringList(NickCoreModules, &NickServCoreNumber);
while( HelpServCoreNumber )
free(HelpServCoreModules[--HelpServCoreNumber]);
Anope_Free(HelpServCoreModules);
HelpServCoreModules = buildStringList(HelpCoreModules, &HelpServCoreNumber);
while( BotServCoreNumber )
free(BotServCoreModules[--BotServCoreNumber]);
Anope_Free(BotServCoreModules);
BotServCoreModules = buildStringList(BotCoreModules, &BotServCoreNumber);
while( OperServCoreNumber )
free(OperServCoreModules[--OperServCoreNumber]);
Anope_Free(OperServCoreModules);
OperServCoreModules = buildStringList(OperCoreModules, &OperServCoreNumber);
while( ChanServCoreNumber )
free(ChanServCoreModules[--ChanServCoreNumber]);
Anope_Free(ChanServCoreModules);
ChanServCoreModules = buildStringList(ChanCoreModules, &ChanServCoreNumber);
while( NickServCoreNumber )
free(NickServCoreModules[--NickServCoreNumber]);
Anope_Free(NickServCoreModules);
NickServCoreModules = buildStringList(NickCoreModules, &NickServCoreNumber);
if (LimitSessions) {
@@ -1404,6 +1444,7 @@ int read_config(int reload)
CHECK(UseMail);
CHECK(NSForceEmail);
} else {
Anope_Free(PreNickDBName);
PreNickDBName = NULL;
NSRExpire = 0;
}
+1 -1
View File
@@ -3,7 +3,7 @@ include ../../Makefile.inc.win32
SRCS=bs_act.c bs_assign.c bs_badwords.c bs_bot.c bs_botlist.c bs_fantasy.c bs_fantasy_kick.c bs_fantasy_kickban.c bs_fantasy_owner.c bs_fantasy_seen.c bs_help.c bs_info.c bs_kick.c bs_say.c bs_set.c bs_unassign.c cs_access.c cs_akick.c cs_ban.c cs_clear.c cs_drop.c cs_forbid.c cs_getkey.c cs_getpass.c cs_help.c cs_identify.c cs_info.c cs_invite.c cs_kick.c cs_list.c cs_logout.c cs_modes.c cs_register.c cs_sendpass.c cs_set.c cs_status.c cs_suspend.c cs_topic.c cs_xop.c enc_none.c enc_md5.c enc_old.c enc_sha1.c he_help.c hs_del.c hs_delall.c hs_group.c hs_help.c hs_list.c hs_off.c hs_on.c hs_set.c hs_setall.c ms_cancel.c ms_check.c ms_del.c ms_help.c ms_info.c ms_list.c ms_read.c ms_rsend.c ms_send.c ms_sendall.c ms_set.c ms_staff.c ns_access.c ns_alist.c ns_drop.c ns_forbid.c ns_getemail.c ns_getpass.c ns_ghost.c ns_group.c ns_help.c ns_identify.c ns_info.c ns_list.c ns_logout.c ns_recover.c ns_register.c ns_release.c ns_sendpass.c ns_set.c ns_saset.c ns_status.c ns_suspend.c ns_update.c os_admin.c os_akill.c os_chankill.c os_chanlist.c os_clearmodes.c os_defcon.c os_global.c os_help.c os_ignore.c os_jupe.c os_kick.c os_logonnews.c os_mode.c os_modinfo.c os_modlist.c os_modload.c os_modunload.c os_noop.c os_oline.c os_oper.c os_opernews.c os_quit.c os_randomnews.c os_raw.c os_reload.c os_restart.c os_session.c os_set.c os_sgline.c os_shutdown.c os_sqline.c os_staff.c os_stats.c os_svsnick.c os_szline.c os_umode.c os_update.c os_userlist.c
OBJECTS= $(SRCS:.c=.dll)
CFLAGS=/LD /MD /D MODULE_COMPILE $(CFLAGS) /I"../../include"
LFLAGS=/link ../anope.lib wsock32.lib $(LIBS) $(LFLAGS) $(MYSQL_LIB_PATH) /export:AnopeInit /export:AnopeFini /VERSION:$(VERSION)
LFLAGS=/link ../anope.lib wsock32.lib $(LIBS) $(LFLAGS) $(MYSQL_LIB_PATH) /export:AnopeInit /export:AnopeFini /VERSION:1.8
all: $(OBJECTS)
+6 -7
View File
@@ -1,6 +1,6 @@
/* BotServ core functions
*
* (C) 2003-2009 Anope Team
* (C) 2003-2014 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
@@ -8,15 +8,14 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
#include "module.h"
int do_act(User * u);
void myBotServHelp(User * u);
static int do_act(User * u);
static void myBotServHelp(User * u);
/**
* Create the command, and tell anope about it.
@@ -29,7 +28,7 @@ int AnopeInit(int argc, char **argv)
Command *c;
moduleAddAuthor("Anope");
moduleAddVersion("$Id$");
moduleAddVersion(VERSION_STRING);
moduleSetType(CORE);
c = createCommand("ACT", do_act, NULL, BOT_HELP_ACT, -1, -1, -1, -1);
moduleAddCommand(BOTSERV, c, MOD_UNIQUE);
@@ -51,7 +50,7 @@ void AnopeFini(void)
* Add the help response to Anopes /bs help output.
* @param u The user who is requesting help
**/
void myBotServHelp(User * u)
static void myBotServHelp(User * u)
{
notice_lang(s_BotServ, u, BOT_HELP_CMD_ACT);
}
@@ -61,7 +60,7 @@ void myBotServHelp(User * u)
* @param u The user who issued the command
* @param MOD_CONT to continue processing other modules, MOD_STOP to stop processing.
**/
int do_act(User * u)
static int do_act(User * u)
{
ChannelInfo *ci;
+8 -7
View File
@@ -1,6 +1,6 @@
/* BotServ core functions
*
* (C) 2003-2009 Anope Team
* (C) 2003-2014 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
@@ -8,15 +8,14 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
#include "module.h"
int do_assign(User * u);
void myBotServHelp(User * u);
static int do_assign(User * u);
static void myBotServHelp(User * u);
/**
* Create the command, and tell anope about it.
@@ -29,7 +28,7 @@ int AnopeInit(int argc, char **argv)
Command *c;
moduleAddAuthor("Anope");
moduleAddVersion("$Id$");
moduleAddVersion(VERSION_STRING);
moduleSetType(CORE);
c = createCommand("ASSIGN", do_assign, NULL, BOT_HELP_ASSIGN, -1, -1,
-1, -1);
@@ -53,7 +52,7 @@ void AnopeFini(void)
* Add the help response to Anopes /bs help output.
* @param u The user who is requesting help
**/
void myBotServHelp(User * u)
static void myBotServHelp(User * u)
{
notice_lang(s_BotServ, u, BOT_HELP_CMD_ASSIGN);
}
@@ -63,7 +62,7 @@ void myBotServHelp(User * u)
* @param u The user who issued the command
* @param MOD_CONT to continue processing other modules, MOD_STOP to stop processing.
**/
int do_assign(User * u)
static int do_assign(User * u)
{
char *chan = strtok(NULL, " ");
char *nick = strtok(NULL, " ");
@@ -95,6 +94,8 @@ int do_assign(User * u)
if (ci->c && ci->c->usercount >= BSMinUsers) {
bot_join(ci);
}
alog("%s: %s!%s@%s assigned bot %s to %s", s_BotServ, u->nick, u->username,
u->host, bi->nick, ci->name);
notice_lang(s_BotServ, u, BOT_ASSIGN_ASSIGNED, bi->nick, ci->name);
send_event(EVENT_BOT_ASSIGN, 2, ci->name, bi->nick);
}
+23 -14
View File
@@ -1,6 +1,6 @@
/* BotServ core functions
*
* (C) 2003-2009 Anope Team
* (C) 2003-2014 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
@@ -8,18 +8,17 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
#include "module.h"
int do_badwords(User * u);
void myBotServHelp(User * u);
int badwords_del_callback(User * u, int num, va_list args);
int badwords_list(User * u, int index, ChannelInfo * ci, int *sent_header);
int badwords_list_callback(User * u, int num, va_list args);
static int do_badwords(User * u);
static void myBotServHelp(User * u);
static int badwords_del_callback(User * u, int num, va_list args);
static int badwords_list(User * u, int index, ChannelInfo * ci, int *sent_header);
static int badwords_list_callback(User * u, int num, va_list args);
/**
* Create the command, and tell anope about it.
@@ -32,7 +31,7 @@ int AnopeInit(int argc, char **argv)
Command *c;
moduleAddAuthor("Anope");
moduleAddVersion("$Id$");
moduleAddVersion(VERSION_STRING);
moduleSetType(CORE);
c = createCommand("BADWORDS", do_badwords, NULL, BOT_HELP_BADWORDS, -1,
@@ -58,7 +57,7 @@ void AnopeFini(void)
* Add the help response to Anopes /bs help output.
* @param u The user who is requesting help
**/
void myBotServHelp(User * u)
static void myBotServHelp(User * u)
{
notice_lang(s_BotServ, u, BOT_HELP_CMD_BADWORDS);
}
@@ -68,7 +67,7 @@ void myBotServHelp(User * u)
* @param u The user who issued the command
* @param MOD_CONT to continue processing other modules, MOD_STOP to stop processing.
**/
int do_badwords(User * u)
static int do_badwords(User * u)
{
char *chan = strtok(NULL, " ");
char *cmd = strtok(NULL, " ");
@@ -143,7 +142,9 @@ int do_badwords(User * u)
bw->in_use = 1;
bw->word = sstrdup(word);
bw->type = type;
alog("%s: %s!%s@%s added badword \"%s\" to %s",
s_BotServ, u->nick, u->username, u->host, bw->word, ci->name);
notice_lang(s_BotServ, u, BOT_BADWORDS_ADDED, bw->word, ci->name);
} else if (stricmp(cmd, "DEL") == 0) {
@@ -169,9 +170,13 @@ int do_badwords(User * u)
ci->name);
}
} else if (deleted == 1) {
alog("%s: %s!%s@%s deleted 1 badword from %s",
s_BotServ, u->nick, u->username, u->host, ci->name);
notice_lang(s_BotServ, u, BOT_BADWORDS_DELETED_ONE,
ci->name);
} else {
alog("%s: %s!%s@%s deleted %d badwords from %s",
s_BotServ, u->nick, u->username, u->host, deleted, ci->name);
notice_lang(s_BotServ, u, BOT_BADWORDS_DELETED_SEVERAL,
deleted, ci->name);
}
@@ -187,6 +192,8 @@ int do_badwords(User * u)
return MOD_CONT;
}
bw = &ci->badwords[i];
alog("%s: %s!%s@%s deleted badword \"%s\" from %s",
s_BotServ, u->nick, u->username, u->host, bw->word, ci->name);
notice_lang(s_BotServ, u, BOT_BADWORDS_DELETED, bw->word,
ci->name);
if (bw->word)
@@ -266,6 +273,8 @@ int do_badwords(User * u)
ci->badwords = NULL;
ci->bwcount = 0;
alog("%s: %s!%s@%s cleared badwords on %s",
s_BotServ, u->nick, u->username, u->host, ci->name);
notice_lang(s_BotServ, u, BOT_BADWORDS_CLEAR);
} else {
@@ -274,7 +283,7 @@ int do_badwords(User * u)
return MOD_CONT;
}
int badwords_del_callback(User * u, int num, va_list args)
static int badwords_del_callback(User * u, int num, va_list args)
{
BadWord *bw;
ChannelInfo *ci = va_arg(args, ChannelInfo *);
@@ -294,7 +303,7 @@ int badwords_del_callback(User * u, int num, va_list args)
return 1;
}
int badwords_list(User * u, int index, ChannelInfo * ci, int *sent_header)
static int badwords_list(User * u, int index, ChannelInfo * ci, int *sent_header)
{
BadWord *bw = &ci->badwords[index];
@@ -316,7 +325,7 @@ int badwords_list(User * u, int index, ChannelInfo * ci, int *sent_header)
return 1;
}
int badwords_list_callback(User * u, int num, va_list args)
static int badwords_list_callback(User * u, int num, va_list args)
{
ChannelInfo *ci = va_arg(args, ChannelInfo *);
int *sent_header = va_arg(args, int *);
+26 -15
View File
@@ -1,6 +1,6 @@
/* BotServ core functions
*
* (C) 2003-2009 Anope Team
* (C) 2003-2014 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
@@ -8,17 +8,16 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
#include "module.h"
int do_bot(User * u);
int delbot(BotInfo * bi);
void myBotServHelp(User * u);
void change_bot_nick(BotInfo * bi, char *newnick);
static int do_bot(User * u);
static int delbot(BotInfo * bi);
static void myBotServHelp(User * u);
static void change_bot_nick(BotInfo * bi, char *newnick);
/**
* Create the command, and tell anope about it.
@@ -31,7 +30,7 @@ int AnopeInit(int argc, char **argv)
Command *c;
moduleAddAuthor("Anope");
moduleAddVersion("$Id$");
moduleAddVersion(VERSION_STRING);
moduleSetType(CORE);
c = createCommand("BOT", do_bot, is_services_admin, -1, -1, -1,
@@ -57,7 +56,7 @@ void AnopeFini(void)
* Add the help response to Anopes /bs help output.
* @param u The user who is requesting help
**/
void myBotServHelp(User * u)
static void myBotServHelp(User * u)
{
if (is_services_admin(u)) {
notice_lang(s_BotServ, u, BOT_HELP_CMD_BOT);
@@ -69,7 +68,7 @@ void myBotServHelp(User * u)
* @param u The user who issued the command
* @param MOD_CONT to continue processing other modules, MOD_STOP to stop processing.
**/
int do_bot(User * u)
static int do_bot(User * u)
{
BotInfo *bi;
char *cmd = strtok(NULL, " ");
@@ -124,7 +123,7 @@ int do_bot(User * u)
}
for (ch = user; *ch && (ch - user) < USERMAX; ch++) {
if (!isalnum(*ch)) {
notice_lang(s_BotServ, u, BOT_LONG_IDENT, USERMAX - 1);
notice_lang(s_BotServ, u, BOT_BAD_IDENT, USERMAX - 1);
return MOD_CONT;
}
}
@@ -169,6 +168,9 @@ int do_bot(User * u)
anope_cmd_bot_nick(bi->nick, bi->user, bi->host, bi->real,
ircd->botserv_bot_mode);
alog("%s: %s!%s@%s added bot %s!%s@%s (%s) to the bot list",
s_BotServ, u->nick, u->username, u->host, bi->nick, bi->user,
bi->host, bi->real);
notice_lang(s_BotServ, u, BOT_BOT_ADDED, bi->nick, bi->user,
bi->host, bi->real);
@@ -244,7 +246,7 @@ int do_bot(User * u)
if (user) {
for (ch = user; *ch && (ch - user) < USERMAX; ch++) {
if (!isalnum(*ch)) {
notice_lang(s_BotServ, u, BOT_LONG_IDENT, USERMAX - 1);
notice_lang(s_BotServ, u, BOT_BAD_IDENT, USERMAX - 1);
return MOD_CONT;
}
}
@@ -276,6 +278,12 @@ int do_bot(User * u)
EnforceQlinedNick(nick, s_BotServ);
}
/* Send the QUIT before changing the bot internally, so proto mods (InspIRCD 1.2)
* can get the uid if needed (or other things )and send that - Adam
*/
if (user)
anope_cmd_quit(bi->nick, "Quit: Be right back");
if (strcmp(nick, bi->nick))
change_bot_nick(bi, nick);
@@ -299,13 +307,14 @@ int do_bot(User * u)
anope_cmd_chg_nick(oldnick, bi->nick);
anope_cmd_sqline(bi->nick, "Reserved for services");
} else {
anope_cmd_quit(oldnick, "Quit: Be right back");
anope_cmd_bot_nick(bi->nick, bi->user, bi->host, bi->real,
ircd->botserv_bot_mode);
bot_rejoin_all(bi);
}
alog("%s: %s!%s@%s changed bot %s to: %s!%s@%s (%s)",
s_BotServ, u->nick, u->username, u->host, oldnick, bi->nick, bi->user,
bi->host, bi->real);
notice_lang(s_BotServ, u, BOT_BOT_CHANGED, oldnick, bi->nick,
bi->user, bi->host, bi->real);
@@ -330,6 +339,8 @@ int do_bot(User * u)
}
delbot(bi);
alog("%s: %s!%s@%s deleted bot %s from the bot list",
s_BotServ, u->nick, u->username, u->host, nick);
notice_lang(s_BotServ, u, BOT_BOT_DELETED, nick);
}
} else
@@ -338,7 +349,7 @@ int do_bot(User * u)
return MOD_CONT;
}
int delbot(BotInfo * bi)
static int delbot(BotInfo * bi)
{
cs_remove_bot(bi);
@@ -361,7 +372,7 @@ int delbot(BotInfo * bi)
return 1;
}
void change_bot_nick(BotInfo * bi, char *newnick)
static void change_bot_nick(BotInfo * bi, char *newnick)
{
if (bi->next)
bi->next->prev = bi->prev;
+6 -7
View File
@@ -1,6 +1,6 @@
/* BotServ core functions
*
* (C) 2003-2009 Anope Team
* (C) 2003-2014 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
@@ -8,15 +8,14 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
#include "module.h"
int do_botlist(User * u);
void myBotServHelp(User * u);
static int do_botlist(User * u);
static void myBotServHelp(User * u);
/**
* Create the botlist command, and tell anope about it.
@@ -29,7 +28,7 @@ int AnopeInit(int argc, char **argv)
Command *c;
moduleAddAuthor("Anope");
moduleAddVersion("$Id$");
moduleAddVersion(VERSION_STRING);
moduleSetType(CORE);
c = createCommand("BOTLIST", do_botlist, NULL, BOT_HELP_BOTLIST, -1,
-1, -1, -1);
@@ -54,7 +53,7 @@ void AnopeFini(void)
* Add the help response to Anopes /bs help output.
* @param u The user who is requesting help
**/
void myBotServHelp(User * u)
static void myBotServHelp(User * u)
{
notice_lang(s_BotServ, u, BOT_HELP_CMD_BOTLIST);
}
@@ -64,7 +63,7 @@ void myBotServHelp(User * u)
* @param u The user who issued the command
* @param MOD_CONT to continue processing other modules, MOD_STOP to stop processing.
**/
int do_botlist(User * u)
static int do_botlist(User * u)
{
int i, count = 0;
BotInfo *bi;
+12 -13
View File
@@ -1,6 +1,6 @@
/* BotServ core fantasy functions
*
* (C) 2003-2009 Anope Team
* (C) 2003-2014 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
@@ -8,14 +8,13 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
#include "module.h"
int do_fantasy(int argc, char **argv);
static int do_fantasy(int argc, char **argv);
/**
* Create the hook, and tell anope about it.
@@ -28,7 +27,7 @@ int AnopeInit(int argc, char **argv)
EvtHook *hook;
moduleAddAuthor("Anope");
moduleAddVersion("$Id$");
moduleAddVersion(VERSION_STRING);
moduleSetType(CORE);
hook = createEventHook(EVENT_BOT_FANTASY, do_fantasy);
moduleAddEventHook(hook);
@@ -50,7 +49,7 @@ void AnopeFini(void)
* @param argv Argument list
* @return MOD_CONT or MOD_STOP
**/
int do_fantasy(int argc, char **argv)
static int do_fantasy(int argc, char **argv)
{
User *u;
ChannelInfo *ci;
@@ -62,14 +61,14 @@ int do_fantasy(int argc, char **argv)
do {
if (stricmp(argv[0], util->bsname) == 0) {
/* This could have been moved to its own module
however it would require more coding to handle the pass holders
similar to how PROTECT is done
*/
if (!ircd->halfop) {
if (!stricmp(argv[0], "halfop") || !stricmp(argv[0], "dehalfop")) {
return MOD_CONT;
}
/* This could have been moved to its own module
however it would require more coding to handle the pass holders
similar to how PROTECT is done
*/
if (!ircd->halfop) {
if (!stricmp(argv[0], "halfop") || !stricmp(argv[0], "dehalfop")) {
return MOD_CONT;
}
}
u = finduser(argv[1]);
ci = cs_findchan(argv[2]);
+4 -5
View File
@@ -1,6 +1,6 @@
/* BotServ core fantasy functions
*
* (C) 2003-2009 Anope Team
* (C) 2003-2014 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
@@ -8,14 +8,13 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
#include "module.h"
int do_fantasy(int argc, char **argv);
static int do_fantasy(int argc, char **argv);
/**
* Create the hook, and tell anope about it.
@@ -29,7 +28,7 @@ int AnopeInit(int argc, char **argv)
moduleAddAuthor("Anope");
moduleAddVersion
("$Id$");
(VERSION_STRING);
moduleSetType(CORE);
hook = createEventHook(EVENT_BOT_FANTASY, do_fantasy);
@@ -52,7 +51,7 @@ void AnopeFini(void)
* @param argv Argument list
* @return MOD_CONT or MOD_STOP
**/
int do_fantasy(int argc, char **argv)
static int do_fantasy(int argc, char **argv)
{
User *u, *u2;
ChannelInfo *ci;
+4 -5
View File
@@ -1,6 +1,6 @@
/* BotServ core fantasy functions
*
* (C) 2003-2009 Anope Team
* (C) 2003-2014 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
@@ -8,14 +8,13 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
#include "module.h"
int do_fantasy(int argc, char **argv);
static int do_fantasy(int argc, char **argv);
/**
* Create the hook, and tell anope about it.
@@ -29,7 +28,7 @@ int AnopeInit(int argc, char **argv)
moduleAddAuthor("Anope");
moduleAddVersion
("$Id$");
(VERSION_STRING);
moduleSetType(CORE);
hook = createEventHook(EVENT_BOT_FANTASY, do_fantasy);
@@ -52,7 +51,7 @@ void AnopeFini(void)
* @param argv Argument list
* @return MOD_CONT or MOD_STOP
**/
int do_fantasy(int argc, char **argv)
static int do_fantasy(int argc, char **argv)
{
User *u, *u2;
ChannelInfo *ci;
+5 -12
View File
@@ -1,6 +1,6 @@
/* BotServ core fantasy functions
*
* (C) 2003-2009 Anope Team
* (C) 2003-2014 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
@@ -8,14 +8,13 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
#include "module.h"
int do_fantasy(int argc, char **argv);
static int do_fantasy(int argc, char **argv);
/**
* Create the hook, and tell anope about it.
@@ -29,15 +28,9 @@ int AnopeInit(int argc, char **argv)
moduleAddAuthor("Anope");
moduleAddVersion
("$Id$");
(VERSION_STRING);
moduleSetType(CORE);
/* No need to load of we don't support owner */
if (!ircd->owner) {
alog("Your ircd doesn't support the owner channelmode; bs_fantasy_owner won't be loaded");
return MOD_STOP;
}
hook = createEventHook(EVENT_BOT_FANTASY, do_fantasy);
moduleAddEventHook(hook);
@@ -58,12 +51,12 @@ void AnopeFini(void)
* @param argv Argument list
* @return MOD_CONT or MOD_STOP
**/
int do_fantasy(int argc, char **argv)
static int do_fantasy(int argc, char **argv)
{
User *u;
ChannelInfo *ci;
if (argc < 3)
if (argc < 3 || !ircd->owner)
return MOD_CONT;
if (stricmp(argv[0], "deowner") == 0) {
+4 -5
View File
@@ -1,6 +1,6 @@
/* BotServ core fantasy functions
*
* (C) 2003-2009 Anope Team
* (C) 2003-2014 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
@@ -8,14 +8,13 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
#include "module.h"
int do_fantasy(int argc, char **argv);
static int do_fantasy(int argc, char **argv);
/**
* Create the hook, and tell anope about it.
@@ -29,7 +28,7 @@ int AnopeInit(int argc, char **argv)
moduleAddAuthor("Anope");
moduleAddVersion
("$Id$");
(VERSION_STRING);
moduleSetType(CORE);
hook = createEventHook(EVENT_BOT_FANTASY, do_fantasy);
@@ -52,7 +51,7 @@ void AnopeFini(void)
* @param argv Argument list
* @return MOD_CONT or MOD_STOP
**/
int do_fantasy(int argc, char **argv)
static int do_fantasy(int argc, char **argv)
{
User *u;
ChannelInfo *ci;
+4 -5
View File
@@ -1,6 +1,6 @@
/* BotServ core functions
*
* (C) 2003-2009 Anope Team
* (C) 2003-2014 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
@@ -8,14 +8,13 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
#include "module.h"
int do_help(User * u);
static int do_help(User * u);
/**
* Create the help command, and tell anope about it.
@@ -28,7 +27,7 @@ int AnopeInit(int argc, char **argv)
Command *c;
moduleAddAuthor("Anope");
moduleAddVersion("$Id$");
moduleAddVersion(VERSION_STRING);
moduleSetType(CORE);
c = createCommand("HELP", do_help, NULL, -1, -1, -1, -1, -1);
moduleAddCommand(BOTSERV, c, MOD_UNIQUE);
@@ -52,7 +51,7 @@ void AnopeFini(void)
* @param u The user who issued the command
* @param MOD_CONT to continue processing other modules, MOD_STOP to stop processing.
**/
int do_help(User * u)
static int do_help(User * u)
{
char *cmd = strtok(NULL, "");
+8 -9
View File
@@ -1,6 +1,6 @@
/* BotServ core functions
*
* (C) 2003-2009 Anope Team
* (C) 2003-2014 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
@@ -8,16 +8,15 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
#include "module.h"
int do_info(User * u);
void send_bot_channels(User * u, BotInfo * bi);
void myBotServHelp(User * u);
static int do_info(User * u);
static void send_bot_channels(User * u, BotInfo * bi);
static void myBotServHelp(User * u);
/**
* Create the info command, and tell anope about it.
@@ -30,7 +29,7 @@ int AnopeInit(int argc, char **argv)
Command *c;
moduleAddAuthor("Anope");
moduleAddVersion("$Id$");
moduleAddVersion(VERSION_STRING);
moduleSetType(CORE);
c = createCommand("INFO", do_info, NULL, BOT_HELP_INFO, -1, -1, -1,
-1);
@@ -55,7 +54,7 @@ void AnopeFini(void)
* Add the help response to Anopes /bs help output.
* @param u The user who is requesting help
**/
void myBotServHelp(User * u)
static void myBotServHelp(User * u)
{
notice_lang(s_BotServ, u, BOT_HELP_CMD_INFO);
}
@@ -65,7 +64,7 @@ void myBotServHelp(User * u)
* @param u The user who issued the command
* @param MOD_CONT to continue processing other modules, MOD_STOP to stop processing.
**/
int do_info(User * u)
static int do_info(User * u)
{
BotInfo *bi;
ChannelInfo *ci;
@@ -252,7 +251,7 @@ int do_info(User * u)
return MOD_CONT;
}
void send_bot_channels(User * u, BotInfo * bi)
static void send_bot_channels(User * u, BotInfo * bi)
{
int i;
ChannelInfo *ci;
+86 -23
View File
@@ -1,6 +1,6 @@
/* BotServ core functions
*
* (C) 2003-2009 Anope Team
* (C) 2003-2014 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
@@ -8,16 +8,15 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
#include "module.h"
int do_kickcmd(User * u);
static int do_kickcmd(User * u);
void myBotServHelp(User * u);
static void myBotServHelp(User * u);
/**
* Create the command, and tell anope about it.
@@ -30,7 +29,7 @@ int AnopeInit(int argc, char **argv)
Command *c;
moduleAddAuthor("Anope");
moduleAddVersion("$Id$");
moduleAddVersion(VERSION_STRING);
moduleSetType(CORE);
c = createCommand("KICK", do_kickcmd, NULL, BOT_HELP_KICK, -1, -1, -1,
-1);
@@ -80,7 +79,7 @@ void AnopeFini(void)
* Add the help response to Anopes /bs help output.
* @param u The user who is requesting help
**/
void myBotServHelp(User * u)
static void myBotServHelp(User * u)
{
notice_lang(s_BotServ, u, BOT_HELP_CMD_KICK);
}
@@ -90,7 +89,7 @@ void myBotServHelp(User * u)
* @param u The user who issued the command
* @param MOD_CONT to continue processing other modules, MOD_STOP to stop processing.
**/
int do_kickcmd(User * u)
static int do_kickcmd(User * u)
{
char *chan = strtok(NULL, " ");
char *option = strtok(NULL, " ");
@@ -117,6 +116,7 @@ int do_kickcmd(User * u)
if (!stricmp(option, "BADWORDS")) {
if (!stricmp(value, "ON")) {
if (ttb) {
errno = 0;
ci->ttb[TTB_BADWORDS] =
strtol(ttb, (char **) NULL, 10);
/* Only error if errno returns ERANGE or EINVAL or we are less then 0 - TSL */
@@ -135,18 +135,26 @@ int do_kickcmd(User * u)
ci->ttb[TTB_BADWORDS] = 0;
}
ci->botflags |= BS_KICK_BADWORDS;
if (ci->ttb[TTB_BADWORDS])
if (ci->ttb[TTB_BADWORDS]) {
alog("%s: %s!%s@%s enabled kicking for badwords on %s with time to ban of %d",
s_BotServ, u->nick, u->username, u->host, ci->name, ci->ttb[TTB_BADWORDS]);
notice_lang(s_BotServ, u, BOT_KICK_BADWORDS_ON_BAN,
ci->ttb[TTB_BADWORDS]);
else
} else {
alog("%s: %s!%s@%s enabled kicking for badwords on %s",
s_BotServ, u->nick, u->username, u->host, ci->name);
notice_lang(s_BotServ, u, BOT_KICK_BADWORDS_ON);
}
} else {
ci->botflags &= ~BS_KICK_BADWORDS;
alog("%s: %s!%s@%s disabled kicking for badwords on %s",
s_BotServ, u->nick, u->username, u->host, ci->name);
notice_lang(s_BotServ, u, BOT_KICK_BADWORDS_OFF);
}
} else if (!stricmp(option, "BOLDS")) {
if (!stricmp(value, "ON")) {
if (ttb) {
errno = 0;
ci->ttb[TTB_BOLDS] = strtol(ttb, (char **) NULL, 10);
if (errno == ERANGE || errno == EINVAL
|| ci->ttb[TTB_BOLDS] < 0) {
@@ -160,13 +168,20 @@ int do_kickcmd(User * u)
} else
ci->ttb[TTB_BOLDS] = 0;
ci->botflags |= BS_KICK_BOLDS;
if (ci->ttb[TTB_BOLDS])
if (ci->ttb[TTB_BOLDS]) {
alog("%s: %s!%s@%s enabled kicking for bolds on %s with time to ban of %d",
s_BotServ, u->nick, u->username, u->host, ci->name, ci->ttb[TTB_BOLDS]);
notice_lang(s_BotServ, u, BOT_KICK_BOLDS_ON_BAN,
ci->ttb[TTB_BOLDS]);
else
} else {
alog("%s: %s!%s@%s enabled kicking for bolds on %s",
s_BotServ, u->nick, u->username, u->host, ci->name);
notice_lang(s_BotServ, u, BOT_KICK_BOLDS_ON);
}
} else {
ci->botflags &= ~BS_KICK_BOLDS;
alog("%s: %s!%s@%s disabled kicking for bolds on %s",
s_BotServ, u->nick, u->username, u->host, ci->name);
notice_lang(s_BotServ, u, BOT_KICK_BOLDS_OFF);
}
} else if (!stricmp(option, "CAPS")) {
@@ -175,6 +190,7 @@ int do_kickcmd(User * u)
char *percent = strtok(NULL, " ");
if (ttb) {
errno = 0;
ci->ttb[TTB_CAPS] = strtol(ttb, (char **) NULL, 10);
if (errno == ERANGE || errno == EINVAL
|| ci->ttb[TTB_CAPS] < 0) {
@@ -203,20 +219,28 @@ int do_kickcmd(User * u)
ci->capspercent = 25;
ci->botflags |= BS_KICK_CAPS;
if (ci->ttb[TTB_CAPS])
if (ci->ttb[TTB_CAPS]) {
alog("%s: %s!%s@%s enabled kicking for caps on %s with time to ban of %d",
s_BotServ, u->nick, u->username, u->host, ci->name, ci->ttb[TTB_CAPS]);
notice_lang(s_BotServ, u, BOT_KICK_CAPS_ON_BAN,
ci->capsmin, ci->capspercent,
ci->ttb[TTB_CAPS]);
else
} else {
alog("%s: %s!%s@%s enabled kicking for caps on %s",
s_BotServ, u->nick, u->username, u->host, ci->name);
notice_lang(s_BotServ, u, BOT_KICK_CAPS_ON,
ci->capsmin, ci->capspercent);
}
} else {
alog("%s: %s!%s@%s disabled kicking for caps on %s",
s_BotServ, u->nick, u->username, u->host, ci->name);
ci->botflags &= ~BS_KICK_CAPS;
notice_lang(s_BotServ, u, BOT_KICK_CAPS_OFF);
}
} else if (!stricmp(option, "COLORS")) {
if (!stricmp(value, "ON")) {
if (ttb) {
errno = 0;
ci->ttb[TTB_COLORS] = strtol(ttb, (char **) NULL, 10);
if (errno == ERANGE || errno == EINVAL
|| ci->ttb[TTB_COLORS] < 0) {
@@ -230,12 +254,19 @@ int do_kickcmd(User * u)
} else
ci->ttb[TTB_COLORS] = 0;
ci->botflags |= BS_KICK_COLORS;
if (ci->ttb[TTB_COLORS])
if (ci->ttb[TTB_COLORS]) {
alog("%s: %s!%s@%s enabled kicking for colors on %s with time to ban of %d",
s_BotServ, u->nick, u->username, u->host, ci->name, ci->ttb[TTB_COLORS]);
notice_lang(s_BotServ, u, BOT_KICK_COLORS_ON_BAN,
ci->ttb[TTB_COLORS]);
else
} else {
alog("%s: %s!%s@%s enabled kicking for colors on %s",
s_BotServ, u->nick, u->username, u->host, ci->name);
notice_lang(s_BotServ, u, BOT_KICK_COLORS_ON);
}
} else {
alog("%s: %s!%s@%s disabled kicking for colors on %s",
s_BotServ, u->nick, u->username, u->host, ci->name);
ci->botflags &= ~BS_KICK_COLORS;
notice_lang(s_BotServ, u, BOT_KICK_COLORS_OFF);
}
@@ -245,6 +276,7 @@ int do_kickcmd(User * u)
char *secs = strtok(NULL, " ");
if (ttb) {
errno = 0;
ci->ttb[TTB_FLOOD] = strtol(ttb, (char **) NULL, 10);
if (errno == ERANGE || errno == EINVAL
|| ci->ttb[TTB_FLOOD] < 0) {
@@ -273,15 +305,22 @@ int do_kickcmd(User * u)
ci->floodsecs = 10;
ci->botflags |= BS_KICK_FLOOD;
if (ci->ttb[TTB_FLOOD])
if (ci->ttb[TTB_FLOOD]) {
alog("%s: %s!%s@%s enabled kicking for flood on %s with time to ban of %d",
s_BotServ, u->nick, u->username, u->host, ci->name, ci->ttb[TTB_FLOOD]);
notice_lang(s_BotServ, u, BOT_KICK_FLOOD_ON_BAN,
ci->floodlines, ci->floodsecs,
ci->ttb[TTB_FLOOD]);
else
} else {
alog("%s: %s!%s@%s enabled kicking for flood on %s",
s_BotServ, u->nick, u->username, u->host, ci->name);
notice_lang(s_BotServ, u, BOT_KICK_FLOOD_ON,
ci->floodlines, ci->floodsecs);
}
} else {
ci->botflags &= ~BS_KICK_FLOOD;
alog("%s: %s!%s@%s disabled kicking for flood on %s",
s_BotServ, u->nick, u->username, u->host, ci->name);
notice_lang(s_BotServ, u, BOT_KICK_FLOOD_OFF);
}
} else if (!stricmp(option, "REPEAT")) {
@@ -289,6 +328,7 @@ int do_kickcmd(User * u)
char *times = strtok(NULL, " ");
if (ttb) {
errno = 0;
ci->ttb[TTB_REPEAT] = strtol(ttb, (char **) NULL, 10);
if (errno == ERANGE || errno == EINVAL
|| ci->ttb[TTB_REPEAT] < 0) {
@@ -310,19 +350,27 @@ int do_kickcmd(User * u)
ci->repeattimes = 3;
ci->botflags |= BS_KICK_REPEAT;
if (ci->ttb[TTB_REPEAT])
if (ci->ttb[TTB_REPEAT]) {
alog("%s: %s!%s@%s enabled kicking for repeating on %s with time to ban of %d",
s_BotServ, u->nick, u->username, u->host, ci->name, ci->ttb[TTB_REPEAT]);
notice_lang(s_BotServ, u, BOT_KICK_REPEAT_ON_BAN,
ci->repeattimes, ci->ttb[TTB_REPEAT]);
else
} else {
alog("%s: %s!%s@%s enabled kicking for repeating on %s",
s_BotServ, u->nick, u->username, u->host, ci->name);
notice_lang(s_BotServ, u, BOT_KICK_REPEAT_ON,
ci->repeattimes);
}
} else {
ci->botflags &= ~BS_KICK_REPEAT;
alog("%s: %s!%s@%s disabled kicking for repeating on %s",
s_BotServ, u->nick, u->username, u->host, ci->name);
notice_lang(s_BotServ, u, BOT_KICK_REPEAT_OFF);
}
} else if (!stricmp(option, "REVERSES")) {
if (!stricmp(value, "ON")) {
if (ttb) {
errno = 0;
ci->ttb[TTB_REVERSES] =
strtol(ttb, (char **) NULL, 10);
if (errno == ERANGE || errno == EINVAL
@@ -337,18 +385,26 @@ int do_kickcmd(User * u)
} else
ci->ttb[TTB_REVERSES] = 0;
ci->botflags |= BS_KICK_REVERSES;
if (ci->ttb[TTB_REVERSES])
if (ci->ttb[TTB_REVERSES]) {
alog("%s: %s!%s@%s enabled kicking for reversess on %s with time to ban of %d",
s_BotServ, u->nick, u->username, u->host, ci->name, ci->ttb[TTB_REVERSES]);
notice_lang(s_BotServ, u, BOT_KICK_REVERSES_ON_BAN,
ci->ttb[TTB_REVERSES]);
else
} else {
alog("%s: %s!%s@%s enabled kicking for reverses on %s",
s_BotServ, u->nick, u->username, u->host, ci->name);
notice_lang(s_BotServ, u, BOT_KICK_REVERSES_ON);
}
} else {
ci->botflags &= ~BS_KICK_REVERSES;
alog("%s: %s!%s@%s disabled kicking for reverses on %s",
s_BotServ, u->nick, u->username, u->host, ci->name);
notice_lang(s_BotServ, u, BOT_KICK_REVERSES_OFF);
}
} else if (!stricmp(option, "UNDERLINES")) {
if (!stricmp(value, "ON")) {
if (ttb) {
errno = 0;
ci->ttb[TTB_UNDERLINES] =
strtol(ttb, (char **) NULL, 10);
if (errno == ERANGE || errno == EINVAL
@@ -363,13 +419,20 @@ int do_kickcmd(User * u)
} else
ci->ttb[TTB_UNDERLINES] = 0;
ci->botflags |= BS_KICK_UNDERLINES;
if (ci->ttb[TTB_UNDERLINES])
if (ci->ttb[TTB_UNDERLINES]) {
alog("%s: %s!%s@%s enabled kicking for underlines on %s with time to ban of %d",
s_BotServ, u->nick, u->username, u->host, ci->name, ci->ttb[TTB_UNDERLINES]);
notice_lang(s_BotServ, u, BOT_KICK_UNDERLINES_ON_BAN,
ci->ttb[TTB_UNDERLINES]);
else
} else {
alog("%s: %s!%s@%s enabled kicking for underlines on %s",
s_BotServ, u->nick, u->username, u->host, ci->name);
notice_lang(s_BotServ, u, BOT_KICK_UNDERLINES_ON);
}
} else {
ci->botflags &= ~BS_KICK_UNDERLINES;
alog("%s: %s!%s@%s disabled kicking for underlines on %s",
s_BotServ, u->nick, u->username, u->host, ci->name);
notice_lang(s_BotServ, u, BOT_KICK_UNDERLINES_OFF);
}
} else
+6 -7
View File
@@ -1,6 +1,6 @@
/* BotServ core functions
*
* (C) 2003-2009 Anope Team
* (C) 2003-2014 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
@@ -8,15 +8,14 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
#include "module.h"
int do_say(User * u);
void myBotServHelp(User * u);
static int do_say(User * u);
static void myBotServHelp(User * u);
/**
* Create the command, and tell anope about it.
@@ -29,7 +28,7 @@ int AnopeInit(int argc, char **argv)
Command *c;
moduleAddAuthor("Anope");
moduleAddVersion("$Id$");
moduleAddVersion(VERSION_STRING);
moduleSetType(CORE);
c = createCommand("SAY", do_say, NULL, BOT_HELP_SAY, -1, -1, -1, -1);
moduleAddCommand(BOTSERV, c, MOD_UNIQUE);
@@ -53,7 +52,7 @@ void AnopeFini(void)
* Add the help response to Anopes /bs help output.
* @param u The user who is requesting help
**/
void myBotServHelp(User * u)
static void myBotServHelp(User * u)
{
notice_lang(s_BotServ, u, BOT_HELP_CMD_SAY);
}
@@ -63,7 +62,7 @@ void myBotServHelp(User * u)
* @param u The user who issued the command
* @param MOD_CONT to continue processing other modules, MOD_STOP to stop processing.
**/
int do_say(User * u)
static int do_say(User * u)
{
ChannelInfo *ci;
+34 -7
View File
@@ -1,6 +1,6 @@
/* BotServ core functions
*
* (C) 2003-2009 Anope Team
* (C) 2003-2014 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
@@ -8,15 +8,14 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
#include "module.h"
int do_set(User * u);
void myBotServHelp(User * u);
static int do_set(User * u);
static void myBotServHelp(User * u);
/**
* Create the command, and tell anope about it.
@@ -29,7 +28,7 @@ int AnopeInit(int argc, char **argv)
Command *c;
moduleAddAuthor("Anope");
moduleAddVersion("$Id$");
moduleAddVersion(VERSION_STRING);
moduleSetType(CORE);
c = createCommand("SET", do_set, NULL, BOT_HELP_SET, -1, -1,
@@ -80,7 +79,7 @@ void AnopeFini(void)
* Add the help response to Anopes /bs help output.
* @param u The user who is requesting help
**/
void myBotServHelp(User * u)
static void myBotServHelp(User * u)
{
notice_lang(s_BotServ, u, BOT_HELP_CMD_SET);
}
@@ -90,7 +89,7 @@ void myBotServHelp(User * u)
* @param u The user who issued the command
* @param MOD_CONT to continue processing other modules, MOD_STOP to stop processing.
**/
int do_set(User * u)
static int do_set(User * u)
{
char *chan = strtok(NULL, " ");
char *option = strtok(NULL, " ");
@@ -109,9 +108,13 @@ int do_set(User * u)
if ((bi = findbot(chan))) {
if (!stricmp(value, "ON")) {
bi->flags |= BI_PRIVATE;
alog("%s: %s!%s@%s set PRIVATE on bot %s",
s_BotServ, u->nick, u->username, u->host, bi->nick);
notice_lang(s_BotServ, u, BOT_SET_PRIVATE_ON, bi->nick);
} else if (!stricmp(value, "OFF")) {
bi->flags &= ~BI_PRIVATE;
alog("%s: %s!%s@%s unset PRIVATE on bot %s",
s_BotServ, u->nick, u->username, u->host, bi->nick);
notice_lang(s_BotServ, u, BOT_SET_PRIVATE_OFF, bi->nick);
} else {
syntax_error(s_BotServ, u, "SET PRIVATE",
@@ -131,10 +134,14 @@ int do_set(User * u)
if (!stricmp(option, "DONTKICKOPS")) {
if (!stricmp(value, "ON")) {
ci->botflags |= BS_DONTKICKOPS;
alog("%s: %s!%s@%s set DONTKICKOPS on %s",
s_BotServ, u->nick, u->username, u->host, ci->name);
notice_lang(s_BotServ, u, BOT_SET_DONTKICKOPS_ON,
ci->name);
} else if (!stricmp(value, "OFF")) {
ci->botflags &= ~BS_DONTKICKOPS;
alog("%s: %s!%s@%s unset DONTKICKOPS on %s",
s_BotServ, u->nick, u->username, u->host, ci->name);
notice_lang(s_BotServ, u, BOT_SET_DONTKICKOPS_OFF,
ci->name);
} else {
@@ -144,10 +151,14 @@ int do_set(User * u)
} else if (!stricmp(option, "DONTKICKVOICES")) {
if (!stricmp(value, "ON")) {
ci->botflags |= BS_DONTKICKVOICES;
alog("%s: %s!%s@%s set DONTKICKVOICES on %s",
s_BotServ, u->nick, u->username, u->host, ci->name);
notice_lang(s_BotServ, u, BOT_SET_DONTKICKVOICES_ON,
ci->name);
} else if (!stricmp(value, "OFF")) {
ci->botflags &= ~BS_DONTKICKVOICES;
alog("%s: %s!%s@%s unset DONTKICKVOICES on %s",
s_BotServ, u->nick, u->username, u->host, ci->name);
notice_lang(s_BotServ, u, BOT_SET_DONTKICKVOICES_OFF,
ci->name);
} else {
@@ -157,9 +168,13 @@ int do_set(User * u)
} else if (!stricmp(option, "FANTASY")) {
if (!stricmp(value, "ON")) {
ci->botflags |= BS_FANTASY;
alog("%s: %s!%s@%s set FANTASY on %s",
s_BotServ, u->nick, u->username, u->host, ci->name);
notice_lang(s_BotServ, u, BOT_SET_FANTASY_ON, ci->name);
} else if (!stricmp(value, "OFF")) {
ci->botflags &= ~BS_FANTASY;
alog("%s: %s!%s@%s unset FANTASY on %s",
s_BotServ, u->nick, u->username, u->host, ci->name);
notice_lang(s_BotServ, u, BOT_SET_FANTASY_OFF, ci->name);
} else {
syntax_error(s_BotServ, u, "SET FANTASY",
@@ -168,9 +183,13 @@ int do_set(User * u)
} else if (!stricmp(option, "GREET")) {
if (!stricmp(value, "ON")) {
ci->botflags |= BS_GREET;
alog("%s: %s!%s@%s set GREET on %s",
s_BotServ, u->nick, u->username, u->host, ci->name);
notice_lang(s_BotServ, u, BOT_SET_GREET_ON, ci->name);
} else if (!stricmp(value, "OFF")) {
ci->botflags &= ~BS_GREET;
alog("%s: %s!%s@%s unset GREET on %s",
s_BotServ, u->nick, u->username, u->host, ci->name);
notice_lang(s_BotServ, u, BOT_SET_GREET_OFF, ci->name);
} else {
syntax_error(s_BotServ, u, "SET GREET",
@@ -181,9 +200,13 @@ int do_set(User * u)
ci->botflags |= BS_NOBOT;
if (ci->bi)
unassign(u, ci);
alog("%s: %s!%s@%s set NOBOT on %s",
s_BotServ, u->nick, u->username, u->host, ci->name);
notice_lang(s_BotServ, u, BOT_SET_NOBOT_ON, ci->name);
} else if (!stricmp(value, "OFF")) {
ci->botflags &= ~BS_NOBOT;
alog("%s: %s!%s@%s unset NOBOT on %s",
s_BotServ, u->nick, u->username, u->host, ci->name);
notice_lang(s_BotServ, u, BOT_SET_NOBOT_OFF, ci->name);
} else {
syntax_error(s_BotServ, u, "SET NOBOT",
@@ -192,9 +215,13 @@ int do_set(User * u)
} else if (!stricmp(option, "SYMBIOSIS")) {
if (!stricmp(value, "ON")) {
ci->botflags |= BS_SYMBIOSIS;
alog("%s: %s!%s@%s set SYMBIOSIS on %s",
s_BotServ, u->nick, u->username, u->host, ci->name);
notice_lang(s_BotServ, u, BOT_SET_SYMBIOSIS_ON, ci->name);
} else if (!stricmp(value, "OFF")) {
ci->botflags &= ~BS_SYMBIOSIS;
alog("%s: %s!%s@%s unset SYMBIOSIS on %s",
s_BotServ, u->nick, u->username, u->host, ci->name);
notice_lang(s_BotServ, u, BOT_SET_SYMBIOSIS_OFF, ci->name);
} else {
syntax_error(s_BotServ, u, "SET SYMBIOSIS",
+8 -7
View File
@@ -1,6 +1,6 @@
/* BotServ core functions
*
* (C) 2003-2009 Anope Team
* (C) 2003-2014 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
@@ -8,15 +8,14 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
#include "module.h"
int do_unassign(User * u);
void myBotServHelp(User * u);
static int do_unassign(User * u);
static void myBotServHelp(User * u);
/**
* Create the unassign command, and tell anope about it.
@@ -29,7 +28,7 @@ int AnopeInit(int argc, char **argv)
Command *c;
moduleAddAuthor("Anope");
moduleAddVersion("$Id$");
moduleAddVersion(VERSION_STRING);
moduleSetType(CORE);
c = createCommand("UNASSIGN", do_unassign, NULL, BOT_HELP_UNASSIGN, -1,
-1, -1, -1);
@@ -54,7 +53,7 @@ void AnopeFini(void)
* Add the help response to Anopes /bs help output.
* @param u The user who is requesting help
**/
void myBotServHelp(User * u)
static void myBotServHelp(User * u)
{
notice_lang(s_BotServ, u, BOT_HELP_CMD_UNASSIGN);
}
@@ -64,7 +63,7 @@ void myBotServHelp(User * u)
* @param u The user who issued the command
* @param MOD_CONT to continue processing other modules, MOD_STOP to stop processing.
**/
int do_unassign(User * u)
static int do_unassign(User * u)
{
char *chan = strtok(NULL, " ");
ChannelInfo *ci;
@@ -82,6 +81,8 @@ int do_unassign(User * u)
else if (!ci->bi)
notice_help(s_BotServ, u, BOT_NOT_ASSIGNED);
else {
alog("%s: %s!%s@%s unassigned bot %s from %s", s_BotServ, u->nick, u->username,
u->host, ci->bi->nick, ci->name);
unassign(u, ci);
notice_lang(s_BotServ, u, BOT_UNASSIGN_UNASSIGNED, ci->name);
}
+19 -91
View File
@@ -1,6 +1,6 @@
/* ChanServ core functions
*
* (C) 2003-2009 Anope Team
* (C) 2003-2014 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
@@ -8,7 +8,6 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
@@ -16,10 +15,10 @@
#include "module.h"
int do_access(User * u);
int do_levels(User * u);
static int do_access(User * u);
static int do_levels(User * u);
void myChanServHelp(User * u);
static void myChanServHelp(User * u);
/**
* Create the command, and tell anope about it.
@@ -33,7 +32,7 @@ int AnopeInit(int argc, char **argv)
moduleAddAuthor("Anope");
moduleAddVersion
("$Id$");
(VERSION_STRING);
moduleSetType(CORE);
c = createCommand("ACCESS", do_access, NULL, CHAN_HELP_ACCESS, -1, -1,
@@ -64,7 +63,7 @@ void AnopeFini(void)
* Add the help response to anopes /cs help output.
* @param u The user who is requesting help
**/
void myChanServHelp(User * u)
static void myChanServHelp(User * u)
{
notice_lang(s_ChanServ, u, CHAN_HELP_CMD_ACCESS);
notice_lang(s_ChanServ, u, CHAN_HELP_CMD_LEVELS);
@@ -140,7 +139,7 @@ static int access_list_callback(User * u, int num, va_list args)
* @param u The user who issued the command
* @param MOD_CONT to continue processing other modules, MOD_STOP to stop processing.
**/
int do_access(User * u)
static int do_access(User * u)
{
char *chan = strtok(NULL, " ");
char *cmd = strtok(NULL, " ");
@@ -155,21 +154,22 @@ int do_access(User * u)
int i;
int level = 0, ulev;
int is_clear = (cmd && stricmp(cmd, "CLEAR") == 0);
int is_list = (cmd && stricmp(cmd, "LIST") == 0);
int is_servadmin = is_services_admin(u);
/* If LIST, we don't *require* any parameters, but we can take any.
* If DEL, we require a nick and no level.
* Else (ADD), we require a level (which implies a nick). */
if (!cmd || ((is_list || !stricmp(cmd, "CLEAR")) ? 0 :
if (!cmd || ((is_list || is_clear) ? 0 :
(stricmp(cmd, "DEL") == 0) ? (!nick || s) : !s)) {
syntax_error(s_ChanServ, u, "ACCESS", CHAN_ACCESS_SYNTAX);
} else if (!(ci = cs_findchan(chan))) {
notice_lang(s_ChanServ, u, CHAN_X_NOT_REGISTERED, chan);
} else if (ci->flags & CI_VERBOTEN) {
notice_lang(s_ChanServ, u, CHAN_X_FORBIDDEN, chan);
/* We still allow LIST in xOP mode, but not others */
} else if ((ci->flags & CI_XOP) && !is_list) {
/* We still allow LIST and CLEAR in xOP mode, but not others */
} else if ((ci->flags & CI_XOP) && !is_list && !is_clear) {
if (ircd->halfop)
notice_lang(s_ChanServ, u, CHAN_ACCESS_XOP_HOP, s_ChanServ);
else
@@ -236,14 +236,6 @@ int do_access(User * u)
}
}
/* All entries should be in use so we no longer need
* to go over the entire list..
for (i = 0; i < ci->accesscount; i++) {
if (!ci->access[i].in_use)
break;
}
*/
if (i < CSAccessMax) {
ci->accesscount++;
ci->access =
@@ -268,8 +260,9 @@ int do_access(User * u)
notice_lang(s_ChanServ, u, CHAN_ACCESS_ADDED, nc->display,
ci->name, access->level);
} else if (stricmp(cmd, "DEL") == 0) {
int deleted, a, b;
if (readonly) {
int deleted;
if (readonly) {
notice_lang(s_ChanServ, u, CHAN_ACCESS_DISABLED);
return MOD_CONT;
}
@@ -279,24 +272,8 @@ int do_access(User * u)
return MOD_CONT;
}
for (b = 0; b < ci->accesscount; b++) {
if (ci->access[b].in_use) {
for (a = 0; a < ci->accesscount; a++) {
if (a > b)
break;
if (!ci->access[a].in_use) {
ci->access[a].in_use = 1;
ci->access[a].level = ci->access[b].level;
ci->access[a].nc = ci->access[b].nc;
ci->access[a].last_seen =
ci->access[b].last_seen;
ci->access[b].nc = NULL;
ci->access[b].in_use = 0;
break;
}
}
}
}
/* Clean the access list to make sure every thing is in use */
CleanAccess(ci);
/* Special case: is it a number/list? Only do search if it isn't. */
if (isdigit(*nick) && strspn(nick, "1234567890,-") == strlen(nick)) {
@@ -354,37 +331,7 @@ int do_access(User * u)
}
}
if (deleted) {
/* Reordering - DrStein */
for (b = 0; b < ci->accesscount; b++) {
if (ci->access[b].in_use) {
for (a = 0; a < ci->accesscount; a++) {
if (a > b)
break;
if (!ci->access[a].in_use) {
ci->access[a].in_use = 1;
ci->access[a].level = ci->access[b].level;
ci->access[a].nc = ci->access[b].nc;
ci->access[a].last_seen =
ci->access[b].last_seen;
ci->access[b].nc = NULL;
ci->access[b].in_use = 0;
break;
}
}
}
}
/* After reordering only the entries at the end could still be empty.
* We ll free the places no longer in use... */
for (i = ci->accesscount - 1; i >= 0; i--) {
if (ci->access[i].in_use == 1)
break;
ci->accesscount--;
}
ci->access =
srealloc(ci->access,sizeof(ChanAccess) * ci->accesscount);
CleanAccess(ci);
/* We don't know the nick if someone used numbers, so we trigger the event without
* nick param. We just do this once, even if someone enters a range. -Certus */
@@ -392,34 +339,15 @@ int do_access(User * u)
send_event(EVENT_ACCESS_DEL, 3, ci->name, u->nick, na->nick);
else
send_event(EVENT_ACCESS_DEL, 2, ci->name, u->nick);
}
} else if (stricmp(cmd, "LIST") == 0) {
int sent_header = 0;
int a, b;
if (ci->accesscount == 0) {
notice_lang(s_ChanServ, u, CHAN_ACCESS_LIST_EMPTY, chan);
return MOD_CONT;
}
for (b = 0; b < ci->accesscount; b++) {
if (ci->access[b].in_use) {
for (a = 0; a < ci->accesscount; a++) {
if (a > b)
break;
if (!ci->access[a].in_use) {
ci->access[a].in_use = 1;
ci->access[a].level = ci->access[b].level;
ci->access[a].nc = ci->access[b].nc;
ci->access[a].last_seen =
ci->access[b].last_seen;
ci->access[b].nc = NULL;
ci->access[b].in_use = 0;
break;
}
}
}
}
CleanAccess(ci);
if (nick && strspn(nick, "1234567890,-") == strlen(nick)) {
process_numlist(nick, NULL, access_list_callback, u, ci,
@@ -467,7 +395,7 @@ int do_access(User * u)
}
int do_levels(User * u)
static int do_levels(User * u)
{
char *chan = strtok(NULL, " ");
char *cmd = strtok(NULL, " ");
+29 -26
View File
@@ -1,6 +1,6 @@
/* ChanServ core functions
*
* (C) 2003-2009 Anope Team
* (C) 2003-2014 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
@@ -8,7 +8,6 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
@@ -16,9 +15,9 @@
#include "module.h"
int do_akick(User * u);
void myChanServHelp(User * u);
int get_access_nc(NickCore *nc, ChannelInfo *ci);
static int do_akick(User * u);
static void myChanServHelp(User * u);
static int get_access_nc(NickCore *nc, ChannelInfo *ci);
/**
* Create the command, and tell anope about it.
@@ -31,7 +30,7 @@ int AnopeInit(int argc, char **argv)
Command *c;
moduleAddAuthor("Anope");
moduleAddVersion("$Id$");
moduleAddVersion(VERSION_STRING);
moduleSetType(CORE);
c = createCommand("AKICK", do_akick, NULL, CHAN_HELP_AKICK, -1, -1, -1,
@@ -57,7 +56,7 @@ void AnopeFini(void)
* Add the help response to anopes /cs help output.
* @param u The user who is requesting help
**/
void myChanServHelp(User * u)
static void myChanServHelp(User * u)
{
notice_lang(s_ChanServ, u, CHAN_HELP_CMD_AKICK);
}
@@ -68,7 +67,7 @@ void myChanServHelp(User * u)
* @param MOD_CONT to continue processing other modules, MOD_STOP to stop processing.
**/
/* `last' is set to the last index this routine was called with */
int akick_del(User * u, AutoKick * akick)
static int akick_del(User * u, AutoKick * akick)
{
if (!(akick->flags & AK_USED))
return 0;
@@ -91,7 +90,7 @@ int akick_del(User * u, AutoKick * akick)
return 1;
}
int akick_del_callback(User * u, int num, va_list args)
static int akick_del_callback(User * u, int num, va_list args)
{
ChannelInfo *ci = va_arg(args, ChannelInfo *);
int *last = va_arg(args, int *);
@@ -105,7 +104,7 @@ int akick_del_callback(User * u, int num, va_list args)
}
int akick_list(User * u, int index, ChannelInfo * ci, int *sent_header)
static int akick_list(User * u, int index, ChannelInfo * ci, int *sent_header)
{
AutoKick *akick = &ci->akick[index];
@@ -124,7 +123,7 @@ int akick_list(User * u, int index, ChannelInfo * ci, int *sent_header)
return 1;
}
int akick_list_callback(User * u, int num, va_list args)
static int akick_list_callback(User * u, int num, va_list args)
{
ChannelInfo *ci = va_arg(args, ChannelInfo *);
int *sent_header = va_arg(args, int *);
@@ -133,7 +132,7 @@ int akick_list_callback(User * u, int num, va_list args)
return akick_list(u, num - 1, ci, sent_header);
}
int akick_view(User * u, int index, ChannelInfo * ci, int *sent_header)
static int akick_view(User * u, int index, ChannelInfo * ci, int *sent_header)
{
AutoKick *akick = &ci->akick[index];
char timebuf[64];
@@ -168,7 +167,7 @@ int akick_view(User * u, int index, ChannelInfo * ci, int *sent_header)
return 1;
}
int akick_view_callback(User * u, int num, va_list args)
static int akick_view_callback(User * u, int num, va_list args)
{
ChannelInfo *ci = va_arg(args, ChannelInfo *);
int *sent_header = va_arg(args, int *);
@@ -179,7 +178,7 @@ int akick_view_callback(User * u, int num, va_list args)
int do_akick(User * u)
static int do_akick(User * u)
{
char *chan = strtok(NULL, " ");
char *cmd = strtok(NULL, " ");
@@ -357,6 +356,8 @@ int do_akick(User * u)
cu = next;
}
}
alog("%s: %s!%s@%s added akick for %s to %s",
s_ChanServ, u->nick, u->username, u->host, mask, chan);
notice_lang(s_ChanServ, u, CHAN_AKICK_ADDED, mask, chan);
if (count)
@@ -367,8 +368,6 @@ int do_akick(User * u)
free(mask);
} else if (stricmp(cmd, "STICK") == 0) {
NickAlias *na;
NickCore *nc;
if (readonly) {
notice_lang(s_ChanServ, u, CHAN_AKICK_DISABLED);
@@ -380,9 +379,6 @@ int do_akick(User * u)
return MOD_CONT;
}
na = findnick(mask);
nc = (na ? na->nc : NULL);
for (akick = ci->akick, i = 0; i < ci->akickcount; akick++, i++) {
if (!(akick->flags & AK_USED) || (akick->flags & AK_ISNICK))
continue;
@@ -397,15 +393,14 @@ int do_akick(User * u)
}
akick->flags |= AK_STUCK;
alog("%s: %s!%s@%s set STICK on akick %s on %s",
s_ChanServ, u->nick, u->username, u->host, akick->u.mask, ci->name);
notice_lang(s_ChanServ, u, CHAN_AKICK_STUCK, akick->u.mask,
ci->name);
if (ci->c)
stick_mask(ci, akick);
} else if (stricmp(cmd, "UNSTICK") == 0) {
NickAlias *na;
NickCore *nc;
if (readonly) {
notice_lang(s_ChanServ, u, CHAN_AKICK_DISABLED);
return MOD_CONT;
@@ -416,9 +411,6 @@ int do_akick(User * u)
return MOD_CONT;
}
na = findnick(mask);
nc = (na ? na->nc : NULL);
for (akick = ci->akick, i = 0; i < ci->akickcount; akick++, i++) {
if (!(akick->flags & AK_USED) || (akick->flags & AK_ISNICK))
continue;
@@ -433,6 +425,8 @@ int do_akick(User * u)
}
akick->flags &= ~AK_STUCK;
alog("%s: %s!%s@%s unset STICK on akick %s on %s",
s_ChanServ, u->nick, u->username, u->host, akick->u.mask, ci->name);
notice_lang(s_ChanServ, u, CHAN_AKICK_UNSTUCK, akick->u.mask,
ci->name);
@@ -463,9 +457,14 @@ int do_akick(User * u)
ci->name);
}
} else if (deleted == 1) {
alog("%s: %s!%s@%s deleted 1 akick on %s",
s_ChanServ, u->nick, u->username, u->host, ci->name);
notice_lang(s_ChanServ, u, CHAN_AKICK_DELETED_ONE,
ci->name);
} else {
alog("%s: %s!%s@%s deleted %d akicks on %s",
s_ChanServ, u->nick, u->username, u->host, deleted,
ci->name);
notice_lang(s_ChanServ, u, CHAN_AKICK_DELETED_SEVERAL,
deleted, ci->name);
}
@@ -487,6 +486,8 @@ int do_akick(User * u)
chan);
return MOD_CONT;
}
alog("%s: %s!%s@%s deleted akick %s on %s",
s_ChanServ, u->nick, u->username, u->host, mask, chan);
notice_lang(s_ChanServ, u, CHAN_AKICK_DELETED, mask, chan);
akick_del(u, akick);
deleted = 1;
@@ -645,6 +646,8 @@ int do_akick(User * u)
ci->akick = NULL;
ci->akickcount = 0;
alog("%s: %s!%s@%s cleared akicks on %s",
s_ChanServ, u->nick, u->username, u->host, ci->name);
notice_lang(s_ChanServ, u, CHAN_AKICK_CLEAR, ci->name);
} else {
@@ -654,7 +657,7 @@ int do_akick(User * u)
}
int get_access_nc(NickCore *nc, ChannelInfo *ci)
static int get_access_nc(NickCore *nc, ChannelInfo *ci)
{
ChanAccess *access;
if (!ci || !nc)
+9 -10
View File
@@ -1,6 +1,6 @@
/* ChanServ core functions
*
* (C) 2003-2009 Anope Team
* (C) 2003-2014 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
@@ -8,16 +8,15 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
#include "module.h"
int do_unban(User * u);
int do_ban(User * u);
void myChanServHelp(User * u);
static int do_unban(User * u);
static int do_ban(User * u);
static void myChanServHelp(User * u);
/**
* Create the command, and tell anope about it.
@@ -30,7 +29,7 @@ int AnopeInit(int argc, char **argv)
Command *c;
moduleAddAuthor("Anope");
moduleAddVersion("$Id$");
moduleAddVersion(VERSION_STRING);
moduleSetType(CORE);
c = createCommand("BAN", do_ban, NULL, CHAN_HELP_BAN, -1, -1, -1, -1);
@@ -58,7 +57,7 @@ void AnopeFini(void)
* Add the help response to anopes /cs help output.
* @param u The user who is requesting help
**/
void myChanServHelp(User * u)
static void myChanServHelp(User * u)
{
notice_lang(s_ChanServ, u, CHAN_HELP_CMD_BAN);
notice_lang(s_ChanServ, u, CHAN_HELP_CMD_UNBAN);
@@ -69,7 +68,7 @@ void myChanServHelp(User * u)
* @param u The user who issued the command
* @param MOD_CONT to continue processing other modules, MOD_STOP to stop processing.
**/
int do_ban(User * u)
static int do_ban(User * u)
{
char *chan = strtok(NULL, " ");
char *params = strtok(NULL, " ");
@@ -203,7 +202,7 @@ int do_ban(User * u)
* @param u The user who issued the command
* @param MOD_CONT to continue processing other modules, MOD_STOP to stop processing.
**/
int do_unban(User * u)
static int do_unban(User * u)
{
char *chan = strtok(NULL, " ");
Channel *c;
@@ -220,7 +219,7 @@ int do_unban(User * u)
} else if (!check_access(u, ci, CA_UNBAN)) {
notice_lang(s_ChanServ, u, PERMISSION_DENIED);
} else {
common_unban(ci, u->nick);
common_unban_full(ci, u->nick, true);
notice_lang(s_ChanServ, u, CHAN_UNBANNED, chan);
}
return MOD_CONT;
+100 -124
View File
@@ -1,6 +1,6 @@
/* ChanServ core functions
*
* (C) 2003-2009 Anope Team
* (C) 2003-2014 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
@@ -8,15 +8,14 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
#include "module.h"
int do_clear(User * u);
void myChanServHelp(User * u);
static int do_clear(User * u);
static void myChanServHelp(User * u);
/**
* Create the command, and tell anope about it.
@@ -29,7 +28,7 @@ int AnopeInit(int argc, char **argv)
Command *c;
moduleAddAuthor("Anope");
moduleAddVersion("$Id$");
moduleAddVersion(VERSION_STRING);
moduleSetType(CORE);
c = createCommand("CLEAR", do_clear, NULL, CHAN_HELP_CLEAR, -1, -1, -1,
@@ -55,7 +54,7 @@ void AnopeFini(void)
* Add the help response to anopes /cs help output.
* @param u The user who is requesting help
**/
void myChanServHelp(User * u)
static void myChanServHelp(User * u)
{
notice_lang(s_ChanServ, u, CHAN_HELP_CMD_CLEAR);
}
@@ -65,7 +64,7 @@ void myChanServHelp(User * u)
* @param u The user who issued the command
* @param MOD_CONT to continue processing other modules, MOD_STOP to stop processing.
**/
int do_clear(User * u)
static int do_clear(User * u)
{
char *chan = strtok(NULL, " ");
char *what = strtok(NULL, " ");
@@ -98,6 +97,8 @@ int do_clear(User * u)
}
}
alog("%s: %s!%s@%s cleared bans on %s",
s_ChanServ, u->nick, u->username, u->host, ci->name);
notice_lang(s_ChanServ, u, CHAN_CLEARED_BANS, chan);
} else if (ircd->except && stricmp(what, "excepts") == 0) {
char *av[2];
@@ -114,8 +115,10 @@ int do_clear(User * u)
free(av[1]);
}
}
notice_lang(s_ChanServ, u, CHAN_CLEARED_EXCEPTS, chan);
alog("%s: %s!%s@%s cleared excepts on %s",
s_ChanServ, u->nick, u->username, u->host, ci->name);
notice_lang(s_ChanServ, u, CHAN_CLEARED_EXCEPTS, chan);
} else if (ircd->invitemode && stricmp(what, "invites") == 0) {
char *av[2];
Entry *invite, *next;
@@ -131,6 +134,8 @@ int do_clear(User * u)
free(av[1]);
}
}
alog("%s: %s!%s@%s cleared invites on %s",
s_ChanServ, u->nick, u->username, u->host, ci->name);
notice_lang(s_ChanServ, u, CHAN_CLEARED_INVITES, chan);
} else if (stricmp(what, "modes") == 0) {
@@ -178,6 +183,8 @@ int do_clear(User * u)
check_modes(c);
}
alog("%s: %s!%s@%s cleared modes on %s",
s_ChanServ, u->nick, u->username, u->host, ci->name);
notice_lang(s_ChanServ, u, CHAN_CLEARED_MODES, chan);
} else if (stricmp(what, "ops") == 0) {
char *av[6]; /* The max we have to hold: chan, ts, modes(max3), nick, nick, nick */
@@ -194,39 +201,8 @@ int do_clear(User * u)
if (ircd->protect || ircd->admin) {
anope_cmd_svsmode_chan(av[0], ircd->adminunset, NULL);
}
for (cu = c->users; cu; cu = next) {
next = cu->next;
isop = chan_has_user_status(c, cu->user, CUS_OP);
isadmin = chan_has_user_status(c, cu->user, CUS_PROTECT);
isown = chan_has_user_status(c, cu->user, CUS_OWNER);
count = (isop ? 1 : 0) + (isadmin ? 1 : 0) + (isown ? 1 : 0);
if (!isop && !isadmin && !isown)
continue;
snprintf(tmp, BUFSIZE, "-%s%s%s", (isop ? "o" : ""), (isadmin ?
ircd->adminunset+1 : ""), (isown ? ircd->ownerunset+1 : ""));
if (ircdcap->tsmode) {
snprintf(buf, BUFSIZE - 1, "%ld", (long int) time(NULL));
av[1] = buf;
av[2] = tmp;
/* We have to give as much nicks as modes.. - Viper */
for (i = 0; i < count; i++)
av[i+3] = cu->user->nick;
ac = 3 + i;
} else {
av[1] = tmp;
/* We have to give as much nicks as modes.. - Viper */
for (i = 0; i < count; i++)
av[i+2] = cu->user->nick;
ac = 2 + i;
}
do_cmode(s_ChanServ, ac, av);
}
/* No need to do anything here - we will receive the mode changes from the IRCd and process them then */
} else {
av[0] = chan;
for (cu = c->users; cu; cu = next) {
next = cu->next;
isop = chan_has_user_status(c, cu->user, CUS_OP);
@@ -240,16 +216,17 @@ int do_clear(User * u)
snprintf(tmp, BUFSIZE, "-%s%s%s", (isop ? "o" : ""), (isadmin ?
ircd->adminunset+1 : ""), (isown ? ircd->ownerunset+1 : ""));
/* We need to send the IRCd a nick for every mode.. - Viper */
snprintf(tmp2, BUFSIZE, "%s %s %s", (isop ? cu->user->nick : ""),
(isadmin ? cu->user->nick : ""), (isown ? cu->user->nick : ""));
snprintf(tmp2, BUFSIZE, "%s %s %s", (isop ? GET_USER(cu->user) : ""),
(isadmin ? GET_USER(cu->user) : ""), (isown ? GET_USER(cu->user) : ""));
av[0] = chan;
if (ircdcap->tsmode) {
snprintf(buf, BUFSIZE - 1, "%ld", (long int) time(NULL));
av[1] = buf;
av[2] = tmp;
/* We have to give as much nicks as modes.. - Viper */
for (i = 0; i < count; i++)
av[i+3] = cu->user->nick;
av[i+3] = GET_USER(cu->user);
ac = 3 + i;
anope_cmd_mode(whosends(ci), av[0], "%s %s", av[2], tmp2);
@@ -257,7 +234,7 @@ int do_clear(User * u)
av[1] = tmp;
/* We have to give as much nicks as modes.. - Viper */
for (i = 0; i < count; i++)
av[i+2] = cu->user->nick;
av[i+2] = GET_USER(cu->user);
ac = 2 + i;
anope_cmd_mode(whosends(ci), av[0], "%s %s", av[1], tmp2);
@@ -266,6 +243,9 @@ int do_clear(User * u)
do_cmode(s_ChanServ, ac, av);
}
}
alog("%s: %s!%s@%s cleared ops on %s",
s_ChanServ, u->nick, u->username, u->host, ci->name);
notice_lang(s_ChanServ, u, CHAN_CLEARED_OPS, chan);
} else if (ircd->halfop && stricmp(what, "hops") == 0) {
char *av[4];
@@ -273,53 +253,50 @@ int do_clear(User * u)
char buf[BUFSIZE];
struct c_userlist *cu, *next;
for (cu = c->users; cu; cu = next) {
next = cu->next;
if (!chan_has_user_status(c, cu->user, CUS_HALFOP))
continue;
if (ircd->svsmode_ucmode) {
anope_cmd_svsmode_chan(chan, "-h", NULL);
/* No need to do anything here - we will receive the mode changes from the IRCd and process them then */
}
else {
for (cu = c->users; cu; cu = next) {
next = cu->next;
if (!chan_has_user_status(c, cu->user, CUS_HALFOP))
continue;
if (ircdcap->tsmode) {
snprintf(buf, BUFSIZE - 1, "%ld", (long int) time(NULL));
av[0] = sstrdup(chan);
av[1] = buf;
av[2] = sstrdup("-h");
av[3] = sstrdup(cu->user->nick);
ac = 4;
} else {
av[0] = sstrdup(chan);
av[1] = sstrdup("-h");
av[2] = sstrdup(cu->user->nick);
ac = 3;
}
if (ircdcap->tsmode) {
snprintf(buf, BUFSIZE - 1, "%ld", (long int) time(NULL));
av[0] = sstrdup(chan);
av[1] = buf;
av[2] = sstrdup("-h");
av[3] = sstrdup(GET_USER(cu->user));
ac = 4;
} else {
av[0] = sstrdup(chan);
av[1] = sstrdup("-h");
av[2] = sstrdup(GET_USER(cu->user));
ac = 3;
}
if (ircd->svsmode_ucmode) {
if (ircdcap->tsmode)
anope_cmd_svsmode_chan(av[0], av[2], NULL);
anope_cmd_mode(whosends(ci), av[0], "%s %s", av[2], av[3]);
else
anope_cmd_svsmode_chan(av[0], av[1], NULL);
anope_cmd_mode(whosends(ci), av[0], "%s %s", av[1], av[2]);
do_cmode(s_ChanServ, ac, av);
break;
} else {
if (ircdcap->tsmode)
anope_cmd_mode(whosends(ci), av[0], "%s %s", av[2],
av[3]);
else
anope_cmd_mode(whosends(ci), av[0], "%s %s", av[1],
av[2]);
}
do_cmode(s_ChanServ, ac, av);
if (ircdcap->tsmode) {
free(av[3]);
free(av[2]);
free(av[0]);
} else {
free(av[2]);
free(av[1]);
free(av[0]);
if (ircdcap->tsmode) {
free(av[3]);
free(av[2]);
free(av[0]);
} else {
free(av[2]);
free(av[1]);
free(av[0]);
}
}
}
alog("%s: %s!%s@%s cleared halfops on %s",
s_ChanServ, u->nick, u->username, u->host, ci->name);
notice_lang(s_ChanServ, u, CHAN_CLEARED_HOPS, chan);
} else if (stricmp(what, "voices") == 0) {
char *av[4];
@@ -327,54 +304,51 @@ int do_clear(User * u)
char buf[BUFSIZE];
struct c_userlist *cu, *next;
for (cu = c->users; cu; cu = next) {
next = cu->next;
if (!chan_has_user_status(c, cu->user, CUS_VOICE))
continue;
if (ircd->svsmode_ucmode) {
anope_cmd_svsmode_chan(chan, "-v", NULL);
/* No need to do anything here - we will receive the mode changes from the IRCd and process them then */
}
else {
for (cu = c->users; cu; cu = next) {
next = cu->next;
if (!chan_has_user_status(c, cu->user, CUS_VOICE))
continue;
if (ircdcap->tsmode) {
snprintf(buf, BUFSIZE - 1, "%ld", (long int) time(NULL));
av[0] = sstrdup(chan);
av[1] = buf;
av[2] = sstrdup("-v");
av[3] = sstrdup(cu->user->nick);
ac = 4;
} else {
av[0] = sstrdup(chan);
av[1] = sstrdup("-v");
av[2] = sstrdup(cu->user->nick);
ac = 3;
}
if (ircdcap->tsmode) {
snprintf(buf, BUFSIZE - 1, "%ld", (long int) time(NULL));
av[0] = sstrdup(chan);
av[1] = buf;
av[2] = sstrdup("-v");
av[3] = sstrdup(GET_USER(cu->user));
ac = 4;
} else {
av[0] = sstrdup(chan);
av[1] = sstrdup("-v");
av[2] = sstrdup(GET_USER(cu->user));
ac = 3;
}
if (ircd->svsmode_ucmode) {
if (ircdcap->tsmode)
anope_cmd_svsmode_chan(av[0], av[2], NULL);
else
anope_cmd_svsmode_chan(av[0], av[1], NULL);
if (ircdcap->tsmode) {
anope_cmd_mode(whosends(ci), av[0], "%s %s", av[2], av[3]);
} else {
anope_cmd_mode(whosends(ci), av[0], "%s %s", av[1], av[2]);
}
do_cmode(s_ChanServ, ac, av);
break;
} else {
if (ircdcap->tsmode) {
anope_cmd_mode(whosends(ci), av[0], "%s %s", av[2],
av[3]);
} else {
anope_cmd_mode(whosends(ci), av[0], "%s %s", av[1],
av[2]);
}
}
do_cmode(s_ChanServ, ac, av);
if (ircdcap->tsmode) {
free(av[3]);
free(av[2]);
free(av[0]);
} else {
free(av[2]);
free(av[1]);
free(av[0]);
if (ircdcap->tsmode) {
free(av[3]);
free(av[2]);
free(av[0]);
} else {
free(av[2]);
free(av[1]);
free(av[0]);
}
}
}
alog("%s: %s!%s@%s cleared voices on %s",
s_ChanServ, u->nick, u->username, u->host, ci->name);
notice_lang(s_ChanServ, u, CHAN_CLEARED_VOICES, chan);
} else if (stricmp(what, "users") == 0) {
char *av[3];
@@ -386,7 +360,7 @@ int do_clear(User * u)
for (cu = c->users; cu; cu = next) {
next = cu->next;
av[0] = sstrdup(chan);
av[1] = sstrdup(cu->user->nick);
av[1] = sstrdup(GET_USER(cu->user));
av[2] = sstrdup(buf);
anope_cmd_kick(whosends(ci), av[0], av[1], av[2]);
do_kick(s_ChanServ, 3, av);
@@ -394,6 +368,8 @@ int do_clear(User * u)
free(av[1]);
free(av[0]);
}
alog("%s: %s!%s@%s cleared users on %s",
s_ChanServ, u->nick, u->username, u->host, ci->name);
notice_lang(s_ChanServ, u, CHAN_CLEARED_USERS, chan);
} else {
syntax_error(s_ChanServ, u, "CLEAR", CHAN_CLEAR_SYNTAX);
+6 -7
View File
@@ -1,6 +1,6 @@
/* ChanServ core functions
*
* (C) 2003-2009 Anope Team
* (C) 2003-2014 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
@@ -8,15 +8,14 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
#include "module.h"
int do_drop(User * u);
void myChanServHelp(User * u);
static int do_drop(User * u);
static void myChanServHelp(User * u);
/**
* Create the command, and tell anope about it.
@@ -29,7 +28,7 @@ int AnopeInit(int argc, char **argv)
Command *c;
moduleAddAuthor("Anope");
moduleAddVersion("$Id$");
moduleAddVersion(VERSION_STRING);
moduleSetType(CORE);
c = createCommand("DROP", do_drop, NULL, -1, CHAN_HELP_DROP, -1,
@@ -55,7 +54,7 @@ void AnopeFini(void)
* Add the help response to anopes /cs help output.
* @param u The user who is requesting help
**/
void myChanServHelp(User * u)
static void myChanServHelp(User * u)
{
notice_lang(s_ChanServ, u, CHAN_HELP_CMD_DROP);
}
@@ -65,7 +64,7 @@ void myChanServHelp(User * u)
* @param u The user who issued the command
* @param MOD_CONT to continue processing other modules, MOD_STOP to stop processing.
**/
int do_drop(User * u)
static int do_drop(User * u)
{
char *chan = strtok(NULL, " ");
ChannelInfo *ci;
+37 -11
View File
@@ -1,6 +1,6 @@
/* ChanServ core functions
*
* (C) 2003-2009 Anope Team
* (C) 2003-2014 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
@@ -8,15 +8,14 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
#include "module.h"
int do_forbid(User * u);
void myChanServHelp(User * u);
static int do_forbid(User * u);
static void myChanServHelp(User * u);
/**
* Create the command, and tell anope about it.
@@ -29,7 +28,7 @@ int AnopeInit(int argc, char **argv)
Command *c;
moduleAddAuthor("Anope");
moduleAddVersion("$Id$");
moduleAddVersion(VERSION_STRING);
moduleSetType(CORE);
c = createCommand("FORBID", do_forbid, is_services_admin, -1, -1, -1,
@@ -54,7 +53,7 @@ void AnopeFini(void)
* Add the help response to anopes /cs help output.
* @param u The user who is requesting help
**/
void myChanServHelp(User * u)
static void myChanServHelp(User * u)
{
if (is_services_admin(u)) {
notice_lang(s_ChanServ, u, CHAN_HELP_CMD_FORBID);
@@ -66,13 +65,13 @@ void myChanServHelp(User * u)
* @param u The user who issued the command
* @param MOD_CONT to continue processing other modules, MOD_STOP to stop processing.
**/
int do_forbid(User * u)
static int do_forbid(User * u)
{
Channel *c;
ChannelInfo *ci;
char *chan = strtok(NULL, " ");
char *reason = strtok(NULL, "");
Channel *c;
Entry *cur, *enext;
/* Assumes that permission checking has already been done. */
if (!chan || (ForceForbidReason && !reason)) {
@@ -90,8 +89,10 @@ int do_forbid(User * u)
}
if (readonly)
notice_lang(s_ChanServ, u, READ_ONLY_MODE);
if ((ci = cs_findchan(chan)) != NULL)
if ((ci = cs_findchan(chan)) != NULL) {
delchan(ci);
send_event(EVENT_CHAN_DROP, 1, chan);
}
ci = makechan(chan);
if (ci) {
ci->flags |= CI_VERBOTEN;
@@ -103,6 +104,31 @@ int do_forbid(User * u)
struct c_userlist *cu, *next;
char *av[3];
/* Before banning everyone, it might be prudent to clear +e and +I lists..
* to prevent ppl from rejoining.. ~ Viper */
if (ircd->except && c->excepts && c->excepts->count) {
av[0] = sstrdup("-e");
for (cur = c->excepts->entries; cur; cur = enext) {
enext = cur->next;
av[1] = sstrdup(cur->mask);
anope_cmd_mode(whosends(ci), chan, "-e %s", cur->mask);
chan_set_modes(whosends(ci), c, 2, av, 0);
free(av[1]);
}
free(av[0]);
}
if (ircd->invitemode && c->invites && c->invites->count) {
av[0] = sstrdup("-I");
for (cur = c->invites->entries; cur; cur = enext) {
enext = cur->next;
av[1] = sstrdup(cur->mask);
anope_cmd_mode(whosends(ci), chan, "-I %s", cur->mask);
chan_set_modes(whosends(ci), c, 2, av, 0);
free(av[1]);
}
free(av[0]);
}
for (cu = c->users; cu; cu = next) {
next = cu->next;
@@ -111,7 +137,7 @@ int do_forbid(User * u)
av[0] = c->name;
av[1] = cu->user->nick;
av[2] = reason ? reason : "CHAN_FORBID_REASON";
av[2] = reason ? reason : getstring(cu->user->na, CHAN_FORBID_REASON);
anope_cmd_kick(s_ChanServ, av[0], av[1], av[2]);
do_kick(s_ChanServ, 3, av);
}
+8 -7
View File
@@ -1,6 +1,6 @@
/* ChanServ core functions
*
* (C) 2003-2009 Anope Team
* (C) 2003-2014 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
@@ -8,15 +8,14 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
#include "module.h"
int do_getkey(User * u);
void myChanServHelp(User * u);
static int do_getkey(User * u);
static void myChanServHelp(User * u);
/**
* Create the command, and tell anope about it.
@@ -29,7 +28,7 @@ int AnopeInit(int argc, char **argv)
Command *c;
moduleAddAuthor("Anope");
moduleAddVersion("$Id$");
moduleAddVersion(VERSION_STRING);
moduleSetType(CORE);
c = createCommand("GETKEY", do_getkey, NULL, CHAN_HELP_GETKEY, -1, -1,
@@ -55,7 +54,7 @@ void AnopeFini(void)
* Add the help response to anopes /cs help output.
* @param u The user who is requesting help
**/
void myChanServHelp(User * u)
static void myChanServHelp(User * u)
{
notice_lang(s_ChanServ, u, CHAN_HELP_CMD_GETKEY);
}
@@ -65,7 +64,7 @@ void myChanServHelp(User * u)
* @param u The user who issued the command
* @param MOD_CONT to continue processing other modules, MOD_STOP to stop processing.
**/
int do_getkey(User * u)
static int do_getkey(User * u)
{
char *chan = strtok(NULL, " ");
ChannelInfo *ci;
@@ -81,6 +80,8 @@ int do_getkey(User * u)
} else if (!ci->c || !ci->c->key) {
notice_lang(s_ChanServ, u, CHAN_GETKEY_NOKEY, chan);
} else {
alog("%s: %s!%s@%s used GETKEY on %s",
s_ChanServ, u->nick, u->username, u->host, ci->name);
notice_lang(s_ChanServ, u, CHAN_GETKEY_KEY, chan, ci->c->key);
}
+6 -7
View File
@@ -1,6 +1,6 @@
/* ChanServ core functions
*
* (C) 2003-2009 Anope Team
* (C) 2003-2014 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
@@ -8,15 +8,14 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
#include "module.h"
int do_getpass(User * u);
void myChanServHelp(User * u);
static int do_getpass(User * u);
static void myChanServHelp(User * u);
/**
* Create the command, and tell anope about it.
@@ -29,7 +28,7 @@ int AnopeInit(int argc, char **argv)
Command *c;
moduleAddAuthor("Anope");
moduleAddVersion("$Id$");
moduleAddVersion(VERSION_STRING);
moduleSetType(CORE);
c = createCommand("GETPASS", do_getpass, is_services_admin, -1, -1, -1,
@@ -56,7 +55,7 @@ void AnopeFini(void)
* Add the help response to anopes /cs help output.
* @param u The user who is requesting help
**/
void myChanServHelp(User * u)
static void myChanServHelp(User * u)
{
if (is_services_admin(u)) {
notice_lang(s_ChanServ, u, CHAN_HELP_CMD_GETPASS);
@@ -69,7 +68,7 @@ void myChanServHelp(User * u)
* @param MOD_CONT to continue processing other modules, MOD_STOP to stop processing.
**/
int do_getpass(User * u)
static int do_getpass(User * u)
{
char *chan = strtok(NULL, " ");
char tmp_pass[PASSMAX];
+4 -5
View File
@@ -1,6 +1,6 @@
/* ChanServ core functions
*
* (C) 2003-2009 Anope Team
* (C) 2003-2014 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
@@ -8,14 +8,13 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
#include "module.h"
int do_help(User * u);
static int do_help(User * u);
/**
* Create the off command, and tell anope about it.
@@ -28,7 +27,7 @@ int AnopeInit(int argc, char **argv)
Command *c;
moduleAddAuthor("Anope");
moduleAddVersion("$Id$");
moduleAddVersion(VERSION_STRING);
moduleSetType(CORE);
c = createCommand("HELP", do_help, NULL, -1, -1, -1, -1, -1);
@@ -50,7 +49,7 @@ void AnopeFini(void)
* @param u The user who issued the command
* @param MOD_CONT to continue processing other modules, MOD_STOP to stop processing.
**/
int do_help(User * u)
static int do_help(User * u)
{
char *cmd = strtok(NULL, "");
+6 -7
View File
@@ -1,6 +1,6 @@
/* ChanServ core functions
*
* (C) 2003-2009 Anope Team
* (C) 2003-2014 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
@@ -8,15 +8,14 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
#include "module.h"
int do_identify(User * u);
void myChanServHelp(User * u);
static int do_identify(User * u);
static void myChanServHelp(User * u);
/**
* Create the command, and tell anope about it.
@@ -29,7 +28,7 @@ int AnopeInit(int argc, char **argv)
Command *c;
moduleAddAuthor("Anope");
moduleAddVersion("$Id$");
moduleAddVersion(VERSION_STRING);
moduleSetType(CORE);
c = createCommand("IDENTIFY", do_identify, NULL, CHAN_HELP_IDENTIFY,
@@ -59,7 +58,7 @@ void AnopeFini(void)
* Add the help response to anopes /cs help output.
* @param u The user who is requesting help
**/
void myChanServHelp(User * u)
static void myChanServHelp(User * u)
{
notice_lang(s_ChanServ, u, CHAN_HELP_CMD_IDENTIFY);
}
@@ -69,7 +68,7 @@ void myChanServHelp(User * u)
* @param u The user who issued the command
* @param MOD_CONT to continue processing other modules, MOD_STOP to stop processing.
**/
int do_identify(User * u)
static int do_identify(User * u)
{
char *chan = strtok(NULL, " ");
char *pass = strtok(NULL, " ");
+6 -7
View File
@@ -1,6 +1,6 @@
/* ChanServ core functions
*
* (C) 2003-2009 Anope Team
* (C) 2003-2014 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
@@ -8,15 +8,14 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
#include "module.h"
int do_info(User * u);
void myChanServHelp(User * u);
static int do_info(User * u);
static void myChanServHelp(User * u);
/**
* Create the command, and tell anope about it.
@@ -29,7 +28,7 @@ int AnopeInit(int argc, char **argv)
Command *c;
moduleAddAuthor("Anope");
moduleAddVersion("$Id$");
moduleAddVersion(VERSION_STRING);
moduleSetType(CORE);
c = createCommand("INFO", do_info, NULL, CHAN_HELP_INFO, -1,
@@ -56,7 +55,7 @@ void AnopeFini(void)
* Add the help response to anopes /cs help output.
* @param u The user who is requesting help
**/
void myChanServHelp(User * u)
static void myChanServHelp(User * u)
{
notice_lang(s_ChanServ, u, CHAN_HELP_CMD_INFO);
}
@@ -66,7 +65,7 @@ void myChanServHelp(User * u)
* @param u The user who issued the command
* @param MOD_CONT to continue processing other modules, MOD_STOP to stop processing.
**/
int do_info(User * u)
static int do_info(User * u)
{
/* SADMINS and users, who have identified for a channel, can now cause it's
* Enstry Message and Successor to be displayed by supplying the ALL parameter.

Some files were not shown because too many files have changed in this diff Show More