Showing with 1,899 additions and 1,932 deletions.
  1. +1 −1 .travis.yml
  2. +10 −0 NEWS
  3. +5 −0 README
  4. +3 −3 config.h.in
  5. +12 −12 configure
  6. +2 −2 configure.ac
  7. +36 −36 doc/reference.conf
  8. +1 −1 include/channel.h
  9. +9 −9 include/client.h
  10. +2 −3 include/ircd.h
  11. +0 −1 include/numeric.h
  12. +1 −1 include/patchlevel.h
  13. +3 −3 include/server.h
  14. +1 −1 include/user.h
  15. +1 −0 include/whowas.h
  16. +2 −2 modules/core/m_bmask.c
  17. +0 −1 modules/core/m_error.c
  18. +10 −10 modules/core/m_join.c
  19. +9 −9 modules/core/m_kick.c
  20. +24 −10 modules/core/m_kill.c
  21. +22 −22 modules/core/m_message.c
  22. +3 −3 modules/core/m_mode.c
  23. +10 −10 modules/core/m_nick.c
  24. +1 −1 modules/core/m_quit.c
  25. +56 −73 modules/core/m_server.c
  26. +17 −17 modules/core/m_sjoin.c
  27. +31 −26 modules/core/m_squit.c
  28. +3 −3 modules/m_accept.c
  29. +1 −1 modules/m_admin.c
  30. +5 −5 modules/m_away.c
  31. +16 −16 modules/m_cap.c
  32. +1 −1 modules/m_capab.c
  33. +1 −1 modules/m_certfp.c
  34. +17 −17 modules/m_challenge.c
  35. +26 −32 modules/m_connect.c
  36. +31 −59 modules/m_dline.c
  37. +1 −1 modules/m_eob.c
  38. +2 −2 modules/m_etrace.c
  39. +4 −4 modules/m_gline.c
  40. +5 −3 modules/m_globops.c
  41. +1 −1 modules/m_help.c
  42. +4 −6 modules/m_info.c
  43. +20 −20 modules/m_invite.c
  44. +21 −24 modules/m_kline.c
  45. +13 −13 modules/m_knock.c
  46. +2 −3 modules/m_links.c
  47. +7 −7 modules/m_list.c
  48. +5 −8 modules/m_lusers.c
  49. +1 −1 modules/m_map.c
  50. +8 −5 modules/m_module.c
  51. +3 −5 modules/m_motd.c
  52. +1 −8 modules/m_names.c
  53. +2 −2 modules/m_pass.c
  54. +17 −17 modules/m_ping.c
  55. +10 −9 modules/m_pong.c
  56. +35 −25 modules/m_resv.c
  57. +71 −76 modules/m_stats.c
  58. +1 −1 modules/m_svsnick.c
  59. +1 −1 modules/m_tburst.c
  60. +3 −2 modules/m_time.c
  61. +11 −11 modules/m_topic.c
  62. +12 −12 modules/m_trace.c
  63. +5 −4 modules/m_undline.c
  64. +9 −12 modules/m_unkline.c
  65. +19 −13 modules/m_unresv.c
  66. +7 −10 modules/m_unxline.c
  67. +3 −3 modules/m_user.c
  68. +3 −5 modules/m_version.c
  69. +4 −4 modules/m_watch.c
  70. +8 −8 modules/m_webirc.c
  71. +6 −6 modules/m_who.c
  72. +7 −8 modules/m_whois.c
  73. +8 −8 modules/m_whowas.c
  74. +25 −31 modules/m_xline.c
  75. +16 −20 src/auth.c
  76. +55 −55 src/channel.c
  77. +27 −27 src/channel_mode.c
  78. +76 −73 src/client.c
  79. +30 −29 src/conf.c
  80. +2 −2 src/conf_class.c
  81. +735 −737 src/conf_parser.c
  82. +3 −5 src/conf_parser.y
  83. +14 −14 src/hash.c
  84. +22 −21 src/ircd.c
  85. +5 −5 src/motd.c
  86. +10 −10 src/numeric.c
  87. +15 −15 src/packet.c
  88. +6 −6 src/parse.c
  89. +5 −5 src/resv.c
  90. +36 −36 src/s_bsd.c
  91. +29 −29 src/send.c
  92. +37 −29 src/server.c
  93. +30 −36 src/user.c
  94. +7 −7 src/watch.c
  95. +1 −0 src/whowas.c
@@ -25,7 +25,7 @@ addons:
branch_pattern: coverity_scan

