mirror of
https://github.com/anope/anope.git
synced 2026-06-17 21:34:46 +02:00
Compare commits
169 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 74556b77c0 | |||
| 91527cdcef | |||
| b9aa534731 | |||
| 658ecee817 | |||
| fb99dc43c9 | |||
| 144029fd61 | |||
| 2a1cd54bc7 | |||
| 0dd4a98e53 | |||
| f1577975a9 | |||
| fa833766a0 | |||
| 783f77d367 | |||
| dc840e9b99 | |||
| 0982becd98 | |||
| f83096c729 | |||
| eb7c9d0a86 | |||
| 8007cc8a3a | |||
| 30ea6365de | |||
| a11155551e | |||
| d45222798b | |||
| edb362eace | |||
| 1e9f1b09f5 | |||
| 16439f52a5 | |||
| 45640c43d3 | |||
| 6ebbec79ea | |||
| 096de4fb25 | |||
| 01946cb467 | |||
| 0e0538408d | |||
| 841b3f689e | |||
| 0315bd31f8 | |||
| 2539f34d3c | |||
| 7eb437b9fe | |||
| 0e0eb38b2a | |||
| 6fca33a2ba | |||
| 66e2dce646 | |||
| 06679e487e | |||
| 54acc25eb3 | |||
| a4c81c72c1 | |||
| 2060bacdea | |||
| 8d1fe0a36f | |||
| 165c0588d4 | |||
| 7c14f76bc8 | |||
| a86e15afe9 | |||
| 2b847c63e9 | |||
| 11b91fdc67 | |||
| 0dda705cdb | |||
| f4d7ae2e12 | |||
| 826e040d41 | |||
| 3ef227aa88 | |||
| f592417ec2 | |||
| ed13cd11ec | |||
| f8a0a645b0 | |||
| 12b0ff0593 | |||
| 13688c595b | |||
| 2b7dd6c2a0 | |||
| c5fc11f5fe | |||
| bf2f151c68 | |||
| 4c64c86ef4 | |||
| cb975f4a6c | |||
| 0383868a29 | |||
| b92711dc15 | |||
| e990259d6d | |||
| 5a4de87df1 | |||
| 9a488327b2 | |||
| f302367fc4 | |||
| 3866b002d6 | |||
| fab8b8b137 | |||
| 80d0e03f64 | |||
| a32ab376db | |||
| f39d94c84e | |||
| ac338266f4 | |||
| 7385580ffa | |||
| f4a0ee30b3 | |||
| bd94cbc25b | |||
| 3a97d196f9 | |||
| 22894e9e09 | |||
| 24f3066224 | |||
| d53c25b043 | |||
| 7dfc8e8ee8 | |||
| 3a9a0ef135 | |||
| e594937c0b | |||
| 085976adf5 | |||
| a2be8c402f | |||
| a29845cc56 | |||
| fac3b85903 | |||
| d1b5797f5d | |||
| f1fa7e1a5f | |||
| a2e9e45e37 | |||
| ee0636ac46 | |||
| ed9ec89061 | |||
| b7c6f8ec7f | |||
| 94f7962e1a | |||
| 3308ab7153 | |||
| 951de6b39d | |||
| 388fe38d00 | |||
| d034a9c36a | |||
| 49064ec67d | |||
| a9fa7edf82 | |||
| 42dd49233c | |||
| 3a422777c5 | |||
| e42f125a85 | |||
| f5a7a5d8bc | |||
| ca7769d8b4 | |||
| e5bd79ba19 | |||
| 804cb9b051 | |||
| 7582b6503f | |||
| cd9ec6fe10 | |||
| 8f60562dfa | |||
| 3bf6cdb6ac | |||
| c01f8cad22 | |||
| cea53460b0 | |||
| d8642972d9 | |||
| 9b26a0dc09 | |||
| 15c66af4e5 | |||
| 6661c3ebdb | |||
| 0c9117abce | |||
| ff17a9af7e | |||
| 1b636ed4ff | |||
| 61b6c92ee2 | |||
| e604e04847 | |||
| 461bc4c87e | |||
| d049bf0d8f | |||
| a53cbd82cc | |||
| 571ff82f69 | |||
| 7ddc6d8be5 | |||
| dd258b36d2 | |||
| 8e59e58987 | |||
| de902c6db3 | |||
| e02967bd4a | |||
| 92bf0c800f | |||
| 40c9226e3a | |||
| e897082f69 | |||
| b67dada56f | |||
| c66f28ed61 | |||
| 87e96d6f52 | |||
| f590c52321 | |||
| 911cc43d9c | |||
| 6ba8f8b264 | |||
| 94f465832f | |||
| 9ab97ae21a | |||
| 246a2c664b | |||
| ad4180e2d6 | |||
| 01906d0b74 | |||
| 005d3f9558 | |||
| a895077b54 | |||
| 7e10fca23b | |||
| b2d258328a | |||
| ef5c945e0b | |||
| 1e0bfbd15a | |||
| cb73ab9d23 | |||
| ac90a6935a | |||
| 766fe138e4 | |||
| dafccc1821 | |||
| ace25983a4 | |||
| bb7b8e27ee | |||
| 72fa53c20e | |||
| eb0c255fad | |||
| 01994c1ba1 | |||
| ec7bc8dd41 | |||
| 6ee50f852e | |||
| 6cd3b56805 | |||
| 27ad395a56 | |||
| c4247b71b2 | |||
| 5a51984db1 | |||
| b75abf9ba3 | |||
| f39c428ac5 | |||
| 60f0b2ff87 | |||
| 6242a60134 | |||
| dd198b89c0 | |||
| 2cfcf3c512 |
@@ -0,0 +1,7 @@
|
||||
Makefile
|
||||
autom4te.cache/
|
||||
config.cache
|
||||
config.log
|
||||
config.status
|
||||
include/sysconf.h
|
||||
src/bin/anoperc
|
||||
@@ -1,3 +1,93 @@
|
||||
Anope Version 1.8.7
|
||||
-----------------------
|
||||
08/18 A Added support for Hybrid's channel mode +S [#1319]
|
||||
08/18 A Added support for Hybrid's channel mode +O [#1320]
|
||||
08/21 A Added internal event when a nickcore is dropped. [ #00]
|
||||
08/21 A Added internal event when a nickcore gets a new display nick. [ #00]
|
||||
08/18 R Removed support for Hybrid's (old) channel mode +a [#1318]
|
||||
12/15 C Added API support for SVSJOIN and SVSPART on UltimateIRCd 3. [ #00]
|
||||
05/30 F Fixed removing vhosts on InspIRCd when m_cloaking is unloaded [#1273]
|
||||
07/23 F Fixed a potential crash in the badwords kicker [ #00]
|
||||
08/09 F Fixed deopping the first user to join a channel during a burst [#1287]
|
||||
08/10 F Fixed loading bs_fantasy_owner on InspIRCd 2.0 on startup [ #00]
|
||||
08/21 F Send DROP event when forbidding nicks and channels. [ #00]
|
||||
11/16 F Fixed ident being used instead of vident in some comparisons. [ #00]
|
||||
11/20 F Fixed ignore not matching against users' real host or IP. [ #00]
|
||||
12/06 F Fixed some typos in the spanish language file [ #00]
|
||||
|
||||
Anope Version 1.8.6
|
||||
-------------------
|
||||
10/31 A Added support for plexus3's channel mode +z [#1202]
|
||||
02/23 A Added account tracking support to ratbox protocol module [ #00]
|
||||
03/21 A Added support for Hybrid's m_services and m_change [ #00]
|
||||
03/28 A Added internal events called when a module is loaded/unloaded. [ #00]
|
||||
03/28 A Added internal events called when a command is added/deleted. [ #00]
|
||||
09/11 F Fixed db-convert handling some vhost collisions [ #00]
|
||||
09/14 F Fixed ./configure failing with partial SQL installations [ #00]
|
||||
09/28 F Fixed ForkForMail to always work [ #00]
|
||||
09/28 F Fixed /nickserv saset display to use nicktracking if enabled [#1193]
|
||||
09/28 F Fixed /nickserv group to use nicktracking if enabled [#1194]
|
||||
12/12 F Remove vhost requests from nicks that expire [ #00]
|
||||
12/15 F Fixed /cs enforce #channel to say SET was enforced not (null) [#1213]
|
||||
12/23 F Fixed /cs (un)ban and akick from matching users real hosts/IP [#1079]
|
||||
01/19 F Fixed 'make install' recompiling src/tools [#1227]
|
||||
01/21 F Fixed many incorrect apostrophe usages [#1223]
|
||||
01/28 F Fixed not introducing our clients with usermode k on InspIRCd2.0[ #00]
|
||||
01/29 F Updated german language file. [ #00]
|
||||
02/05 F Fixed wiki URLs in Windows configure script [ #00]
|
||||
02/11 F Fixed build on Mac [ #00]
|
||||
02/23 F Fixed rejoining our clients if they are kicked on a TS6 IRCd [ #00]
|
||||
03/02 F Fixed showing SENDPASS in HELP to users who can't use it [ #00]
|
||||
03/03 F Fixed opping our clients on ratbox when not using TS6 [ #00]
|
||||
03/04 F Fixed setting a users host in InspIRCd when vhost is turned off [ #00]
|
||||
03/24 F Fixed groups display nick showing in HS req memos for aliases. [#1252]
|
||||
04/28 F Fixed missing NS REGISTER reply when ns_register is not loaded. [#1263]
|
||||
05/02 F Fixed crash in enc_md5 on Mac [#1236]
|
||||
|
||||
Anope Version 1.8.5
|
||||
-------------------
|
||||
05/05 A Added an internal event called when a nick is requested [ #00]
|
||||
05/09 A Added an Atheme to Anope database converter [ #00]
|
||||
05/12 A Added logging for stateful commands [ #00]
|
||||
05/22 A Added an internal event called when a nick is ghosted [ #00]
|
||||
05/22 A Added an internal event called when a nick is recovered [ #00]
|
||||
05/23 A Added old nick parameter to EVENT_CHANGE_NICK [ #00]
|
||||
08/13 A Added forking for mail sending on supporting operating systems [ #00]
|
||||
09/05 A Added InspIRCd 2.0 support [ #00]
|
||||
10/31 A Added support for Plexus3's channel mode +z [#1202]
|
||||
04/15 F Fixed os_info to backup its database on Windows [ #00]
|
||||
04/15 F Fixed a potential crash in cs_clear ops when using UnrealIRCd [#1154]
|
||||
04/16 F Fixed missing TS6SID on FJOIN in inspircd12 [ #00]
|
||||
04/19 F Fixed ns_info to show nick expire times to opers not only admins[ #00]
|
||||
04/28 F Fixed a bug that could make some nick requests disappear [ #00]
|
||||
05/18 F Fixed English and grammar in e-mail messages [ #00]
|
||||
05/23 F Fixed SQUITing juped servers on InspIRCd 1.2 [#1165]
|
||||
06/15 F Fixed ./Config to correctly load config.cache [ #00]
|
||||
06/24 F Fixed pseudo-client kills not being detected on some TS6 IRCDs. [ #00]
|
||||
07/01 F Fixed encrypting very long passwords when registering [#1172]
|
||||
08/03 F Fixed tracking users vhosts when there is no vhost mode [#1178]
|
||||
08/05 F Fixed tracking of our clients after nick changing on InspIRCd [#1180]
|
||||
09/10 F Fixed pseudo-clients always getting oper on InspIRCd. [ #00]
|
||||
|
||||
Provided by Han` <Han@mefalcon.org> - 2010
|
||||
08/14 F Updated german language file. [ #00]
|
||||
|
||||
Anope Version 1.8.4
|
||||
-------------------
|
||||
03/10 A Added support for tracking permanent channels [ #00]
|
||||
03/24 A Added logging of deleting and clearing XOP access lists [ #00]
|
||||
02/09 F Fixed marking halfops as deopped, stops unsetting modes by them [#1136]
|
||||
02/18 F Fixed listing unconfirmed nicks with suspended nicks to SA+ [ #00]
|
||||
03/02 F Fixed a bug that could cause access entries to disappear [ #00]
|
||||
03/13 F Fixed maximum hostname checking in HS SET and HS REQUEST [#1138]
|
||||
03/13 F Fixed deleting force dropped nicks from the hs_waiting list [#1139]
|
||||
03/13 F Fixed backing up 3rd party module DBs more than once a day [#1140]
|
||||
03/16 F Fixed os_info to display syntax errors if no command is entered [ #00]
|
||||
03/29 F Fixed defcon to only apply its mode parameters when it's on [#1146]
|
||||
03/29 F Fixed numbering of memos when saved in SQL [#1149]
|
||||
03/30 F Fixed module demos to work correctly on TS6 IRCDs [ #00]
|
||||
04/03 F Fixed saving databases in readonly mode when using anoperc [ #00]
|
||||
|
||||
Anope Version 1.8.3
|
||||
-------------------
|
||||
Provided by Anope Dev. <team@anope.org> - 2009
|
||||
@@ -22,7 +112,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 +122,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
|
||||
-------------------
|
||||
|
||||
@@ -1,3 +1,56 @@
|
||||
Anope Version 1.8.7
|
||||
-----------------------
|
||||
** ADDED CONFIGURATION DIRECTIVES **
|
||||
|
||||
** MODIFIED CONFIGURATION DIRECTIVES **
|
||||
|
||||
** DELETED CONFIGURATION DIRECTIVES **
|
||||
|
||||
|
||||
Anope Version 1.8.6
|
||||
-------------------
|
||||
** ADDED CONFIGURATION DIRECTIVES **
|
||||
|
||||
** MODIFIED CONFIGURATION DIRECTIVES **
|
||||
|
||||
** DELETED CONFIGURATION DIRECTIVES **
|
||||
|
||||
|
||||
Anope Version 1.8.5
|
||||
-------------------
|
||||
** ADDED CONFIGURATION DIRECTIVES **
|
||||
|
||||
# ForkForMail [OPTIONAL]
|
||||
#
|
||||
# When enabled, services will fork when sending mail, which means there is no
|
||||
# services lag from mail. This is only supported on operating systems that allow
|
||||
# the use of forking (eg, not Windows).
|
||||
#
|
||||
|
||||
#ForkForMail
|
||||
|
||||
inspircd20 - IRCDModule
|
||||
|
||||
** MODIFIED CONFIGURATION DIRECTIVES **
|
||||
|
||||
# DefSessionLimit <limit> [REQUIRED]
|
||||
# Default session limit per host. Once a host reaches it's session limit,
|
||||
# all clients attempting to connect from that host will be killed.
|
||||
|
||||
DefSessionLimit 3
|
||||
|
||||
** DELETED CONFIGURATION DIRECTIVES **
|
||||
|
||||
|
||||
Anope Version 1.8.4
|
||||
-------------------
|
||||
** ADDED CONFIGURATION DIRECTIVES **
|
||||
|
||||
** MODIFIED CONFIGURATION DIRECTIVES **
|
||||
|
||||
** DELETED CONFIGURATION DIRECTIVES **
|
||||
|
||||
|
||||
Anope Version 1.8.3
|
||||
-------------------
|
||||
** ADDED CONFIGURATION DIRECTIVES **
|
||||
|
||||
@@ -1,3 +1,40 @@
|
||||
Anope Version 1.8.7
|
||||
-----------------------
|
||||
*** New Strings:
|
||||
|
||||
*** Mod Strings:
|
||||
|
||||
*** Del Strings:
|
||||
|
||||
|
||||
Anope Version 1.8.6
|
||||
-------------------
|
||||
*** New Strings:
|
||||
|
||||
*** Mod Strings:
|
||||
|
||||
*** Del Strings:
|
||||
|
||||
|
||||
Anope Version 1.8.5
|
||||
-------------------
|
||||
*** New Strings:
|
||||
|
||||
*** Mod Strings:
|
||||
|
||||
*** Del Strings:
|
||||
|
||||
|
||||
Anope Version 1.8.4
|
||||
-------------------
|
||||
*** New Strings:
|
||||
|
||||
*** Mod Strings:
|
||||
NICK_HELP_LIST
|
||||
|
||||
*** Del Strings:
|
||||
|
||||
|
||||
Anope Version 1.8.3
|
||||
-------------------
|
||||
*** New Strings:
|
||||
|
||||
@@ -1,3 +1,19 @@
|
||||
Anope Version 1.8.7
|
||||
--------------------
|
||||
- NONE
|
||||
|
||||
Anope Version 1.8.6
|
||||
-------------------
|
||||
- NONE
|
||||
|
||||
Anope Version 1.8.5
|
||||
-------------------
|
||||
- NONE
|
||||
|
||||
Anope Version 1.8.4
|
||||
-------------------
|
||||
- NONE
|
||||
|
||||
Anope Version 1.8.3
|
||||
-------------------
|
||||
ALTER TABLE `anope_ns_access` DROP INDEX `display` ;
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#
|
||||
# Configuration script for Services.
|
||||
#
|
||||
# Anope (c) 2003-2010 Anope team
|
||||
# Anope (c) 2003-2011 Anope team
|
||||
# Contact us at team@anope.org
|
||||
#
|
||||
# This program is free but copyrighted software; see the file COPYING for
|
||||
@@ -29,7 +29,7 @@ Load_Cache () {
|
||||
if [ -f config.cache -a -r config.cache -a ! "$IGNORE_CACHE" ] ; then
|
||||
echo "Using defaults from config.cache. To ignore, ./Config -nocache"
|
||||
echo ""
|
||||
. config.cache
|
||||
. ./config.cache
|
||||
CAN_QUICK="yes"
|
||||
else
|
||||
CAN_QUICK="no"
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
# Makefile for Anope.
|
||||
#
|
||||
# (C) 2003-2010 Anope Team
|
||||
# (C) 2003-2011 Anope Team
|
||||
# Contact us at team@anope.org
|
||||
#
|
||||
# This program is free but copyrighted software; see the file COPYING for
|
||||
@@ -44,7 +44,7 @@ spotless:
|
||||
-@erase include\language.h include\version.h *.manifest *~ anope.exe version.sh.exe *.obj anopesmtp.exe
|
||||
-@echo --
|
||||
-@echo NOTICE:
|
||||
-@echo You will need to run cscript /nologo install.js again
|
||||
-@echo You will need to run config.bat again
|
||||
-@echo --
|
||||
|
||||
mypasql:
|
||||
|
||||
+10
-8
@@ -1,6 +1,6 @@
|
||||
dnl autoconf.in for Services.
|
||||
dnl
|
||||
dnl Anope (c) 2003-2010 Anope team
|
||||
dnl Anope (c) 2003-2011 Anope team
|
||||
dnl Contact us at team@anope.org
|
||||
|
||||
dnl This program is free but copyrighted software; see the file COPYING for
|
||||
@@ -99,8 +99,9 @@ AC_ARG_WITH(mysql, [ --without-mysql Do not use MySQL or attempt to fin
|
||||
fi
|
||||
CFLAGS="$CFLAGS $MYSQL_CFLAGS"
|
||||
LDFLAGS="$LDFLAGS $MYSQL_LDFLAGS"
|
||||
LIBS="$MYSQL_LDFLAGS"
|
||||
echo $ECHO_N "checking if mysql_config produces valid values... $ECHO_C" >&6
|
||||
AC_TRY_RUN([
|
||||
AC_RUN_IFELSE([AC_LANG_SOURCE([[
|
||||
#include <mysql.h>
|
||||
|
||||
int main()
|
||||
@@ -109,7 +110,7 @@ int main()
|
||||
|
||||
return 0;
|
||||
}
|
||||
], ac_cv_mysql_valid=yes, ac_cv_mysql_valid=no)
|
||||
]])],[ac_cv_mysql_valid=yes],[ac_cv_mysql_valid=no],[])
|
||||
echo $ac_cv_mysql_valid >&6
|
||||
if test "$ac_cv_mysql_valid" = "yes"; then
|
||||
AC_DEFINE_UNQUOTED(USE_MYSQL,1,"Use Mysql")
|
||||
@@ -122,12 +123,13 @@ int main()
|
||||
else
|
||||
CFLAGS="$hold_cflags"
|
||||
LDFLAGS="$hold_ldflags"
|
||||
LIBS=""
|
||||
fi
|
||||
fi
|
||||
])
|
||||
|
||||
AC_MSG_CHECKING(whether this is a bit or little endian system)
|
||||
AC_TRY_RUN([
|
||||
AC_RUN_IFELSE([AC_LANG_SOURCE([[
|
||||
int main()
|
||||
{
|
||||
short s = 1;
|
||||
@@ -135,12 +137,12 @@ int main()
|
||||
unsigned char c = *((char*)ptr);
|
||||
return c;
|
||||
}
|
||||
]
|
||||
, AC_DEFINE(BIG_ENDIAN)
|
||||
|
||||
]])],[AC_DEFINE(BIG_ENDIAN)
|
||||
AC_MSG_RESULT(big)
|
||||
, AC_DEFINE(LITTLE_ENDIAN)
|
||||
],[AC_DEFINE(LITTLE_ENDIAN)
|
||||
AC_MSG_RESULT(little)
|
||||
)
|
||||
],[])
|
||||
|
||||
AC_SUBST(ANOPELIBS)
|
||||
AC_SUBST(LDFLAGS)
|
||||
|
||||
+20
-10
@@ -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"
|
||||
|
||||
+71
-11
@@ -183,9 +183,9 @@ Anope Internal Events
|
||||
|
||||
EVENT_BOT_BAN
|
||||
A BotServ bot has banned a user, e.g. kickers.
|
||||
av[0] The nick of the user banned.
|
||||
av[1] The Channel the user was banned from.
|
||||
av[2] The mask that was banned.
|
||||
av[0] The nick of the user banned.
|
||||
av[1] The Channel the user was banned from.
|
||||
av[2] The mask that was banned.
|
||||
|
||||
EVENT_BOT_CHANGE
|
||||
The properties of a BotServ bot have been changed.
|
||||
@@ -214,10 +214,10 @@ Anope Internal Events
|
||||
|
||||
EVENT_BOT_FANTASY_NO_ACCESS
|
||||
A fantasy command of the bot has been triggered by someone without
|
||||
access to BotServ FANTASY commands on the channel. This will NOT
|
||||
trigger if someone with access has triggered a fantasy command; use
|
||||
EVENT_BOT_FANTASY for those. Hook to both events to catch both event
|
||||
triggers.
|
||||
access to BotServ FANTASY commands on the channel. This will NOT
|
||||
trigger if someone with access has triggered a fantasy command; use
|
||||
EVENT_BOT_FANTASY for those. Hook to both events to catch both event
|
||||
triggers.
|
||||
av[0] The fantasy command that has been triggered without leading '!'.
|
||||
av[1] The nickname of the user that has triggered the fantasy
|
||||
command.
|
||||
@@ -234,9 +234,9 @@ Anope Internal Events
|
||||
|
||||
EVENT_BOT_KICK
|
||||
A BotServ bot has kicked a user from a channel.
|
||||
av[0] The name of the user that has been kicked.
|
||||
av[1] The name of the channel the user was kicked from.
|
||||
av[2] The reason for the kick.
|
||||
av[0] The name of the user that has been kicked.
|
||||
av[1] The name of the channel the user was kicked from.
|
||||
av[2] The reason for the kick.
|
||||
|
||||
EVENT_BOT_UNASSIGN
|
||||
A BotServ bot is being unassigned from a channel. This event is being
|
||||
@@ -266,6 +266,10 @@ Anope Internal Events
|
||||
A new channel has been registered.
|
||||
av[0] The name of the channel that has been registered.
|
||||
|
||||
EVENT_NICK_REQUESTED
|
||||
A new nick has been requested, and mail has been sent to confirm the nick.
|
||||
av[0] The name of the nick that was requested
|
||||
|
||||
EVENT_CHAN_SUSPENDED
|
||||
A channel has been suspended (ChanServ SUSPEND).
|
||||
av[0] The name of the channel that has been suspended.
|
||||
@@ -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,26 @@ Anope Internal Events
|
||||
A user's nick has just been forbidden.
|
||||
av[0] The nickname that has just been forbidden.
|
||||
|
||||
EVENT_CORE_DROPPED
|
||||
A NickCore will be dropped. Usually send when the last alias is dopped.
|
||||
This is send BEFORE the event that confirms deletion of the alias.
|
||||
Note that this event is send before the core data is removed.
|
||||
av[0] The display nickname of the core that is being dropped.
|
||||
|
||||
EVENT_CORE_NEWDISPLAY
|
||||
The display nick of a NickCore is being changed.
|
||||
This is send BEFORE the actual change is made in the database.
|
||||
av[0] The old display nickname of the core.
|
||||
av[1] The new display nickname of the core.
|
||||
|
||||
EVENT_NICK_GHOSTED
|
||||
A user has just been ghosted.
|
||||
av[0] EVENT_START or EVENT_STOP. EVENT_START when the user is about
|
||||
to be removed from the network, EVENT_STOP when this has been
|
||||
done.
|
||||
av[1] The nickname of the user doing the ghosting.
|
||||
av[2] The nickname being ghosted.
|
||||
|
||||
EVENT_NICK_IDENTIFY
|
||||
A user has just identified for it's nickname with NickServ.
|
||||
av[0] The nickname of the user that just identified.
|
||||
@@ -346,6 +372,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
|
||||
@@ -414,3 +447,30 @@ Anope Internal Events
|
||||
A user has left the network. This event is emitted before the internal
|
||||
removal is performed, so the user still exists internally.
|
||||
av[0] The nickname of the user leaving the network.
|
||||
|
||||
EVENT_MODLOAD
|
||||
A module has been loaded. This event is emitted after the loading
|
||||
sequence has been finished: AnopeInit() has been called and the
|
||||
module has already been added to the modules table.
|
||||
av[0] Name of the loaded module.
|
||||
|
||||
EVENT_MODUNLOAD
|
||||
A module has been unloaded. This event is emitted when the unloading
|
||||
sequence is almost complete: AnopeFini() has been called and all
|
||||
commands, hooks and callbacks have been removed. The module itself
|
||||
is still in memory however.
|
||||
av[0] Name of the unloaded module.
|
||||
|
||||
EVENT_ADDCOMMAND
|
||||
A command hook has been added to anopes command table.
|
||||
Note that the command may have previously existed and merely a new hook
|
||||
was added before or after an existing command hook.
|
||||
av[0] Name of the module adding the command.
|
||||
av[1] Name of the command hook that was added.
|
||||
|
||||
EVENT_DELCOMMAND
|
||||
A command hook has been removed from anopes command table.
|
||||
Note that the command may still exist in anopes command table if other
|
||||
modules have hooks for the same command.
|
||||
av[0] Name of the module deleting the command.
|
||||
av[1] Name of the command hook that was removed.
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
+8
-3
@@ -1,7 +1,7 @@
|
||||
Anope - a set of IRC services for IRC networks
|
||||
----------------------------------------------
|
||||
|
||||
Anope is 2003-2010 Anope Team <team@anope.org>.
|
||||
Anope is 2003-2011 Anope Team <team@anope.org>.
|
||||
Based on Epona 2000-2002 PegSoft <epona@pegsoft.net>.
|
||||
Based on Services 1996-1999 Andrew Church <achurch@achurch.org>.
|
||||
|
||||
@@ -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
|
||||
|
||||
+23
-17
@@ -20,35 +20,41 @@ Anope for Windows
|
||||
* Current Anope source:
|
||||
http://sourceforge.net/project/showfiles.php?group_id=94081
|
||||
|
||||
If you have Visual C++ 6, 7 (.NET 2002/2003) or 8 (2005) skip ahead to step 2, else you
|
||||
If you have Visual C++ 6, 7 (.NET 2002/2003), 8 (2005) or 10 (2010) skip ahead to step 2, else you
|
||||
need to download the following free components from Microsoft. Once
|
||||
downloaded, install these packages.
|
||||
downloaded, install one of the following, for best results use MS VC 2010.
|
||||
|
||||
* Microsoft Visual C++ 2008 Express Edition:
|
||||
* Microsoft Visual C++ 2010 Express
|
||||
http://www.microsoft.com/express/vc/
|
||||
|
||||
or
|
||||
|
||||
* Microsoft Visual C++ 2005 Express Edition:
|
||||
http://msdn.microsoft.com/vstudio/express/visualc/download/
|
||||
* Microsoft Visual C++ 2008 Express Edition:
|
||||
http://www.microsoft.com/visualstudio/en-us/products/2008-editions/express
|
||||
|
||||
or
|
||||
|
||||
* Microsoft Visual C++ 2005 Express Edition:
|
||||
http://msdn.microsoft.com/vstudio/express/visualc/download/
|
||||
|
||||
then download and install:
|
||||
if you installed Visual C++ 2010, it comes included with an SDK, so skip ahead to step 2, otherwise
|
||||
install the following PlatformSDK:
|
||||
|
||||
* Microsoft Windows PlatformSDK: (Requires WGA validation)
|
||||
http://www.microsoft.com/downloads/details.aspx?FamilyId=0BAF2B35-C656-4969-ACE8-E4C0C0716ADB&displaylang=en
|
||||
* Microsoft Windows PlatformSDK: (Requires WGA validation)
|
||||
http://www.microsoft.com/downloads/details.aspx?FamilyId=0BAF2B35-C656-4969-ACE8-E4C0C0716ADB&displaylang=en
|
||||
|
||||
(NOTE: Although this says for Windows Server 2003, it does infact work on all supported
|
||||
versions of Windows.)
|
||||
(NOTE: Although this says for Windows Server 2003, it does infact work on all supported
|
||||
versions of Windows.)
|
||||
|
||||
When installing, you should select the Custom option, and ensure that the top option relating to
|
||||
the registering of environment varibales, is enabled in addition to the default selections.
|
||||
When installing, you should select the Custom option, and ensure that the top option relating to
|
||||
the registering of environment variables, is enabled in addition to the default selections.
|
||||
|
||||
If you do not do this, you may run into problems with the PSDK not being found properly during install.
|
||||
If you do not do this, you may run into problems with the PSDK not being found properly during install.
|
||||
|
||||
* MySQL for Windows (only needed if building with MySQL enabled):
|
||||
http://dev.mysql.com/
|
||||
* MySQL for Windows (only needed if building with MySQL enabled):
|
||||
http://dev.mysql.com/
|
||||
|
||||
(NOTE: Anope can be compiled against MySQL Version 3.23 and above)
|
||||
(NOTE: Anope can be compiled against MySQL Version 3.23 and above)
|
||||
|
||||
|
||||
2) Unpack the Anope tarball with your favorite uncompression program
|
||||
@@ -64,7 +70,7 @@ Anope for Windows
|
||||
|
||||
e.g.
|
||||
|
||||
cd c:\anope-trunk
|
||||
cd c:\anope-stable
|
||||
|
||||
4) You now need to configure Anope to your requirements. At the prompt type:
|
||||
|
||||
|
||||
+2
-3
@@ -1,14 +1,13 @@
|
||||
/* Declarations for command data.
|
||||
*
|
||||
* (C) 2003-2010 Anope Team
|
||||
* (C) 2003-2011 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for furhter details.
|
||||
* Please read COPYING and README for further details.
|
||||
*
|
||||
* Based on the original code of Epona by Lara.
|
||||
* Based on the original code of Services by Andy Church.
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
+2
-3
@@ -1,14 +1,13 @@
|
||||
/* Services configuration.
|
||||
*
|
||||
* (C) 2003-2010 Anope Team
|
||||
* (C) 2003-2011 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for furhter details.
|
||||
* Please read COPYING and README for further details.
|
||||
*
|
||||
* Based on the original code of Epona by Lara.
|
||||
* Based on the original code of Services by Andy Church.
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
+2
-3
@@ -1,14 +1,13 @@
|
||||
/* Database file descriptor structure and file handling routine prototypes.
|
||||
*
|
||||
* (C) 2003-2010 Anope Team
|
||||
* (C) 2003-2011 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for furhter details.
|
||||
* Please read COPYING and README for further details.
|
||||
*
|
||||
* Based on the original code of Epona by Lara.
|
||||
* Based on the original code of Services by Andy Church.
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
+2
-3
@@ -1,15 +1,14 @@
|
||||
/* Set default values for any constants that should be in include files but
|
||||
*
|
||||
* (C) 2003-2010 Anope Team
|
||||
* (C) 2003-2011 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for furhter details.
|
||||
* Please read COPYING and README for further details.
|
||||
*
|
||||
* Based on the original code of Epona by Lara.
|
||||
* Based on the original code of Services by Andy Church.
|
||||
*
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
/* depricated.h
|
||||
*
|
||||
* (C) 2003-2010 Anope Team
|
||||
* (C) 2003-2011 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for furhter details.
|
||||
* Please read COPYING and README for further details.
|
||||
*
|
||||
* Based on the original code of Epona by Lara.
|
||||
* Based on the original code of Services by Andy Church.
|
||||
|
||||
+2
-4
@@ -1,20 +1,18 @@
|
||||
/* Include file for high-level encryption routines.
|
||||
*
|
||||
* (C) 2003-2010 Anope Team
|
||||
* (C) 2003-2011 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for furhter details.
|
||||
* Please read COPYING and README for further details.
|
||||
*
|
||||
* Based on the original code of Epona by Lara.
|
||||
* Based on the original code of Services by Andy Church.
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
*/
|
||||
|
||||
typedef struct encryption_ {
|
||||
int (*encrypt)(const char *src, int len, char *dest, int size);
|
||||
int (*encrypt_in_place)(char *buf, int size);
|
||||
int (*encrypt_check_len)(int passlen, int bufsize);
|
||||
int (*decrypt)(const char *src, char *dest, int size);
|
||||
int (*check_password)(const char *plaintext, const char *password);
|
||||
|
||||
+11
-3
@@ -1,14 +1,13 @@
|
||||
/* Prototypes and external variable declarations.
|
||||
*
|
||||
* (C) 2003-2010 Anope Team
|
||||
* (C) 2003-2011 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for furhter details.
|
||||
* Please read COPYING and README for further details.
|
||||
*
|
||||
* Based on the original code of Epona by Lara.
|
||||
* Based on the original code of Services by Andy Church.
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
*/
|
||||
|
||||
@@ -42,11 +41,16 @@
|
||||
#define EVENT_SHUTDOWN "shutdown"
|
||||
#define EVENT_SIGNAL "signal"
|
||||
#define EVENT_NICK_REGISTERED "nick_registered"
|
||||
#define EVENT_NICK_REQUESTED "nick_requested"
|
||||
#define EVENT_NICK_DROPPED "nick_dropped"
|
||||
#define EVENT_NICK_FORBIDDEN "nick_forbidden"
|
||||
#define EVENT_NICK_EXPIRE "nick_expire"
|
||||
#define EVENT_CORE_DROPPED "nickcore_dropped"
|
||||
#define EVENT_CORE_NEWDISPLAY "nickcore_newdisplay"
|
||||
#define EVENT_CHANGE_NICK "change_nick"
|
||||
#define EVENT_USER_LOGOFF "user_logoff"
|
||||
#define EVENT_NICK_GHOSTED "nick_ghosted"
|
||||
#define EVENT_NICK_RECOVERED "nick_recovered"
|
||||
#define EVENT_GROUP "nick_group"
|
||||
#define EVENT_NICK_IDENTIFY "nick_id"
|
||||
#define EVENT_SERVER_SQUIT "server_squit"
|
||||
@@ -62,3 +66,7 @@
|
||||
#define EVENT_ACCESS_CLEAR "access_clear"
|
||||
#define EVENT_NICK_LOGOUT "nick_logout"
|
||||
#define EVENT_CHAN_KICK "chan_kick"
|
||||
#define EVENT_MODLOAD "modload"
|
||||
#define EVENT_MODUNLOAD "modunload"
|
||||
#define EVENT_ADDCOMMAND "addcommand"
|
||||
#define EVENT_DELCOMMAND "delcommand"
|
||||
|
||||
+10
-26
@@ -1,14 +1,13 @@
|
||||
/* Prototypes and external variable declarations.
|
||||
*
|
||||
* (C) 2003-2010 Anope Team
|
||||
* (C) 2003-2011 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for furhter details.
|
||||
* Please read COPYING and README for further details.
|
||||
*
|
||||
* Based on the original code of Epona by Lara.
|
||||
* Based on the original code of Services by Andy Church.
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
*/
|
||||
|
||||
@@ -57,6 +56,7 @@ E void kill_user(char *source, char *user, char *reason);
|
||||
E void bad_password(User * u);
|
||||
E void sqline(char *mask, char *reason);
|
||||
E void common_unban(ChannelInfo * ci, char *nick);
|
||||
E void common_unban_full(ChannelInfo * ci, char *nick, boolean full);
|
||||
E void common_svsmode(User * u, char *modes, char *arg);
|
||||
|
||||
/**** botserv.c ****/
|
||||
@@ -155,6 +155,7 @@ E int entry_match_mask(Entry *e, char *mask, uint32 ip);
|
||||
E Entry *elist_match(EList *list, char *nick, char *user, char *host, uint32 ip);
|
||||
E Entry *elist_match_mask(EList *list, char *mask, uint32 ip);
|
||||
E Entry *elist_match_user(EList *list, User *u);
|
||||
E Entry *elist_match_user_full(EList *list, User *u, boolean full);
|
||||
E Entry *elist_find_mask(EList *list, char *mask);
|
||||
E long get_memuse(EList *list);
|
||||
|
||||
@@ -371,6 +372,7 @@ E char *SendFrom;
|
||||
E int RestrictMail;
|
||||
E int MailDelay;
|
||||
E int DontQuoteAddresses;
|
||||
E int ForkForMail;
|
||||
|
||||
E int NSDefFlags;
|
||||
E int NSDefLanguage;
|
||||
@@ -530,7 +532,6 @@ E int rdb_save_ns_alias(NickAlias * na);
|
||||
E int rdb_save_ns_req(NickRequest * nr);
|
||||
E int rdb_save_cs_info(ChannelInfo * ci);
|
||||
E int rdb_save_bs_core(BotInfo * bi);
|
||||
E int rdb_save_bs_rdb_core(BotInfo * bi);
|
||||
E int rdb_save_hs_core(HostCore * hc);
|
||||
E int rdb_save_os_db(unsigned int maxucnt, unsigned int maxutime,
|
||||
SList * ak, SList * sgl, SList * sql, SList * szl);
|
||||
@@ -574,20 +575,14 @@ E char *DefConOffMessage;
|
||||
E long unsigned int UserKey1;
|
||||
E long unsigned int UserKey2;
|
||||
E long unsigned int UserKey3;
|
||||
/**** converter.c ****/
|
||||
|
||||
E int convert_ircservices_44(void);
|
||||
|
||||
/**** encrypt.c ****/
|
||||
E char *EncModule;
|
||||
E void initEncryption();
|
||||
E int enc_encrypt(const char *src, int len, char *dest, int size);
|
||||
E int enc_encrypt_in_place(char *buf, int size);
|
||||
E int enc_encrypt_check_len(int passlen, int bufsize);
|
||||
E int enc_decrypt(const char *src, char *dest, int size);
|
||||
E int enc_check_password(const char *plaintext, const char *password);
|
||||
E void encmodule_encrypt(int (*func)(const char *src, int len, char *dest, int size));
|
||||
E void encmodule_encrypt_in_place(int (*func)(char *buf, int size));
|
||||
E void encmodule_encrypt_check_len(int (*func)(int passlen, int bufsize));
|
||||
E void encmodule_decrypt(int (*func)(const char *src, char *dest, int size));
|
||||
E void encmodule_check_password(int (*func)(const char *plaintext, const char *password));
|
||||
@@ -696,6 +691,7 @@ E void pmodule_set_umode(void (*func) (User * user, int ac, char **av));
|
||||
E void pmodule_valid_nick(int (*func) (char *nick));
|
||||
E void pmodule_valid_chan(int (*func) (char *chan));
|
||||
E void pmodule_flood_mode_check(int (*func) (char *value));
|
||||
E void pmodule_jointhrottle_mode_check(int (*func) (char *value));
|
||||
E void pmodule_ircd_var(IRCDVar * ircdvar);
|
||||
E void pmodule_ircd_cap(IRCDCAPAB * cap);
|
||||
E void pmodule_ircd_version(char *version);
|
||||
@@ -714,7 +710,7 @@ E void pmodule_secret_cmode(int mode);
|
||||
E void pmodule_private_cmode(int mode);
|
||||
E void pmodule_key_mode(int mode);
|
||||
E void pmodule_limit_mode(int mode);
|
||||
E void pmodule_jointhrottle_mode_check(int (*func) (char *value));
|
||||
E void pmodule_permchan_mode(int mode);
|
||||
|
||||
E int anope_get_secret_mode();
|
||||
E int anope_get_invite_mode();
|
||||
@@ -723,6 +719,7 @@ E int anope_get_limit_mode();
|
||||
E int anope_get_private_mode();
|
||||
E int anope_get_invis_mode();
|
||||
E int anope_get_oper_mode();
|
||||
E int anope_get_permchan_mode();
|
||||
|
||||
/**** language.c ****/
|
||||
|
||||
@@ -820,6 +817,7 @@ E void memoserv(User * u, char *buf);
|
||||
E void check_memos(User * u);
|
||||
E MemoInfo *getmemoinfo(const char *name, int *ischan, int *isforbid);
|
||||
E void memo_send(User * u, char *name, char *text, int z);
|
||||
E void memo_send_from(User * u, char *name, char *text, int z, char *source);
|
||||
E int delmemo(MemoInfo * mi, int num);
|
||||
|
||||
/**** messages.c ****/
|
||||
@@ -1180,6 +1178,7 @@ E int is_excepted(ChannelInfo * ci, User * user);
|
||||
E int is_excepted_mask(ChannelInfo * ci, char *mask);
|
||||
|
||||
E int match_usermask(const char *mask, User * user);
|
||||
E int match_usermask_full(const char *mask, User * user, boolean full);
|
||||
E int match_userip(const char *mask, User * user, char *host);
|
||||
E void split_usermask(const char *mask, char **nick, char **user,
|
||||
char **host);
|
||||
@@ -1246,23 +1245,17 @@ E void anope_cmd_376(char *source); /* 376 */
|
||||
E void anope_cmd_391(char *source, char *timestr); /* 391 */
|
||||
E void anope_cmd_401(char *source, char *who); /* 401 */
|
||||
E void anope_cmd_akill(char *user, char *host, char *who, time_t when, time_t expires, char *reason); /* AKILL */
|
||||
E void anope_cmd_capab(); /* CAPAB */
|
||||
E void anope_cmd_chghost(char *nick, char *vhost); /* CHGHOST */
|
||||
E void anope_cmd_chgident(char *nick, char *vIdent); /* CHGIDENT */
|
||||
E void anope_cmd_vhost_on(char *nick, char *vIdent, char *vhost); /* CHGHOST + CHGIDENT */
|
||||
E void anope_cmd_vhost_off(User *u);
|
||||
E void anope_cmd_connect(int servernum); /* Connect */
|
||||
E void anope_cmd_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 +1265,19 @@ E void anope_cmd_notice_ops(char *source, char *dest, const char *fmt, ...);
|
||||
E void anope_cmd_notice2(char *source, char *dest, char *msg); /* NOTICE */
|
||||
E void anope_cmd_serv_notice(char *source, char *dest, char *msg); /* NOTICE */
|
||||
E void anope_cmd_part(char *nick, char *chan, const char *fmt, ...); /* PART */
|
||||
E void anope_cmd_pass(char *pass); /* PASS */
|
||||
E void anope_cmd_pong(char *servname, char *who); /* PONG */
|
||||
E void anope_cmd_privmsg(char *source, char *dest, const char *fmt, ...); /* PRIVMSG */
|
||||
E void anope_cmd_action(char *source, char *dest, const char *fmt, ...); /* PRIVMSG */
|
||||
E void anope_cmd_privmsg2(char *source, char *dest, char *msg); /* PRIVMSG */
|
||||
E void anope_cmd_serv_privmsg(char *source, char *dest, char *msg); /* PRIVMSG */
|
||||
E void anope_cmd_protoctl(); /* PROTOCTL */
|
||||
E void anope_cmd_quit(char *source, const char *fmt, ...); /* QUIT */
|
||||
E void anope_cmd_remove_akill(char *user, char *host); /* RAKILL */
|
||||
E void anope_cmd_server(char *servname, int hop, char *descript); /* SERVER */
|
||||
E void anope_cmd_sgline(char *mask, char *reason); /* SGLINE */
|
||||
E void anope_cmd_sqline(char *mask, char *reason); /* SQLINE */
|
||||
E void anope_cmd_szline(char *mask, char *reason, char *whom); /* SZLINE */
|
||||
E void anope_cmd_squit(char *servname, char *message); /* SQUIT */
|
||||
E void anope_cmd_svinfo(); /* SVINFO */
|
||||
E void anope_cmd_svsadmin(char *server, int set); /* SVSADMIN */
|
||||
E void anope_cmd_svshold(char *nick); /* SVSHOLD */
|
||||
E void anope_cmd_release_svshold(char *nick); /* SVSHOLD */
|
||||
E void anope_cmd_svsinfo(); /* SVSINFO */
|
||||
E void anope_cmd_svsjoin(char *source, char *nick,char *chan, char *param); /* SVSJOIN */
|
||||
E void anope_cmd_svskill(char *source,char *user, const char *fmt, ...); /* SVSKILL */
|
||||
E void anope_cmd_svsmode(User * u, int ac, char **av); /* SVSMODE */
|
||||
@@ -1305,8 +1292,6 @@ E void anope_cmd_unsgline(char *mask); /* UNSGLINE */
|
||||
E void anope_cmd_unsqline(char *user); /* UNSQLINE */
|
||||
E void anope_cmd_unszline(char *mask); /* UNSZLINE */
|
||||
E void anope_cmd_eob(); /* EOB - end of burst */
|
||||
E void anope_cmd_burst(); /* BURST - use eob to send burst 0 */
|
||||
E void anope_cmd_svswatch(char *sender, char *nick, char *parm);
|
||||
E void anope_cmd_ctcp(char *source, char *dest, const char *fmt, ...); /* CTCP */
|
||||
|
||||
EI int anope_event_482(char *source, int ac, char **av);
|
||||
@@ -1354,7 +1339,6 @@ EI int anope_event_eob(char *source, int ac, char **av);
|
||||
EI int anope_event_pass(char *source, int ac, char **av);
|
||||
EI int anope_event_netinfo(char *source, int ac, char **av);
|
||||
EI int anope_event_error(char *source, int ac, char **av);
|
||||
EI int anope_event_eb(char *source, int ac, char **av);
|
||||
EI int anope_event_netctrl(char *source, int ac, char **av);
|
||||
EI int anope_event_notice(char *source, int ac, char **av);
|
||||
EI int anope_event_snotice(char *source, int ac, char **av);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Make file for Win32
|
||||
#
|
||||
# (C) 2003-2010 Anope Team
|
||||
# (C) 2003-2011 Anope Team
|
||||
# Contact us at team@anope.org
|
||||
#
|
||||
# Please read COPYING and README for further details.
|
||||
@@ -8,7 +8,6 @@
|
||||
# Based on the original code of Epona by Lara.
|
||||
# Based on the original code of Services by Andy Church.
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
###########################################################################
|
||||
|
||||
+2
-3
@@ -1,14 +1,13 @@
|
||||
/* Declarations of IRC message structures, variables, and functions.
|
||||
*
|
||||
* (C) 2003-2010 Anope Team
|
||||
* (C) 2003-2011 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for furhter details.
|
||||
* Please read COPYING and README for further details.
|
||||
*
|
||||
* Based on the original code of Epona by Lara.
|
||||
* Based on the original code of Services by Andy Church.
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
+3
-4
@@ -1,14 +1,13 @@
|
||||
/* Modular support
|
||||
*
|
||||
* (C) 2003-2010 Anope Team
|
||||
* (C) 2003-2011 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for furhter details.
|
||||
* Please read COPYING and README for further details.
|
||||
*
|
||||
* Based on the original code of Epona by Lara.
|
||||
* Based on the original code of Services by Andy Church.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef MODULES_H
|
||||
@@ -313,7 +312,7 @@ MDE int moduleAddCommand(CommandHash *cmdTable[], Command *c, int pos);
|
||||
MDE int addCommand(CommandHash *cmdTable[], Command *c,int pos);
|
||||
MDE int delCommand(CommandHash *cmdTable[], Command *c,char *mod_name); /* Del a command from a cmd table */
|
||||
MDE int moduleDelCommand(CommandHash *cmdTable[],char *name); /* Del a command from a cmd table */
|
||||
Command *findCommand(CommandHash *cmdTable[], const char *name); /* Find a command */
|
||||
MDE Command *findCommand(CommandHash *cmdTable[], const char *name); /* Find a command */
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
|
||||
+2
-3
@@ -1,14 +1,13 @@
|
||||
/* Include extra includes needed by most/all pseudo-clients.
|
||||
*
|
||||
* (C) 2003-2010 Anope Team
|
||||
* (C) 2003-2011 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for furhter details.
|
||||
* Please read COPYING and README for further details.
|
||||
*
|
||||
* Based on the original code of Epona by Lara.
|
||||
* Based on the original code of Services by Andy Church.
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
+13
-3
@@ -1,9 +1,9 @@
|
||||
/*
|
||||
*
|
||||
* (C) 2003-2010 Anope Team
|
||||
* (C) 2003-2011 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for furhter details.
|
||||
* Please read COPYING and README for further details.
|
||||
*
|
||||
* Based on the original code of Epona by Lara.
|
||||
* Based on the original code of Services by Andy Church.
|
||||
@@ -87,6 +87,7 @@
|
||||
#include <winsock.h>
|
||||
#include <windows.h>
|
||||
#endif
|
||||
#define h_addr h_addr_list[0] /* for backwards compatability, see man gethostbyname */
|
||||
|
||||
#include <sys/stat.h> /* for umask() on some systems */
|
||||
#include <sys/types.h>
|
||||
@@ -323,7 +324,12 @@ struct ircdvars_ {
|
||||
int admin; /* Has Admin */
|
||||
int chansqline; /* Supports Channel Sqlines */
|
||||
int quitonkill; /* IRCD sends QUIT when kill */
|
||||
int svsmode_unban; /* svsmode can be used to unban */
|
||||
int svsmode_unban; /* svsmode can be used to unban
|
||||
* Note the core no longer uses
|
||||
* this because it can lead to
|
||||
* users gaining other users IPs.
|
||||
* It is kept for API compatability.
|
||||
*/
|
||||
int protect; /* Has protect modes */
|
||||
int reversekickcheck; /* Can reverse ban check */
|
||||
int chanreg; /* channel mode +r for register */
|
||||
@@ -1058,6 +1064,9 @@ typedef struct ignore_data {
|
||||
|
||||
struct mailinfo_ {
|
||||
FILE *pipe;
|
||||
/* Used only with mail forking */
|
||||
FILE *writepipe;
|
||||
FILE *readpipe;
|
||||
User *sender;
|
||||
NickCore *recipient;
|
||||
NickRequest *recip;
|
||||
@@ -1231,6 +1240,7 @@ typedef struct ircd_modes_ {
|
||||
int chan_private;
|
||||
int chan_key;
|
||||
int chan_limit;
|
||||
int chan_perm;
|
||||
} IRCDModes;
|
||||
|
||||
|
||||
|
||||
+2
-3
@@ -1,14 +1,13 @@
|
||||
/* Header for Services list handler.
|
||||
*
|
||||
* (C) 2003-2010 Anope Team
|
||||
* (C) 2003-2011 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for furhter details.
|
||||
* Please read COPYING and README for further details.
|
||||
*
|
||||
* Based on the original code of Epona by Lara.
|
||||
* Based on the original code of Services by Andy Church.
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
+2
-2
@@ -1,9 +1,9 @@
|
||||
/*
|
||||
*
|
||||
* (C) 2004-2010 Anope Team
|
||||
* (C) 2004-2011 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for furhter details.
|
||||
* Please read COPYING and README for further details.
|
||||
*
|
||||
* Based on the original code of Epona by Lara.
|
||||
* Based on the original code of Services by Andy Church.
|
||||
|
||||
+2
-3
@@ -1,14 +1,13 @@
|
||||
/* Time-delay routine include stuff.
|
||||
*
|
||||
* (C) 2003-2010 Anope Team
|
||||
* (C) 2003-2011 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for furhter details.
|
||||
* Please read COPYING and README for further details.
|
||||
*
|
||||
* Based on the original code of Epona by Lara.
|
||||
* Based on the original code of Services by Andy Church.
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
+1
-1
@@ -27,7 +27,7 @@ fi
|
||||
cat >version.h <<EOF
|
||||
/* Version information for Services.
|
||||
*
|
||||
* (C) 2003-2010 Anope Team
|
||||
* (C) 2003-2011 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and CREDITS for further details.
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
/* version file handler for win32.
|
||||
*
|
||||
* (C) 2003-2010 Anope Team
|
||||
* (C) 2003-2011 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for furhter details.
|
||||
* Please read COPYING and README for further details.
|
||||
*
|
||||
* Based on the original code of Epona by Lara.
|
||||
* Based on the original code of Services by Andy Church.
|
||||
@@ -161,6 +161,8 @@ void write_version(FILE * fd)
|
||||
char buf[1024];
|
||||
short until_eof = 0;
|
||||
|
||||
if (!fdin)
|
||||
return;
|
||||
while (fgets(buf, 1023, fdin)) {
|
||||
strip(buf);
|
||||
|
||||
@@ -173,7 +175,7 @@ void write_version(FILE * fd)
|
||||
if (!strcmp(buf, "cat >version.h <<EOF"))
|
||||
until_eof = 1;
|
||||
}
|
||||
|
||||
fclose(fdin);
|
||||
}
|
||||
|
||||
void parse_line(FILE * fd, char *line)
|
||||
|
||||
+63
-31
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// install.js - Windows Configuration
|
||||
//
|
||||
// (C) 2003-2010 Anope Team
|
||||
// (C) 2003-2011 Anope Team
|
||||
// Contact us at team@anope.org
|
||||
//
|
||||
// This program is free but copyrighted software; see the file COPYING for
|
||||
@@ -10,7 +10,6 @@
|
||||
// Based on the original code of Epona by Lara.
|
||||
// Based on the original code of Services by Andy Church.
|
||||
//
|
||||
// $Id$
|
||||
//
|
||||
|
||||
var anopeVersion = "Unknown";
|
||||
@@ -59,8 +58,8 @@ var installerQuestions = [
|
||||
f.WriteLine("MYSQL_C=mysql.c");
|
||||
f.WriteLine("MYSQL_O=mysql.obj");
|
||||
f.WriteLine("BASE_CFLAGS=/D USE_MYSQL /D USE_RDB $(BASE_CFLAGS) /D HAVE_MYSQL_MYSQL_H");
|
||||
f.WriteLine("MYPASQL_BUILD=$(CC) /LD $(MYSQL_INC_PATH) src\\mypasql.c /link $(MYSQL_LIB_PATH) $(LFLAGS) /DEF:src\mypasql.def libmysql.lib zlib.lib ws2_32.lib advapi32.lib /NODEFAULTLIB:LIBCMTD.lib");
|
||||
f.WriteLine("LIBS=$(LIBS) libmysql.lib zlib.lib");
|
||||
f.WriteLine("MYPASQL_BUILD=$(CC) /LD $(MYSQL_INC_PATH) src\\mypasql.c /link $(MYSQL_LIB_PATH) $(LFLAGS) /DEF:src\mypasql.def libmysql.lib ws2_32.lib advapi32.lib /NODEFAULTLIB:LIBCMTD.lib");
|
||||
f.WriteLine("LIBS=$(LIBS) libmysql.lib");
|
||||
}
|
||||
else {
|
||||
f.WriteLine("USE_MYSQL=0");
|
||||
@@ -72,7 +71,47 @@ 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 SDKs\\Windows\\v7.1\\Lib',
|
||||
'Program Files\\Microsoft SDKs\\Windows\\v7.0\\Lib',
|
||||
'Program Files (x86)\\Microsoft SDKs\\Windows\\v7.0A\\Lib'
|
||||
],
|
||||
'incpaths': [
|
||||
'Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include',
|
||||
'Program Files\\Microsoft SDKs\\Windows\\v7.1\\Include',
|
||||
'Program Files\\Microsoft SDKs\\Windows\\v7.0\\Include',
|
||||
'Program Files (x86)\\Microsoft SDKs\\Windows\\v7.0A\\Include'
|
||||
],
|
||||
'nmake' : [
|
||||
'Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\bin',
|
||||
],
|
||||
'additional_switches' : [ '/w' ],
|
||||
'installedDrive' : 'C'
|
||||
},
|
||||
{
|
||||
'name' : 'Microsoft Visual Studio 2010',
|
||||
'libpaths' : [
|
||||
'Program Files\\Microsoft Visual Studio 10.0\\VC\\lib',
|
||||
'Program Files\\Microsoft SDKs\\Windows\\v7.1\\Lib',
|
||||
'Program Files\\Microsoft SDKs\\Windows\\v7.0\\Lib',
|
||||
'Program Files\\Microsoft SDKs\\Windows\\v7.0A\\Lib'
|
||||
],
|
||||
'incpaths' : [
|
||||
'Program Files\\Microsoft Visual Studio 10.0\\VC\\include',
|
||||
'Program Files\\Microsoft SDKs\\Windows\\v7.1\\Include',
|
||||
'Program Files\\Microsoft SDKs\\Windows\\v7.0\\Include',
|
||||
'Program Files\\Microsoft SDKs\\Windows\\v7.0A\\Include'
|
||||
],
|
||||
'nmake' : [
|
||||
'Program Files\\Microsoft Visual Studio 10.0\\VC\\bin',
|
||||
],
|
||||
'additional_switches' : [ '/w' ],
|
||||
'installedDrive' : 'C'
|
||||
},
|
||||
{
|
||||
'name' : 'Microsoft Visual Studio 2008',
|
||||
'libpaths' : [
|
||||
'Program Files\\Microsoft Visual Studio 9.0\\VC\\Lib',
|
||||
'Program Files\\Microsoft Platform SDK for Windows Server 2003 R2\\Lib'
|
||||
@@ -82,13 +121,13 @@ var buildPackages = [
|
||||
'Program Files\\Microsoft Platform SDK for Windows Server 2003 R2\\Include'
|
||||
],
|
||||
'nmake' : [
|
||||
'Program Files\\Microsoft Platform SDK for Windows Server 2003 R2\\Bin',
|
||||
'Program Files\\Microsoft Platform SDK for Windows Server 2003 R2\\Bin',
|
||||
],
|
||||
'additional_switches' : [ '/w' ],
|
||||
'installedDrive' : 'C'
|
||||
},
|
||||
{
|
||||
'name' : 'Microsoft Visual Studio 2008 (64bit) (New PSDK)',
|
||||
{
|
||||
'name' : 'Microsoft Visual Studio 2008 (64bit)',
|
||||
'libpaths' : [
|
||||
'Program Files (x86)\\Microsoft Visual Studio 9.0\\VC\\Lib',
|
||||
'Program Files\\Microsoft Platform SDK for Windows Server 2003 R2\\Lib'
|
||||
@@ -105,7 +144,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,30 +198,24 @@ 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'
|
||||
}
|
||||
|
||||
];
|
||||
|
||||
|
||||
var mysqlVersions = [
|
||||
|
||||
{
|
||||
'name' : 'MySQL 5.5',
|
||||
'libpaths' : [
|
||||
'Program Files\\MySQL\\MySQL Server 5.5\\Lib'
|
||||
],
|
||||
'incpaths' : [
|
||||
'Program Files\\MySQL\\MySQL Server 5.5\\Include'
|
||||
],
|
||||
'dllfile' : 'Program Files\\MySQL\\MySQL Server 5.5\\bin\\libmysql.dll',
|
||||
'installedDrive' : 'C'
|
||||
},
|
||||
|
||||
{
|
||||
'name' : 'MySQL 5.1',
|
||||
'libpaths' : [
|
||||
@@ -316,7 +349,7 @@ var buildPackages = [
|
||||
if (!findCompiler()) {
|
||||
WScript.Echo("\nERROR: No suitable build tools were found!");
|
||||
WScript.Echo("Please ensure you have downloaded and installed a version of Visual C++ and/or PlatformSDK.\n");
|
||||
WScript.Echo("For more information on the tools needed to build Anope on Windows, see:\nhttp://anope.info/wiki/Windows#Compiling\n");
|
||||
WScript.Echo("For more information on the tools needed to build Anope on Windows, see:\nhttp://wiki.anope.org/index.php/Windows:1.8#Compiling\n");
|
||||
}
|
||||
else {
|
||||
WScript.Echo("\nBuild tools were found successfully!\n");
|
||||
@@ -510,8 +543,7 @@ var buildPackages = [
|
||||
if (noPSDK) {
|
||||
WScript.Echo("Some of the build tools were detected on your computer, but the essential PlatformSDK components were missing.");
|
||||
WScript.Echo("You will need to download the PlatformSDK from the URL below, ensuring that the Core Windows files, and Debugging Tools are installed.");
|
||||
WScript.Echo("For more details on installing the PlatformSDK, visit http://anope.info/wiki/Windows#Compiling\n");
|
||||
WScript.Echo("PSDK: http://download.microsoft.com/download/a/5/f/a5f0d781-e201-4ab6-8c6a-9bb4efed1e1a/PSDK-x86.exe\n");
|
||||
WScript.Echo("For more details on installing the PlatformSDK, visit http://wiki.anope.org/index.php/Windows:1.8#Compiling\n");
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
+6
-6
@@ -1,9 +1,9 @@
|
||||
# Catalan Language File.
|
||||
#
|
||||
# (C) 2003-2010 Anope Team
|
||||
# (C) 2003-2011 Anope Team
|
||||
# Contact us at team@anope.org
|
||||
#
|
||||
# Please read COPYING and README for furhter details.
|
||||
# Please read COPYING and README for further details.
|
||||
#
|
||||
# Based on the original code of Epona by Lara.
|
||||
# Based on the original code of Services by Andy Church.
|
||||
@@ -679,7 +679,7 @@ NICK_SASET_HIDE_STATUS_OFF
|
||||
|
||||
# SASET MSG responses
|
||||
NICK_SASET_MSG_SYNTAX
|
||||
SSAET nickname PRIVATE {ON | OFF}
|
||||
SSAET nickname MSG {ON | OFF}
|
||||
NICK_SASET_MSG_ON
|
||||
Services will now reply to %s with messages.
|
||||
NICK_SASET_MSG_OFF
|
||||
@@ -3287,7 +3287,7 @@ OPER_HELP_DEFCON
|
||||
Syntax: DEFCON [1|2|3|4|5]
|
||||
|
||||
The defcon system can be used to implement a pre-defined
|
||||
set of restrictions to services useful during an attemtped
|
||||
set of restrictions to services useful during an attempted
|
||||
attack on the network.
|
||||
|
||||
OPER_HELP_DEFCON_NO_NEW_CHANNELS
|
||||
@@ -6765,9 +6765,9 @@ HOST_NO_VIDENT
|
||||
#
|
||||
###########################################################################
|
||||
HOST_GROUP
|
||||
All vhost's in the group %s have been set to %s
|
||||
All vhosts in the group %s have been set to %s
|
||||
HOST_IDENT_GROUP
|
||||
All vhost's in the group %s have been set to %s@%s
|
||||
All vhosts in the group %s have been set to %s@%s
|
||||
|
||||
###########################################################################
|
||||
#
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
# Deutsches Language file.
|
||||
#
|
||||
# (C) 2003-2010 Anope Team
|
||||
# (C) 2003-2011 Anope Team
|
||||
# Contact us at team@anope.org
|
||||
#
|
||||
# Please read COPYING and README for furhter details.
|
||||
# Please read COPYING and README for further details.
|
||||
#
|
||||
# Based on the original code of Epona by Lara.
|
||||
# Based on the original code of Services by Andy Church.
|
||||
@@ -12,7 +12,7 @@
|
||||
# - Solltest du irgendwelche Rechtschreibfehler oder sonstige
|
||||
# Verbesserungsvorschläge haben, immer her damit!
|
||||
#
|
||||
# INFO ::: Letzte Änderung: 08.08.2009 -- Han` -- Han@mefalcon.org --
|
||||
# INFO ::: Letzte Änderung: 29.01.2011 -- Han` -- Han@mefalcon.org --
|
||||
#
|
||||
##########################################################################
|
||||
#
|
||||
@@ -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
|
||||
@@ -856,7 +856,7 @@ NICK_GLIST_FOOTER
|
||||
NICK_GLIST_REPLY
|
||||
%c%s
|
||||
NICK_GLIST_REPLY_ADMIN
|
||||
%c%s (wird in %s auslaufen)
|
||||
%c%s (wird am %s auslaufen)
|
||||
|
||||
# RECOVER responses
|
||||
NICK_RECOVER_SYNTAX
|
||||
@@ -4344,7 +4344,7 @@ CHAN_HELP_CMD_CLEAR
|
||||
CLEAR Entfernt bestimmte Einstellungen des angegebenen Channel
|
||||
CHAN_HELP_CMD_DEVOICE
|
||||
DEVOICE Enfernt den Voice-Status des angegebenen Nicknamens
|
||||
in einen Channel
|
||||
in einem Channel
|
||||
CHAN_HELP_CMD_GETKEY
|
||||
GETKEY Gibt das Channel-Passwort wieder
|
||||
CHAN_HELP_CMD_INFO
|
||||
@@ -4354,43 +4354,43 @@ CHAN_HELP_CMD_INVITE
|
||||
CHAN_HELP_CMD_KICK
|
||||
KICK Kickt den angegebenen Nicknamen aus einen Channel
|
||||
CHAN_HELP_CMD_LIST
|
||||
LIST Listet alle registrieten Channels des angegebene Muster
|
||||
LIST Listet alle registrierten Channels des angegebene Muster
|
||||
CHAN_HELP_CMD_LOGOUT
|
||||
LOGOUT Das Befehl wir den angegegenen Nickname abmelden
|
||||
LOGOUT Meldet den angegebenen Nicknamen ab
|
||||
CHAN_HELP_CMD_OP
|
||||
OP Gibt den angegebenen Nicknamen Op-Status in einen Channel
|
||||
OP Gibt dem angegebenen Nicknamen Op-Status in einem Channel
|
||||
CHAN_HELP_CMD_TOPIC
|
||||
TOPIC Ändert den Topic des angegebenen Channels
|
||||
CHAN_HELP_CMD_UNBAN
|
||||
UNBAN Enfernt den oder die ban(s) die dich betreffen aus einen Channel
|
||||
UNBAN Enfernt den oder die Bann(s) die Dich betreffen aus einem Channel
|
||||
CHAN_HELP_CMD_VOICE
|
||||
VOICE Gibt den angegebenen User Voice-Status in einen Channel
|
||||
VOICE Gibt dem angegebenen User Voice-Status in einem Channel
|
||||
CHAN_HELP_CMD_VOP
|
||||
VOP Verwaltet die VOP-Liste von einen Channel
|
||||
VOP Verwaltet die VOP-Liste eines Channels
|
||||
CHAN_HELP_CMD_DEHALFOP
|
||||
DEHALFOP Enfernt den HalfOP-Status des angegebenen Nicknamens
|
||||
in einen Channel
|
||||
in einem Channel
|
||||
CHAN_HELP_CMD_DEOWNER
|
||||
DEOWNER Entfernt dein Founder (Gründer) Status in einen Channel
|
||||
DEOWNER Entfernt Deinen Founder (Gründer) Status in einem Channel
|
||||
CHAN_HELP_CMD_DEPROTECT
|
||||
DEPROTECT Entfernt den schutz des angegebenen Nicknamens
|
||||
in einen Channel
|
||||
DEPROTECT Entfernt den Schutz des angegebenen Nicknamens
|
||||
in einem Channel
|
||||
CHAN_HELP_CMD_HALFOP
|
||||
HALFOP Gibt den angegebenen User HalfOP-Status in einen Channel
|
||||
HALFOP Gibt dem angegebenen User HalfOP-Status in einem Channel
|
||||
CHAN_HELP_CMD_HOP
|
||||
HOP Verwaltet die HOP-Liste von einen Channel
|
||||
CHAN_HELP_CMD_OWNER
|
||||
OWNER Gibt dir Founder (Gründer) Staus in einen Channel
|
||||
OWNER Gibt Dir Founder (Gründer) Status in einem Channel
|
||||
CHAN_HELP_CMD_PROTECT
|
||||
PROTECT Schützt den angegebenen Nicknamen in einen Channel
|
||||
PROTECT Schützt den angegebenen Nicknamen in einem Channel
|
||||
CHAN_HELP_CMD_ADMIN
|
||||
ADMIN Schützt den angegebenen Nicknamen in einen Channel
|
||||
ADMIN Schützt den angegebenen Nicknamen in einem Channel
|
||||
CHAN_HELP_CMD_DEADMIN
|
||||
DEADMIN Entfernt den Schutz des angegebenen Nicknamens
|
||||
in einen Channel
|
||||
in einem Channel
|
||||
CHAN_HELP_CMD_DEOP
|
||||
DEOP Enfernt den OP-Status des angegebenen Nicknamens
|
||||
in einen Channel
|
||||
in einem Channel
|
||||
|
||||
CHAN_HELP
|
||||
Mit Hilfe von %S kann man Channel registrieren und
|
||||
@@ -6354,20 +6354,20 @@ BOT_HELP_CMD_BADWORDS
|
||||
BOT_HELP_CMD_ACT
|
||||
ACT Veranlaßt den Bot ein "/me" Befehl ausführen
|
||||
BOT_HELP_CMD_INFO
|
||||
INFO Erlaubt dir Informationen über ein BotServ ServicesBot zu sehen
|
||||
INFO Erlaubt Dir, Informationen über einen ServicesBot anzuzeigen
|
||||
BOT_HELP_CMD_SAY
|
||||
SAY Veranlaßt ein Bot ein Text in einen Channel zu sagen
|
||||
SAY Veranlaßt den Bot etwas in einem Channel zu sagen
|
||||
BOT_HELP_CMD_UNASSIGN
|
||||
UNASSIGN Entfernt ein ServicesBot von einen Channel
|
||||
UNASSIGN Entfernt ein ServicesBot von einem Channel
|
||||
BOT_HELP_CMD_BOT
|
||||
BOT Verwaltung von Bots
|
||||
|
||||
BOT_HELP
|
||||
%S ist dafür geschaffen, Bots in Channels
|
||||
%S ist dafür geschaffen, Bots in Channels
|
||||
einzubringen. Geschaffen wurde er für User, die
|
||||
selbst keinen Bot ausfetzen können, oder auch Netzwerke,
|
||||
die Bots verbieten. Mögliche Befehle siehe unten,
|
||||
die Syntax ist %R%S Befehl.
|
||||
die Bots verbieten. Mögliche Befehle siehe unten,
|
||||
die Syntax ist %R%S Befehl.
|
||||
|
||||
Für weitere Hilfe zu einem bestimmten Befehl
|
||||
tippe %R%S HELP Befehl
|
||||
@@ -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
|
||||
|
||||
+24
-20
@@ -1,6 +1,6 @@
|
||||
# United States English language file.
|
||||
#
|
||||
# (C) 2003-2010 Anope Team
|
||||
# (C) 2003-2011 Anope Team
|
||||
# Contact us at team@anope.org
|
||||
#
|
||||
# Please read COPYING and README for further details.
|
||||
@@ -664,7 +664,7 @@ NICK_SASET_HIDE_STATUS_OFF
|
||||
|
||||
# SASET MSG responses
|
||||
NICK_SASET_MSG_SYNTAX
|
||||
SASAET nickname PRIVATE {ON | OFF}
|
||||
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]
|
||||
@@ -6386,9 +6390,9 @@ HOST_OFF_UNREAL
|
||||
HOST_NO_VIDENT
|
||||
Your IRCD does not support vIdent's, if this is incorrect, please report this as a possible bug
|
||||
HOST_GROUP
|
||||
All vhost's in the group %s have been set to %s
|
||||
All vhosts in the group %s have been set to %s
|
||||
HOST_IDENT_GROUP
|
||||
All vhost's in the group %s have been set to %s@%s
|
||||
All vhosts in the group %s have been set to %s@%s
|
||||
HOST_LIST_FOOTER
|
||||
Displayed all records (Count: %d)
|
||||
HOST_LIST_RANGE_FOOTER
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
# Spanish Language File.
|
||||
#
|
||||
# (C) 2003-2010 Anope Team
|
||||
# (C) 2003-2011 Anope Team
|
||||
# Contact us at team@anope.org
|
||||
#
|
||||
# Please read COPYING and README for furhter details.
|
||||
# Please read COPYING and README for further details.
|
||||
#
|
||||
# Based on the original code of Epona by Lara.
|
||||
# Based on the original code of Services by Andy Church.
|
||||
@@ -473,9 +473,9 @@ NICK_SET_PASSWORD_CHANGED_TO
|
||||
NICK_SET_LANGUAGE_SYNTAX
|
||||
SET LANGUAGE numero
|
||||
NICK_SET_LANGUAGE_UNKNOWN
|
||||
Numero de lenguage %d desconocido. Tipea %R%s HELP SET LANGUAGE para una lista de lenguages.
|
||||
Numero de lenguaje %d desconocido. Tipea %R%s HELP SET LANGUAGE para una lista de lenguajes.
|
||||
NICK_SET_LANGUAGE_CHANGED
|
||||
Lenguage cambiado a Español.
|
||||
Lenguaje cambiado a Español.
|
||||
|
||||
# SET URL responses
|
||||
NICK_SET_URL_CHANGED
|
||||
@@ -683,7 +683,7 @@ NICK_SASET_HIDE_STATUS_OFF
|
||||
|
||||
# SASET MSG responses
|
||||
NICK_SASET_MSG_SYNTAX
|
||||
SSAET nickname PRIVATE {ON | OFF}
|
||||
SSAET nickname MSG {ON | OFF}
|
||||
NICK_SASET_MSG_ON
|
||||
Services will now reply to %s with messages.
|
||||
NICK_SASET_MSG_OFF
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
# French language file.
|
||||
#
|
||||
# (C) 2003-2010 Anope Team
|
||||
# (C) 2003-2011 Anope Team
|
||||
# Contact us at team@anope.org
|
||||
#
|
||||
# Please read COPYING and README for furhter details.
|
||||
# Please read COPYING and README for further details.
|
||||
#
|
||||
# Based on the original code of Epona by Lara.
|
||||
# Based on the original code of Services by Andy Church.
|
||||
@@ -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
|
||||
@@ -4652,7 +4652,7 @@ CHAN_HELP_SET_RESTRICTED
|
||||
CHAN_HELP_SET_SECURE
|
||||
Syntaxe: SET canal SECURE {ON | OFF}
|
||||
|
||||
Active ou désactive les caractéristiques de sécurité de %s pour
|
||||
Active ou désactive les caractéristiques de sécurité de %S pour
|
||||
un canal. Lorsque la Sécurité est active, seuls les
|
||||
utilisateurs qui ont enregistré leurs pseudos avec %s et qui sont
|
||||
identifiés avec leur mot de passe auront accès au canal sous
|
||||
@@ -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,9 +1,9 @@
|
||||
# Greek language file.
|
||||
#
|
||||
# (C) 2003-2010 Anope Team
|
||||
# (C) 2003-2011 Anope Team
|
||||
# Contact us at team@anope.org
|
||||
#
|
||||
# Please read COPYING and README for furhter details.
|
||||
# Please read COPYING and README for further details.
|
||||
#
|
||||
# Based on the original code of Epona by Lara.
|
||||
# Based on the original code of Services by Andy Church.
|
||||
@@ -677,7 +677,7 @@ NICK_SASET_HIDE_STATUS_OFF
|
||||
|
||||
# SASET MSG responses
|
||||
NICK_SASET_MSG_SYNTAX
|
||||
SSAET nickname PRIVATE {ON | OFF}
|
||||
SSAET nickname MSG {ON | OFF}
|
||||
NICK_SASET_MSG_ON
|
||||
Services will now reply to %s with messages.
|
||||
NICK_SASET_MSG_OFF
|
||||
@@ -3279,7 +3279,7 @@ OPER_HELP_DEFCON
|
||||
Syntax: DEFCON [1|2|3|4|5]
|
||||
|
||||
The defcon system can be used to implement a pre-defined
|
||||
set of restrictions to services useful during an attemtped
|
||||
set of restrictions to services useful during an attempted
|
||||
attack on the network.
|
||||
|
||||
OPER_HELP_DEFCON_NO_NEW_CHANNELS
|
||||
@@ -6651,9 +6651,9 @@ HOST_NO_VIDENT
|
||||
#
|
||||
###########################################################################
|
||||
HOST_GROUP
|
||||
All vhost's in the group %s have been set to %s
|
||||
All vhosts in the group %s have been set to %s
|
||||
HOST_IDENT_GROUP
|
||||
All vhost's in the group %s have been set to %s@%s
|
||||
All vhosts in the group %s have been set to %s@%s
|
||||
|
||||
###########################################################################
|
||||
#
|
||||
|
||||
+3
-3
@@ -1,6 +1,6 @@
|
||||
# Hungarian (magyar) language file.
|
||||
#
|
||||
# (C) 2003-2010 Anope Team
|
||||
# (C) 2003-2011 Anope Team
|
||||
# Contact us at team@anope.org
|
||||
#
|
||||
# Translated by:
|
||||
@@ -9,7 +9,7 @@
|
||||
# CJB CHAT Magyarország, http://cjbchat.hu
|
||||
# Ez a fordítás a CJB Chat megrendelésére készült.
|
||||
#
|
||||
# Please read COPYING and README for furhter details.
|
||||
# Please read COPYING and README for further details.
|
||||
#
|
||||
# Based on the original code of Epona by Lara.
|
||||
# Based on the original code of Services by Andy Church.
|
||||
@@ -676,7 +676,7 @@ NICK_SASET_HIDE_STATUS_OFF
|
||||
|
||||
# SASET MSG responses
|
||||
NICK_SASET_MSG_SYNTAX
|
||||
SSAET nickname PRIVATE {ON | OFF}
|
||||
SSAET nickname MSG {ON | OFF}
|
||||
NICK_SASET_MSG_ON
|
||||
Services will now reply to %s with messages.
|
||||
NICK_SASET_MSG_OFF
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Italian language file.
|
||||
#
|
||||
# (C) 2003-2010 Anope Team
|
||||
# (C) 2003-2011 Anope Team
|
||||
# Contact us at team@anope.org
|
||||
#
|
||||
# Please read COPYING and README for further details.
|
||||
@@ -672,7 +672,7 @@ NICK_SASET_HIDE_STATUS_OFF
|
||||
|
||||
# SASET MSG responses
|
||||
NICK_SASET_MSG_SYNTAX
|
||||
SSAET nickname PRIVATE {ON | OFF}
|
||||
SSAET nickname MSG {ON | OFF}
|
||||
NICK_SASET_MSG_ON
|
||||
I servizi risponderanno a %s con "messages".
|
||||
NICK_SASET_MSG_OFF
|
||||
|
||||
+5
-2
@@ -1,6 +1,6 @@
|
||||
/* Compiler for language definition files.
|
||||
*
|
||||
* (C) 2003-2010 Anope Team
|
||||
* (C) 2003-2011 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
@@ -8,7 +8,6 @@
|
||||
* Based on the original code of Epona by Lara.
|
||||
* Based on the original code of Services by Andy Church.
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
*/
|
||||
|
||||
@@ -78,10 +77,12 @@ int read_index_file()
|
||||
numstrings++;
|
||||
if (!(stringnames = calloc(sizeof(char *), numstrings))) {
|
||||
perror("calloc(stringnames)");
|
||||
fclose(f);
|
||||
return -1;
|
||||
}
|
||||
if (!(strings = calloc(sizeof(char *), numstrings))) {
|
||||
perror("calloc(strings)");
|
||||
fclose(f);
|
||||
return -1;
|
||||
}
|
||||
fseek(f, 0, SEEK_SET);
|
||||
@@ -91,6 +92,7 @@ int read_index_file()
|
||||
buf[strlen(buf)-1] = '\0';
|
||||
if (!(stringnames[i++] = anopeStrDup(buf))) {
|
||||
perror("strdup()");
|
||||
fclose(f);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
@@ -202,6 +204,7 @@ int main(int ac, char **av)
|
||||
}
|
||||
if (!(out = fopen(outfile, "wb"))) {
|
||||
perror(outfile);
|
||||
fclose(in);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -1,9 +1,9 @@
|
||||
/* Language stuff generator for win32.
|
||||
*
|
||||
* (C) 2003-2010 Anope Team
|
||||
* (C) 2003-2011 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for furhter details.
|
||||
* Please read COPYING and README for further details.
|
||||
*
|
||||
* Based on the original code of Epona by Lara.
|
||||
* Based on the original code of Services by Andy Church.
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
# Dutch Language File
|
||||
#
|
||||
# (C) 2003-2010 Anope Team
|
||||
# (C) 2003-2011 Anope Team
|
||||
# Contact us at team@anope.org
|
||||
#
|
||||
# Please read COPYING and README for furhter details.
|
||||
# Please read COPYING and README for further details.
|
||||
#
|
||||
# Based on the original code of Epona by Lara.
|
||||
# Based on the original code of Services by Andy Church.
|
||||
@@ -688,7 +688,7 @@ NICK_SASET_HIDE_STATUS_OFF
|
||||
|
||||
# SASET MSG responses
|
||||
NICK_SASET_MSG_SYNTAX
|
||||
SSAET nickname PRIVATE {ON | OFF}
|
||||
SSAET nickname MSG {ON | OFF}
|
||||
NICK_SASET_MSG_ON
|
||||
Services will now reply to %s with messages.
|
||||
NICK_SASET_MSG_OFF
|
||||
@@ -6569,9 +6569,9 @@ HOST_OFF_UNREAL
|
||||
HOST_NO_VIDENT
|
||||
Je IRCD ondersteunt geen vIdent's. Als dit niet klopt, rapporteer dit dan als een mogelijke bug
|
||||
HOST_GROUP
|
||||
Alle vhost's in de groep %s zijn ingesteld op %s
|
||||
Alle vhosts in de groep %s zijn ingesteld op %s
|
||||
HOST_IDENT_GROUP
|
||||
Alle vhost's in de groep %s zijn ingesteld op %s@%s
|
||||
Alle vhosts in de groep %s zijn ingesteld op %s@%s
|
||||
|
||||
###########################################################################
|
||||
#
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
#
|
||||
###########################################################################
|
||||
#
|
||||
# (C) 2003-2010 Anope Team
|
||||
# (C) 2003-2011 Anope Team
|
||||
# Contact us at team@anope.org
|
||||
#
|
||||
# Please read COPYING and README for further details.
|
||||
@@ -845,7 +845,7 @@ NICK_SASET_HIDE_STATUS_OFF
|
||||
|
||||
# SASET MSG responses
|
||||
NICK_SASET_MSG_SYNTAX
|
||||
SASAET nick PRIVATE {ON | OFF}
|
||||
SASAET nick MSG {ON | OFF}
|
||||
|
||||
NICK_SASET_MSG_ON
|
||||
Serwisy bêd± teraz wysy³aæ do %s wiadomo¶ci.
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
# Portuguese language file.
|
||||
#
|
||||
# (C) 2003-2010 Anope Team
|
||||
# (C) 2003-2011 Anope Team
|
||||
# Contact us at team@anope.org
|
||||
#
|
||||
# Please read COPYING and README for furhter details.
|
||||
# Please read COPYING and README for further details.
|
||||
#
|
||||
# Based on the original code of Epona by Lara.
|
||||
# Based on the original code of Services by Andy Church.
|
||||
@@ -683,7 +683,7 @@ NICK_SASET_HIDE_STATUS_OFF
|
||||
|
||||
# SASET MSG responses
|
||||
NICK_SASET_MSG_SYNTAX
|
||||
SSAET nickname PRIVATE {ON | OFF}
|
||||
SSAET nickname MSG {ON | OFF}
|
||||
NICK_SASET_MSG_ON
|
||||
Services will now reply to %s with messages.
|
||||
NICK_SASET_MSG_OFF
|
||||
@@ -6535,9 +6535,9 @@ HOST_OFF_UNREAL
|
||||
HOST_NO_VIDENT
|
||||
Seu IRCD não suporta vIdent's, se isto não está certo, por favor reporte isso como um possível bug.
|
||||
HOST_GROUP
|
||||
Todos os vhost's no grupo %s foram ajustados para %s
|
||||
Todos os vhosts no grupo %s foram ajustados para %s
|
||||
HOST_IDENT_GROUP
|
||||
Todos os vhost's no grupo %s foram ajustados para %s@%s
|
||||
Todos os vhosts no grupo %s foram ajustados para %s@%s
|
||||
HOST_LIST_FOOTER
|
||||
Exibidos todos os registros (Contador: %d)
|
||||
HOST_LIST_RANGE_FOOTER
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Russian language file for Anope
|
||||
#
|
||||
# (C) 2003-2010 Anope Team
|
||||
# (C) 2003-2011 Anope Team
|
||||
# Contact us at team@anope.org
|
||||
#
|
||||
# Please read COPYING and README for further details.
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
# Turkish language file.
|
||||
#
|
||||
# (C) 2003-2010 Anope Team
|
||||
# (C) 2003-2011 Anope Team
|
||||
# Contact us at team@anope.org
|
||||
#
|
||||
# Please read COPYING and README for furhter details.
|
||||
# Please read COPYING and README for further details.
|
||||
#
|
||||
# Based on the original code of Epona by Lara.
|
||||
# Based on the original code of Services by Andy Church.
|
||||
@@ -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
|
||||
|
||||
+49
-37
@@ -1,6 +1,6 @@
|
||||
/* Various routines to perform simple actions.
|
||||
*
|
||||
* (C) 2003-2010 Anope Team
|
||||
* (C) 2003-2011 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
@@ -8,7 +8,6 @@
|
||||
* Based on the original code of Epona by Lara.
|
||||
* Based on the original code of Services by Andy Church.
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
*/
|
||||
|
||||
@@ -126,9 +125,10 @@ void sqline(char *mask, char *reason)
|
||||
* Unban the nick from a channel
|
||||
* @param ci channel info for the channel
|
||||
* @param nick to remove the ban for
|
||||
* @param full True to match against realhost
|
||||
* @return void
|
||||
*/
|
||||
void common_unban(ChannelInfo * ci, char *nick)
|
||||
static void _common_unban(ChannelInfo * ci, char *nick, boolean full)
|
||||
{
|
||||
char *av[4];
|
||||
char *host = NULL;
|
||||
@@ -163,47 +163,59 @@ void common_unban(ChannelInfo * ci, char *nick)
|
||||
if (host)
|
||||
ip = str_is_ip(host);
|
||||
|
||||
if (ircd->svsmode_unban) {
|
||||
anope_cmd_unban(ci->name, nick);
|
||||
if (ircdcap->tsmode) {
|
||||
snprintf(buf, BUFSIZE - 1, "%ld", (long int) time(NULL));
|
||||
av[0] = ci->name;
|
||||
av[1] = buf;
|
||||
av[2] = sstrdup("-b");
|
||||
ac = 4;
|
||||
} else {
|
||||
if (ircdcap->tsmode) {
|
||||
snprintf(buf, BUFSIZE - 1, "%ld", (long int) time(NULL));
|
||||
av[0] = ci->name;
|
||||
av[1] = buf;
|
||||
av[2] = sstrdup("-b");
|
||||
ac = 4;
|
||||
} else {
|
||||
av[0] = ci->name;
|
||||
av[1] = sstrdup("-b");
|
||||
ac = 3;
|
||||
}
|
||||
|
||||
for (ban = ci->c->bans->entries; ban; ban = next) {
|
||||
next = ban->next;
|
||||
if (entry_match(ban, u->nick, u->username, u->host, ip) ||
|
||||
entry_match(ban, u->nick, u->username, u->vhost, ip) ||
|
||||
entry_match(ban, u->nick, u->username, u->chost, ip)) {
|
||||
anope_cmd_mode(whosends(ci), ci->name, "-b %s", ban->mask);
|
||||
if (ircdcap->tsmode)
|
||||
av[3] = ban->mask;
|
||||
else
|
||||
av[2] = ban->mask;
|
||||
|
||||
do_cmode(whosends(ci), ac, av);
|
||||
}
|
||||
}
|
||||
|
||||
if (ircdcap->tsmode)
|
||||
free(av[2]);
|
||||
else
|
||||
free(av[1]);
|
||||
av[0] = ci->name;
|
||||
av[1] = sstrdup("-b");
|
||||
ac = 3;
|
||||
}
|
||||
|
||||
for (ban = ci->c->bans->entries; ban; ban = next) {
|
||||
next = ban->next;
|
||||
if ((full && entry_match(ban, u->nick, u->username, u->host, ip)) ||
|
||||
entry_match(ban, u->nick, u->vident, u->vhost, 0) ||
|
||||
entry_match(ban, u->nick, u->username, u->chost, 0)) {
|
||||
anope_cmd_mode(whosends(ci), ci->name, "-b %s", ban->mask);
|
||||
if (ircdcap->tsmode)
|
||||
av[3] = sstrdup(ban->mask);
|
||||
else
|
||||
av[2] = sstrdup(ban->mask);
|
||||
|
||||
do_cmode(whosends(ci), ac, av);
|
||||
|
||||
if (ircdcap->tsmode)
|
||||
free(av[3]);
|
||||
else
|
||||
free(av[2]);
|
||||
}
|
||||
}
|
||||
|
||||
if (ircdcap->tsmode)
|
||||
free(av[2]);
|
||||
else
|
||||
free(av[1]);
|
||||
|
||||
/* host_resolve() sstrdup us this info so we gotta free it */
|
||||
if (host) {
|
||||
free(host);
|
||||
}
|
||||
}
|
||||
|
||||
void common_unban(ChannelInfo * ci, char *nick)
|
||||
{
|
||||
_common_unban(ci, nick, false);
|
||||
}
|
||||
|
||||
void common_unban_full(ChannelInfo * ci, char *nick, boolean full)
|
||||
{
|
||||
_common_unban(ci, nick, full);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
@@ -241,7 +253,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
-1
@@ -1,6 +1,6 @@
|
||||
/* base64 routines.
|
||||
*
|
||||
* (C) 2003-2010 Anope Team
|
||||
* (C) 2003-2011 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
# For usage, see the usage subroutine or run the script with no
|
||||
# command line arguments.
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
# ====================================================================
|
||||
require 5.6.0;
|
||||
|
||||
+1
-2
@@ -2,7 +2,7 @@
|
||||
#
|
||||
# Configuration script for Services
|
||||
#
|
||||
# (C) 2003-2010 Anope Team
|
||||
# (C) 2003-2011 Anope Team
|
||||
# Contact us at team@anope.org
|
||||
#
|
||||
# Please read COPYING and README for further details.
|
||||
@@ -10,7 +10,6 @@
|
||||
# Based on the original code of Epona by Lara.
|
||||
# Based on the original code of Services by Andy Church.
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# $Id$
|
||||
|
||||
# Location of the .sql file with the schema
|
||||
DBSQL="tables.sql"
|
||||
|
||||
+22
-30
@@ -1,6 +1,6 @@
|
||||
/* BotServ functions
|
||||
*
|
||||
* (C) 2003-2010 Anope Team
|
||||
* (C) 2003-2011 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
@@ -8,7 +8,6 @@
|
||||
* Based on the original code of Epona by Lara.
|
||||
* Based on the original code of Services by Andy Church.
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
*/
|
||||
|
||||
@@ -246,6 +245,7 @@ void botchanmsgs(User * u, ChannelInfo * ci, char *buf)
|
||||
mustkick = 1;
|
||||
} else if (bw->type == BW_SINGLE) {
|
||||
int len = strlen(bw->word);
|
||||
int buf_len = strlen(nbuf);
|
||||
|
||||
if ((BSCaseSensitive && !strcmp(nbuf, bw->word))
|
||||
|| (!BSCaseSensitive
|
||||
@@ -253,23 +253,13 @@ void botchanmsgs(User * u, ChannelInfo * ci, char *buf)
|
||||
mustkick = 1;
|
||||
/* two next if are quite odd isn't it? =) */
|
||||
} else if ((strchr(nbuf, ' ') == nbuf + len)
|
||||
&&
|
||||
((BSCaseSensitive
|
||||
&& !strcmp(nbuf, bw->word))
|
||||
|| (!BSCaseSensitive
|
||||
&& (stristr(nbuf, bw->word) ==
|
||||
nbuf)))) {
|
||||
&& ((BSCaseSensitive && strstr(nbuf, bw->word) == nbuf)
|
||||
|| (!BSCaseSensitive && stristr(nbuf, bw->word) == nbuf))) {
|
||||
mustkick = 1;
|
||||
} else {
|
||||
if ((strrchr(nbuf, ' ') ==
|
||||
nbuf + strlen(nbuf) - len - 1)
|
||||
&&
|
||||
((BSCaseSensitive
|
||||
&& (strstr(nbuf, bw->word) ==
|
||||
nbuf + strlen(nbuf) - len))
|
||||
|| (!BSCaseSensitive
|
||||
&& (stristr(nbuf, bw->word) ==
|
||||
nbuf + strlen(nbuf) - len)))) {
|
||||
if (len < buf_len && (strrchr(nbuf, ' ') == nbuf + buf_len - len - 1)
|
||||
&& ((BSCaseSensitive && (strstr(nbuf, bw->word) == nbuf + buf_len - len))
|
||||
|| (!BSCaseSensitive && (stristr(nbuf, bw->word) == nbuf + buf_len - len)))) {
|
||||
mustkick = 1;
|
||||
} else {
|
||||
char *wordbuf = scalloc(len + 3, 1);
|
||||
@@ -314,16 +304,10 @@ void botchanmsgs(User * u, ChannelInfo * ci, char *buf)
|
||||
}
|
||||
} else if (bw->type == BW_END) {
|
||||
int len = strlen(bw->word);
|
||||
int buf_len = strlen(nbuf);
|
||||
|
||||
if ((BSCaseSensitive
|
||||
&&
|
||||
(!strncmp
|
||||
(nbuf + strlen(nbuf) - len, bw->word, len)))
|
||||
|| (!BSCaseSensitive
|
||||
&&
|
||||
(!strnicmp
|
||||
(nbuf + strlen(nbuf) - len, bw->word,
|
||||
len)))) {
|
||||
if ((BSCaseSensitive && len <= buf_len && !strncmp(nbuf + buf_len - len, bw->word, len))
|
||||
|| (!BSCaseSensitive && len <= buf_len && !strnicmp(nbuf + buf_len - len, bw->word, len))) {
|
||||
mustkick = 1;
|
||||
} else {
|
||||
char *wordbuf = scalloc(len + 2, 1);
|
||||
@@ -676,7 +660,7 @@ static BanData *get_ban_data(Channel * c, User * u)
|
||||
if (!c || !u)
|
||||
return NULL;
|
||||
|
||||
snprintf(mask, sizeof(mask), "%s@%s", u->username,
|
||||
snprintf(mask, sizeof(mask), "%s@%s", common_get_vident(u),
|
||||
common_get_vhost(u));
|
||||
|
||||
for (bd = c->bd; bd; bd = next) {
|
||||
@@ -790,11 +774,16 @@ void bot_join(ChannelInfo * ci)
|
||||
anope_cmd_mode(whosends(ci), ci->name, "-b %s",
|
||||
ban->mask);
|
||||
if (ircdcap->tsmode)
|
||||
av[3] = ban->mask;
|
||||
av[3] = sstrdup(ban->mask);
|
||||
else
|
||||
av[2] = ban->mask;
|
||||
av[2] = sstrdup(ban->mask);
|
||||
|
||||
do_cmode(whosends(ci), ac, av);
|
||||
|
||||
if (ircdcap->tsmode)
|
||||
free(av[3]);
|
||||
else
|
||||
free(av[2]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -850,7 +839,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];
|
||||
|
||||
+64
-20
@@ -1,6 +1,6 @@
|
||||
/* Channel-handling routines.
|
||||
*
|
||||
* (C) 2003-2010 Anope Team
|
||||
* (C) 2003-2011 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
@@ -8,7 +8,6 @@
|
||||
* Based on the original code of Epona by Lara.
|
||||
* Based on the original code of Services by Andy Church.
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
*/
|
||||
|
||||
@@ -52,6 +51,10 @@ void chan_deluser(User * user, Channel * c)
|
||||
anope_cmd_part(c->ci->bi->nick, c->name, NULL);
|
||||
}
|
||||
|
||||
/* Channel is permament and shouldn't be deleted */
|
||||
if (anope_get_permchan_mode() && c->mode & anope_get_permchan_mode())
|
||||
return;
|
||||
|
||||
if (!c->users)
|
||||
chan_delete(c);
|
||||
}
|
||||
@@ -74,7 +77,7 @@ char *chan_get_modes(Channel * chan, int complete, int plus)
|
||||
do {
|
||||
if (chan->mode & cbmi->flag)
|
||||
*end++ = cbmi->mode;
|
||||
} while ((++cbmi)->flag != 0 && ++n < sizeof(res) - 1);
|
||||
} while ((++cbmi)->mode != 0 && ++n < sizeof(res) - 1);
|
||||
|
||||
if (complete) {
|
||||
cbmi = cbmodeinfos;
|
||||
@@ -90,7 +93,7 @@ char *chan_get_modes(Channel * chan, int complete, int plus)
|
||||
*end++ = *value++;
|
||||
}
|
||||
}
|
||||
} while ((++cbmi)->flag != 0 && ++n < sizeof(res) - 1);
|
||||
} while ((++cbmi)->mode != 0 && ++n < sizeof(res) - 1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
@@ -637,6 +640,7 @@ void do_kick(const char *source, int ac, char **av)
|
||||
User *user;
|
||||
char *s, *t;
|
||||
struct u_chanlist *c;
|
||||
Uid *uid;
|
||||
|
||||
t = av[1];
|
||||
while (*(s = t)) {
|
||||
@@ -644,6 +648,13 @@ void do_kick(const char *source, int ac, char **av)
|
||||
if (*t)
|
||||
*t++ = 0;
|
||||
|
||||
if (ircd->ts6 && UseTS6)
|
||||
{
|
||||
uid = find_nickuid(s);
|
||||
if (uid)
|
||||
s = uid->nick;
|
||||
}
|
||||
|
||||
/* If it is the bot that is being kicked, we make it rejoin the
|
||||
* channel and stop immediately.
|
||||
* --lara
|
||||
@@ -791,7 +802,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 +811,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 +1284,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 +1319,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], "");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1453,7 +1478,7 @@ void chan_set_correct_modes(User * user, Channel * c, int give_modes)
|
||||
* Unless the channel has just been created. -heinz
|
||||
* Or the user matches CA_AUTODEOP... -GD
|
||||
*/
|
||||
if (((ci->flags & CI_SECUREOPS) || (c->usercount == 1)
|
||||
if (((ci->flags & CI_SECUREOPS) || (c->usercount == 1 && is_sync(user->server))
|
||||
|| check_access(user, ci, CA_AUTODEOP))
|
||||
&& !is_ulined(user->server->name)) {
|
||||
if (ircd->owner && (status & CUS_OWNER) && !is_founder(user, ci))
|
||||
@@ -1512,6 +1537,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 +1570,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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2362,11 +2394,12 @@ Entry *elist_match_mask(EList * list, char *mask, uint32 ip)
|
||||
* Check if a user matches an entry on a list.
|
||||
* @param list EntryList that should be matched against
|
||||
* @param user The user to match against the entries
|
||||
* @param full true to match against real host and real IP
|
||||
* @return Returns the first matching entry, if none, NULL is returned.
|
||||
*/
|
||||
Entry *elist_match_user(EList * list, User * u)
|
||||
static Entry *_elist_match_user(EList * list, User * u, boolean full)
|
||||
{
|
||||
Entry *res;
|
||||
Entry *res = NULL;
|
||||
char *host;
|
||||
uint32 ip = 0;
|
||||
|
||||
@@ -2389,11 +2422,12 @@ Entry *elist_match_user(EList * list, User * u)
|
||||
ip = str_is_ip(host);
|
||||
|
||||
/* Match what we ve got against the lists.. */
|
||||
res = elist_match(list, u->nick, u->username, u->host, ip);
|
||||
if (full)
|
||||
res = elist_match(list, u->nick, u->username, u->host, ip);
|
||||
if (!res)
|
||||
res = elist_match(list, u->nick, u->username, u->vhost, ip);
|
||||
res = elist_match(list, u->nick, u->vident, u->vhost, 0);
|
||||
if (!res)
|
||||
res = elist_match(list, u->nick, u->username, u->chost, ip);
|
||||
res = elist_match(list, u->nick, u->username, u->chost, 0);
|
||||
|
||||
if (host)
|
||||
free(host);
|
||||
@@ -2401,6 +2435,16 @@ Entry *elist_match_user(EList * list, User * u)
|
||||
return res;
|
||||
}
|
||||
|
||||
Entry *elist_match_user(EList *list, User *u)
|
||||
{
|
||||
return _elist_match_user(list, u, false);
|
||||
}
|
||||
|
||||
Entry *elist_match_user_full(EList *list, User *u, boolean full)
|
||||
{
|
||||
return _elist_match_user(list, u, full);
|
||||
}
|
||||
|
||||
/**
|
||||
* Find a entry identical to the given mask..
|
||||
* @param list EntryList that should be matched against
|
||||
|
||||
+14
-15
@@ -1,6 +1,6 @@
|
||||
/* ChanServ functions.
|
||||
*
|
||||
* (C) 2003-2010 Anope Team
|
||||
* (C) 2003-2011 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
@@ -8,7 +8,6 @@
|
||||
* Based on the original code of Epona by Lara.
|
||||
* Based on the original code of Services by Andy Church.
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
*/
|
||||
|
||||
@@ -145,7 +144,7 @@ char *get_mlock_modes(ChannelInfo * ci, int complete)
|
||||
do {
|
||||
if (ci->mlock_on & cbmi->flag)
|
||||
*end++ = cbmi->mode;
|
||||
} while ((++cbmi)->flag != 0 && ++n < sizeof(res) - 1);
|
||||
} while ((++cbmi)->mode != 0 && ++n < sizeof(res) - 1);
|
||||
|
||||
cbmi = cbmodeinfos;
|
||||
}
|
||||
@@ -157,7 +156,7 @@ char *get_mlock_modes(ChannelInfo * ci, int complete)
|
||||
do {
|
||||
if (ci->mlock_off & cbmi->flag)
|
||||
*end++ = cbmi->mode;
|
||||
} while ((++cbmi)->flag != 0 && ++n < sizeof(res) - 1);
|
||||
} while ((++cbmi)->mode != 0 && ++n < sizeof(res) - 1);
|
||||
|
||||
cbmi = cbmodeinfos;
|
||||
}
|
||||
@@ -173,7 +172,7 @@ char *get_mlock_modes(ChannelInfo * ci, int complete)
|
||||
*end++ = *value++;
|
||||
}
|
||||
}
|
||||
} while ((++cbmi)->flag != 0 && ++n < sizeof(res) - 1);
|
||||
} while ((++cbmi)->mode != 0 && ++n < sizeof(res) - 1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
+9
-8
@@ -1,6 +1,6 @@
|
||||
/* Routines for looking up commands in a *Serv command list.
|
||||
*
|
||||
* (C) 2003-2010 Anope Team
|
||||
* (C) 2003-2011 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
@@ -8,7 +8,6 @@
|
||||
* Based on the original code of Epona by Lara.
|
||||
* Based on the original code of Services by Andy Church.
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
*/
|
||||
|
||||
@@ -95,18 +94,19 @@ void do_run_cmd(char *service, User * u, Command * c, const char *cmd)
|
||||
notice_lang(service, u, OPER_DEFCON_DENIED);
|
||||
}
|
||||
} else {
|
||||
char *mod_current_module_name_save = mod_current_module_name;
|
||||
Module *mod_current_module_save = mod_current_module;
|
||||
mod_current_module_name = c->mod_name;
|
||||
mod_current_module = NULL;
|
||||
mod_current_module = findModule(c->mod_name);
|
||||
if ((c->has_priv == NULL) || c->has_priv(u)) {
|
||||
retVal = c->routine(u);
|
||||
mod_current_module_name = NULL;
|
||||
if (retVal == MOD_CONT) {
|
||||
current = c->next;
|
||||
while (current && retVal == MOD_CONT) {
|
||||
mod_current_module_name = current->mod_name;
|
||||
mod_current_module = NULL;
|
||||
retVal = current->routine(u);
|
||||
mod_current_module_name = NULL;
|
||||
mod_current_module = findModule(current->mod_name);
|
||||
if (current->routine)
|
||||
retVal = current->routine(u);
|
||||
current = current->next;
|
||||
}
|
||||
}
|
||||
@@ -115,7 +115,8 @@ void do_run_cmd(char *service, User * u, Command * c, const char *cmd)
|
||||
alog("Access denied for %s with service %s and command %s",
|
||||
u->nick, service, cmd);
|
||||
}
|
||||
mod_current_module_name = NULL;
|
||||
mod_current_module_name = mod_current_module_name_save;
|
||||
mod_current_module = mod_current_module_save;
|
||||
}
|
||||
} else {
|
||||
if ((!checkDefCon(DEFCON_SILENT_OPER_ONLY)) || is_oper(u)) {
|
||||
|
||||
+1
-2
@@ -1,6 +1,6 @@
|
||||
/* Compatibility routines.
|
||||
*
|
||||
* (C) 2003-2010 Anope Team
|
||||
* (C) 2003-2011 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
@@ -8,7 +8,6 @@
|
||||
* Based on the original code of Epona by Lara.
|
||||
* Based on the original code of Services by Andy Church.
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
+7
-4
@@ -1,6 +1,6 @@
|
||||
/* Configuration file handling.
|
||||
*
|
||||
* (C) 2003-2010 Anope Team
|
||||
* (C) 2003-2011 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
@@ -8,7 +8,6 @@
|
||||
* Based on the original code of Epona by Lara.
|
||||
* Based on the original code of Services by Andy Church.
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
*/
|
||||
|
||||
@@ -128,6 +127,7 @@ char *SendFrom;
|
||||
int RestrictMail;
|
||||
int MailDelay;
|
||||
int DontQuoteAddresses;
|
||||
int ForkForMail;
|
||||
|
||||
static int NSDefNone;
|
||||
char *NSGuestNickPrefix;
|
||||
@@ -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}}},
|
||||
@@ -925,7 +926,9 @@ int read_config(int reload)
|
||||
perror("Can't open " SERVICES_CONF);
|
||||
else
|
||||
alog("Can't open %s", SERVICES_CONF);
|
||||
#ifndef NOT_MAIN
|
||||
}
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
while (fgets(buf, sizeof(buf), config)) {
|
||||
@@ -1245,7 +1248,7 @@ int read_config(int reload)
|
||||
if (s) {
|
||||
RootNumber++;
|
||||
ServicesRoots =
|
||||
realloc(ServicesRoots, sizeof(char *) * RootNumber);
|
||||
srealloc(ServicesRoots, sizeof(char *) * RootNumber);
|
||||
ServicesRoots[RootNumber - 1] = sstrdup(s);
|
||||
}
|
||||
} while ((s = strtok(NULL, " ")));
|
||||
@@ -1265,7 +1268,7 @@ int read_config(int reload)
|
||||
do {
|
||||
if (s) {
|
||||
NumUlines++;
|
||||
Ulines = realloc(Ulines, sizeof(char *) * NumUlines);
|
||||
Ulines = srealloc(Ulines, sizeof(char *) * NumUlines);
|
||||
Ulines[NumUlines - 1] = sstrdup(s);
|
||||
}
|
||||
} while ((s = strtok(NULL, " ")));
|
||||
|
||||
+2
-3
@@ -1,6 +1,6 @@
|
||||
/* BotServ core functions
|
||||
*
|
||||
* (C) 2003-2010 Anope Team
|
||||
* (C) 2003-2011 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
@@ -8,7 +8,6 @@
|
||||
* Based on the original code of Epona by Lara.
|
||||
* Based on the original code of Services by Andy Church.
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
*/
|
||||
/*************************************************************************/
|
||||
@@ -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);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* BotServ core functions
|
||||
*
|
||||
* (C) 2003-2010 Anope Team
|
||||
* (C) 2003-2011 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
@@ -8,7 +8,6 @@
|
||||
* Based on the original code of Epona by Lara.
|
||||
* Based on the original code of Services by Andy Church.
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
*/
|
||||
/*************************************************************************/
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
+13
-4
@@ -1,6 +1,6 @@
|
||||
/* BotServ core functions
|
||||
*
|
||||
* (C) 2003-2010 Anope Team
|
||||
* (C) 2003-2011 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
@@ -8,7 +8,6 @@
|
||||
* Based on the original code of Epona by Lara.
|
||||
* Based on the original code of Services by Andy Church.
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
*/
|
||||
/*************************************************************************/
|
||||
@@ -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 {
|
||||
|
||||
+10
-3
@@ -1,6 +1,6 @@
|
||||
/* BotServ core functions
|
||||
*
|
||||
* (C) 2003-2010 Anope Team
|
||||
* (C) 2003-2011 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
@@ -8,7 +8,6 @@
|
||||
* Based on the original code of Epona by Lara.
|
||||
* Based on the original code of Services by Andy Church.
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
*/
|
||||
/*************************************************************************/
|
||||
@@ -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,6 +1,6 @@
|
||||
/* BotServ core functions
|
||||
*
|
||||
* (C) 2003-2010 Anope Team
|
||||
* (C) 2003-2011 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
@@ -8,7 +8,6 @@
|
||||
* Based on the original code of Epona by Lara.
|
||||
* Based on the original code of Services by Andy Church.
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
*/
|
||||
/*************************************************************************/
|
||||
@@ -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,6 +1,6 @@
|
||||
/* BotServ core fantasy functions
|
||||
*
|
||||
* (C) 2003-2010 Anope Team
|
||||
* (C) 2003-2011 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
@@ -8,7 +8,6 @@
|
||||
* Based on the original code of Epona by Lara.
|
||||
* Based on the original code of Services by Andy Church.
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
*/
|
||||
/*************************************************************************/
|
||||
@@ -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,6 +1,6 @@
|
||||
/* BotServ core fantasy functions
|
||||
*
|
||||
* (C) 2003-2010 Anope Team
|
||||
* (C) 2003-2011 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
@@ -8,7 +8,6 @@
|
||||
* Based on the original code of Epona by Lara.
|
||||
* Based on the original code of Services by Andy Church.
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
*/
|
||||
/*************************************************************************/
|
||||
@@ -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,6 +1,6 @@
|
||||
/* BotServ core fantasy functions
|
||||
*
|
||||
* (C) 2003-2010 Anope Team
|
||||
* (C) 2003-2011 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
@@ -8,7 +8,6 @@
|
||||
* Based on the original code of Epona by Lara.
|
||||
* Based on the original code of Services by Andy Church.
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
*/
|
||||
/*************************************************************************/
|
||||
@@ -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,6 +1,6 @@
|
||||
/* BotServ core fantasy functions
|
||||
*
|
||||
* (C) 2003-2010 Anope Team
|
||||
* (C) 2003-2011 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
@@ -8,7 +8,6 @@
|
||||
* Based on the original code of Epona by Lara.
|
||||
* Based on the original code of Services by Andy Church.
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
*/
|
||||
/*************************************************************************/
|
||||
@@ -29,15 +28,9 @@ int AnopeInit(int argc, char **argv)
|
||||
|
||||
moduleAddAuthor("Anope");
|
||||
moduleAddVersion
|
||||
("$Id$");
|
||||
(VERSION_STRING);
|
||||
moduleSetType(CORE);
|
||||
|
||||
/* No need to load of we don't support owner */
|
||||
if (!ircd->owner) {
|
||||
alog("Your ircd doesn't support the owner channelmode; bs_fantasy_owner won't be loaded");
|
||||
return MOD_STOP;
|
||||
}
|
||||
|
||||
hook = createEventHook(EVENT_BOT_FANTASY, do_fantasy);
|
||||
moduleAddEventHook(hook);
|
||||
|
||||
@@ -63,7 +56,7 @@ int do_fantasy(int argc, char **argv)
|
||||
User *u;
|
||||
ChannelInfo *ci;
|
||||
|
||||
if (argc < 3)
|
||||
if (argc < 3 || !ircd->owner)
|
||||
return MOD_CONT;
|
||||
|
||||
if (stricmp(argv[0], "deowner") == 0) {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* BotServ core fantasy functions
|
||||
*
|
||||
* (C) 2003-2010 Anope Team
|
||||
* (C) 2003-2011 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
@@ -8,7 +8,6 @@
|
||||
* Based on the original code of Epona by Lara.
|
||||
* Based on the original code of Services by Andy Church.
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
*/
|
||||
/*************************************************************************/
|
||||
@@ -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);
|
||||
|
||||
+2
-3
@@ -1,6 +1,6 @@
|
||||
/* BotServ core functions
|
||||
*
|
||||
* (C) 2003-2010 Anope Team
|
||||
* (C) 2003-2011 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
@@ -8,7 +8,6 @@
|
||||
* Based on the original code of Epona by Lara.
|
||||
* Based on the original code of Services by Andy Church.
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
*/
|
||||
/*************************************************************************/
|
||||
@@ -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);
|
||||
|
||||
+2
-3
@@ -1,6 +1,6 @@
|
||||
/* BotServ core functions
|
||||
*
|
||||
* (C) 2003-2010 Anope Team
|
||||
* (C) 2003-2011 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
@@ -8,7 +8,6 @@
|
||||
* Based on the original code of Epona by Lara.
|
||||
* Based on the original code of Services by Andy Church.
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
*/
|
||||
/*************************************************************************/
|
||||
@@ -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);
|
||||
|
||||
+74
-19
@@ -1,6 +1,6 @@
|
||||
/* BotServ core functions
|
||||
*
|
||||
* (C) 2003-2010 Anope Team
|
||||
* (C) 2003-2011 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
@@ -8,7 +8,6 @@
|
||||
* Based on the original code of Epona by Lara.
|
||||
* Based on the original code of Services by Andy Church.
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
*/
|
||||
/*************************************************************************/
|
||||
@@ -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
|
||||
|
||||
+2
-3
@@ -1,6 +1,6 @@
|
||||
/* BotServ core functions
|
||||
*
|
||||
* (C) 2003-2010 Anope Team
|
||||
* (C) 2003-2011 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
@@ -8,7 +8,6 @@
|
||||
* Based on the original code of Epona by Lara.
|
||||
* Based on the original code of Services by Andy Church.
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
*/
|
||||
/*************************************************************************/
|
||||
@@ -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);
|
||||
|
||||
+30
-3
@@ -1,6 +1,6 @@
|
||||
/* BotServ core functions
|
||||
*
|
||||
* (C) 2003-2010 Anope Team
|
||||
* (C) 2003-2011 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
@@ -8,7 +8,6 @@
|
||||
* Based on the original code of Epona by Lara.
|
||||
* Based on the original code of Services by Andy Church.
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
*/
|
||||
/*************************************************************************/
|
||||
@@ -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",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* BotServ core functions
|
||||
*
|
||||
* (C) 2003-2010 Anope Team
|
||||
* (C) 2003-2011 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
@@ -8,7 +8,6 @@
|
||||
* Based on the original code of Epona by Lara.
|
||||
* Based on the original code of Services by Andy Church.
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
*/
|
||||
/*************************************************************************/
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* ChanServ core functions
|
||||
*
|
||||
* (C) 2003-2010 Anope Team
|
||||
* (C) 2003-2011 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
@@ -8,7 +8,6 @@
|
||||
* Based on the original code of Epona by Lara.
|
||||
* Based on the original code of Services by Andy Church.
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
*/
|
||||
/*************************************************************************/
|
||||
@@ -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
|
||||
|
||||
+17
-3
@@ -1,6 +1,6 @@
|
||||
/* ChanServ core functions
|
||||
*
|
||||
* (C) 2003-2010 Anope Team
|
||||
* (C) 2003-2011 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
@@ -8,7 +8,6 @@
|
||||
* Based on the original code of Epona by Lara.
|
||||
* Based on the original code of Services by Andy Church.
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
*/
|
||||
/*************************************************************************/
|
||||
@@ -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 {
|
||||
|
||||
+3
-4
@@ -1,6 +1,6 @@
|
||||
/* ChanServ core functions
|
||||
*
|
||||
* (C) 2003-2010 Anope Team
|
||||
* (C) 2003-2011 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
@@ -8,7 +8,6 @@
|
||||
* Based on the original code of Epona by Lara.
|
||||
* Based on the original code of Services by Andy Church.
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
*/
|
||||
/*************************************************************************/
|
||||
@@ -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);
|
||||
@@ -220,7 +219,7 @@ int do_unban(User * u)
|
||||
} else if (!check_access(u, ci, CA_UNBAN)) {
|
||||
notice_lang(s_ChanServ, u, PERMISSION_DENIED);
|
||||
} else {
|
||||
common_unban(ci, u->nick);
|
||||
common_unban_full(ci, u->nick, true);
|
||||
notice_lang(s_ChanServ, u, CHAN_UNBANNED, chan);
|
||||
}
|
||||
return MOD_CONT;
|
||||
|
||||
+91
-115
@@ -1,6 +1,6 @@
|
||||
/* ChanServ core functions
|
||||
*
|
||||
* (C) 2003-2010 Anope Team
|
||||
* (C) 2003-2011 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
@@ -8,7 +8,6 @@
|
||||
* Based on the original code of Epona by Lara.
|
||||
* Based on the original code of Services by Andy Church.
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
*/
|
||||
/*************************************************************************/
|
||||
@@ -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);
|
||||
|
||||
+2
-3
@@ -1,6 +1,6 @@
|
||||
/* ChanServ core functions
|
||||
*
|
||||
* (C) 2003-2010 Anope Team
|
||||
* (C) 2003-2011 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
@@ -8,7 +8,6 @@
|
||||
* Based on the original code of Epona by Lara.
|
||||
* Based on the original code of Services by Andy Church.
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
*/
|
||||
/*************************************************************************/
|
||||
@@ -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,6 +1,6 @@
|
||||
/* ChanServ core functions
|
||||
*
|
||||
* (C) 2003-2010 Anope Team
|
||||
* (C) 2003-2011 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
@@ -8,7 +8,6 @@
|
||||
* Based on the original code of Epona by Lara.
|
||||
* Based on the original code of Services by Andy Church.
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
*/
|
||||
/*************************************************************************/
|
||||
@@ -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,
|
||||
@@ -90,8 +89,10 @@ int do_forbid(User * u)
|
||||
}
|
||||
if (readonly)
|
||||
notice_lang(s_ChanServ, u, READ_ONLY_MODE);
|
||||
if ((ci = cs_findchan(chan)) != NULL)
|
||||
if ((ci = cs_findchan(chan)) != NULL) {
|
||||
delchan(ci);
|
||||
send_event(EVENT_CHAN_DROP, 1, chan);
|
||||
}
|
||||
ci = makechan(chan);
|
||||
if (ci) {
|
||||
ci->flags |= CI_VERBOTEN;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* ChanServ core functions
|
||||
*
|
||||
* (C) 2003-2010 Anope Team
|
||||
* (C) 2003-2011 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
@@ -8,7 +8,6 @@
|
||||
* Based on the original code of Epona by Lara.
|
||||
* Based on the original code of Services by Andy Church.
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
*/
|
||||
/*************************************************************************/
|
||||
@@ -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,6 +1,6 @@
|
||||
/* ChanServ core functions
|
||||
*
|
||||
* (C) 2003-2010 Anope Team
|
||||
* (C) 2003-2011 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
@@ -8,7 +8,6 @@
|
||||
* Based on the original code of Epona by Lara.
|
||||
* Based on the original code of Services by Andy Church.
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
*/
|
||||
/*************************************************************************/
|
||||
@@ -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,
|
||||
|
||||
+2
-3
@@ -1,6 +1,6 @@
|
||||
/* ChanServ core functions
|
||||
*
|
||||
* (C) 2003-2010 Anope Team
|
||||
* (C) 2003-2011 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
@@ -8,7 +8,6 @@
|
||||
* Based on the original code of Epona by Lara.
|
||||
* Based on the original code of Services by Andy Church.
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
*/
|
||||
/*************************************************************************/
|
||||
@@ -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,6 +1,6 @@
|
||||
/* ChanServ core functions
|
||||
*
|
||||
* (C) 2003-2010 Anope Team
|
||||
* (C) 2003-2011 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
@@ -8,7 +8,6 @@
|
||||
* Based on the original code of Epona by Lara.
|
||||
* Based on the original code of Services by Andy Church.
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
*/
|
||||
/*************************************************************************/
|
||||
@@ -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,
|
||||
|
||||
+2
-3
@@ -1,6 +1,6 @@
|
||||
/* ChanServ core functions
|
||||
*
|
||||
* (C) 2003-2010 Anope Team
|
||||
* (C) 2003-2011 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
@@ -8,7 +8,6 @@
|
||||
* Based on the original code of Epona by Lara.
|
||||
* Based on the original code of Services by Andy Church.
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
*/
|
||||
/*************************************************************************/
|
||||
@@ -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,6 +1,6 @@
|
||||
/* ChanServ core functions
|
||||
*
|
||||
* (C) 2003-2010 Anope Team
|
||||
* (C) 2003-2011 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
@@ -8,7 +8,6 @@
|
||||
* Based on the original code of Epona by Lara.
|
||||
* Based on the original code of Services by Andy Church.
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
*/
|
||||
/*************************************************************************/
|
||||
@@ -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,
|
||||
|
||||
+4
-5
@@ -1,6 +1,6 @@
|
||||
/* ChanServ core functions
|
||||
*
|
||||
* (C) 2003-2010 Anope Team
|
||||
* (C) 2003-2011 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
@@ -8,7 +8,6 @@
|
||||
* Based on the original code of Epona by Lara.
|
||||
* Based on the original code of Services by Andy Church.
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
*/
|
||||
/*************************************************************************/
|
||||
@@ -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];
|
||||
|
||||
|
||||
+2
-3
@@ -1,6 +1,6 @@
|
||||
/* ChanServ core functions
|
||||
*
|
||||
* (C) 2003-2010 Anope Team
|
||||
* (C) 2003-2011 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
@@ -8,7 +8,6 @@
|
||||
* Based on the original code of Epona by Lara.
|
||||
* Based on the original code of Services by Andy Church.
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
*/
|
||||
/*************************************************************************/
|
||||
@@ -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,6 +1,6 @@
|
||||
/* ChanServ core functions
|
||||
*
|
||||
* (C) 2003-2010 Anope Team
|
||||
* (C) 2003-2011 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
@@ -8,7 +8,6 @@
|
||||
* Based on the original code of Epona by Lara.
|
||||
* Based on the original code of Services by Andy Church.
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
*/
|
||||
/*************************************************************************/
|
||||
@@ -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,
|
||||
|
||||
+25
-41
@@ -1,6 +1,6 @@
|
||||
/* ChanServ core functions
|
||||
*
|
||||
* (C) 2003-2010 Anope Team
|
||||
* (C) 2003-2011 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
@@ -8,7 +8,6 @@
|
||||
* Based on the original code of Epona by Lara.
|
||||
* Based on the original code of Services by Andy Church.
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
*/
|
||||
/*************************************************************************/
|
||||
@@ -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));
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* ChanServ core functions
|
||||
*
|
||||
* (C) 2003-2010 Anope Team
|
||||
* (C) 2003-2011 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
@@ -8,7 +8,6 @@
|
||||
* Based on the original code of Epona by Lara.
|
||||
* Based on the original code of Services by Andy Church.
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
*/
|
||||
/*************************************************************************/
|
||||
@@ -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);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* ChanServ core functions
|
||||
*
|
||||
* (C) 2003-2010 Anope Team
|
||||
* (C) 2003-2011 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
@@ -8,7 +8,6 @@
|
||||
* Based on the original code of Epona by Lara.
|
||||
* Based on the original code of Services by Andy Church.
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
*/
|
||||
/*************************************************************************/
|
||||
@@ -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,
|
||||
@@ -61,7 +60,8 @@ void AnopeFini(void)
|
||||
**/
|
||||
void myChanServHelp(User * u)
|
||||
{
|
||||
notice_lang(s_ChanServ, u, CHAN_HELP_CMD_SENDPASS);
|
||||
if (!RestrictMail || is_services_oper(u))
|
||||
notice_lang(s_ChanServ, u, CHAN_HELP_CMD_SENDPASS);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -96,7 +96,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 +104,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);
|
||||
|
||||
+67
-4
@@ -1,6 +1,6 @@
|
||||
/* ChanServ core functions
|
||||
*
|
||||
* (C) 2003-2010 Anope Team
|
||||
* (C) 2003-2011 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
@@ -8,7 +8,6 @@
|
||||
* Based on the original code of Epona by Lara.
|
||||
* Based on the original code of Services by Andy Church.
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
*/
|
||||
/*************************************************************************/
|
||||
@@ -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,6 +1,6 @@
|
||||
/* ChanServ core functions
|
||||
*
|
||||
* (C) 2003-2010 Anope Team
|
||||
* (C) 2003-2011 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
@@ -8,7 +8,6 @@
|
||||
* Based on the original code of Epona by Lara.
|
||||
* Based on the original code of Services by Andy Church.
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
*/
|
||||
/*************************************************************************/
|
||||
@@ -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,6 +1,6 @@
|
||||
/* ChanServ core functions
|
||||
*
|
||||
* (C) 2003-2010 Anope Team
|
||||
* (C) 2003-2011 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
@@ -8,7 +8,6 @@
|
||||
* Based on the original code of Epona by Lara.
|
||||
* Based on the original code of Services by Andy Church.
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
*/
|
||||
/*************************************************************************/
|
||||
@@ -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,
|
||||
|
||||
+2
-3
@@ -1,6 +1,6 @@
|
||||
/* ChanServ core functions
|
||||
*
|
||||
* (C) 2003-2010 Anope Team
|
||||
* (C) 2003-2011 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
@@ -8,7 +8,6 @@
|
||||
* Based on the original code of Epona by Lara.
|
||||
* Based on the original code of Services by Andy Church.
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
*/
|
||||
/*************************************************************************/
|
||||
@@ -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,
|
||||
|
||||
+12
-9
@@ -1,6 +1,6 @@
|
||||
/* ChanServ core functions
|
||||
*
|
||||
* (C) 2003-2010 Anope Team
|
||||
* (C) 2003-2011 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
@@ -8,7 +8,6 @@
|
||||
* Based on the original code of Epona by Lara.
|
||||
* Based on the original code of Services by Andy Church.
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
*/
|
||||
/*************************************************************************/
|
||||
@@ -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);
|
||||
|
||||
+15
-23
@@ -1,7 +1,7 @@
|
||||
/* Module for encryption using MD5.
|
||||
*
|
||||
* Modified for Anope.
|
||||
* (C) 2003-2010 Anope Team
|
||||
* (C) 2003-2011 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Taken from IRC Services and is copyright (c) 1996-2002 Andrew Church.
|
||||
@@ -73,7 +73,7 @@ typedef void *POINTER;
|
||||
#define S43 15
|
||||
#define S44 21
|
||||
|
||||
void MD5Transform (UINT4 [4], unsigned char [64]);
|
||||
void Ano_MD5Transform (UINT4 [4], unsigned char [64]);
|
||||
void Encode (unsigned char *, UINT4 *, unsigned int);
|
||||
void Decode (UINT4 *, unsigned char *, unsigned int);
|
||||
|
||||
@@ -120,7 +120,7 @@ Rotation is separate from addition to prevent recomputation.
|
||||
|
||||
/* MD5 initialization. Begins an MD5 operation, writing a new context.
|
||||
*/
|
||||
void MD5Init (context)
|
||||
void Ano_MD5Init (context)
|
||||
MD5_CTX *context; /* context */
|
||||
{
|
||||
context->count[0] = context->count[1] = 0;
|
||||
@@ -136,7 +136,7 @@ MD5_CTX *context; /* context */
|
||||
operation, processing another message block, and updating the
|
||||
context.
|
||||
*/
|
||||
void MD5Update (context, input, inputLen)
|
||||
void Ano_MD5Update (context, input, inputLen)
|
||||
MD5_CTX *context; /* context */
|
||||
unsigned char *input; /* input block */
|
||||
unsigned int inputLen; /* length of input block */
|
||||
@@ -159,10 +159,10 @@ unsigned int inputLen; /* length of input block */
|
||||
if (inputLen >= partLen) {
|
||||
memcpy
|
||||
((POINTER)&context->buffer[index], (POINTER)input, partLen);
|
||||
MD5Transform (context->state, context->buffer);
|
||||
Ano_MD5Transform (context->state, context->buffer);
|
||||
|
||||
for (i = partLen; i + 63 < inputLen; i += 64)
|
||||
MD5Transform (context->state, &input[i]);
|
||||
Ano_MD5Transform (context->state, &input[i]);
|
||||
|
||||
index = 0;
|
||||
}
|
||||
@@ -178,7 +178,7 @@ unsigned int inputLen; /* length of input block */
|
||||
/* MD5 finalization. Ends an MD5 message-digest operation, writing the
|
||||
the message digest and zeroizing the context.
|
||||
*/
|
||||
void MD5Final (digest, context)
|
||||
void Ano_MD5Final (digest, context)
|
||||
unsigned char digest[16]; /* message digest */
|
||||
MD5_CTX *context; /* context */
|
||||
{
|
||||
@@ -192,10 +192,10 @@ MD5_CTX *context; /* context */
|
||||
*/
|
||||
index = (unsigned int)((context->count[0] >> 3) & 0x3f);
|
||||
padLen = (index < 56) ? (56 - index) : (120 - index);
|
||||
MD5Update (context, PADDING, padLen);
|
||||
Ano_MD5Update (context, PADDING, padLen);
|
||||
|
||||
/* Append length (before padding) */
|
||||
MD5Update (context, bits, 8);
|
||||
Ano_MD5Update (context, bits, 8);
|
||||
/* Store state in digest */
|
||||
Encode (digest, context->state, 16);
|
||||
|
||||
@@ -206,7 +206,7 @@ MD5_CTX *context; /* context */
|
||||
|
||||
/* MD5 basic transformation. Transforms state based on block.
|
||||
*/
|
||||
void MD5Transform (state, block)
|
||||
void Ano_MD5Transform (state, block)
|
||||
UINT4 state[4];
|
||||
unsigned char block[64];
|
||||
{
|
||||
@@ -343,13 +343,13 @@ int md5_encrypt(const char *src, int len, char *dest, int size)
|
||||
if (size < 16)
|
||||
return -1;
|
||||
|
||||
MD5Init(&context);
|
||||
MD5Update(&context, src, len);
|
||||
MD5Final(dest, &context);
|
||||
Ano_MD5Init(&context);
|
||||
Ano_MD5Update(&context, src, len);
|
||||
Ano_MD5Final(dest, &context);
|
||||
|
||||
if(debug) {
|
||||
memset(tmp,0,33);
|
||||
binary_to_hex(dest,tmp,16);
|
||||
binary_to_hex((unsigned char *) dest,tmp,16);
|
||||
/* Dont log source if we were encrypting in place :) */
|
||||
if (memcmp(src, dest, 16) != 0) {
|
||||
alog("enc_md5: hashed from [%s] to [%s]",src,tmp);
|
||||
@@ -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);
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user