1
0
mirror of https://github.com/unrealircd/unrealircd.git synced 2026-06-12 17:14:46 +02:00

- Remove ziplinks support, patch from FalconKirtaran. (#4189)

This commit is contained in:
William Pitcock
2013-05-16 06:36:13 +00:00
parent b4424fafb6
commit c41ca43145
27 changed files with 56 additions and 599 deletions
-55
View File
@@ -52,13 +52,6 @@ else
ARG="$ARG--enable-ssl=$SSLDIR "
fi
fi
if [ "$ZIPLINKS" = "1" ] ; then
if test x"$ZIPLINKSDIR" = "x" ; then
ARG="$ARG--enable-ziplinks "
else
ARG="$ARG--enable-ziplinks=$ZIPLINKSDIR "
fi
fi
if [ "$REMOTEINC" = "1" ] ; then
ARG="$ARG--enable-libcurl=$CURLDIR "
fi
@@ -346,9 +339,6 @@ SPATH="`pwd`/src/ircd"
DEFPERM="0600"
CRYPTOIRCD=""
SSLDIR=""
ZIPLINKS=""
ZIPLINKSDIR=""
LISTEN_SIZE="5"
NICKNAMEHISTORYLENGTH="2000"
MAXSENDQLENGTH="3000000"
BUFFERPOOL="18"
@@ -568,49 +558,6 @@ while [ -z "$TEST" ] ; do
esac
done
TEST=""
while [ -z "$TEST" ] ; do
if [ "$ZIPLINKS" = "1" ] ; then
TEST="Yes"
else
TEST="No"
fi
echo ""
echo "Do you want to enable ziplinks support?"
echo $n "[$TEST] -> $c"
read cc
if [ -z "$cc" ] ; then
cc=$TEST
fi
case "$cc" in
[Yy]*)
ZIPLINKS="1"
;;
[Nn]*)
ZIPLINKS=""
;;
*)
echo ""
echo "You must enter either Yes or No"
TEST=""
;;
esac
done
if [ "$ZIPLINKS" = "1" ] ; then
TEST="$ZIPLINKSDIR"
echo ""
echo "If you know the path to zlib on your system, enter it here. If not"
echo "leave this blank"
echo $n "[$TEST] -> $c"
read cc
if [ -z "$cc" ] ; then
ZIPLINKSDIR="$TEST"
else
ZIPLINKSDIR=`eval echo $cc` # modified
fi
fi
TEST=""
while [ -z "$TEST" ] ; do
if [ "$REMOTEINC" = "1" ] ; then
@@ -966,8 +913,6 @@ NICKNAMEHISTORYLENGTH="$NICKNAMEHISTORYLENGTH"
DEFPERM="$DEFPERM"
CRYPTOIRCD="$CRYPTOIRCD"
SSLDIR="$SSLDIR"
ZIPLINKS="$ZIPLINKS"
ZIPLINKSDIR="$ZIPLINKSDIR"
REMOTEINC="$REMOTEINC"
CURLDIR="$CURLDIR"
SHOWLISTMODES="$SHOWLISTMODES"
-44
View File
@@ -207,47 +207,3 @@ AS_IF([test $enable_ssl != "no"],
fi
])
])
AC_DEFUN([CHECK_ZLIB],
[
AC_ARG_ENABLE([ziplinks],
[AC_HELP_STRING([--enable-ziplinks=DIR],[enable ziplinks. will check /usr/local /usr /usr/pkg. Note that SSL does its own compression, so you won't need this for SSL links.])],
[],
[enable_ziplinks=no])
AS_IF([test $enable_ziplinks != "no"],
[
AC_MSG_CHECKING([for zlib])
for dir in $enable_ziplinks /usr/local /usr /usr/pkg; do
zlibdir="$dir"
if test -f "$dir/include/zlib.h"; then
AC_MSG_RESULT(found in $zlibdir)
found_zlib="yes";
if test "$zlibdir" != "/usr" ; then
CFLAGS="$CFLAGS -I$zlibdir/include";
fi
AC_DEFINE([ZIP_LINKS], [], [Define if you have zlib and want zip links support.])
break
fi
done
if test x_$found_zlib != x_yes; then
AC_MSG_RESULT([not found])
echo ""
echo "Apparently you do not have the zlib development library installed."
echo "You have two options:"
echo "a) Install the zlib development library"
echo " and run ./Config"
echo "OR"
echo "b) If you don't need compressed links..."
echo " Run ./Config and say 'no' when asked about ziplinks support"
echo ""
exit 1
else
IRCDLIBS="$IRCDLIBS -lz"
if test "$zlibdir" != "/usr" ; then
LDFLAGS="$LDFLAGS -L$zlibdir/lib"
fi
HAVE_ZLIB=yes
fi
AC_SUBST([HAVE_ZLIB])
])
])
Vendored
-55
View File
@@ -633,7 +633,6 @@ TRE_CFLAGS
FD_SETSIZE
BINDIR
IRCDDIR
HAVE_ZLIB
MODULEFLAGS
CRYPTOLIB
STRTOUL
@@ -719,7 +718,6 @@ with_disable_extendedban_stacking
with_system_tre
with_system_cares
enable_ssl
enable_ziplinks
enable_dynamic_linking
enable_inet6
enable_libcurl
@@ -1350,9 +1348,6 @@ Optional Features:
--disable-prefixaq Enable chanadmin (+a) and chanowner (+q) prefixes
--enable-ssl= enable ssl will check /usr/local/ssl /usr/lib/ssl
/usr/ssl /usr/pkg /usr/sfw /usr/local /usr
--enable-ziplinks=DIR enable ziplinks. will check /usr/local /usr
/usr/pkg. Note that SSL does its own compression, so
you won't need this for SSL links.
--disable-dynamic-linking
Make the IRCd statically link with shared objects
rather than dynamically (noone knows if disabling
@@ -6234,56 +6229,6 @@ $as_echo "#define USE_SSL /**/" >>confdefs.h
fi
# Check whether --enable-ziplinks was given.
if test "${enable_ziplinks+set}" = set; then :
enableval=$enable_ziplinks;
else
enable_ziplinks=no
fi
if test $enable_ziplinks != "no"; then :
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for zlib" >&5
$as_echo_n "checking for zlib... " >&6; }
for dir in $enable_ziplinks /usr/local /usr /usr/pkg; do
zlibdir="$dir"
if test -f "$dir/include/zlib.h"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: found in $zlibdir" >&5
$as_echo "found in $zlibdir" >&6; }
found_zlib="yes";
if test "$zlibdir" != "/usr" ; then
CFLAGS="$CFLAGS -I$zlibdir/include";
fi
$as_echo "#define ZIP_LINKS /**/" >>confdefs.h
break
fi
done
if test x_$found_zlib != x_yes; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
$as_echo "not found" >&6; }
echo ""
echo "Apparently you do not have the zlib development library installed."
echo "You have two options:"
echo "a) Install the zlib development library"
echo " and run ./Config"
echo "OR"
echo "b) If you don't need compressed links..."
echo " Run ./Config and say 'no' when asked about ziplinks support"
echo ""
exit 1
else
IRCDLIBS="$IRCDLIBS -lz"
if test "$zlibdir" != "/usr" ; then
LDFLAGS="$LDFLAGS -L$zlibdir/lib"
fi
HAVE_ZLIB=yes
fi
fi
# Check whether --enable-dynamic-linking was given.
if test "${enable_dynamic_linking+set}" = set; then :
enableval=$enable_dynamic_linking; enable_dynamic_linking=$enableval
-1
View File
@@ -521,7 +521,6 @@ AC_ARG_WITH(disable-extendedban-stacking, [AS_HELP_STRING([--with-disable-extend
AC_ARG_WITH(system-tre, [AS_HELP_STRING([--with-system-tre], [Use the system tre package instead of bundled, discovered using pkg-config])], [], [with_system_tre=no])
AC_ARG_WITH(system-cares, [AS_HELP_STRING([--with-system-cares], [Use the system c-ares (at least version 1.6.0) package instead of bundled c-ares, discovered using pkg-config])], [], [with_system_cares=no])
CHECK_SSL
CHECK_ZLIB
AC_ARG_ENABLE(dynamic-linking, [AS_HELP_STRING([--disable-dynamic-linking], [Make the IRCd statically link with shared objects rather than dynamically (noone knows if disabling dynamic linking actually does anything or not)])],
[enable_dynamic_linking=$enableval], [enable_dynamic_linking="yes"])
AS_IF([test $enable_dynamic_linking = "yes"],
+3 -4
View File
@@ -27,7 +27,7 @@ use the FREE development kit available for Windows 7 explained below:
in your path (eg: put it in c:\windows\system32).
==[ EXTERNAL LIBRARIES ]==
Fetch the external libraries (c-ares, tre, openssl, zlib, curl) from:
Fetch the external libraries (c-ares, tre, openssl, curl) from:
http://www.vulnscan.org/unrealwin32dev/
==[ COMPILING ]==
@@ -40,8 +40,7 @@ http://www.vulnscan.org/unrealwin32dev/
'nmake -f makefile.win32'
B. Don't edit makefile.win32 but instead create a one-line command (which
you can put in a batch file), like this (all on one line!):
nmake -f makefile.win32 USE_ZIPLINKS=1 ZLIB_INC_DIR="c:\dev\zlib"
ZLIB_LIB_DIR="c:\dev\zlib\dll32" USE_SSL=1
nmake -f makefile.win32 USE_SSL=1
OPENSSL_INC_DIR="c:\openssl\include" OPENSSL_LIB_DIR="c:\openssl\lib"
USE_REMOTEINC=1 LIBCURL_INC_DIR="c:\dev\curl-ssl\include"
LIBCURL_LIB_DIR="c:\dev\curl-ssl\lib\dll-release"
@@ -112,7 +111,7 @@ nmake -f makefile.win32 [your other options here]
So basically you just run 'nmake -f makefile.win32 SYMBOLFILE' and then restart
compiling again.
==[ COMPILING ZLIB/SSL/CURL YOURSELF ]==
==[ COMPILING SSL/CURL YOURSELF ]==
This is off-topic and not explained here.
Again, use the stuff from the win32 development pack unless you have a good
reason to do otherwise.
-4
View File
@@ -122,10 +122,6 @@ SJB64 This token allows timestamps to be specified in base64 notation to
characters following the ! represent the timestamp in base64. See
doc/technical/base64.txt for information on the base64 system used.
ZIP If both servers have this set then the link will be (zlib) compressed after
the SERVER message. If one of the servers does not have ZIP in his PROTOCTL
message then the link stays uncompressed.
TKLEXT This allows 10 instead of 8 parameters in TKL's for spamfilter, see s_kline.c
function m_tkl for more info on this (added in 3.2RC2).
-1
View File
@@ -148,7 +148,6 @@
<li>e : Server has SSL Support (#define USE_SSL or answer "yes" (and have ssl libraries installed) to relevant ./Config prompt).</li>
<li>O : Server has OperOverride enabled (#undef NO_OPEROVERRIDE or answer "no" to relevant ./Config prompt).</li>
<li>o : Server has disabled Oper verify (#undef OPEROVERRIDE_VERIFY or answer "no" to relevant ./Config prompt).</li>
<li>Z : Server has ziplink support (#define ZIP_LINKS or answer "yes" to relevant ./Config prompt AND have the zlib dev libraries).</li>
<li>E : Server has extended channel mode support.</li>
<li>3 : 3rd party modules are loaded or some system libraries are wonky.</li>
<li>m : Private message handling is 'tainted' (one or modules registered a USERMSG hook).</li>
-1
View File
@@ -34,6 +34,5 @@ P Uses poll()
e SSL supported
O OperOverride enabled
o OperOverride without verify
Z Zip links supported
3 3rd party modules (were) loaded or unreal is any other way 'tainted' (eg: bad libs)
E Extended channel modes supported
+20 -32
View File
@@ -58,17 +58,16 @@ English |
-- 3.7. <a href="#feature_opercmds">Oper commands</a><br>
-- 3.8. <a href="#feature_ssl">SSL</a><br>
-- 3.9. <a href="#feature_ipv6">IPv6</a><br>
-- 3.10. <a href="#feature_ziplinks">Zip links</a><br>
-- 3.11. <a href="#feature_dyndns">Dynamic DNS/IP linking support</a><br>
-- 3.12. <a href="#feature_antiflood">Anti-flood features</a><br>
-- 3.13. <a href="#feature_bantypes">Ban types</a><br>
-- 3.14. <a href="#feature_spamfilter">Spamfilter</a><br>
-- 3.15. <a href="#feature_cidr">CIDR</a><br>
-- 3.16. <a href="#feature_nickchars">Nick Character Sets</a><br>
-- 3.17. <a href="#feature_cgiirc">CGI:IRC Support</a><br>
-- 3.18. <a href="#feature_timesync">Time Synchronization</a><br>
-- 3.19. <a href="#feature_authtypes">Authentication Types</a><br>
-- 3.20. <a href="#feature_other">Other features</a><br>
-- 3.10. <a href="#feature_dyndns">Dynamic DNS/IP linking support</a><br>
-- 3.11. <a href="#feature_antiflood">Anti-flood features</a><br>
-- 3.12. <a href="#feature_bantypes">Ban types</a><br>
-- 3.13. <a href="#feature_spamfilter">Spamfilter</a><br>
-- 3.14. <a href="#feature_cidr">CIDR</a><br>
-- 3.15. <a href="#feature_nickchars">Nick Character Sets</a><br>
-- 3.16. <a href="#feature_cgiirc">CGI:IRC Support</a><br>
-- 3.17. <a href="#feature_timesync">Time Synchronization</a><br>
-- 3.18. <a href="#feature_authtypes">Authentication Types</a><br>
-- 3.19. <a href="#feature_other">Other features</a><br>
4. <a href="#configuringyourunrealircdconf">Configuring your unrealircd.conf
file</a><br>
---4.1. <a href="#configurationfileexplained">Configuration file explained</a><br>
@@ -344,19 +343,12 @@ because otherwise you will not understand concepts such as 'cloaking', 'snomasks
Your OS needs to have IPv6 support and you need to enable IPv6 support in UnrealIRCd during ./Config as well.<br>
<p>Although microsoft has an experimental IPv6 implementation for w2k/XP it is not (yet) supported by UnrealIRCd.</p></div>
<p><font size="+2"><b>3.10 - Zip links</b></font><a name="feature_ziplinks"></a></p><div class="desc">
<p>Zip links can be turned on for server&lt;-&gt;server links, it compresses the data by using zlib.
It can save 60-80% bandwidth... So it's quite useful for low-bandwidth links or links with
many users, it can help a lot when you are linking since a lot of data is sent about every user/channel/etc.</p>
<p>To compile with zip links support, you need to answer Yes to the zlib question in ./Config and set it in link::options::zip
(on both sides)</p></div>
<p><font size="+2"><b>3.11 - Dynamic DNS/IP linking support</b></font><a name="feature_dyndns"></a></p><div class="desc">
<p><font size="+2"><b>3.10 - Dynamic DNS/IP linking support</b></font><a name="feature_dyndns"></a></p><div class="desc">
<p>UnrealIRCd has some (new) nice features which helps dynamic IP users using dynamic DNS (like blah.dyndns.org).
If you are linking two dynamic DNS hosts, then set link::options::nodnscache and link::options::nohostcheck.
</p></div>
<p><font size="+2"><b>3.12 - Anti-Flood features</b></font><a name="feature_antiflood"></a></p><div class="desc">
<p><font size="+2"><b>3.11 - Anti-Flood features</b></font><a name="feature_antiflood"></a></p><div class="desc">
<p>
<b>Throttling</b><br>
Throttling is a method that allows you to limit how fast a user can disconnect and then reconnect to your server.
@@ -455,7 +447,7 @@ joins and Y is the number of seconds. If a user exceeds this limit, he/she will
from joining the channel.
</p></div>
<p><font size="+2"><b>3.13 - Ban types</b></font><a name="feature_bantypes"></a></p><div class="desc">
<p><font size="+2"><b>3.12 - Ban types</b></font><a name="feature_bantypes"></a></p><div class="desc">
<p>
<b>Basic bantypes and cloaked hosts</b><br>
UnrealIRCd supports the basic bantypes like <i>+b nick!user@host</i>.<br>
@@ -528,7 +520,7 @@ such as <i>+I ~c:#trusted</i> and <i>+I ~a:accountname</i>.<br>
Modules can add other extended ban types.<br>
</p></div>
<p><font size="+2"><b>3.14 - Spamfilter</b></font><a name="feature_spamfilter"></a></p><div class="desc">
<p><font size="+2"><b>3.13 - Spamfilter</b></font><a name="feature_spamfilter"></a></p><div class="desc">
<p>Spamfilter is a new system to fight spam, advertising, worms and other things. It works a bit like
the badwords system but has several advantages.</p>
<p>Spamfilters are added via the /spamfilter command which uses the following syntax:<br>
@@ -619,7 +611,7 @@ This feature is currently not available on Windows.<br>
</p>
</div>
<p><font size="+2"><b>3.15 - CIDR</b></font><a name="feature_cidr"></a></p><div class="desc">
<p><font size="+2"><b>3.14 - CIDR</b></font><a name="feature_cidr"></a></p><div class="desc">
<p>UnrealIRCd now has support for CIDR (Classless Interdomain Routing). CIDR allows you to ban
IP ranges. IPs are allocated to ISPs using CIDR, therefore, being able to set a CIDR based ban
allows you to easily ban an ISP. Unreal supports CIDR for both IPv4 and IPv6. CIDR masks may be
@@ -629,7 +621,7 @@ can be used in /kline, /gline, /zline, /gzline, and /shun. Unreal uses the stand
IP/bits, e.g., 127.0.0.0/8 (matches 127.0.0.0 - 127.255.255.255), and fe80:0:0:123::/64
(matches fe80:0:0:123:0:0:0:0 - fe80:0:0:123:ffff:ffff:ffff:ffff).</p></div>
<p><font size="+2"><b>3.16 - Nick Character Sets</b></font><a name="feature_nickchars"></a></p><div class="desc">
<p><font size="+2"><b>3.15 - Nick Character Sets</b></font><a name="feature_nickchars"></a></p><div class="desc">
<p>UnrealIRCd now has the ability to specify which charsets/languages should be allowed
in nicknames. You do this in <b>set::allowed-nickchars</b>.<br>
A table of all possible choices:<br>
@@ -686,14 +678,14 @@ Example 2, if you have mainly chinese users and want to allow "normal" chinese c
<pre>set { allowed-nickchars { chinese-simp; chinese-trad; }; };</pre>
</p></div>
<p><font size="+2"><b>3.17 - CGI:IRC Support</b></font><a name="feature_cgiirc"></a></p><div class="desc">
<p><font size="+2"><b>3.16 - CGI:IRC Support</b></font><a name="feature_cgiirc"></a></p><div class="desc">
<p>UnrealIRCd has support for CGI:IRC host spoofing, which means you can mark specific CGI:IRC
gateways as "trusted" which will cause the IRCd to show the users' real host/ip everywhere on
IRC, instead of the host/ip of the CGI:IRC-gateway.</p>
<p>See the <a href="#cgiirc">cgiirc block</a> for information on how to configure this.</p>
</div>
<p><font size="+2"><b>3.18 - Time Synchronization</b></font><a name="feature_timesync"></a></p><div class="desc">
<p><font size="+2"><b>3.17 - Time Synchronization</b></font><a name="feature_timesync"></a></p><div class="desc">
<p>Having correct time is extremely important for IRC servers. Without correct time, channels can desynch, innocent
users can be killed, channels might not show up properly in /LIST, in short: huge trouble will arrise.</p>
<p>UnrealIRCd has some build-in time synchronization support.
@@ -708,7 +700,7 @@ the IRCd will continue to boot regardlessly (should rarely happen).</p>
the <a href="#setblock">set documentation</a> for more information.</p>
</div>
<p><font size="+2"><b>3.19 - Authentication Types</b></font><a name="feature_authtypes"></a></p><div class="desc">
<p><font size="+2"><b>3.18 - Authentication Types</b></font><a name="feature_authtypes"></a></p><div class="desc">
<p>At various places in the configuration file, for example the <a
href="#operblock">oper block</a>, <a href="#allowblock">allow block</a> and
<a href="#linkblock">link block</a>, you can authenticate clients by password or other
@@ -780,7 +772,7 @@ available in UnrealIRCd.<br>
Another very useful place to use <tt>sslclientcertfp</tt> is in <a href="#linkblock_passwordreceive">link::password-receive</a>
</p></div>
<p><font size="+2"><b>3.20 - Other features</b></font><a name="feature_other"></a></p><div class="desc">
<p><font size="+2"><b>3.19 - Other features</b></font><a name="feature_other"></a></p><div class="desc">
<p>UnrealIRCd has a lot of features so not everything is covered here... You'll find that out by yourself.</p></div>
<p> </p>
@@ -2120,9 +2112,6 @@ link &lt;server-name&gt; {
<p><b>class</b><br>
The class this server is put into, often a separate server class is used for this.
</p>
<p><b>compression-level</b> (optional)<br>
Specifies the compression level (1-9) for this link. Only used if link::options::zip is set.
</p>
<p><b>ciphers</b> (optional)<br>
Specifies the SSL ciphers to use for this link. To obtain a list of available ciphers, use
the `openssl ciphers` command. Ciphers should be specified as a : separated list.
@@ -3658,7 +3647,6 @@ to get more information on a command.</p>
V - vhost - Send the vhost block list<br>
X - notlink - Send the list of servers that are not current linked<br>
Y - class - Send the class block list<br>
z - zip - Send compression information about ziplinked servers (if compiled with ziplinks support)<br>
Z - mem - Send memory usage information<br>
</td>
<td>All</td>
+5 -10
View File
@@ -22,8 +22,8 @@
#include "version.h"
/* What all this is for? Well, it's simple...
* Example: When someone compiles a module with zip support, but the
* core was not compiled with zip support, then the module will read
* Example: When someone compiles a module with ssl support, but the
* core was not compiled with ssl support, then the module will read
* things incorrect in the struct because the module sees an extra
* field half-way the struct but in the core that field does not exist,
* hence all data is shifted 4 bytes causing all kinds of odd crashes,
@@ -32,7 +32,7 @@
* options that cause binary incompatability (eg: changing nicklen),
* we just take the most common ones...
*
* NOTE: On win32 we allow ssl and zip inconsistencies because we
* NOTE: On win32 we allow ssl inconsistencies because we
* explicitly use "padding" in the structs: we add a useless
* placeholder so everything is still aligned correctly.
* In the process of doing so, we waste several bytes per-user,
@@ -44,11 +44,6 @@
#else
#define MYTOKEN_SSL ""
#endif
#if defined(ZIP_LINKS) && !defined(_WIN32)
#define MYTOKEN_ZIP "/ZIP"
#else
#define MYTOKEN_ZIP ""
#endif
#if !defined(JOINTHROTTLE)
#define MYTOKEN_JOINTHROTTLE "/NOJTHR"
#else
@@ -79,12 +74,12 @@
#ifdef UNREALCORE
char our_mod_version[] = BASE_VERSION PATCH1 PATCH2 PATCH3 PATCH4 PATCH6 PATCH7 PATCH8 PATCH9 \
MYTOKEN_SSL MYTOKEN_ZIP MYTOKEN_JOINTHROTTLE \
MYTOKEN_SSL MYTOKEN_JOINTHROTTLE \
MYTOKEN_NOFLDAWAY MYTOKEN_NEWCHF MYTOKEN_INET6;
unsigned int our_compiler_version = GCCVER;
#else
DLLFUNC char Mod_Version[] = BASE_VERSION PATCH1 PATCH2 PATCH3 PATCH4 PATCH6 PATCH7 PATCH8 PATCH9 \
MYTOKEN_SSL MYTOKEN_ZIP MYTOKEN_JOINTHROTTLE \
MYTOKEN_SSL MYTOKEN_JOINTHROTTLE \
MYTOKEN_NOFLDAWAY MYTOKEN_NEWCHF MYTOKEN_INET6;
DLLFUNC unsigned int compiler_version = GCCVER;
#endif
-3
View File
@@ -390,9 +390,6 @@
/* Define if you want to allow SSL connections */
#undef USE_SSL
/* Define if you have zlib and want zip links support. */
#undef ZIP_LINKS
/* Define if you are compiling unrealircd on Sun's (or Oracle's?) Solaris */
#undef _SOLARIS
+3 -33
View File
@@ -61,9 +61,6 @@
# include <sys/syslog.h>
# endif
#endif
#ifdef ZIP_LINKS
#include "zip.h"
#endif
#include "auth.h"
#include "tre/regex.h"
@@ -155,10 +152,6 @@ typedef struct SMembershipL MembershipL;
typedef struct JFlood aJFlood;
typedef struct PendingNet aPendingNet;
#ifdef ZIP_LINKS
typedef struct Zdata aZdata;
#endif
#ifdef NEED_U_INT32_T
typedef unsigned int u_int32_t; /* XXX Hope this works! */
#endif
@@ -324,9 +317,7 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
#define FLAGS_NETINFO 0x200000
#define FLAGS_HYBNOTICE 0x400000
#define FLAGS_QUARANTINE 0x800000
#ifdef ZIP_LINKS
#define FLAGS_ZIP 0x1000000
#endif
//0x1000000 unused (was ziplinks)
#define FLAGS_DCCNOTICE 0x2000000 /* Has the user seen a notice on how to use DCCALLOW already? */
#define FLAGS_SHUNNED 0x4000000
#define FLAGS_VIRUS 0x8000000 /* tagged by spamfilter */
@@ -357,7 +348,7 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
#define PROTO_NICKv2 0x0008 /* Negotiated NICKv2 protocol */
#define PROTO_SJOIN2 0x0010 /* Negotiated SJOIN2 protocol */
#define PROTO_UMODE2 0x0020 /* Negotiated UMODE2 protocol */
#define PROTO_ZIP 0x0080 /* Negotiated ZIP protocol */
//0x0080 unused (was ziplinks)
#define PROTO_VL 0x0100 /* Negotiated VL protocol */
#define PROTO_SJ3 0x0200 /* Negotiated SJ3 protocol */
#define PROTO_VHP 0x0400 /* Send hostnames in NICKv2 even if not sethosted */
@@ -431,14 +422,6 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
#define IsSecure(x) (0)
#endif
#ifdef ZIP_LINKS
#define IsZipped(x) ((x)->flags & FLAGS_ZIP)
#define IsZipStart(x) (((x)->flags & FLAGS_ZIP) && ((x)->zip->first == 1))
#else
#define IsZipped(x) (0)
#define IsZipStart(x) (0)
#endif
/* Fake lag exception */
#define IsNoFakeLag(x) ((x)->flags & FLAGS_NOFAKELAG)
#define SetNoFakeLag(x) ((x)->flags |= FLAGS_NOFAKELAG)
@@ -504,11 +487,6 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
#define ClearHidden(x) ((x)->umodes &= ~UMODE_HIDE)
#define ClearHideOper(x) ((x)->umodes &= ~UMODE_HIDEOPER)
#ifdef ZIP_LINKS
#define SetZipped(x) ((x)->flags |= FLAGS_ZIP)
#define ClearZipped(x) ((x)->flags &= ~FLAGS_ZIP)
#endif
/*
* ProtoCtl options
*/
@@ -969,7 +947,7 @@ typedef struct {
#define IsServersOnlyListener(x) ((x) && ((x)->options & LISTENER_SERVERSONLY))
#define CONNECT_SSL 0x000001
#define CONNECT_ZIP 0x000002
//0x000002 unused (was ziplinks)
#define CONNECT_AUTO 0x000004
#define CONNECT_QUARANTINE 0x000008
#define CONNECT_NODNSCACHE 0x000010
@@ -1028,11 +1006,6 @@ struct Client {
long sendM; /* Statistics: protocol messages send */
long sendK; /* Statistics: total k-bytes send */
long receiveM; /* Statistics: protocol messages received */
#ifdef ZIP_LINKS
struct Zdata *zip; /* zip data */
#elif defined(_WIN32)
void *zip_NOTUSED; /* (win32 binary compatability) */
#endif
#ifdef USE_SSL
SSL *ssl;
#elif defined(_WIN32)
@@ -1289,9 +1262,6 @@ struct _configitem_link {
#elif defined(_WIN32)
void *ciphers_NOTUSED;
#endif
#ifdef ZIP_LINKS
int compression_level;
#endif
};
typedef enum {
+12 -43
View File
@@ -10,7 +10,7 @@ MT=mt
# You are encouraged NOT to set these values here, but instead make a batch file
# which passes all these arguments to nmake, like:
# nmake -f makefile.win32 USE_ZIPLINKS=1 ZLIB_INC_DIR="c:\dev\zlib" etc etc...
# nmake -f makefile.win32 USE_SSL=1 OPENSSL_INC_DIR="c:\dev\openssl" etc etc...
# Both ways will work, but if you use a batch file it's easier with
# upgrading Unreal as you won't have to edit this makefile again.
@@ -40,22 +40,6 @@ MT=mt
#
### END REMOTE INCLUDES ##
#### ZIPLINKS SUPPORT ####
#To enable ziplinks support you must have zlib installed on your system
#you can get a pre-built zlib library from http://www.winimage.com/zLibDll/
#
#
#To enable ziplinks uncomment the next line:
#USE_ZIPLINKS=1
#
#If your zlib library and include files are not in your compiler's
#default locations, specify the locations here:
#ZLIB_INC_DIR="c:\dev\zlib"
#ZLIB_LIB_DIR="c:\dev\zlib\dll32"
#
#
###### END ZIPLINKS ######
####### SSL SUPPORT ######
#To enable SSL support you must have OpenSSL installed on your system
#
@@ -116,18 +100,6 @@ LIBCURL_LIB=/LIBPATH:"$(LIBCURL_LIB_DIR)"
!ENDIF
!ENDIF
!IFDEF USE_ZIPLINKS
ZIPCFLAGS=/D ZIP_LINKS /D ZLIB_DLL
ZIPOBJ=SRC/ZIP.OBJ
ZIPLIB=zlibwapi.lib
!IFDEF ZLIB_INC_DIR
ZLIB_INC=/I "$(ZLIB_INC_DIR)"
!ENDIF
!IFDEF ZLIB_LIB_DIR
ZLIB_LIB=/LIBPATH:"$(ZLIB_LIB_DIR)"
!ENDIF
!ENDIF
!IFDEF USE_SSL
SSLCFLAGS=/D USE_SSL
SSLLIBS=ssleay32.lib libeay32.lib
@@ -152,19 +124,19 @@ MODDBGCFLAG=/LDd /MD /Zi
!ENDIF
FD_SETSIZE=/D FD_SETSIZE=16384
CFLAGS=$(DBGCFLAG) $(TRE_INC) $(CARES_INC) $(LIBCURL_INC) $(ZLIB_INC) $(OPENSSL_INC) /J /I ./INCLUDE /I ./INCLUDE/WIN32/ARES /Fosrc/ /nologo \
$(ZIPCFLAGS) $(CURLCFLAGS) $(FD_SETSIZE) $(SSLCFLAGS) $(NS_ADDRESS) /D NOSPOOF=1 /c /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _USE_32BIT_TIME_T
CFLAGSST=$(DBGCFLAGST) $(TRE_INC) $(CARES_INC) $(LIBCURL_INC) $(ZLIB_INC) $(OPENSSL_INC) /J /I ./INCLUDE /I ./INCLUDE/WIN32/ARES /Fosrc/ /nologo \
$(ZIPCFLAGS) $(CURLCFLAGS) $(FD_SETSIZE) $(SSLCFLAGS) $(NS_ADDRESS) /D NOSPOOF=1 /c /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _USE_32BIT_TIME_T
CFLAGS=$(DBGCFLAG) $(TRE_INC) $(CARES_INC) $(LIBCURL_INC) $(OPENSSL_INC) /J /I ./INCLUDE /I ./INCLUDE/WIN32/ARES /Fosrc/ /nologo \
$(CURLCFLAGS) $(FD_SETSIZE) $(SSLCFLAGS) $(NS_ADDRESS) /D NOSPOOF=1 /c /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _USE_32BIT_TIME_T
CFLAGSST=$(DBGCFLAGST) $(TRE_INC) $(CARES_INC) $(LIBCURL_INC) $(OPENSSL_INC) /J /I ./INCLUDE /I ./INCLUDE/WIN32/ARES /Fosrc/ /nologo \
$(CURLCFLAGS) $(FD_SETSIZE) $(SSLCFLAGS) $(NS_ADDRESS) /D NOSPOOF=1 /c /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _USE_32BIT_TIME_T
LFLAGS=kernel32.lib user32.lib gdi32.lib shell32.lib ws2_32.lib advapi32.lib \
dbghelp.lib oldnames.lib comctl32.lib comdlg32.lib $(CARES_LIB) $(CARESLIB) $(TRE_LIB) $(TRELIB) $(ZLIB_LIB) $(ZIPLIB) \
dbghelp.lib oldnames.lib comctl32.lib comdlg32.lib $(CARES_LIB) $(CARESLIB) $(TRE_LIB) $(TRELIB) \
$(OPENSSL_LIB) $(SSLLIBS) $(LIBCURL_LIB) $(CURLLIB) /def:wircd.def /implib:wircd.lib \
/nologo $(DBGLFLAG) /out:WIRCD.EXE
MODCFLAGS=$(MODDBGCFLAG) $(SSLCFLAGS) $(ZIPCFLAGS) $(CURLCFLAGS) /J /Fesrc/modules/ \
/Fosrc/modules/ /nologo $(TRE_INC) $(CARES_INC) $(LIBCURL_INC) $(ZLIB_INC) $(OPENSSL_INC) /I ./INCLUDE /D \
MODCFLAGS=$(MODDBGCFLAG) $(SSLCFLAGS) $(CURLCFLAGS) /J /Fesrc/modules/ \
/Fosrc/modules/ /nologo $(TRE_INC) $(CARES_INC) $(LIBCURL_INC) $(OPENSSL_INC) /I ./INCLUDE /D \
DYNAMIC_LINKING /D NOSPOOF /D MODULE_COMPILE /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _USE_32BIT_TIME_T
MODLFLAGS=/link /def:src/modules/module.def wircd.lib ws2_32.lib $(TRE_LIB) $(TRELIB) $(CARES_LIB) $(OPENSSL_LIB) $(SSLLIBS) \
$(ZLIB_LIB) $(ZIPLIB) $(LIBCURL_LIB) $(CURLLIB)
$(LIBCURL_LIB) $(CURLLIB)
INCLUDES=./include/struct.h ./include/config.h ./include/sys.h \
./include/common.h ./include/version.h ./include/h.h ./include/numeric.h \
@@ -182,7 +154,7 @@ EXP_OBJ_FILES=SRC/CHANNEL.OBJ SRC/SEND.OBJ SRC/SOCKET.OBJ \
SRC/SCACHE.OBJ SRC/ALN.OBJ SRC/RES.OBJ SRC/MODULES.OBJ \
SRC/S_SVS.OBJ SRC/EVENTS.OBJ SRC/UMODES.OBJ SRC/AUTH.OBJ SRC/CIDR.OBJ SRC/SSL.OBJ \
SRC/RANDOM.OBJ SRC/EXTCMODES.OBJ SRC/MD5.OBJ SRC/API-ISUPPORT.OBJ SRC/API-COMMAND.OBJ \
SRC/EXTBANS.OBJ SRC/TIMESYNCH.OBJ $(ZIPOBJ) $(CURLOBJ)
SRC/EXTBANS.OBJ SRC/TIMESYNCH.OBJ $(CURLOBJ)
OBJ_FILES=$(EXP_OBJ_FILES) SRC/GUI.OBJ SRC/SERVICE.OBJ SRC/DEBUG.OBJ SRC/RTF.OBJ \
SRC/EDITOR.OBJ SRC/WIN32.OBJ
@@ -475,9 +447,6 @@ src/api-isupport.obj: src/api-isupport.c $(INCLUDES)
src/api-command.obj: src/api-command.c $(INCLUDES)
$(CC) $(CFLAGS) src/api-command.c
src/zip.obj: src/zip.c $(INCLUDES)
$(CC) $(CFLAGS) src/zip.c
src/ssl.obj: src/ssl.c $(INCLUDES)
$(CC) $(CFLAGS) src/ssl.c
@@ -503,8 +472,8 @@ SYMBOLFILE:
MODULES: $(DLL_FILES)
src/modules/commands.dll: $(MOD_FILES) $(INCLUDES)
$(CC) $(MODDBGCFLAG) $(LIBCURL_INC) $(ZLIB_INC) $(OPENSSL_INC) /nologo \
$(SSLCFLAGS) $(ZIPCFLAGS) $(CURLCFLAGS) $(TRE_INC) /Fosrc/modules/ \
$(CC) $(MODDBGCFLAG) $(LIBCURL_INC) $(OPENSSL_INC) /nologo \
$(SSLCFLAGS) $(CURLCFLAGS) $(TRE_INC) /Fosrc/modules/ \
/I ./INCLUDE /D NOSPOOF /D MODULE_COMPILE /D _CRT_SECURE_NO_DEPRECATE \
/D _USE_32BIT_TIME_T $(MOD_FILES) \
$(MODLFLAGS) /OUT:src/modules/commands.dll
+2 -5
View File
@@ -27,7 +27,7 @@ OBJS=timesynch.o res.o s_bsd.o auth.o aln.o channel.o cloak.o crule.o dbuf.o \
s_conf.o s_debug.o s_dispatch.o s_err.o s_extra.o s_kline.o \
s_misc.o s_numeric.o s_serv.o s_svs.o $(STRTOUL) socket.o \
ssl.o s_user.o charsys.o scache.o send.o support.o umodes.o \
version.o whowas.o zip.o cidr.o random.o extcmodes.o \
version.o whowas.o cidr.o random.o extcmodes.o \
extbans.o md5.o api-isupport.o api-command.o $(URL)
SRC=$(OBJS:%.o=%.c)
@@ -53,7 +53,7 @@ INCLUDES = ../include/auth.h ../include/badwords.h ../include/channel.h \
../include/resource.h ../include/setup.h ../include/sjoin.h \
../include/sock.h ../include/ssl.h ../include/struct.h ../include/sys.h \
../include/threads.h ../include/types.h ../include/url.h \
../include/version.h ../include/whowas.h ../include/zip.h
../include/version.h ../include/whowas.h
all: build
@@ -112,9 +112,6 @@ aln.o: aln.c $(INCLUDES)
auth.o: auth.c $(INCLUDES)
$(CC) $(CFLAGS) -c auth.c
zip.o: zip.c $(INCLUDES)
$(CC) $(CFLAGS) -c zip.c
send.o: send.c $(INCLUDES)
$(CC) $(CFLAGS) -c send.c
+3 -16
View File
@@ -750,7 +750,7 @@ char buf[1024];
#endif
}
/** Ugly version checker that ensures zlib/ssl/curl runtime libraries match the
/** Ugly version checker that ensures ssl/curl runtime libraries match the
* version we compiled for.
*/
static void do_version_check()
@@ -768,19 +768,9 @@ int error = 0;
error=1;
}
#endif
#ifdef ZIP_LINKS
runtime = zlibVersion();
compiledfor = ZLIB_VERSION;
if (*compiledfor != *runtime)
{
version_check_logerror("Zlib version mismatch: compiled for '%s', library is '%s'",
compiledfor, runtime);
error = 1;
}
#endif
#ifdef USE_LIBCURL
/* Perhaps someone should tell them to do this a bit more easy ;)
* problem is runtime output is like: 'libcurl/7.11.1 zlib/1.2.1 c-ares/1.2.0'
* problem is runtime output is like: 'libcurl/7.11.1 c-ares/1.2.0'
* while header output is like: '7.11.1'.
*/
{
@@ -810,7 +800,7 @@ int error = 0;
{
#ifndef _WIN32
version_check_logerror("Header<->library mismatches can make UnrealIRCd *CRASH*! "
"Make sure you don't have multiple versions of openssl or zlib installed (eg: "
"Make sure you don't have multiple versions of openssl installed (eg: "
"one in /usr and one in /usr/local). And, if you recently upgraded them, "
"be sure to recompile Unreal.");
#else
@@ -1355,9 +1345,6 @@ int InitwIRCD(int argc, char *argv[])
#ifdef USE_SSL
fprintf(stderr, " using %s\n", SSLeay_version(SSLEAY_VERSION));
#endif
#ifdef ZIP_LINKS
fprintf(stderr, " using zlib %s\n", zlibVersion());
#endif
#ifdef USE_LIBCURL
fprintf(stderr, " using %s\n", curl_version());
#endif
-4
View File
@@ -178,10 +178,6 @@ void free_client(aClient *cptr)
MyFree((char *)cptr->passwd);
if (cptr->error_str)
MyFree(cptr->error_str);
#ifdef ZIP_LINKS
if (cptr->zip)
zip_free(cptr);
#endif
if (cptr->hostp)
unreal_free_hostent(cptr->hostp);
}
+1 -1
View File
@@ -30,7 +30,7 @@ INCLUDES = ../include/auth.h ../include/badwords.h ../include/channel.h \
../include/resource.h ../include/setup.h ../include/sjoin.h \
../include/sock.h ../include/ssl.h ../include/struct.h ../include/sys.h \
../include/threads.h ../include/types.h ../include/url.h \
../include/version.h ../include/whowas.h ../include/zip.h
../include/version.h ../include/whowas.h
R_MODULES= \
m_sethost.so m_chghost.so m_chgident.so m_setname.so \
-11
View File
@@ -149,17 +149,6 @@ DLLFUNC CMD_FUNC(m_netinfo)
("Link %s -> %s is now synced [secs: %li recv: %ld.%hu sent: %ld.%hu]",
cptr->name, me.name, (TStime() - endsync), sptr->receiveK,
sptr->receiveB, sptr->sendK, sptr->sendB);
#ifdef ZIP_LINKS
if ((MyConnect(cptr)) && (IsZipped(cptr)) && cptr->zip->in->total_out && cptr->zip->out->total_in) {
sendto_realops
("Zipstats for link to %s: decompressed (in): %01lu=>%01lu (%3.1f%%), compressed (out): %01lu=>%01lu (%3.1f%%)",
get_client_name(cptr, TRUE),
cptr->zip->in->total_in, cptr->zip->in->total_out,
(100.0*(float)cptr->zip->in->total_in) /(float)cptr->zip->in->total_out,
cptr->zip->out->total_in, cptr->zip->out->total_out,
(100.0*(float)cptr->zip->out->total_out) /(float)cptr->zip->out->total_in);
}
#endif
sendto_serv_butone(&me,
":%s SMO o :\2(sync)\2 Link %s -> %s is now synced [secs: %li recv: %ld.%hu sent: %ld.%hu]",
-12
View File
@@ -280,18 +280,6 @@ CMD_FUNC(m_protoctl)
proto, cptr->name));
cptr->proto |= PROTO_SJB64;
}
else if (strcmp(s, "ZIP") == 0)
{
if (remove)
{
cptr->proto &= ~PROTO_ZIP;
continue;
}
Debug((DEBUG_ERROR,
"Chose protocol %s for link %s",
proto, cptr->name));
cptr->proto |= PROTO_ZIP;
}
else if (strcmp(s, "TKLEXT") == 0)
{
Debug((DEBUG_ERROR, "Chose protocol %s for link %s", proto, cptr->name));
+4 -37
View File
@@ -628,36 +628,7 @@ int m_server_synch(aClient *cptr, ConfigItem_link *aconf)
sendto_one(cptr, "SERVER %s 1 :%s",
me.name, me.info);
}
#ifdef ZIP_LINKS
if (aconf->options & CONNECT_ZIP)
{
if (cptr->proto & PROTO_ZIP)
{
if (zip_init(cptr, aconf->compression_level ? aconf->compression_level : ZIP_DEFAULT_LEVEL) == -1)
{
zip_free(cptr);
sendto_realops("Unable to setup compressed link for %s", get_client_name(cptr, TRUE));
return exit_client(cptr, cptr, &me, "zip_init() failed");
}
SetZipped(cptr);
cptr->zip->first = 1;
} else {
sendto_realops("WARNING: Remote doesnt have link::options::zip set. Compression disabled.");
}
}
#endif
#if 0
/* Disabled because it may generate false warning when linking with cvs versions between b14 en b15 -- Syzop */
if ((cptr->proto & PROTO_ZIP) && !(aconf->options & CONNECT_ZIP))
{
#ifdef ZIP_LINKS
sendto_realops("WARNING: Remote requested compressed link, but we don't have link::options::zip set. Compression disabled.");
#else
sendto_realops("WARNING: Remote requested compressed link, but we don't have zip links support compiled in. Compression disabled.");
#endif
}
#endif
/* Set up server structure */
free_pending_net(cptr);
SetServer(cptr);
@@ -673,23 +644,19 @@ int m_server_synch(aClient *cptr, ConfigItem_link *aconf)
#ifdef USE_SSL
if (IsSecure(cptr))
{
sendto_serv_butone(&me, ":%s SMO o :(\2link\2) Secure %slink %s -> %s established (%s)",
sendto_serv_butone(&me, ":%s SMO o :(\2link\2) Secure link %s -> %s established (%s)",
me.name,
IsZipped(cptr) ? "ZIP" : "",
me.name, inpath, (char *) ssl_get_cipher((SSL *)cptr->ssl));
sendto_realops("(\2link\2) Secure %slink %s -> %s established (%s)",
IsZipped(cptr) ? "ZIP" : "",
sendto_realops("(\2link\2) Secure link %s -> %s established (%s)",
me.name, inpath, (char *) ssl_get_cipher((SSL *)cptr->ssl));
}
else
#endif
{
sendto_serv_butone(&me, ":%s SMO o :(\2link\2) %sLink %s -> %s established",
sendto_serv_butone(&me, ":%s SMO o :(\2link\2) Link %s -> %s established",
me.name,
IsZipped(cptr) ? "ZIP" : "",
me.name, inpath);
sendto_realops("(\2link\2) %sLink %s -> %s established",
IsZipped(cptr) ? "ZIP" : "",
sendto_realops("(\2link\2) Link %s -> %s established",
me.name, inpath);
}
(void)add_to_client_hash_table(cptr->name, cptr);
+1 -38
View File
@@ -111,7 +111,6 @@ int stats_uptime(aClient *, char *);
int stats_denyver(aClient *, char *);
int stats_notlink(aClient *, char *);
int stats_class(aClient *, char *);
int stats_zip(aClient *, char *);
int stats_officialchannels(aClient *, char *);
int stats_spamfilter(aClient *, char *);
int stats_fdtable(aClient *, char *);
@@ -173,7 +172,6 @@ struct statstab StatsTable[] = {
{ 'v', "denyver", stats_denyver, 0 },
{ 'x', "notlink", stats_notlink, 0 },
{ 'y', "class", stats_class, 0 },
{ 'z', "zip", stats_zip, 0 },
{ 0, NULL, NULL, 0 }
};
@@ -312,10 +310,6 @@ inline void stats_help(aClient *sptr)
"X - notlink - Send the list of servers that are not current linked");
sendto_one(sptr, rpl_str(RPL_STATSHELP), me.name, sptr->name,
"Y - class - Send the class block list");
#ifdef ZIP_LINKS
sendto_one(sptr, rpl_str(RPL_STATSHELP), me.name, sptr->name,
"z - zip - Send compression information about ziplinked servers");
#endif
sendto_one(sptr, rpl_str(RPL_STATSHELP), me.name, sptr->name,
"Z - mem - Send memory usage information");
}
@@ -502,14 +496,13 @@ int stats_links(aClient *sptr, char *para)
#endif
for (link_p = conf_link; link_p; link_p = (ConfigItem_link *) link_p->next)
{
sendto_one(sptr, ":%s 213 %s C %s@%s * %s %i %s %s%s%s%s%s%s",
sendto_one(sptr, ":%s 213 %s C %s@%s * %s %i %s %s%s%s%s%s",
me.name, sptr->name, IsOper(sptr) ? link_p->username : "*",
IsOper(sptr) ? link_p->hostname : "*", link_p->servername,
link_p->port,
link_p->class->name,
(link_p->options & CONNECT_AUTO) ? "a" : "",
(link_p->options & CONNECT_SSL) ? "S" : "",
(link_p->options & CONNECT_ZIP) ? "z" : "",
(link_p->options & CONNECT_NODNSCACHE) ? "d" : "",
(link_p->options & CONNECT_NOHOSTCHECK) ? "h" : "",
(link_p->flag.temporary == 1) ? "T" : "");
@@ -1453,36 +1446,6 @@ int stats_class(aClient *sptr, char *para)
return 0;
}
int stats_zip(aClient *sptr, char *para)
{
#ifdef ZIP_LINKS
aClient *acptr;
list_for_each_entry(acptr, &server_list, special_node)
{
if (!IsZipped(acptr))
continue;
if (acptr->zip->in->total_out && acptr->zip->out->total_in)
{
sendto_one(sptr,
":%s %i %s :Zipstats for link to %s (compresslevel %d): decompressed (in): %01lu=>%01lu (%3.1f%%), compressed (out): %01lu=>%01lu (%3.1f%%)",
me.name, RPL_TEXT, sptr->name,
IsAnOper(sptr) ? get_client_name(acptr, TRUE) : acptr->name,
acptr->serv->conf->compression_level ?
acptr->serv->conf->compression_level : ZIP_DEFAULT_LEVEL,
acptr->zip->in->total_in, acptr->zip->in->total_out,
(100.0*(float)acptr->zip->in->total_in) /(float)acptr->zip->in->total_out,
acptr->zip->out->total_in, acptr->zip->out->total_out,
(100.0*(float)acptr->zip->out->total_out) /(float)acptr->zip->out->total_in);
}
else
sendto_one(sptr, ":%s %i %s :Zipstats for link to %s: unavailable",
me.name, RPL_TEXT, sptr->name, acptr->name);
}
#endif
return 0;
}
int stats_linkinfo(aClient *sptr, char *para)
{
return stats_linkinfoint(sptr, para, 0);
-88
View File
@@ -48,10 +48,6 @@ int dopacket(aClient *cptr, char *buffer, int length)
{
char *ch1;
char *ch2;
#ifdef ZIP_LINKS
int zipped = 0;
int done_unzip = 0;
#endif
me.receiveB += length; /* Update bytes received */
cptr->receiveB += length;
@@ -67,40 +63,7 @@ int dopacket(aClient *cptr, char *buffer, int length)
}
ch1 = cptr->buffer + cptr->count;
ch2 = buffer;
#ifdef ZIP_LINKS
if (IsZipStart(cptr))
{
if (*ch2 == '\n' || *ch2 == '\r')
{
ch2++;
length--;
}
cptr->zip->first = 0;
} else {
done_unzip = 1;
}
if (IsZipped(cptr))
{
/* uncompressed buffer first */
zipped = length;
cptr->zip->inbuf[0] = '\0'; /* unnecessary but nicer for debugging */
cptr->zip->incount = 0;
ch2 = unzip_packet(cptr, ch2, &zipped);
length = zipped;
zipped = 1;
if (length == -1)
return exit_client(cptr, cptr, &me,
"fatal error in unzip_packet(1)");
}
/* While there is "stuff" in the compressed input to deal with,
* keep loop parsing it. I have to go through this loop at least once.
* -Dianora
*/
do
{
#endif
while (--length >= 0)
{
char g = (*ch1 = *ch2++);
@@ -136,63 +99,12 @@ int dopacket(aClient *cptr, char *buffer, int length)
if (cptr->flags & FLAGS_DEADSOCKET)
return exit_client(cptr, cptr, &me,
cptr->error_str ? cptr->error_str : "Dead socket");
#ifdef ZIP_LINKS
if ((IsZipped(cptr)) && (zipped == 0) && (length > 0))
{
/*
** beginning of server connection, the buffer
** contained PASS/CAPAB/SERVER and is now
** zipped!
** Ignore the '\n' that should be here.
*/
/* Checked RFC1950: \r or \n can't start a
** zlib stream -orabidoo
*/
zipped = length;
if (zipped > 0 && (*ch2 == '\n' || *ch2 == '\r'))
{
ch2++;
zipped--;
}
cptr->zip->first = 0;
ch2 = unzip_packet(cptr, ch2, &zipped);
length = zipped;
zipped = 1;
if (length == -1)
return exit_client(cptr, cptr, &me,
"fatal error in unzip_packet(2)");
}
#endif
ch1 = cptr->buffer;
}
else if (ch1 <
cptr->buffer + (sizeof(cptr->buffer) - 1))
ch1++; /* There is always room for the null */
}
#ifdef ZIP_LINKS
/* Now see if anything is left uncompressed in the input
* If so, uncompress it and continue to parse
* -Dianora
*/
if ((IsZipped(cptr)) && cptr->zip->incount)
{
/* This call simply finishes unzipping whats left
* second parameter is not used. -Dianora
*/
ch2 = unzip_packet(cptr, (char *)NULL, &zipped);
length = zipped;
zipped = 1;
if (length == -1)
return exit_client(cptr, cptr, &me,
"fatal error in unzip_packet(3)");
ch1 = ch2 + length;
done_unzip = 0;
} else {
done_unzip = 1;
}
} while(!done_unzip);
#endif
cptr->count = ch1 - cptr->buffer;
return 0;
}
-34
View File
@@ -263,7 +263,6 @@ static OperFlag _LinkFlags[] = {
{ CONNECT_NOHOSTCHECK, "nohostcheck" },
{ CONNECT_QUARANTINE, "quarantine"},
{ CONNECT_SSL, "ssl" },
{ CONNECT_ZIP, "zip" },
};
/* This MUST be alphabetized */
@@ -6471,10 +6470,6 @@ int _conf_link(ConfigFile *conf, ConfigEntry *ce)
#ifdef USE_SSL
else if (!strcmp(cep->ce_varname, "ciphers"))
link->ciphers = strdup(cep->ce_vardata);
#endif
#ifdef ZIP_LINKS
else if (!strcmp(cep->ce_varname, "compression-level"))
link->compression_level = atoi(cep->ce_vardata);
#endif
}
AddListItem(link, conf_link);
@@ -6492,9 +6487,6 @@ int _test_link(ConfigFile *conf, ConfigEntry *ce)
char has_options = 0;
char has_autoconnect = 0;
char has_hostname_wildcards = 0;
#ifdef ZIP_LINKS
char has_compressionlevel = 0;
#endif
if (!ce->ce_vardata)
{
config_error("%s:%i: link without servername",
@@ -6551,14 +6543,6 @@ int _test_link(ConfigFile *conf, ConfigEntry *ce)
errors++;
}
#endif
#ifndef ZIP_LINKS
if (ofp->flag == CONNECT_ZIP)
{
config_error("%s:%i: link %s with ZIP option enabled on a non-ZIP compile",
cep->ce_fileptr->cf_filename, cep->ce_varlinenum, ce->ce_vardata);
errors++;
}
#endif
if (ofp->flag == CONNECT_AUTO)
{
has_autoconnect = 1;
@@ -6747,24 +6731,6 @@ int _test_link(ConfigFile *conf, ConfigEntry *ce)
}
has_ciphers = 1;
}
#ifdef ZIP_LINKS
else if (!strcmp(cep->ce_varname, "compression-level"))
{
if (has_compressionlevel)
{
config_warn_duplicate(cep->ce_fileptr->cf_filename,
cep->ce_varlinenum, "link::compression-level");
continue;
}
has_compressionlevel = 1;
if ((atoi(cep->ce_vardata) < 1) || (atoi(cep->ce_vardata) > 9))
{
config_error("%s:%i: compression-level should be in range 1..9",
cep->ce_fileptr->cf_filename, cep->ce_varlinenum);
errors++;
}
}
#endif
else
{
config_error_unknown(cep->ce_fileptr->cf_filename, cep->ce_varlinenum,
-3
View File
@@ -78,9 +78,6 @@ MODVAR char serveropts[] = {
#endif
#ifndef OPEROVERRIDE_VERIFY
'o',
#endif
#ifdef ZIP_LINKS
'Z',
#endif
'E',
'\0', /* Don't change those 3 nuls. -- Syzop */
+2 -11
View File
@@ -192,10 +192,6 @@ CMD_FUNC(m_version)
if (IsAnOper(sptr))
sendto_one(sptr, ":%s NOTICE %s :%s", me.name, sptr->name, OPENSSL_VERSION_TEXT);
#endif
#ifdef ZIP_LINKS
if (IsAnOper(sptr))
sendto_one(sptr, ":%s NOTICE %s :zlib %s", me.name, sptr->name, zlibVersion());
#endif
#ifdef USE_LIBCURL
if (IsAnOper(sptr))
sendto_one(sptr, ":%s NOTICE %s :%s", me.name, sptr->name, curl_version());
@@ -217,8 +213,7 @@ char *num = NULL;
/*
* send_proto:
* Sends PROTOCTL message to server, taking care of whether ZIP
* should be enabled or not.
* Sends PROTOCTL message to server
* Now split up into multiple PROTOCTL messages (again), since we have
* too many for a single line. If this breaks your services because
* you fail to maintain PROTOCTL state, then fix them!
@@ -231,12 +226,8 @@ char buf[1024];
sendto_one(cptr, "PROTOCTL %s", PROTOCTL_SERVER);
/* Second line */
sprintf(buf, "CHANMODES=%s%s,%s%s,%s%s,%s%s NICKCHARS=%s MLOCK",
snprintf(buf, sizeof(buf), "CHANMODES=%s%s,%s%s,%s%s,%s%s NICKCHARS=%s MLOCK",
CHPAR1, EXPAR1, CHPAR2, EXPAR2, CHPAR3, EXPAR3, CHPAR4, EXPAR4, langsinuse);
#ifdef ZIP_LINKS
if (aconf->options & CONNECT_ZIP)
strcat(buf, " ZIP");
#endif
sendto_one(cptr, "PROTOCTL %s", buf);
}
-48
View File
@@ -122,9 +122,6 @@ int send_queued(aClient *to)
{
char *msg;
int len, rlen;
#ifdef ZIP_LINKS
int more = 0;
#endif
/*
** Once socket is marked dead, we cannot start writing to it,
@@ -140,24 +137,6 @@ int send_queued(aClient *to)
return -1;
}
#ifdef ZIP_LINKS
/*
** Here, we must make sure than nothing will be left in to->zip->outbuf
** This buffer needs to be compressed and sent if all the sendQ is sent
*/
if ((IsZipped(to)) && to->zip->outcount) {
if (DBufLength(&to->sendQ) > 0) {
more = 1;
} else {
msg = zip_buffer(to, NULL, &len, 1);
if (len == -1)
return dead_link(to, "fatal error in zip_buffer()");
if (!dbuf_put(&to->sendQ, msg, len))
return dead_link(to, "Buffer allocation error");
}
}
#endif
while (DBufLength(&to->sendQ) > 0)
{
msg = dbuf_map(&to->sendQ, &len);
@@ -176,20 +155,6 @@ int send_queued(aClient *to)
fd_setselect(to->fd, FD_SELECT_WRITE | FD_SELECT_ONESHOT, send_queued_write, to);
break;
}
#ifdef ZIP_LINKS
if (DBufLength(&to->sendQ) == 0 && more) {
/*
** The sendQ is now empty, compress what's left
** uncompressed and try to send it too
*/
more = 0;
msg = zip_buffer(to, NULL, &len, 1);
if (len == -1)
return dead_link(to, "fatal error in zip_buffer()");
if (!dbuf_put(&to->sendQ, msg, len))
return dead_link(to, "Buffer allocation error");
}
#endif
}
return (IsDead(to)) ? -1 : 0;
@@ -293,20 +258,7 @@ void sendbufto_one(aClient *to, char *msg, unsigned int quick)
return;
}
#ifdef ZIP_LINKS
/*
** data is first stored in to->zip->outbuf until
** it's big enough to be compressed and stored in the sendq.
** send_queued is then responsible to never let the sendQ
** be empty and to->zip->outbuf not empty.
*/
if (IsZipped(to))
msg = zip_buffer(to, msg, &len, 0);
if (len && !dbuf_put(&to->sendQ, msg, len))
#else
if (!dbuf_put(&to->sendQ, msg, len))
#endif
{
dead_link(to, "Buffer allocation error");
return;
-5
View File
@@ -3,8 +3,6 @@
;#define USE_SSL
; Uncomment the above line to package an SSL build
#define USE_ZIP
; Uncomment the above line to package with ZIP support
#define USE_CURL
; Uncomment the above line to package with libcurl support
@@ -78,9 +76,6 @@ Source: ".\makecert.bat"; DestDir: "{app}"; Flags: ignoreversion
Source: ".\encpem.bat"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\ssl.cnf"; DestDir: "{app}"; Flags: ignoreversion
#endif
#ifdef USE_ZIP
Source: "c:\dev\zlib\zlibwapi.dll"; DestDir: "{app}"; Flags: ignoreversion
#endif
#ifdef USE_SSL
#ifdef USE_CURL
; curl with ssl support