script:
- if [ "$TRAVIS_OS_NAME" = "osx" ] && [ "$CC" = "gcc" ]; then export CC=gcc-4.8; fi
# - if [ "$TRAVIS_OS_NAME" = "osx" ] && [ "$CC" = "gcc" ]; then export CC=gcc-4.8; fi
- if [ "$TRAVIS_OS_NAME" = "osx" ]; then ./configure --disable-openssl --enable-assert; else ./configure --enable-assert; fi
- make
- sudo make install
10 NEWS
@@ -1,3 +1,13 @@
-- Noteworthy changes in version 8.2.1 (2014-10-21)
o) Fixed bug where "/undline remote.server IP" did not work as expected
o) Servers are now allowed to add/remove K-/D-/X-lines and RESVs
o) Usermode +G now no longer allows to override +g
o) Due to potential weakness, TLS session caching and session tickets
have been disabled
o) Minor improvements to TS6 implementation
o) /WHOWAS now shows the name of the services account a user was logged in


-- Noteworthy changes in version 8.2.0 (2014-08-24)
o) Successful operator logins are now announced globally via GLOBOPS
o) Cleanups and improvements to the resolver code
5 README
@@ -8,6 +8,11 @@ Contact Information:
* IRC contact:
- #ircd-coders on irc.ircd-hybrid.org

Recommended IRC services package:

- Anope 2.0.1 and above, which can be found on http://anope.org


******************************* IMPORTANT *************************************

************ Note for those who don't bother reading docs ***************
@@ -213,6 +213,9 @@
/* Size of the client mempool chunk. */
#undef MP_CHUNK_SIZE_CLIENT

/* Size of the connection mempool chunk. */
#undef MP_CHUNK_SIZE_CONNECTION

/* Size of the dbuf mempool chunk. */
#undef MP_CHUNK_SIZE_DBUF

@@ -225,9 +228,6 @@
/* Size of the ip_entry mempool chunk. */
#undef MP_CHUNK_SIZE_IP_ENTRY

/* Size of the local client mempool chunk. */
#undef MP_CHUNK_SIZE_LCLIENT

/* Size of the channel-member mempool chunk. */
#undef MP_CHUNK_SIZE_MEMBER

@@ -1,7 +1,7 @@
#! /bin/sh
# From configure.ac Id: configure.ac 4561 2014-08-24 09:46:04Z michael .
# From configure.ac Id: configure.ac 4578 2014-08-25 09:53:48Z michael .
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.69 for ircd-hybrid 8.2.0.
# Generated by GNU Autoconf 2.69 for ircd-hybrid 8.2.1.
#
# Report bugs to <bugs@ircd-hybrid.org>.
#
@@ -593,8 +593,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='ircd-hybrid'
PACKAGE_TARNAME='ircd-hybrid'
PACKAGE_VERSION='8.2.0'
PACKAGE_STRING='ircd-hybrid 8.2.0'
PACKAGE_VERSION='8.2.1'
PACKAGE_STRING='ircd-hybrid 8.2.1'
PACKAGE_BUGREPORT='bugs@ircd-hybrid.org'
PACKAGE_URL=''

