1
0
mirror of https://github.com/anope/anope.git synced 2026-06-18 21:04:48 +02:00

Compare commits

..

105 Commits

Author SHA1 Message Date
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
253 changed files with 7814 additions and 7238 deletions
+7
View File
@@ -0,0 +1,7 @@
Makefile
autom4te.cache/
config.cache
config.log
config.status
include/sysconf.h
src/bin/anoperc
+45 -2
View File
@@ -1,3 +1,46 @@
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]
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
8/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
@@ -22,7 +65,7 @@ Provided by Anope Dev. <team@anope.org> - 2009
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]
1/15 F Fixed BotServ from kicking and banning ULined clients [#1135]
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]
@@ -32,7 +75,7 @@ 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
9/20 F Updated French language file. [ #00]
09/20 F Updated French language file. [ #00]
Anope Version 1.8.2
-------------------
+34
View File
@@ -1,3 +1,37 @@
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).
#
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 **
+19
View File
@@ -1,3 +1,22 @@
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:
+9
View File
@@ -1,3 +1,12 @@
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` ;
+1 -1
View File
@@ -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"
+1 -1
View File
@@ -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
+1837 -5875
View File
File diff suppressed because it is too large Load Diff
+8 -7
View File
@@ -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")
@@ -127,7 +128,7 @@ int main()
])
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 +136,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)
+20 -10
View File
@@ -81,6 +81,7 @@
# Hybrid IRCd 7.0 [experimental] - "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"
@@ -108,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.
@@ -125,7 +127,7 @@
# SHA1 - enc_sha1
#
EncModule "enc_none"
EncModule "enc_md5"
###########################################################################
#
@@ -193,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
@@ -357,7 +359,7 @@ NetworkName "LocalNet"
#Numeric "64"
# InspIRCd 1.2 compliant:
# TS6 (InspIRCd 1.2+) compliant:
#Numeric "3AX"
@@ -701,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
@@ -1294,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
@@ -1489,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"
+22 -1
View File
@@ -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.
@@ -276,7 +280,9 @@ Anope Internal Events
EVENT_CHANGE_NICK
A user has just changed it's nick.
av[0] The new nickname of the user.
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
@@ -338,6 +344,14 @@ Anope Internal Events
A user's nick has just been forbidden.
av[0] The nickname that has just been forbidden.
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.
av[0] The nickname of the user that just identified.
@@ -346,6 +360,13 @@ Anope Internal Events
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
emitted when the registration is completed, but the user modes have not
+2 -13
View File
@@ -501,24 +501,13 @@ 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:
+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 & 1.2)
- InspIRCd 1.x and 2.0
- Plexus 2.0 or later (including 3.0)
- PTLink 6.15 or later
- RageIRCd 2.0 or later
+7 -2
View File
@@ -92,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>
@@ -106,11 +110,12 @@ Table of Contents
* GeniusDex <geniusdex@anope.org> (nl.l)
* Kein <kein-of@yandex.ru> (ru.l)
* Han` <Han@mefalcon.org> (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:
@@ -198,7 +203,7 @@ Table of Contents
* Charybdis 1.0 or later
* DreamForge 4.6.7
* Hybrid 7 or later
* InspIRCd 1.0 or later (including 1.1 and 1.2)
* 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
+1 -1
View File
@@ -64,7 +64,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:
-1
View File
@@ -8,7 +8,6 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
-1
View File
@@ -8,7 +8,6 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
-1
View File
@@ -8,7 +8,6 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
-1
View File
@@ -9,7 +9,6 @@
* Based on the original code of Services by Andy Church.
*
*
* $Id$
*
*/
-2
View File
@@ -8,13 +8,11 @@
* 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);
+3 -1
View File
@@ -8,7 +8,6 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
@@ -42,11 +41,14 @@
#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_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"
+4 -24
View File
@@ -8,7 +8,6 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
@@ -371,6 +370,7 @@ E char *SendFrom;
E int RestrictMail;
E int MailDelay;
E int DontQuoteAddresses;
E int ForkForMail;
E int NSDefFlags;
E int NSDefLanguage;
@@ -530,7 +530,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);
@@ -574,20 +573,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));
@@ -696,6 +689,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);
@@ -714,7 +708,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();
@@ -723,6 +717,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 ****/
@@ -1246,23 +1241,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_bob();
E void anope_cmd_ea(); /* EA */
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 */
@@ -1272,25 +1261,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 */
@@ -1305,8 +1288,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);
@@ -1354,7 +1335,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
View File
@@ -8,7 +8,6 @@
# Based on the original code of Epona by Lara.
# Based on the original code of Services by Andy Church.
#
# $Id$
#
###########################################################################
-1
View File
@@ -8,7 +8,6 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
+1 -2
View File
@@ -8,7 +8,6 @@
* 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 */
/*************************************************************************/
-1
View File
@@ -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
View File
@@ -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>
@@ -1231,6 +1232,7 @@ typedef struct ircd_modes_ {
int chan_private;
int chan_key;
int chan_limit;
int chan_perm;
} IRCDModes;
-1
View File
@@ -8,7 +8,6 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
-1
View File
@@ -8,7 +8,6 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
+36 -24
View File
@@ -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";
@@ -72,7 +71,39 @@ var installerQuestions = [
var buildPackages = [
{
'name' : 'Microsoft Visual Studio 2008 (New PSDK)',
'name' : 'Microsoft Visual Studio 2010 (64bit)',
'libpaths' : [
'Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\lib',
'Program Files\\Microsoft Platform SDK for Windows Server 2003 R2\\Lib'
],
'incpaths': [
'Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include',
'Program Files\\Microsoft Platform SDK for Windows Server 2003 R2\\include'
],
'nmake' : [
'Program Files\\Microsoft Platform SDK for Windows Server 2003 R2\\Bin',
],
'additional_switches' : [ '/w' ],
'installedDrive' : 'C'
},
{
'name' : 'Microsoft Visual Studio 2010',
'libpaths' : [
'Program Files\\Microsoft Visual Studio 10.0\\VC\\lib',
'Program Files\\Microsoft Platform SDK for Windows Server 2003 R2\\Lib'
],
'incpaths' : [
'Program Files\\Microsoft Visual Studio 10.0\\VC\\include',
'Program Files\\Microsoft Platform SDK for Windows Server 2003 R2\\Include'
],
'nmake' : [
'Program Files\\Microsoft Platform SDK for Windows Server 2003 R2\\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'
@@ -87,8 +118,8 @@ var buildPackages = [
'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 +136,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'
@@ -159,26 +190,7 @@ var buildPackages = [
],
'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'
}
];
+1 -1
View File
@@ -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
+3 -3
View File
@@ -692,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
@@ -6729,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
+21 -17
View File
@@ -664,7 +664,7 @@ NICK_SASET_HIDE_STATUS_OFF
# SASET MSG responses
NICK_SASET_MSG_SYNTAX
SASAET nickname PRIVATE {ON | OFF}
SASAET nickname MSG {ON | OFF}
NICK_SASET_MSG_ON
Services will now reply to %s with messages.
NICK_SASET_MSG_OFF
@@ -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
@@ -3900,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:
@@ -3913,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]
+1 -1
View File
@@ -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
+2 -2
View File
@@ -721,7 +721,7 @@ NICK_SASET_HIDE_STATUS_OFF
# SASET MSG responses
NICK_SASET_MSG_SYNTAX
SASET pseudo PRIVATE {ON | OFF}
SASET pseudo MSG {ON | OFF}
NICK_SASET_MSG_ON
Les Services répondront à %s par des messages.
NICK_SASET_MSG_OFF
@@ -6761,4 +6761,4 @@ OPER_UMODE_UNSUPPORTED
Désolé, UMODE n'est pas accessible sur ce réseau.
OPER_SUPER_ADMIN_NOT_ENABLED
L'option SuperAdmin n'est pas activée dans le services.conf
L'option SuperAdmin n'est pas activée dans le services.conf
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
-1
View File
@@ -8,7 +8,6 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
+1 -1
View File
@@ -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
+1 -1
View File
@@ -845,7 +845,7 @@ NICK_SASET_HIDE_STATUS_OFF
# SASET MSG responses
NICK_SASET_MSG_SYNTAX
SASAET nick PRIVATE {ON | OFF}
SASAET nick MSG {ON | OFF}
NICK_SASET_MSG_ON
Serwisy bêd± teraz wysy³aæ do %s wiadomo¶ci.
+1 -1
View File
@@ -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
+1 -1
View File
@@ -684,7 +684,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
Services bundan sonra %s rumuzuna mesajlar ile cevap verecek.
NICK_SASET_MSG_OFF
+1 -2
View File
@@ -8,7 +8,6 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
@@ -241,7 +240,7 @@ char *common_get_vhost(User * u)
if (!u)
return NULL;
if (ircd->vhostmode && (u->mode & ircd->vhostmode) && u->vhost)
if (u->vhost)
return u->vhost;
else if (ircd->vhostmode && (u->mode & ircd->vhostmode) && u->chost)
return u->chost;
-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
View File
@@ -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"
+4 -2
View File
@@ -8,7 +8,6 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
@@ -850,7 +849,10 @@ static void check_ban(ChannelInfo * ci, User * u, int ttbtype)
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];
+37 -13
View File
@@ -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);
}
}
@@ -262,9 +265,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);
}
@@ -791,7 +794,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;
@@ -800,7 +803,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]);
@@ -1270,10 +1276,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;
}
@@ -1297,10 +1311,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], "");
}
}
}
@@ -1512,6 +1529,8 @@ void chan_set_correct_modes(User * user, Channel * c, int give_modes)
strcat(modebuf, "h");
strcat(userbuf, " ");
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;
}
@@ -1543,12 +1562,17 @@ void chan_set_correct_modes(User * user, Channel * c, int give_modes)
strcat(modebuf, "o");
strcat(userbuf, " ");
strcat(userbuf, GET_USER(user));
add_modes |= CUS_DEOPPED;
/* 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, 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;
}
}
+13 -14
View File
@@ -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);
}
}
@@ -1086,6 +1085,7 @@ void check_modes(Channel * c)
ChannelInfo *ci;
CBModeInfo *cbmi = NULL;
CBMode *cbm = NULL;
boolean DefConOn = DefConLevel != 5;
if (!c) {
if (debug) {
@@ -1131,7 +1131,7 @@ void check_modes(Channel * c)
*/
if (ci)
modes = ~c->mode & ci->mlock_on;
if (DefConModesSet)
if (DefConOn && DefConModesSet)
modes |= (~c->mode & DefConModesOn);
/* Initialize the buffers */
@@ -1147,7 +1147,7 @@ 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 if (ci)
value = cbmi->csgetvalue(ci);
@@ -1168,13 +1168,13 @@ void check_modes(Channel * c)
}
} else if (cbmi->getvalue && cbmi->csgetvalue
&& ((ci && (ci->mlock_on & cbmi->flag))
|| (DefConModesOn & 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 if (ci)
csvalue = cbmi->csgetvalue(ci);
@@ -1196,7 +1196,7 @@ void check_modes(Channel * c)
*end2++ = *csvalue++;
}
}
} while ((++cbmi)->flag != 0);
} while ((++cbmi)->mode != 0);
if (*(end - 1) == '+')
end--;
@@ -1205,10 +1205,10 @@ void check_modes(Channel * c)
if (ci) {
modes = c->mode & ci->mlock_off;
/* Make sure we don't remove a mode just set by defcon.. ~ Viper */
if (DefConModesSet)
if (DefConOn && DefConModesSet)
modes &= ~(modes & DefConModesOn);
}
if (DefConModesSet)
if (DefConOn && DefConModesSet)
modes |= c->mode & DefConModesOff;
if (modes) {
@@ -1237,7 +1237,7 @@ void check_modes(Channel * c)
cbm->setvalue(c, NULL);
}
}
} while ((++cbmi)->flag != 0);
} while ((++cbmi)->mode != 0);
}
if (end == modebuf)
@@ -1570,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;
}
@@ -1857,7 +1857,6 @@ void cs_remove_nick(const NickCore * nc)
if (ca->in_use && ca->nc == nc) {
ca->in_use = 0;
ca->nc = NULL;
ci->accesscount--;
}
}
CleanAccess(ci);
+8 -7
View File
@@ -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)) {
-1
View File
@@ -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 -1
View File
@@ -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;
@@ -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}}},
+1 -2
View File
@@ -8,7 +8,6 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
@@ -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);
+3 -2
View File
@@ -8,7 +8,6 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
@@ -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);
@@ -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);
}
+12 -3
View File
@@ -8,7 +8,6 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
@@ -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,
@@ -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 {
+9 -2
View File
@@ -8,7 +8,6 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
@@ -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,
@@ -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);
@@ -310,6 +312,9 @@ int do_bot(User * u)
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);
@@ -334,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
+1 -2
View File
@@ -8,7 +8,6 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
@@ -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);
+1 -2
View File
@@ -8,7 +8,6 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
@@ -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);
+1 -2
View File
@@ -8,7 +8,6 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
@@ -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);
+1 -2
View File
@@ -8,7 +8,6 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
@@ -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);
+1 -2
View File
@@ -8,7 +8,6 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
@@ -29,7 +28,7 @@ int AnopeInit(int argc, char **argv)
moduleAddAuthor("Anope");
moduleAddVersion
("$Id$");
(VERSION_STRING);
moduleSetType(CORE);
/* No need to load of we don't support owner */
+1 -2
View File
@@ -8,7 +8,6 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
@@ -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);
+1 -2
View File
@@ -8,7 +8,6 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
@@ -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);
+1 -2
View File
@@ -8,7 +8,6 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
@@ -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);
+73 -18
View File
@@ -8,7 +8,6 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
@@ -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);
@@ -136,13 +135,20 @@ 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")) {
@@ -162,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")) {
@@ -206,14 +219,21 @@ 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);
}
@@ -234,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);
}
@@ -278,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")) {
@@ -316,14 +350,21 @@ 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")) {
@@ -344,13 +385,20 @@ 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")) {
@@ -371,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
+1 -2
View File
@@ -8,7 +8,6 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
@@ -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);
+29 -2
View File
@@ -8,7 +8,6 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
@@ -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,
@@ -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",
+3 -2
View File
@@ -8,7 +8,6 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
@@ -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);
@@ -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);
}
+5 -5
View File
@@ -8,7 +8,6 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
@@ -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,
@@ -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
+16 -2
View File
@@ -8,7 +8,6 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
@@ -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,
@@ -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)
@@ -397,6 +398,8 @@ 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);
@@ -433,6 +436,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 +468,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 +497,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 +657,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 {
+1 -2
View File
@@ -8,7 +8,6 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
@@ -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);
+90 -114
View File
@@ -8,7 +8,6 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
@@ -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,
@@ -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 */
@@ -186,6 +193,7 @@ int do_clear(User * u)
struct c_userlist *cu, *next;
if (ircd->svsmode_ucmode) {
av[0] = chan;
anope_cmd_svsmode_chan(av[0], "-o", NULL);
if (ircd->owner) {
anope_cmd_svsmode_chan(av[0], ircd->ownerunset, NULL);
@@ -193,38 +201,7 @@ 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 : ""));
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] = GET_USER(cu->user);
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] = GET_USER(cu->user);
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 {
for (cu = c->users; cu; cu = next) {
next = cu->next;
@@ -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(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 (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(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 (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];
@@ -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);
+1 -2
View File
@@ -8,7 +8,6 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
@@ -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,
+1 -2
View File
@@ -8,7 +8,6 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
@@ -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,
+3 -2
View File
@@ -8,7 +8,6 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
@@ -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,
@@ -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);
}
+1 -2
View File
@@ -8,7 +8,6 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
@@ -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,
+1 -2
View File
@@ -8,7 +8,6 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
@@ -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);
+1 -2
View File
@@ -8,7 +8,6 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
@@ -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,
+1 -2
View File
@@ -8,7 +8,6 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
@@ -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,
+1 -2
View File
@@ -8,7 +8,6 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
@@ -29,7 +28,7 @@ int AnopeInit(int argc, char **argv)
Command *c;
moduleAddAuthor("Anope");
moduleAddVersion("$Id$");
moduleAddVersion(VERSION_STRING);
moduleSetType(CORE);
c = createCommand("INVITE", do_invite, NULL, CHAN_HELP_INVITE, -1, -1,
+3 -4
View File
@@ -8,7 +8,6 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
@@ -29,7 +28,7 @@ int AnopeInit(int argc, char **argv)
Command *c;
moduleAddAuthor("Anope");
moduleAddVersion("$Id$");
moduleAddVersion(VERSION_STRING);
moduleSetType(CORE);
c = createCommand("KICK", do_cs_kick, NULL, CHAN_HELP_KICK, -1, -1, -1,
@@ -123,8 +122,6 @@ int do_cs_kick(User * u)
notice_lang(s_ChanServ, u, CHAN_X_FORBIDDEN, chan);
} else if (is_same ? !(u2 = u) : !(u2 = finduser(params))) {
notice_lang(s_ChanServ, u, NICK_X_NOT_IN_USE, params);
} else if (!is_on_chan(c, u2)) {
notice_lang(s_ChanServ, u, NICK_X_NOT_ON_CHAN, u2->nick, c->name);
} else if (!is_same ? !check_access(u, ci, CA_KICK) :
!check_access(u, ci, CA_KICKME)) {
notice_lang(s_ChanServ, u, ACCESS_DENIED);
@@ -133,6 +130,8 @@ int do_cs_kick(User * u)
notice_lang(s_ChanServ, u, PERMISSION_DENIED);
} else if (is_protected(u2)) {
notice_lang(s_ChanServ, u, PERMISSION_DENIED);
} else if (!is_on_chan(c, u2)) {
notice_lang(s_ChanServ, u, NICK_X_NOT_ON_CHAN, u2->nick, c->name);
} else {
char *av[3];
+1 -2
View File
@@ -8,7 +8,6 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
@@ -29,7 +28,7 @@ int AnopeInit(int argc, char **argv)
Command *c;
moduleAddAuthor("Anope");
moduleAddVersion("$Id$");
moduleAddVersion(VERSION_STRING);
moduleSetType(CORE);
c = createCommand("LIST", do_list, NULL, -1, CHAN_HELP_LIST,
+1 -2
View File
@@ -8,7 +8,6 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
@@ -30,7 +29,7 @@ int AnopeInit(int argc, char **argv)
Command *c;
moduleAddAuthor("Anope");
moduleAddVersion("$Id$");
moduleAddVersion(VERSION_STRING);
moduleSetType(CORE);
c = createCommand("LOGOUT", do_logout, NULL, -1, CHAN_HELP_LOGOUT, -1,
+24 -40
View File
@@ -8,7 +8,6 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
@@ -39,7 +38,7 @@ int AnopeInit(int argc, char **argv)
Command *c;
moduleAddAuthor("Anope");
moduleAddVersion("$Id$");
moduleAddVersion(VERSION_STRING);
moduleSetType(CORE);
c = createCommand("OP", do_op, NULL, CHAN_HELP_OP, -1, -1, -1, -1);
@@ -53,38 +52,23 @@ int AnopeInit(int argc, char **argv)
c = createCommand("DEVOICE", do_devoice, NULL, CHAN_HELP_DEVOICE, -1,
-1, -1, -1);
moduleAddCommand(CHANSERV, c, MOD_UNIQUE);
if (ircd->halfop) {
c = createCommand("HALFOP", do_halfop, NULL, CHAN_HELP_HALFOP, -1,
-1, -1, -1);
moduleAddCommand(CHANSERV, c, MOD_UNIQUE);
c = createCommand("DEHALFOP", do_dehalfop, NULL,
CHAN_HELP_DEHALFOP, -1, -1, -1, -1);
moduleAddCommand(CHANSERV, c, MOD_UNIQUE);
}
if (ircd->protect) {
c = createCommand("PROTECT", do_protect, NULL, CHAN_HELP_PROTECT,
-1, -1, -1, -1);
moduleAddCommand(CHANSERV, c, MOD_UNIQUE);
c = createCommand("DEPROTECT", do_deprotect, NULL,
CHAN_HELP_DEPROTECT, -1, -1, -1, -1);
moduleAddCommand(CHANSERV, c, MOD_UNIQUE);
}
if (ircd->owner) {
c = createCommand("OWNER", do_owner, NULL, CHAN_HELP_OWNER, -1, -1,
-1, -1);
moduleAddCommand(CHANSERV, c, MOD_UNIQUE);
c = createCommand("DEOWNER", do_deowner, NULL, CHAN_HELP_DEOWNER,
-1, -1, -1, -1);
moduleAddCommand(CHANSERV, c, MOD_UNIQUE);
}
if (ircd->admin) {
c = createCommand("ADMIN", do_protect, NULL, CHAN_HELP_PROTECT, -1,
-1, -1, -1);
moduleAddCommand(CHANSERV, c, MOD_UNIQUE);
c = createCommand("DEADMIN", do_deprotect, NULL,
CHAN_HELP_DEPROTECT, -1, -1, -1, -1);
moduleAddCommand(CHANSERV, c, MOD_UNIQUE);
}
c = createCommand("HALFOP", do_halfop, NULL, CHAN_HELP_HALFOP, -1,
-1, -1, -1);
moduleAddCommand(CHANSERV, c, MOD_UNIQUE);
c = createCommand("DEHALFOP", do_dehalfop, NULL, CHAN_HELP_DEHALFOP, -1, -1, -1, -1);
moduleAddCommand(CHANSERV, c, MOD_UNIQUE);
c = createCommand("PROTECT", do_protect, NULL, CHAN_HELP_PROTECT, -1, -1, -1, -1);
moduleAddCommand(CHANSERV, c, MOD_UNIQUE);
c = createCommand("DEPROTECT", do_deprotect, NULL, CHAN_HELP_DEPROTECT, -1, -1, -1, -1);
moduleAddCommand(CHANSERV, c, MOD_UNIQUE);
c = createCommand("OWNER", do_owner, NULL, CHAN_HELP_OWNER, -1, -1, -1, -1);
moduleAddCommand(CHANSERV, c, MOD_UNIQUE);
c = createCommand("DEOWNER", do_deowner, NULL, CHAN_HELP_DEOWNER, -1, -1, -1, -1);
moduleAddCommand(CHANSERV, c, MOD_UNIQUE);
c = createCommand("ADMIN", do_protect, NULL, CHAN_HELP_PROTECT, -1, -1, -1, -1);
moduleAddCommand(CHANSERV, c, MOD_UNIQUE);
c = createCommand("DEADMIN", do_deprotect, NULL, CHAN_HELP_DEPROTECT, -1, -1, -1, -1);
moduleAddCommand(CHANSERV, c, MOD_UNIQUE);
moduleSetChanHelp(myChanServHelp);
@@ -243,10 +227,10 @@ int do_owner(User * u)
notice_lang(s_ChanServ, u, CHAN_X_NOT_REGISTERED, c->name);
} else if (ci->flags & CI_VERBOTEN) {
notice_lang(s_ChanServ, u, CHAN_X_FORBIDDEN, ci->name);
} else if (!is_on_chan(c, u)) {
notice_lang(s_ChanServ, u, NICK_X_NOT_ON_CHAN, u->nick, c->name);
} else if (!is_founder(u, ci)) {
notice_lang(s_ChanServ, u, ACCESS_DENIED);
} else if (!is_on_chan(c, u)) {
notice_lang(s_ChanServ, u, NICK_X_NOT_ON_CHAN, u->nick, c->name);
} else {
anope_cmd_mode(whosends(ci), c->name, "%s %s", ircd->ownerset,
GET_USER(u));
@@ -299,10 +283,10 @@ int do_deowner(User * u)
notice_lang(s_ChanServ, u, CHAN_X_NOT_REGISTERED, c->name);
} else if (ci->flags & CI_VERBOTEN) {
notice_lang(s_ChanServ, u, CHAN_X_FORBIDDEN, ci->name);
} else if (!is_on_chan(c, u)) {
notice_lang(s_ChanServ, u, NICK_X_NOT_ON_CHAN, u->nick, c->name);
} else if (!is_founder(u, ci)) {
notice_lang(s_ChanServ, u, ACCESS_DENIED);
} else if (!is_on_chan(c, u)) {
notice_lang(s_ChanServ, u, NICK_X_NOT_ON_CHAN, u->nick, c->name);
} else {
anope_cmd_mode(whosends(ci), c->name, "%s %s", ircd->ownerunset,
GET_USER(u));
@@ -366,8 +350,6 @@ int do_util(User * u, CSModeUtil * util)
notice_lang(s_ChanServ, u, CHAN_X_FORBIDDEN, ci->name);
} else if (is_same ? !(u2 = u) : !(u2 = finduser(nick))) {
notice_lang(s_ChanServ, u, NICK_X_NOT_IN_USE, nick);
} else if (!is_on_chan(c, u2)) {
notice_lang(s_ChanServ, u, NICK_X_NOT_ON_CHAN, u2->nick, c->name);
} else if (is_same ? !check_access(u, ci, util->levelself) :
!check_access(u, ci, util->level)) {
notice_lang(s_ChanServ, u, ACCESS_DENIED);
@@ -376,6 +358,8 @@ int do_util(User * u, CSModeUtil * util)
notice_lang(s_ChanServ, u, PERMISSION_DENIED);
} else if (*util->mode == '-' && is_protected(u2) && !is_same) {
notice_lang(s_ChanServ, u, PERMISSION_DENIED);
} else if (!is_on_chan(c, u2)) {
notice_lang(s_ChanServ, u, NICK_X_NOT_ON_CHAN, u2->nick, c->name);
} else {
anope_cmd_mode(whosends(ci), c->name, "%s %s", util->mode,
GET_USER(u2));
+2 -7
View File
@@ -8,7 +8,6 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
@@ -29,7 +28,7 @@ int AnopeInit(int argc, char **argv)
Command *c;
moduleAddAuthor("Anope");
moduleAddVersion("$Id$");
moduleAddVersion(VERSION_STRING);
moduleSetType(CORE);
c = createCommand("REGISTER", do_register, NULL, CHAN_HELP_REGISTER,
@@ -76,7 +75,6 @@ int do_register(User * u)
ChannelInfo *ci;
struct u_chaninfolist *uc;
int is_servadmin = is_services_admin(u);
char founderpass[PASSMAX];
char tmp_pass[PASSMAX];
if (readonly) {
@@ -130,8 +128,7 @@ int do_register(User * u)
alog("%s: makechan() failed for REGISTER %s", s_ChanServ, chan);
notice_lang(s_ChanServ, u, CHAN_REGISTRATION_FAILED);
} else if (strscpy(founderpass, pass, PASSMAX),
enc_encrypt_in_place(founderpass, PASSMAX) < 0) {
} else if (enc_encrypt(pass, strlen(pass), ci->founderpass, PASSMAX - 1) < 0) {
alog("%s: Couldn't encrypt password for %s (REGISTER)",
s_ChanServ, chan);
notice_lang(s_ChanServ, u, CHAN_REGISTRATION_FAILED);
@@ -146,8 +143,6 @@ int do_register(User * u)
ci->last_used = ci->time_registered;
ci->founder = nc;
memset(pass, 0, strlen(pass));
memcpy(ci->founderpass, founderpass, PASSMAX);
ci->desc = sstrdup(desc);
if (c->topic) {
ci->last_topic = sstrdup(c->topic);
+4 -5
View File
@@ -8,7 +8,6 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
@@ -29,7 +28,7 @@ int AnopeInit(int argc, char **argv)
Command *c;
moduleAddAuthor("Anope");
moduleAddVersion("$Id$");
moduleAddVersion(VERSION_STRING);
moduleSetType(CORE);
c = createCommand("SENDPASS", do_sendpass, NULL, CHAN_HELP_SENDPASS,
@@ -96,7 +95,7 @@ int do_sendpass(User * u)
if (!mail)
return MOD_CONT;
fprintf(mail->pipe, getstring2(founder, CHAN_SENDPASS_HEAD));
fprintf(mail->pipe, "%s", getstring2(founder, CHAN_SENDPASS_HEAD));
fprintf(mail->pipe, "\n\n");
fprintf(mail->pipe, getstring2(founder, CHAN_SENDPASS_LINE_1),
ci->name);
@@ -104,9 +103,9 @@ int do_sendpass(User * u)
fprintf(mail->pipe, getstring2(founder, CHAN_SENDPASS_LINE_2),
tmp_pass);
fprintf(mail->pipe, "\n\n");
fprintf(mail->pipe, getstring2(founder, CHAN_SENDPASS_LINE_3));
fprintf(mail->pipe, "%s", getstring2(founder, CHAN_SENDPASS_LINE_3));
fprintf(mail->pipe, "\n\n");
fprintf(mail->pipe, getstring2(founder, CHAN_SENDPASS_LINE_4));
fprintf(mail->pipe, "%s", getstring2(founder, CHAN_SENDPASS_LINE_4));
fprintf(mail->pipe, "\n\n");
fprintf(mail->pipe, getstring2(founder, CHAN_SENDPASS_LINE_5),
NetworkName);
+66 -3
View File
@@ -8,7 +8,6 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
@@ -51,7 +50,7 @@ int AnopeInit(int argc, char **argv)
Command *c;
moduleAddAuthor("Anope");
moduleAddVersion("$Id$");
moduleAddVersion(VERSION_STRING);
moduleSetType(CORE);
c = createCommand("SET", do_set, NULL, CHAN_HELP_SET, -1, -1,
@@ -412,6 +411,8 @@ int do_set_desc(User * u, ChannelInfo * ci, char *param)
if (ci->desc)
free(ci->desc);
ci->desc = sstrdup(param);
alog("%s: %s!%s@%s set description of %s to: %s",
s_ChanServ, u->nick, u->username, u->host, ci->name, ci->desc);
notice_lang(s_ChanServ, u, CHAN_DESC_CHANGED, ci->name, param);
return MOD_CONT;
}
@@ -424,9 +425,13 @@ int do_set_url(User * u, ChannelInfo * ci, char *param)
free(ci->url);
if (param) {
ci->url = sstrdup(param);
alog("%s: %s!%s@%s set url for %s to: %s",
s_ChanServ, u->nick, u->username, u->host, ci->name, ci->url);
notice_lang(s_ChanServ, u, CHAN_URL_CHANGED, ci->name, param);
} else {
ci->url = NULL;
alog("%s: %s!%s@%s unset url for %s",
s_ChanServ, u->nick, u->username, u->host, ci->name);
notice_lang(s_ChanServ, u, CHAN_URL_UNSET, ci->name);
}
return MOD_CONT;
@@ -440,9 +445,13 @@ int do_set_email(User * u, ChannelInfo * ci, char *param)
free(ci->email);
if (param) {
ci->email = sstrdup(param);
alog("%s: %s!%s@%s set email for %s to: %s",
s_ChanServ, u->nick, u->username, u->host, ci->name, ci->email);
notice_lang(s_ChanServ, u, CHAN_EMAIL_CHANGED, ci->name, param);
} else {
ci->email = NULL;
alog("%s: %s!%s@%s unset email for %s",
s_ChanServ, u->nick, u->username, u->host, ci->name);
notice_lang(s_ChanServ, u, CHAN_EMAIL_UNSET, ci->name);
}
return MOD_CONT;
@@ -456,10 +465,14 @@ int do_set_entrymsg(User * u, ChannelInfo * ci, char *param)
free(ci->entry_message);
if (param) {
ci->entry_message = sstrdup(param);
alog("%s: %s!%s@%s set entrymsg for %s to: %s",
s_ChanServ, u->nick, u->username, u->host, ci->name, ci->entry_message);
notice_lang(s_ChanServ, u, CHAN_ENTRY_MSG_CHANGED, ci->name,
param);
} else {
ci->entry_message = NULL;
alog("%s: %s!%s@%s unset entrymsg for %s",
s_ChanServ, u->nick, u->username, u->host, ci->name);
notice_lang(s_ChanServ, u, CHAN_ENTRY_MSG_UNSET, ci->name);
}
return MOD_CONT;
@@ -553,6 +566,8 @@ int do_set_mlock(User * u, ChannelInfo * ci, char *param)
* mode lock at all.
*/
if (get_mlock_modes(ci, 0)) {
alog("%s: %s!%s@%s set mlock for %s to: %s",
s_ChanServ, u->nick, u->username, u->host, ci->name, get_mlock_modes(ci, 0));
notice_lang(s_ChanServ, u, CHAN_MLOCK_CHANGED, ci->name,
get_mlock_modes(ci, 0));
}
@@ -575,6 +590,8 @@ int do_set_bantype(User * u, ChannelInfo * ci, char *param)
notice_lang(s_ChanServ, u, CHAN_SET_BANTYPE_INVALID, param);
} else {
ci->bantype = bantype;
alog("%s: %s!%s@%s set ban type for %s to: %d",
s_ChanServ, u->nick, u->username, u->host, ci->name, ci->bantype);
notice_lang(s_ChanServ, u, CHAN_SET_BANTYPE_CHANGED, ci->name,
ci->bantype);
}
@@ -587,9 +604,13 @@ int do_set_keeptopic(User * u, ChannelInfo * ci, char *param)
{
if (stricmp(param, "ON") == 0) {
ci->flags |= CI_KEEPTOPIC;
alog("%s: %s!%s@%s set keeptopic ON for %s",
s_ChanServ, u->nick, u->username, u->host, ci->name);
notice_lang(s_ChanServ, u, CHAN_SET_KEEPTOPIC_ON, ci->name);
} else if (stricmp(param, "OFF") == 0) {
ci->flags &= ~CI_KEEPTOPIC;
alog("%s: %s!%s@%s set keeptopic OFF for %s",
s_ChanServ, u->nick, u->username, u->host, ci->name);
notice_lang(s_ChanServ, u, CHAN_SET_KEEPTOPIC_OFF, ci->name);
} else {
syntax_error(s_ChanServ, u, "SET KEEPTOPIC",
@@ -604,9 +625,13 @@ int do_set_topiclock(User * u, ChannelInfo * ci, char *param)
{
if (stricmp(param, "ON") == 0) {
ci->flags |= CI_TOPICLOCK;
alog("%s: %s!%s@%s set topiclock ON for %s",
s_ChanServ, u->nick, u->username, u->host, ci->name);
notice_lang(s_ChanServ, u, CHAN_SET_TOPICLOCK_ON, ci->name);
} else if (stricmp(param, "OFF") == 0) {
ci->flags &= ~CI_TOPICLOCK;
alog("%s: %s!%s@%s set topiclock OFF for %s",
s_ChanServ, u->nick, u->username, u->host, ci->name);
notice_lang(s_ChanServ, u, CHAN_SET_TOPICLOCK_OFF, ci->name);
} else {
syntax_error(s_ChanServ, u, "SET TOPICLOCK",
@@ -621,9 +646,13 @@ int do_set_private(User * u, ChannelInfo * ci, char *param)
{
if (stricmp(param, "ON") == 0) {
ci->flags |= CI_PRIVATE;
alog("%s: %s!%s@%s set private ON for %s",
s_ChanServ, u->nick, u->username, u->host, ci->name);
notice_lang(s_ChanServ, u, CHAN_SET_PRIVATE_ON, ci->name);
} else if (stricmp(param, "OFF") == 0) {
ci->flags &= ~CI_PRIVATE;
alog("%s: %s!%s@%s set private OFF for %s",
s_ChanServ, u->nick, u->username, u->host, ci->name);
notice_lang(s_ChanServ, u, CHAN_SET_PRIVATE_OFF, ci->name);
} else {
syntax_error(s_ChanServ, u, "SET PRIVATE",
@@ -638,9 +667,13 @@ int do_set_secureops(User * u, ChannelInfo * ci, char *param)
{
if (stricmp(param, "ON") == 0) {
ci->flags |= CI_SECUREOPS;
alog("%s: %s!%s@%s set secureops ON for %s",
s_ChanServ, u->nick, u->username, u->host, ci->name);
notice_lang(s_ChanServ, u, CHAN_SET_SECUREOPS_ON, ci->name);
} else if (stricmp(param, "OFF") == 0) {
ci->flags &= ~CI_SECUREOPS;
alog("%s: %s!%s@%s set secureops OFF for %s",
s_ChanServ, u->nick, u->username, u->host, ci->name);
notice_lang(s_ChanServ, u, CHAN_SET_SECUREOPS_OFF, ci->name);
} else {
syntax_error(s_ChanServ, u, "SET SECUREOPS",
@@ -655,9 +688,13 @@ int do_set_securefounder(User * u, ChannelInfo * ci, char *param)
{
if (stricmp(param, "ON") == 0) {
ci->flags |= CI_SECUREFOUNDER;
alog("%s: %s!%s@%s set securefounder ON for %s",
s_ChanServ, u->nick, u->username, u->host, ci->name);
notice_lang(s_ChanServ, u, CHAN_SET_SECUREFOUNDER_ON, ci->name);
} else if (stricmp(param, "OFF") == 0) {
ci->flags &= ~CI_SECUREFOUNDER;
alog("%s: %s!%s@%s set securefounder OFF for %s",
s_ChanServ, u->nick, u->username, u->host, ci->name);
notice_lang(s_ChanServ, u, CHAN_SET_SECUREFOUNDER_OFF, ci->name);
} else {
syntax_error(s_ChanServ, u, "SET SECUREFOUNDER",
@@ -674,11 +711,15 @@ int do_set_restricted(User * u, ChannelInfo * ci, char *param)
ci->flags |= CI_RESTRICTED;
if (ci->levels[CA_NOJOIN] < 0)
ci->levels[CA_NOJOIN] = 0;
alog("%s: %s!%s@%s set restricted ON for %s",
s_ChanServ, u->nick, u->username, u->host, ci->name);
notice_lang(s_ChanServ, u, CHAN_SET_RESTRICTED_ON, ci->name);
} else if (stricmp(param, "OFF") == 0) {
ci->flags &= ~CI_RESTRICTED;
if (ci->levels[CA_NOJOIN] >= 0)
ci->levels[CA_NOJOIN] = -2;
alog("%s: %s!%s@%s set restricted OFF for %s",
s_ChanServ, u->nick, u->username, u->host, ci->name);
notice_lang(s_ChanServ, u, CHAN_SET_RESTRICTED_OFF, ci->name);
} else {
syntax_error(s_ChanServ, u, "SET RESTRICTED",
@@ -693,9 +734,13 @@ int do_set_secure(User * u, ChannelInfo * ci, char *param)
{
if (stricmp(param, "ON") == 0) {
ci->flags |= CI_SECURE;
alog("%s: %s!%s@%s set secure ON for %s",
s_ChanServ, u->nick, u->username, u->host, ci->name);
notice_lang(s_ChanServ, u, CHAN_SET_SECURE_ON, ci->name);
} else if (stricmp(param, "OFF") == 0) {
ci->flags &= ~CI_SECURE;
alog("%s: %s!%s@%s set secure OFF for %s",
s_ChanServ, u->nick, u->username, u->host, ci->name);
notice_lang(s_ChanServ, u, CHAN_SET_SECURE_OFF, ci->name);
} else {
syntax_error(s_ChanServ, u, "SET SECURE", CHAN_SET_SECURE_SYNTAX);
@@ -710,13 +755,19 @@ int do_set_signkick(User * u, ChannelInfo * ci, char *param)
if (stricmp(param, "ON") == 0) {
ci->flags |= CI_SIGNKICK;
ci->flags &= ~CI_SIGNKICK_LEVEL;
alog("%s: %s!%s@%s set signkick ON for %s",
s_ChanServ, u->nick, u->username, u->host, ci->name);
notice_lang(s_ChanServ, u, CHAN_SET_SIGNKICK_ON, ci->name);
} else if (stricmp(param, "LEVEL") == 0) {
ci->flags |= CI_SIGNKICK_LEVEL;
ci->flags &= ~CI_SIGNKICK;
alog("%s: %s!%s@%s set signkick LEVEL for %s",
s_ChanServ, u->nick, u->username, u->host, ci->name);
notice_lang(s_ChanServ, u, CHAN_SET_SIGNKICK_LEVEL, ci->name);
} else if (stricmp(param, "OFF") == 0) {
ci->flags &= ~(CI_SIGNKICK | CI_SIGNKICK_LEVEL);
alog("%s: %s!%s@%s set signkick OFF for %s",
s_ChanServ, u->nick, u->username, u->host, ci->name);
notice_lang(s_ChanServ, u, CHAN_SET_SIGNKICK_OFF, ci->name);
} else {
syntax_error(s_ChanServ, u, "SET SIGNKICK",
@@ -731,9 +782,13 @@ int do_set_opnotice(User * u, ChannelInfo * ci, char *param)
{
if (stricmp(param, "ON") == 0) {
ci->flags |= CI_OPNOTICE;
alog("%s: %s!%s@%s set opnotice ON for %s",
s_ChanServ, u->nick, u->username, u->host, ci->name);
notice_lang(s_ChanServ, u, CHAN_SET_OPNOTICE_ON, ci->name);
} else if (stricmp(param, "OFF") == 0) {
ci->flags &= ~CI_OPNOTICE;
alog("%s: %s!%s@%s set opnotice OFF for %s",
s_ChanServ, u->nick, u->username, u->host, ci->name);
notice_lang(s_ChanServ, u, CHAN_SET_OPNOTICE_OFF, ci->name);
} else {
syntax_error(s_ChanServ, u, "SET OPNOTICE",
@@ -774,9 +829,9 @@ int do_set_xop(User * u, ChannelInfo * ci, char *param)
} else {
access->in_use = 0;
access->nc = NULL;
CleanAccess(ci);
}
}
CleanAccess(ci);
reset_levels(ci);
ci->flags |= CI_XOP;
@@ -805,9 +860,13 @@ int do_set_peace(User * u, ChannelInfo * ci, char *param)
{
if (stricmp(param, "ON") == 0) {
ci->flags |= CI_PEACE;
alog("%s: %s!%s@%s set peace ON for %s",
s_ChanServ, u->nick, u->username, u->host, ci->name);
notice_lang(s_ChanServ, u, CHAN_SET_PEACE_ON, ci->name);
} else if (stricmp(param, "OFF") == 0) {
ci->flags &= ~CI_PEACE;
alog("%s: %s!%s@%s set peace OFF for %s",
s_ChanServ, u->nick, u->username, u->host, ci->name);
notice_lang(s_ChanServ, u, CHAN_SET_PEACE_OFF, ci->name);
} else {
syntax_error(s_ChanServ, u, "SET PEACE", CHAN_SET_PEACE_SYNTAX);
@@ -825,9 +884,13 @@ int do_set_noexpire(User * u, ChannelInfo * ci, char *param)
}
if (stricmp(param, "ON") == 0) {
ci->flags |= CI_NO_EXPIRE;
alog("%s: %s!%s@%s set noexpire ON for %s",
s_ChanServ, u->nick, u->username, u->host, ci->name);
notice_lang(s_ChanServ, u, CHAN_SET_NOEXPIRE_ON, ci->name);
} else if (stricmp(param, "OFF") == 0) {
ci->flags &= ~CI_NO_EXPIRE;
alog("%s: %s!%s@%s set noexpire OFF for %s",
s_ChanServ, u->nick, u->username, u->host, ci->name);
notice_lang(s_ChanServ, u, CHAN_SET_NOEXPIRE_OFF, ci->name);
} else {
syntax_error(s_ChanServ, u, "SET NOEXPIRE",
+1 -2
View File
@@ -8,7 +8,6 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
@@ -29,7 +28,7 @@ int AnopeInit(int argc, char **argv)
Command *c;
moduleAddAuthor("Anope");
moduleAddVersion("$Id$");
moduleAddVersion(VERSION_STRING);
moduleSetType(CORE);
c = createCommand("STATUS", do_status, is_services_admin, -1, -1, -1,
+1 -2
View File
@@ -8,7 +8,6 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
@@ -30,7 +29,7 @@ int AnopeInit(int argc, char **argv)
Command *c;
moduleAddAuthor("Anope");
moduleAddVersion("$Id$");
moduleAddVersion(VERSION_STRING);
moduleSetType(CORE);
c = createCommand("SUSPEND", do_suspend, is_services_oper, -1, -1,
+1 -2
View File
@@ -8,7 +8,6 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
@@ -29,7 +28,7 @@ int AnopeInit(int argc, char **argv)
Command *c;
moduleAddAuthor("Anope");
moduleAddVersion("$Id$");
moduleAddVersion(VERSION_STRING);
moduleSetType(CORE);
c = createCommand("TOPIC", do_cs_topic, NULL, CHAN_HELP_TOPIC, -1, -1,
+11 -8
View File
@@ -8,7 +8,6 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
@@ -93,16 +92,13 @@ int AnopeInit(int argc, char **argv)
Command *c;
moduleAddAuthor("Anope");
moduleAddVersion("$Id$");
moduleAddVersion(VERSION_STRING);
moduleSetType(CORE);
c = createCommand("AOP", do_aop, NULL, CHAN_HELP_AOP, -1, -1, -1, -1);
moduleAddCommand(CHANSERV, c, MOD_UNIQUE);
if (ircd->halfop) {
c = createCommand("HOP", do_hop, NULL, CHAN_HELP_HOP, -1, -1, -1,
-1);
moduleAddCommand(CHANSERV, c, MOD_UNIQUE);
}
c = createCommand("HOP", do_hop, NULL, CHAN_HELP_HOP, -1, -1, -1, -1);
moduleAddCommand(CHANSERV, c, MOD_UNIQUE);
c = createCommand("SOP", do_sop, NULL, CHAN_HELP_SOP, -1, -1, -1, -1);
moduleAddCommand(CHANSERV, c, MOD_UNIQUE);
c = createCommand("VOP", do_vop, NULL, CHAN_HELP_VOP, -1, -1, -1, -1);
@@ -151,7 +147,9 @@ int do_aop(User * u)
int do_hop(User * u)
{
return do_xop(u, "HOP", ACCESS_HOP, xop_msgs[3]);
if (ircd->halfop)
return do_xop(u, "HOP", ACCESS_HOP, xop_msgs[3]);
return MOD_CONT;
}
/*************************************************************************/
@@ -374,8 +372,10 @@ int do_xop(User * u, char *xname, int xlev, int *xmsgs)
notice_lang(s_ChanServ, u, xmsgs[7], ci->name);
}
} else if (deleted == 1) {
alog("%s: %s!%s@%s (level %d) deleted access of user %s on %s", s_ChanServ, u->nick, u->username, u->host, get_access(u, ci), nick, ci->name);
notice_lang(s_ChanServ, u, xmsgs[9], ci->name);
} else {
alog("%s: %s!%s@%s (level %d) deleted access of users %s on %s", s_ChanServ, u->nick, u->username, u->host, get_access(u, ci), nick, ci->name);
notice_lang(s_ChanServ, u, xmsgs[10], deleted, ci->name);
}
} else {
@@ -400,6 +400,7 @@ int do_xop(User * u, char *xname, int xlev, int *xmsgs)
deleted = 0;
notice_lang(s_ChanServ, u, PERMISSION_DENIED);
} else {
alog("%s: %s!%s@%s (level %d) deleted access of %s on %s", s_ChanServ, u->nick, u->username, u->host, get_access(u, ci), access->nc->display, ci->name);
notice_lang(s_ChanServ, u, xmsgs[8], access->nc->display,
ci->name);
access->nc = NULL;
@@ -464,6 +465,8 @@ int do_xop(User * u, char *xname, int xlev, int *xmsgs)
CleanAccess(ci);
alog("%s: %s!%s@%s cleared the %s list of %s", s_ChanServ, u->nick, u->username, u->host, xname, ci->name);
send_event(EVENT_ACCESS_CLEAR, 2, ci->name, u->nick);
notice_lang(s_ChanServ, u, xmsgs[13], ci->name);
+1 -9
View File
@@ -362,12 +362,6 @@ int md5_encrypt(const char *src, int len, char *dest, int size)
}
int md5_encrypt_in_place(char *buf, int size)
{
return md5_encrypt(buf, strlen(buf), buf, size);
}
int md5_encrypt_check_len(int passlen, int bufsize)
{
if (bufsize < 16)
@@ -400,11 +394,10 @@ int md5_check_password(const char *plaintext, const char *password)
int AnopeInit(int argc, char **argv) {
moduleAddAuthor("Anope");
moduleAddVersion("$Id$");
moduleAddVersion(VERSION_STRING);
moduleSetType(ENCRYPTION);
encmodule_encrypt(md5_encrypt);
encmodule_encrypt_in_place(md5_encrypt_in_place);
encmodule_encrypt_check_len(md5_encrypt_check_len);
encmodule_decrypt(md5_decrypt);
encmodule_check_password(md5_check_password);
@@ -414,7 +407,6 @@ int AnopeInit(int argc, char **argv) {
void AnopeFini(void) {
encmodule_encrypt(NULL);
encmodule_encrypt_in_place(NULL);
encmodule_encrypt_check_len(NULL);
encmodule_decrypt(NULL);
encmodule_check_password(NULL);
+1 -8
View File
@@ -10,7 +10,6 @@
#include "module.h"
int plain_encrypt(const char *src,int len,char *dest,int size);
int plain_encrypt_in_place(char *buf, int size);
int plain_encrypt_check_len(int passlen, int bufsize);
int plain_decrypt(const char *src, char *dest, int size);
int plain_check_password(const char *plaintext, const char *password);
@@ -19,11 +18,10 @@ int plain_check_password(const char *plaintext, const char *password);
int AnopeInit(int argc, char **argv) {
moduleAddAuthor("Anope");
moduleAddVersion("$Id$");
moduleAddVersion(VERSION_STRING);
moduleSetType(ENCRYPTION);
encmodule_encrypt(plain_encrypt);
encmodule_encrypt_in_place(plain_encrypt_in_place);
encmodule_encrypt_check_len(plain_encrypt_check_len);
encmodule_decrypt(plain_decrypt);
encmodule_check_password(plain_check_password);
@@ -33,7 +31,6 @@ int AnopeInit(int argc, char **argv) {
void AnopeFini(void) {
encmodule_encrypt(NULL);
encmodule_encrypt_in_place(NULL);
encmodule_encrypt_check_len(NULL);
encmodule_decrypt(NULL);
encmodule_check_password(NULL);
@@ -49,10 +46,6 @@ int plain_encrypt(const char *src,int len,char *dest,int size) {
return -1;
}
int plain_encrypt_in_place(char *buf, int size) {
return 0;
}
int plain_encrypt_check_len(int passlen, int bufsize) {
if(bufsize>=passlen) {
return 0;
+1 -11
View File
@@ -8,7 +8,6 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
@@ -389,13 +388,6 @@ int old_encrypt(const char *src, int len, char *dest, int size)
}
/* Shortcut for encrypting a null-terminated string in place. */
int old_encrypt_in_place(char *buf, int size)
{
return old_encrypt(buf, strlen(buf), buf, size);
}
int old_encrypt_check_len(int passlen, int bufsize)
{
if (bufsize < 16)
@@ -427,11 +419,10 @@ int old_decrypt(const char *src, char *dest, int size)
int AnopeInit(int argc, char **argv) {
moduleAddAuthor("Anope");
moduleAddVersion("$Id$");
moduleAddVersion(VERSION_STRING);
moduleSetType(ENCRYPTION);
encmodule_encrypt(old_encrypt);
encmodule_encrypt_in_place(old_encrypt_in_place);
encmodule_encrypt_check_len(old_encrypt_check_len);
encmodule_decrypt(old_decrypt);
encmodule_check_password(old_check_password);
@@ -441,7 +432,6 @@ int AnopeInit(int argc, char **argv) {
void AnopeFini(void) {
encmodule_encrypt(NULL);
encmodule_encrypt_in_place(NULL);
encmodule_encrypt_check_len(NULL);
encmodule_decrypt(NULL);
encmodule_check_password(NULL);
+1 -17
View File
@@ -204,20 +204,6 @@ int sha1_encrypt(const char *src, int len, char *dest, int size)
}
int sha1_encrypt_in_place(char *buf, int size)
{
char tmp[41];
memset(tmp,0,41);
if(sha1_encrypt(buf, strlen(buf), tmp, size)==0) {
memcpy(buf, tmp, size);
} else {
return -1;
}
return 0;
}
int sha1_encrypt_check_len(int passlen, int bufsize)
{
if (bufsize < 20)
@@ -251,11 +237,10 @@ int sha1_check_password(const char *plaintext, const char *password)
int AnopeInit(int argc, char **argv) {
moduleAddAuthor("Anope");
moduleAddVersion("$Id$");
moduleAddVersion(VERSION_STRING);
moduleSetType(ENCRYPTION);
encmodule_encrypt(sha1_encrypt);
encmodule_encrypt_in_place(sha1_encrypt_in_place);
encmodule_encrypt_check_len(sha1_encrypt_check_len);
encmodule_decrypt(sha1_decrypt);
encmodule_check_password(sha1_check_password);
@@ -265,7 +250,6 @@ int AnopeInit(int argc, char **argv) {
void AnopeFini(void) {
encmodule_encrypt(NULL);
encmodule_encrypt_in_place(NULL);
encmodule_encrypt_check_len(NULL);
encmodule_decrypt(NULL);
encmodule_check_password(NULL);
+1 -2
View File
@@ -8,7 +8,6 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
@@ -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);
+1 -2
View File
@@ -8,7 +8,6 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
@@ -29,7 +28,7 @@ int AnopeInit(int argc, char **argv)
Command *c;
moduleAddAuthor("Anope");
moduleAddVersion("$Id$");
moduleAddVersion(VERSION_STRING);
moduleSetType(CORE);
c = createCommand("DEL", do_del, is_host_remover, HOST_HELP_DEL, -1,
+1 -2
View File
@@ -8,7 +8,6 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
@@ -29,7 +28,7 @@ int AnopeInit(int argc, char **argv)
Command *c;
moduleAddAuthor("Anope");
moduleAddVersion("$Id$");
moduleAddVersion(VERSION_STRING);
moduleSetType(CORE);
c = createCommand("DELALL", do_delall, is_host_remover,
+3 -2
View File
@@ -8,7 +8,6 @@
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
/*************************************************************************/
@@ -32,7 +31,7 @@ int AnopeInit(int argc, char **argv)
Command *c;
moduleAddAuthor("Anope");
moduleAddVersion("$Id$");
moduleAddVersion(VERSION_STRING);
moduleSetType(CORE);
c = createCommand("GROUP", do_group, NULL, HOST_HELP_GROUP, -1, -1, -1,
@@ -106,6 +105,8 @@ int do_group(User * u)
notice_lang(s_HostServ, u, HOST_GROUP, na->nc->display,
vHost);
}
alog("%s: %s!%s@%s grouped their vhost",
s_HostServ, u->nick, u->username, u->host);
free(vHost);
if (vIdent)
free(vIdent);

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