@@ -1366,7 +1366,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
\`configure' configures ircd-hybrid 8.2.0 to adapt to many kinds of systems.
\`configure' configures ircd-hybrid 8.2.1 to adapt to many kinds of systems.

Usage: $0 [OPTION]... [VAR=VALUE]...

@@ -1436,7 +1436,7 @@ fi

if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of ircd-hybrid 8.2.0:";;
short | recursive ) echo "Configuration of ircd-hybrid 8.2.1:";;
esac
cat <<\_ACEOF

@@ -1564,7 +1564,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
ircd-hybrid configure 8.2.0
ircd-hybrid configure 8.2.1
generated by GNU Autoconf 2.69

Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2033,7 +2033,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

It was created by ircd-hybrid $as_me 8.2.0, which was
It was created by ircd-hybrid $as_me 8.2.1, which was
generated by GNU Autoconf 2.69. Invocation command line was

$ $0 $@
@@ -2907,7 +2907,7 @@ fi

# Define the identity of the package.
PACKAGE='ircd-hybrid'
VERSION='8.2.0'
VERSION='8.2.1'


cat >>confdefs.h <<_ACEOF
@@ -13884,7 +13884,7 @@ $as_echo "#define MP_CHUNK_SIZE_BAN 1024*1024" >>confdefs.h
$as_echo "#define MP_CHUNK_SIZE_CLIENT 1024*1024" >>confdefs.h


$as_echo "#define MP_CHUNK_SIZE_LCLIENT 512*1024" >>confdefs.h
$as_echo "#define MP_CHUNK_SIZE_CONNECTION 512*1024" >>confdefs.h


$as_echo "#define MP_CHUNK_SIZE_DNODE 32*1024" >>confdefs.h
@@ -16606,7 +16606,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by ircd-hybrid $as_me 8.2.0, which was
This file was extended by ircd-hybrid $as_me 8.2.1, which was
generated by GNU Autoconf 2.69. Invocation command line was

CONFIG_FILES = $CONFIG_FILES
@@ -16672,7 +16672,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
ircd-hybrid config.status 8.2.0
ircd-hybrid config.status 8.2.1
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"

@@ -4,7 +4,7 @@
AC_REVISION([$Id$])

AC_PREREQ(2.69)
AC_INIT([ircd-hybrid], [8.2.0], [bugs@ircd-hybrid.org])
AC_INIT([ircd-hybrid], [8.2.1], [bugs@ircd-hybrid.org])
AM_INIT_AUTOMAKE(1.13.1 subdir-objects)
AM_MAINTAINER_MODE
AC_CONFIG_MACRO_DIR([m4])
@@ -70,7 +70,7 @@ AC_DEFINE([MP_CHUNK_SIZE_CHANNEL], 1024*1024, [Size of the channel mempool chunk
AC_DEFINE([MP_CHUNK_SIZE_MEMBER], 2048*1024, [Size of the channel-member mempool chunk.])
AC_DEFINE([MP_CHUNK_SIZE_BAN], 1024*1024, [Size of the ban mempool chunk.])
AC_DEFINE([MP_CHUNK_SIZE_CLIENT], 1024*1024, [Size of the client mempool chunk.])
AC_DEFINE([MP_CHUNK_SIZE_LCLIENT], 512*1024, [Size of the local client mempool chunk.])
AC_DEFINE([MP_CHUNK_SIZE_CONNECTION], 512*1024, [Size of the connection mempool chunk.])
AC_DEFINE([MP_CHUNK_SIZE_DNODE], 32*1024, [Size of the dlink_node mempool chunk.])
AC_DEFINE([MP_CHUNK_SIZE_DBUF], 512*1024, [Size of the dbuf mempool chunk.])
AC_DEFINE([MP_CHUNK_SIZE_AUTH], 128*1024, [Size of the auth mempool chunk.])
@@ -817,75 +817,75 @@ pseudo {
};

pseudo {
command = "CHANSERV";
name = "ChanServ";
target = "ChanServ@service.someserver";
command = "CHANSERV";
name = "ChanServ";
target = "ChanServ@service.someserver";
};

pseudo {
command = "CS";
name = "ChanServ";
target = "ChanServ@service.someserver";
command = "CS";
name = "ChanServ";
target = "ChanServ@service.someserver";
};

pseudo {
command = "NICKSERV";
name = "NickServ";
target = "NickServ@service.someserver";
command = "NICKSERV";
name = "NickServ";
target = "NickServ@service.someserver";
};

pseudo {
command = "NS";
name = "NickServ";
target = "NickServ@service.someserver";
command = "NS";
name = "NickServ";
target = "NickServ@service.someserver";
};

pseudo {
command = "MEMOSERV";
name = "MemoServ";
target = "MemoServ@service.someserver";
command = "MEMOSERV";
name = "MemoServ";
target = "MemoServ@service.someserver";
};

pseudo {
command = "MS";
name = "MemoServ";
target = "MemoServ@service.someserver";
command = "MS";
name = "MemoServ";
target = "MemoServ@service.someserver";
};

pseudo {
command = "OPERSERV";
name = "OperServ";
target = "OperServ@service.someserver";
command = "OPERSERV";
name = "OperServ";
target = "OperServ@service.someserver";
};

pseudo {
command = "OS";
name = "OperServ";
target = "OperServ@service.someserver";
command = "OS";
name = "OperServ";
target = "OperServ@service.someserver";
};

pseudo {
command = "HOSTSERV";
name = "HostServ";
target = "HostServ@service.someserver";
command = "HOSTSERV";
name = "HostServ";
target = "HostServ@service.someserver";
};

pseudo {
command = "HS";
name = "HostServ";
target = "HostServ@service.someserver";
command = "HS";
name = "HostServ";
target = "HostServ@service.someserver";
};

pseudo {
command = "BOTSERV";
name = "BotServ";
target = "BotServ@service.someserver";
command = "BOTSERV";
name = "BotServ";
target = "BotServ@service.someserver";
};

pseudo {
command = "BS";
name = "BotServ";
target = "BotServ@service.someserver";
command = "BS";
name = "BotServ";
target = "BotServ@service.someserver";
};

/*
@@ -85,7 +85,7 @@ struct Channel

float number_joined;

char chname[CHANNELLEN + 1];
char name[CHANNELLEN + 1];
};

/*! \brief Membership structure */
@@ -82,7 +82,7 @@ struct MaskItem;
(x)->handler = HasUMode(x, UMODE_OPER) ? \
OPER_HANDLER : CLIENT_HANDLER; }

#define MyConnect(x) ((x)->localClient != NULL)
#define MyConnect(x) ((x)->connection != NULL)
#define MyClient(x) (MyConnect(x) && IsClient(x))

/*
@@ -99,7 +99,7 @@ struct MaskItem;
#define CAP_AWAY_NOTIFY 0x00000002U
#define CAP_UHNAMES 0x00000004U

#define HasCap(x, y) ((x)->localClient->cap_active & (y))
#define HasCap(x, y) ((x)->connection->cap_active & (y))


/* housekeeping flags */
@@ -202,10 +202,10 @@ struct MaskItem;
#define OPER_FLAG_UNXLINE 0x00400000U /**< Oper can use UNXLINE command */


#define HasOFlag(x, y) (MyConnect(x) ? (x)->localClient->operflags & (y) : 0)
#define AddOFlag(x, y) ((x)->localClient->operflags |= (y))
#define DelOFlag(x, y) ((x)->localClient->operflags &= ~(y))
#define ClrOFlag(x) ((x)->localClient->operflags = 0)
#define HasOFlag(x, y) (MyConnect(x) ? (x)->connection->operflags & (y) : 0)
#define AddOFlag(x, y) ((x)->connection->operflags |= (y))
#define DelOFlag(x, y) ((x)->connection->operflags &= ~(y))
#define ClrOFlag(x) ((x)->connection->operflags = 0)



@@ -296,12 +296,12 @@ struct ListTask
char topic[TOPICLEN + 1];
};

/*! \brief LocalUser structure
/*! \brief Connection structure
*
* Allocated only for local clients, that are directly connected
* to \b this server with a socket.
*/
struct LocalUser
struct Connection
{
dlink_node lclient_node;

@@ -378,7 +378,7 @@ struct Client
dlink_node node;
dlink_node lnode; /**< Used for Server->servers/users */

struct LocalUser *localClient;
struct Connection *connection;
struct Client *hnext; /**< For client hash table lookups by name */
struct Client *idhnext; /**< For SID hash table lookups by sid */
struct Server *serv; /**< ...defined, if this is a server */
@@ -69,9 +69,9 @@ struct ServerStatistics
unsigned int is_kill; /* number of kills generated on collisions */
unsigned int is_asuc; /* successful auth requests */
unsigned int is_abad; /* bad auth requests */
};
} ServerStats;

struct Counter
struct
{
uint64_t totalrestartcount; /* Total client count ever */
unsigned int myserver; /* my servers */
@@ -103,7 +103,6 @@ extern const char *pidFileName;
extern int dorehash;
extern int doremotd;
extern struct event event_write_links_file;
extern struct ServerStatistics ServerStats;
extern struct timeval SystemTime;
#define CurrentTime SystemTime.tv_sec
extern int unsigned default_server_capabs;
@@ -216,7 +216,6 @@ enum irc_numerics
ERR_NOPRIVILEGES = 481,
ERR_CHANOPRIVSNEEDED = 482,
ERR_CANTKILLSERVER = 483,
ERR_RESTRICTED = 484,
ERR_CHANBANREASON = 485,
ERR_NONONREG = 486,
ERR_NOOPERHOST = 491,
@@ -25,5 +25,5 @@
*/

#ifndef PATCHLEVEL
#define PATCHLEVEL "hybrid-8.2.0"
#define PATCHLEVEL "hybrid-8.2.1"
#endif
@@ -71,9 +71,9 @@ struct Capability
/*
* Capability macros.
*/
#define IsCapable(x, cap) ((x)->localClient->caps & (cap))
#define SetCapable(x, cap) ((x)->localClient->caps |= (cap))
#define ClearCap(x, cap) ((x)->localClient->caps &= ~(cap))
#define IsCapable(x, cap) ((x)->connection->caps & (cap))
#define SetCapable(x, cap) ((x)->connection->caps |= (cap))
#define ClearCap(x, cap) ((x)->connection->caps &= ~(cap))


/*