Code Monkey home page Code Monkey logo

atheme's Introduction

Atheme IRC Services

Atheme is a set of IRC services designed for large IRC networks with high scalability requirements. It is relatively mature software, with some code and design derived from another package called Shrike.

Atheme's behavior is tunable using modules and a highly detailed configuration file. Almost all behavior can be changed at deployment time just by editing the configuration.

Obtaining Atheme

If you have a modern version of Git (1.6.5 or newer), you can recursively clone the repository:

$ git clone --recursive 'https://github.com/atheme/atheme/' atheme-devel
$ cd atheme-devel

If you have an older version of Git, you must clone the repository, and then fetch its submodules:

$ git clone 'https://github.com/atheme/atheme/' atheme-devel
$ cd atheme-devel
$ git submodule init
$ git submodule update

If you don't have Git, you can download a package archive from our website at https://atheme.github.io/.

If you are browsing our GitHub repository, please do NOT click the "Download ZIP" button or the "Source code" links there, as they will give you an archive that lacks the required submodules. There are proper .tar.bz2 or .tar.xz archives attached to each release under "Assets", which is what the "Download" button on our website will take you to.

Basic build instructions for the impatient

Obtain the source code repository and change into its directory (using the commands given above).

If you are building Atheme on a GNU/Linux system, or something which can sufficiently emulate that (like WSL 2 on Windows 10), execute the following commands:

$ ./configure
$ make
$ make install

If you are building Atheme on an OpenBSD (or similar) system, execute the following commands instead:

# pkg_add gmake
$ ./configure --disable-linker-defs
$ gmake
$ gmake install

Library Detection

If your user-installed libraries that you want Atheme to use are installed by your package manager to a directory such as /usr/local/, you may need to supplement the default compiler and linker search paths so that Atheme can detect those libraries (e.g. cracklib from FreeBSD Ports):

$ ./configure CPPFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib"

The following libraries generally require pkg-config to be installed:

  • PHC Argon2 Reference Implementation (libargon2.pc)
  • OpenSSL (libcrypto.pc)
  • GNU libidn (libidn.pc)
  • GNU Nettle (nettle.pc)
  • PCRE (libpcre.pc)
  • libqrencode (libqrencode.pc)
  • Sodium (libsodium.pc)

If you do not have pkg-config installed and want to use one or more of these libraries, please see ./configure --help for the options to set to override pkg-config discovery for those libraries. For example, if you wish to use GNU libidn, and it is installed into a default search path for your compiler and linker, and you do not have pkg-config installed, execute:

$ ./configure LIBIDN_CFLAGS="" LIBIDN_LIBS="-lidn"

If a library relies on populating LIBFOO_CFLAGS with some preprocessor definitions, or populating LIBFOO_LIBS with some library linking flags, this will generally fail. Install pkg-config for the best results.

Choice of compiler and its features

If you wish to compile Atheme with the LLVM project's C compiler (clang), you may also wish to use LLVM's linker (lld). You can accomplish this as follows:

$ ./configure CC="clang" LDFLAGS="-fuse-ld=lld"

If you want to use compiler sanitizers, and you want to build with Clang, you MUST also use LLD, as most of the sanitizers in Clang require LTO to function properly, and Clang in LTO mode emits LLVM bitcode, not machine code. The linker is ultimately responsible for performing most of the LTO heavy lifting, and translating the result into machine code, and most other linkers do not know how to do this.

To use compiler sanitizers with GCC (supported):

$ ./configure --disable-heap-allocator --disable-linker-defs \
    --enable-compiler-sanitizers CC="gcc"

To use compiler sanitizers with Clang (recommended):

$ ./configure --disable-heap-allocator --disable-linker-defs \
    --enable-compiler-sanitizers CC="clang" LDFLAGS="-fuse-ld=lld"

If you do enable the sanitizers, it is recommended to enable the configuration option general::db_save_blocking; see the example configuration file for more details.

The sanitizers are not recommended for production usage, but they are recommended for developers, including third parties writing new features and/or modifying the source code.

Getting More Help

If you're still lost, read the INSTALL file or check out our wiki for more hints.

atheme's People

Contributors

aaronmdjones avatar aji avatar alyx avatar attilamolnar avatar dkingston avatar dwfreed avatar elizafox avatar errietta avatar grawity avatar heartmender avatar ilbelkyr avatar irydacea avatar jdhore avatar jesopo avatar jillest avatar kaniini avatar kog avatar marienz avatar maxteufel avatar mrbenc avatar mrflea avatar mtharp avatar ori-sky avatar patrickfish avatar pippijn avatar rburchell avatar renegade334 avatar shutterquick avatar sinistar7 avatar viatsko avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

atheme's Issues

ChanServ/BotServ bot sets topic setter as nick instead of nick!user@host

06:38:38 »» Fersure has changed the topic to: testing
06:38:41 »» Topic for #opers is: testing
06:38:41 »» Topic for #opers set by Fersure![email protected]/staff/fersure at Wed Sep 26 06:38:38 2012
06:38:45 @fersure !topic testing123
06:38:45 »» Kami-sama has changed the topic to: testing123
06:38:49 »» Topic for #opers is: testing123
06:38:49 »» Topic for #opers set by Fersure at Wed Sep 26 06:38:44 2012

atheme version: 7.0.5

IRCd: charybdis 3.5.0-dev (from git)

seenserv

implement a seenserv for atheme -- should be pretty simple to do.

use a patricia tree to index seenserv db entries by nickname and prune them occasionally based on time. other ideas: hook into WHOWAS command...

Support extbans via protocol modules

Protocol modules should support that ircd's extbans, so flags and other banmask-accepting parts of atheme can fully utilize an ircd's features.

GameServ " !calc " by factorial seems broken

hi,

it seems that there is problems with calculating by factorial on GameServ, it seems to spam 10 lines in a chat, bellow is the log i have, please fix

[02:40:39 AM] <~cooldude[desktop]�> !calc 10 10
[02:40:39 AM] 10 = 10
[02:40:39 AM] 10 = 10
[02:40:39 AM] 10 = 10
[02:40:39 AM] 10 = 10
[02:40:39 AM] 10 = 10
[02:40:39 AM] 10 = 10
[02:40:39 AM] 10 = 10
[02:40:40 AM] 10 = 10
[02:40:40 AM] 10 = 10
[02:40:40 AM] 10 = 10

Request: Ability to skin helpfiles.

I have a request to be able to better customize/skin helpfiles. On DarkMyst, we customize the help files to make them more aesthetically pleasing. However, with the lack of skinning capabilities the work required to maintain them during atheme updates is increased.

The following features would be nice:

  • The ability to add a customizable, multi-line header and footer
  • Support for control characters such as bold, underline, and reverse.
  • The ability to read atheme.conf settings for the network as well as each individual service, i.e. what the service's "real name" and "nick" are set to as well as what command the help file is being accessed for.
  • The ability to skin how subsections in the help files are displayed, such as "syntax" and "examples" -- I would love to be able to underline these. This isn't as big of a deal as the others above, but it would be another nice extra.

Example of a multi-line header:

"&network& &realname& Help: &command&

General Information:"

An example of help file output for /msg ChanServ HELP SET GUARD with this multi-line header skin and no footer would be:

DarkMyst ChanServ Services Help: SET GUARD

General Information:

SET GUARD allows you to have ChanServ join your channel.

Syntax: SET <#channel> GUARD ON|OFF

Example:
/msg ChanServ SET #atheme GUARD ON

ms_fsend.so compile error when issuing gmake.

CompileModule: ms_fsend.so
ms_fsend.c: In function 'ms_cmd_fsend':
ms_fsend.c:141: warning: passing argument 2 of 'sendemail' from incompatible pointer type
ms_fsend.c:141: warning: passing argument 3 of 'sendemail' from incompatible pointer type
ms_fsend.c:141: error: too few arguments to function 'sendemail'
gmake[2]: *** [ms_fsend.so] Error 1
gmake[1]: *** [install] Error 2
gmake: *** [install] Error 2

Cheers

auto op sometimes doesn't work

This is a weird isssue we are having a hard time to understand.

Since our upgrade to Debian squeeze (from Lenny) and Atheme 6.0.10 (from 6.0.0-rc2), some users are not automatically opped. It is inconsistent between channels and from user to user (a user may be autoopped in a channel but not another and some users are opped, some are not).

I am looking for ways to diagnose this issue. I have tried upgrading to 6.0.11.

I am running a Debian package of atheme-services but I am ready to build from source if you believe this is necessary to better diagnose or reproduce the problem.

Unicode BotServ bot names allowed

BotServ allows bots with unicode characters in their name to be created. In at least one ircd (Unreal), this resulted in the bot being killed by the IRC server constantly until services shutdown.

Example:
<�BotServ�> neoinr BOT:ADD: �ಠ_ಠ� (�lol�@�lol.lol�) [�lol.lol�]
<�OperServ�> handle_kill(): not.a.real.ircd.server.net killed service ಠ_ಠ ((ಠ_ಠ <- ಠ_ಠ[services.not.a.real.ircd.server.net]))
(last line spammed many times)
handle_kill(): services kill fight (not.a.real.ircd.server.net -> ಠ_ಠ), shutting down

[Feature Request] Allow a user to remove themselves from a groupserv group.

As it stands, a user cannot remove themself from a groupserv group without +f in the group. A user should be able to leave a group they are in if they want. In a more extreme setting, someone could create an offensive group name, and force them into that group without letting them be able leave.

A user can remove themself from a chanserv's ACL by doing a "/chanserv flags #channel theirname -*". I think a similarly formatted command would work for groupserv.

operserv rwatch bug

Ive set an rwatch posix regex to stop against bots for our network running version

[21:01:48] [ChanServ VERSION reply]: atheme 7.0.4. 81a56fd services.** ceFljR [InspIRCd] Build Date: Jul 31 2012

However it never acutally bans anyone when they connect if they match this regex.

i have tested another regex which was
^boy_[[:lower:]]{2}!boy_@.+ .+
and it worked no problems

the regex in quesiton is as below.

[20:51:56] -> operserv rmatch /.+!.+@.+ [[:alpha:]]{26,45}$/ force

[20:51:56] -OperServ- Match: C|est_l[a]_vie!SIXXAM@lalalaa HierSollteEinSinnvollerTextStehen

[20:51:56] -OperServ- 1 matches for .+!.+@.+ [[:alpha:]]{26,45}$

[20:51:34] -> operserv rwatch list

[20:51:34] -OperServ- .+!.+@.+ [[:alpha:]]{26,45}$ (S) - Banned

[20:51:34] -OperServ- End of RWATCH LIST

InspIRCd support for chanserv/quiet

The modules chanserv/quiet requires a ban-like +q. I propose adding a detection method for InspIRCd. If InspIRCd is detected, we should set the ban as +b m:<banmask>, which is the InspIRCd version.

Add a FTEMPLATE for opers to modify templates of a channel

Currently I can't modify the templates of a channel as oper without taking over the channel, is there some other way? :>

If not, it would be nice to have this... /msg ChanServ ftemplate #some_channel some_template_name +some_modes...

Also the (fantasy?) form: !ftemplate some_template_name +some_modes...

Please and thank you :>

kill sstrdup() usage with fire / stringref cleanliness

most functions using sstrdup() should either be using:

  • preallocated buffers
  • stringrefs from strshare_get()/strshare_ref().

Once sstrdup() is gone, we'll be stringref clean. And when that happens, we can remove a lot of strcasecmp() et al in the code, as stringrefs can be compared using straight lvalue comparisons.

We should probably have a type specific for stringrefs, so we can use compiler type enforcement to enforce stringref cleanliness. This also allows us to require that functions take stringrefs instead of just any type of string.

[enhancement] Command to keep channel changes in sync automatically

Users should be able to synchronize things like changes to access lists, akicks, bans set and removed, etc. so that when a change is made it is pushed to certain other channels. Like CLONE, but not syncing old changes (to allow for things like different founders) and automatic.

cmddeny unknown flag.

Hi Guys,

following a git pull earlier today and using the updated atheme.conf.example I have come across the following when starting atheme-services:

[19/09/2012 13:23:17] /home/ukchat/atheme/etc/atheme.conf:1843: [logfile::cmddeny] warning: unknown flag: cmddeny
[19/09/2012 13:23:17] /home/ukchat/atheme/etc/atheme.conf:1850: [logfile::cmddeny] warning: unknown flag: cmddeny

Seems that atheme doesn't seem to recognise the entry. Unless I am overlooking something here?

Cheers

ChanServ does not rejoin all channels upon an IRCd reboot.

I have found a problem that seems to be Atheme specific where by if an IRCd is restarted or the process is killed, upon startup ChanServ will not rejoin all the channels thus making them unavailable in a /list until someone physically rejoins them all to make ChanServ then join.

I have found this behaviour using Atheme7.0.4 and Unreal3.2.9 and on ShadowIRCd6.3.2.1 and Charybdis3.3.0

Is there any way of changing the behaviour so ChanServ can join all channels upon a server reboot?
I know ways around it can be setting a bot to join them all in order for ChanServ to join but this is not really feasable.
Also join chans is set in the Atheme configuration.

Best Wishes

Vince

Python API

Logging this feature request. @alyx and @nenolod said they might do it soon. From what I understand, it would be similar to the Perl API, except for Python.

crypto transition api

add registry of crypto modules, verify from top-down, encrypt/hash/whatever using top implementation for transition.

change callers to crypt_verify_password() to handle transition if needed... perhaps modify crypt_verify_password() API as it's a semi-private affair anyway.

probably something like:

typedef struct {
    const char *(*crypt)(const char *key, const char *salt) : generic_crypt;
    const char *(*salt)(void) : generic_salt;
} crypt_impl_t;

-rpath is set no matter what

It seems that the -rpath compile flag is set no matter what happens in ./configure at line 7548.

There is a --disable-rpath flag documented in --help, but it doesn't seem to be working. This generates warnings in the Debian packaging.

Add a FSYNC for opers to sync access of a channel

Currently I can't force-sync user flags of a channel unless I take over the channel and !sync

It would be nice to have a /msg ChanServ fsync #some_channel for opers :>

(And the fantasy-form !fsync)

Please and thank you :>

Errors in make with latest atheme-devel github

I get the following error on 'gmake' when using the most recent git pull of atheme Master 7.1.0

servtree.c: In function 'service_add':
servtree.c:295: error: implicit declaration of function 'is_valid_nick'
gmake[1]: *** [servtree.lib.o] Error 1
gmake: *** [libathemecore] Error 2

compiled with ./configure also tried the verious options available in ./configure --help

Any help greatly appreciated. Many thanks.

latest git, crash on chanserv register

Latest git crashes on chanserv register.

steps to reproduce ?

  1. download latest git and compile
  2. /msg chanserv register #channel

bt full output is here: http://pastebin.com/znHZT6jt

from #atheme the following info was asked to another repporter

frame 1
#1 0x00007f925cb702ec in get_source_security_label (si=0x7f923c72bfa8) at services.c:1040

1040 mowgli_strlcat(result, soper->name, sizeof result);

print soper->name
$1 = 0x0

the core file is located here: http://ventura.totalirc.net/core.txt (renamed to .txt)

I have reproduced this on 2 systems a gentoo system and a ubuntu system.

[Unreal] Jupitering a sever/squitting it does not work

Summary

Jupitering a server with OperServ, does not work. Unreal says that the jupitered server is not online when trying to squit it.

Reproducing

On Unreal:
/msg OperServ JUPE test.server.net testing

�� (nick) JUPE: �test.server.net� (reason: testing�)
/squit test.server.net
*� test.server.net :No such server

ChanServ's UNQUIET can not find bans on Unreal IRCd

A QUIET can be issued on an Unreal network, and the extban will go through properly, but the UNQUIET will fail to find the ban (I'm assuming it's still looking for Charybdis's +q?) Here is an example of the issue:

15:30 <~phlux> !quiet phr0z3n
15:30 -!- mode/#Ewnix [-o+b phr0z3n ~q:*!*@staff.ewnix.net] by ChanServ
15:30 <~phlux> hmm
15:30 <~phlux> !unquiet phr0z3n 
15:30 -ChanServ([email protected])- No quiets found matching phr0z3n on #Ewnix.
15:31 <~phlux> !unquiet *!*@staff.ewnix.net
15:31 -ChanServ([email protected])- No such quiet *!*@staff.ewnix.net on #Ewnix.

I can unset the quiet manually by issuing /MODE #Ewnix -b ~q:!@staff.ewnix.net.

possible operserv rwatch + inspircd problem?

[10:51:23] -OperServ- Added Oh_Yeah2_[[:digit:]]{4}!.+@.+ [[:lower:]]{4,24} to regex watch list.

[10:51:24] -OperServ- Set options KLINE on Oh_Yeah2_[[:digit:]]{4}!.+@.+ [[:lower:]]{4,24}.

[10:58:18] Clones on 110.138.100.108 : first connection at [10:57:58] [email protected] (110.138.100.108) [rxxjorcck] && [10:58:18] [email protected] (110.138.100.108) [pssaqdu]

[11:02:21] -OperServ- Oh_Yeah2_[[:digit:]]{4}!.+@.+ [[:lower:]]{4,24} (SK) - Banned

Even though i have this regex set to kline, the bots are still freely connecting,
We are aware there is a bug with inspircd where, even though a gline is set on an ip, it does not send correctly to remote servers thus it allows them to connect there and when a gline is sent, the server says the gline already exists.

-> irc GLINE Oh_Yeah2_8699 3d No flooding.
<- :irc NOTICE mynick :*** G-Line for *@178.250.90.58 already exists
-> irc GLINE *@178.250.90.58

-> irc GLINE *@178.250.90.58 1d �4floodbot/spambot/drone

So the question is, is my regex wrong or is this a bug where services is not " seeing " the remote connect from the servers to attempt to gline them.

ignore otr's whitespace

it would be nice if chanserv and friends would ignore whitespace from otr, which mostly consists of a pattern of tabs and spaces at the end of the irc message.

an example:

20:24:31 <anarcat> flags #foo I  IIII I I I   I I  I   II  I
20:24:31 -ChanServ([email protected])- Invalid template name given, use /msg ChanServ TEMPLATE #foo for a list

(capital i are tabs)

[enhancement] Warning feature for badwords

Users should be able to set an (optional) number of warnings that services should give to a user before kicking them for badwords, and possibly badwords entries that will not generate warnings.

The VERBOSE_OPS flag is not saved to the db

If a channel is set to "verbose ops" (not "on") this flag is not saved to the db, so restarting services loses the flag. It looks like the problem is the mc_flags array in libathemecore/flags.c not having an entry for this flag. After adding an entry here the flag gets saved and restored after a services restart correctly. No other entries look like they're missing from mc_flags or the similar mu_flags.

Thanks to Snader_LB on freenode for noticing this problem.

I'll attach a patch, but you might want to take the opportunity to add some checks to make it less likely for these arrays to go out of sync in the future.

-fPIE support?

Right now, enabling -fPIE in the CFLAGS for atheme compilation breaks horribly. The build system gets lost and can't find binaries to link against, from what i can tell.

Configuration:
        Atheme version       : 6.0.11
        Installation prefix  : /
        Module root directory: //lib/x86_64-linux-gnu/atheme
        Config directory     : /etc/atheme
        Logfile directory    : ${localstatedir}/log/atheme
        Data directory       : ${localstatedir}/lib/atheme
        PID directory        : ${localstatedir}/run/atheme
        Large network support: no
        OpenSSL SASL support : yes
        Contrib modules      : no
        Block Allocator      : yes
        Mowgli installation  : system
        PCRE support         : no
        CFLAGS               : -g -O2 -fPIE -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wall -pedantic
        Internationalization : yes

Type make to build Atheme, and make install to install it.
make[1]: quittant le répertoire « /home/anarcat/src/build-area/atheme-services-6.0.11 »
   dh_auto_build
make[1]: entrant dans le répertoire « /home/anarcat/src/build-area/atheme-services-6.0.11 »
make[2]: entrant dans le répertoire « /home/anarcat/src/build-area/atheme-services-6.0.11 »
make[3]: entrant dans le répertoire « /home/anarcat/src/build-area/atheme-services-6.0.11/src »
make[3]: quittant le répertoire « /home/anarcat/src/build-area/atheme-services-6.0.11/src »
make[2]: quittant le répertoire « /home/anarcat/src/build-area/atheme-services-6.0.11 »
make[2]: entrant dans le répertoire « /home/anarcat/src/build-area/atheme-services-6.0.11 »
Entering directory src.
make[3]: entrant dans le répertoire « /home/anarcat/src/build-area/atheme-services-6.0.11/src »
make[4]: entrant dans le répertoire « /home/anarcat/src/build-area/atheme-services-6.0.11/src »
make[4]: quittant le répertoire « /home/anarcat/src/build-area/atheme-services-6.0.11/src »
make[4]: entrant dans le répertoire « /home/anarcat/src/build-area/atheme-services-6.0.11/src »
make[4]: quittant le répertoire « /home/anarcat/src/build-area/atheme-services-6.0.11/src »
make[4]: entrant dans le répertoire « /home/anarcat/src/build-area/atheme-services-6.0.11/src »
account.c: In function ‘myuser_access_verify’:
account.c:480:3: warning: format ‘%p’ expects argument of type ‘void *’, but argument 3 has type ‘struct user_t *’ [-Wformat]
account.c:480:3: warning: format ‘%p’ expects argument of type ‘void *’, but argument 4 has type ‘struct myuser_t *’ [-Wformat]
account.c: In function ‘myuser_access_add’:
account.c:527:3: warning: format ‘%p’ expects argument of type ‘void *’, but argument 3 has type ‘struct myuser_t *’ [-Wformat]
account.c: In function ‘myuser_access_find’:
account.c:565:3: warning: format ‘%p’ expects argument of type ‘void *’, but argument 3 has type ‘struct myuser_t *’ [-Wformat]
account.c: In function ‘myuser_access_delete’:
account.c:598:3: warning: format ‘%p’ expects argument of type ‘void *’, but argument 3 has type ‘struct myuser_t *’ [-Wformat]
Successfully compiled account.c.
Successfully compiled atheme.c.
Successfully compiled arc4random.c.
Successfully compiled auth.c.
Successfully compiled authcookie.c.
Successfully compiled base64.c.
Successfully compiled channels.c.
Successfully compiled cidr.c.
Successfully compiled cmode.c.
Successfully compiled commandtree.c.
ctcp-common.c: In function ‘common_ctcp_init’:
ctcp-common.c:62:2: warning: ISO C forbids passing argument 3 of ‘mowgli_patricia_add’ between function pointer and ‘void *’ [-pedantic]
In file included from /usr/include/libmowgli/mowgli.h:56:0,
                 from ../include/stdinc.h:13,
                 from ../include/atheme.h:18,
                 from ctcp-common.c:24:
/usr/include/libmowgli/mowgli_patricia.h:125:25: note: expected ‘void *’ but argument is of type ‘void (*)(struct sourceinfo_t *, char *, char *)’
ctcp-common.c:63:2: warning: ISO C forbids passing argument 3 of ‘mowgli_patricia_add’ between function pointer and ‘void *’ [-pedantic]
In file included from /usr/include/libmowgli/mowgli.h:56:0,
                 from ../include/stdinc.h:13,
                 from ../include/atheme.h:18,
                 from ctcp-common.c:24:
/usr/include/libmowgli/mowgli_patricia.h:125:25: note: expected ‘void *’ but argument is of type ‘void (*)(struct sourceinfo_t *, char *, char *)’
ctcp-common.c:64:2: warning: ISO C forbids passing argument 3 of ‘mowgli_patricia_add’ between function pointer and ‘void *’ [-pedantic]
In file included from /usr/include/libmowgli/mowgli.h:56:0,
                 from ../include/stdinc.h:13,
                 from ../include/atheme.h:18,
                 from ctcp-common.c:24:
/usr/include/libmowgli/mowgli_patricia.h:125:25: note: expected ‘void *’ but argument is of type ‘void (*)(struct sourceinfo_t *, char *, char *)’
ctcp-common.c:65:2: warning: ISO C forbids passing argument 3 of ‘mowgli_patricia_add’ between function pointer and ‘void *’ [-pedantic]
In file included from /usr/include/libmowgli/mowgli.h:56:0,
                 from ../include/stdinc.h:13,
                 from ../include/atheme.h:18,
                 from ctcp-common.c:24:
/usr/include/libmowgli/mowgli_patricia.h:125:25: note: expected ‘void *’ but argument is of type ‘void (*)(struct sourceinfo_t *, char *, char *)’
ctcp-common.c: In function ‘handle_ctcp_common’:
ctcp-common.c:72:15: warning: ISO C forbids assignment between function pointer and ‘void *’ [-pedantic]
Successfully compiled ctcp-common.c.
Successfully compiled conf.c.
Successfully compiled confparse.c.
Successfully compiled confprocess.c.
connection.c: In function ‘connection_close’:
connection.c:171:4: warning: format ‘%p’ expects argument of type ‘void *’, but argument 3 has type ‘struct connection_t *’ [-Wformat]
Successfully compiled connection.c.
Successfully compiled crypto.c.
Successfully compiled culture.c.
database_backend.c: In function ‘db_close’:
database_backend.c:26:2: warning: ISO C forbids ‘return’ with expression, in function returning void [-pedantic]
database_backend.c: In function ‘db_register_type_handler’:
database_backend.c:237:2: warning: ISO C forbids passing argument 3 of ‘mowgli_patricia_add’ between function pointer and ‘void *’ [-pedantic]
In file included from /usr/include/libmowgli/mowgli.h:56:0,
                 from ../include/stdinc.h:13,
                 from ../include/atheme.h:18,
                 from database_backend.c:8:
/usr/include/libmowgli/mowgli_patricia.h:125:25: note: expected ‘void *’ but argument is of type ‘database_handler_f’
database_backend.c: In function ‘db_process’:
database_backend.c:258:6: warning: ISO C forbids assignment between function pointer and ‘void *’ [-pedantic]
database_backend.c:262:7: warning: ISO C forbids assignment between function pointer and ‘void *’ [-pedantic]
Successfully compiled database_backend.c.
Successfully compiled datastream.c.
Successfully compiled entity.c.
Successfully compiled event.c.
Successfully compiled flags.c.
Successfully compiled function.c.
Successfully compiled help.c.
hook.c: In function ‘hook_del_hook’:
hook.c:92:18: warning: ISO C forbids conversion of object pointer to function pointer type [-pedantic]
hook.c: In function ‘hook_add_hook’:
hook.c:109:18: warning: ISO C forbids conversion of function pointer to object pointer type [-pedantic]
hook.c: In function ‘hook_add_hook_first’:
hook.c:121:23: warning: ISO C forbids conversion of function pointer to object pointer type [-pedantic]
hook.c: In function ‘hook_call_event’:
hook.c:135:10: warning: ISO C forbids conversion of object pointer to function pointer type [-pedantic]
Successfully compiled hook.c.
Successfully compiled linker.c.
Successfully compiled logger.c.
Successfully compiled match.c.
Successfully compiled md5.c.
Successfully compiled memory.c.
Successfully compiled module.c.
Successfully compiled node.c.
Successfully compiled object.c.
Successfully compiled packet.c.
Successfully compiled parse.c.
Successfully compiled phandler.c.
Successfully compiled pmodule.c.
Successfully compiled poll.c.
Successfully compiled privs.c.
ptasks.c: In function ‘floodcheck’:
ptasks.c:903:14: warning: variable ‘k’ set but not used [-Wunused-but-set-variable]
Successfully compiled ptasks.c.
Successfully compiled send.c.
Successfully compiled servers.c.
Successfully compiled services.c.
Successfully compiled servtree.c.
signal.c: In function ‘signal_usr1_handler’:
signal.c:114:6: warning: variable ‘n’ set but not used [-Wunused-but-set-variable]
Successfully compiled signal.c.
Successfully compiled string.c.
Successfully compiled strshare.c.
Successfully compiled svsignore.c.
Successfully compiled table.c.
Successfully compiled template.c.
Successfully compiled tokenize.c.
Successfully compiled ubase64.c.
Successfully compiled users.c.
Successfully compiled uid.c.
Successfully compiled uplink.c.
Successfully compiled version.c.
Successfully linked atheme-services.
make[4]: quittant le répertoire « /home/anarcat/src/build-area/atheme-services-6.0.11/src »
make[3]: quittant le répertoire « /home/anarcat/src/build-area/atheme-services-6.0.11/src »
Leaving directory src.
Entering directory modules.
make[3]: entrant dans le répertoire « /home/anarcat/src/build-area/atheme-services-6.0.11/modules »
make[4]: entrant dans le répertoire « /home/anarcat/src/build-area/atheme-services-6.0.11/modules »
make[4]: quittant le répertoire « /home/anarcat/src/build-area/atheme-services-6.0.11/modules »
make[4]: entrant dans le répertoire « /home/anarcat/src/build-area/atheme-services-6.0.11/modules »
Entering directory alis.
make[5]: entrant dans le répertoire « /home/anarcat/src/build-area/atheme-services-6.0.11/modules/alis »
make[6]: entrant dans le répertoire « /home/anarcat/src/build-area/atheme-services-6.0.11/modules/alis »
make[6]: quittant le répertoire « /home/anarcat/src/build-area/atheme-services-6.0.11/modules/alis »
make[6]: entrant dans le répertoire « /home/anarcat/src/build-area/atheme-services-6.0.11/modules/alis »
make[6]: quittant le répertoire « /home/anarcat/src/build-area/atheme-services-6.0.11/modules/alis »
make[6]: entrant dans le répertoire « /home/anarcat/src/build-area/atheme-services-6.0.11/modules/alis »
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/Scrt1.o(.debug_info): relocation 0 has invalid symbol index 11
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/Scrt1.o(.debug_info): relocation 1 has invalid symbol index 12
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/Scrt1.o(.debug_info): relocation 2 has invalid symbol index 2
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/Scrt1.o(.debug_info): relocation 3 has invalid symbol index 2
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/Scrt1.o(.debug_info): relocation 4 has invalid symbol index 11
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/Scrt1.o(.debug_info): relocation 5 has invalid symbol index 13
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/Scrt1.o(.debug_info): relocation 6 has invalid symbol index 13
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/Scrt1.o(.debug_info): relocation 7 has invalid symbol index 13
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/Scrt1.o(.debug_info): relocation 8 has invalid symbol index 2
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/Scrt1.o(.debug_info): relocation 9 has invalid symbol index 2
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/Scrt1.o(.debug_info): relocation 10 has invalid symbol index 12
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/Scrt1.o(.debug_info): relocation 11 has invalid symbol index 13
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/Scrt1.o(.debug_info): relocation 12 has invalid symbol index 13
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/Scrt1.o(.debug_info): relocation 13 has invalid symbol index 13
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/Scrt1.o(.debug_info): relocation 14 has invalid symbol index 13
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/Scrt1.o(.debug_info): relocation 15 has invalid symbol index 13
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/Scrt1.o(.debug_info): relocation 16 has invalid symbol index 13
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/Scrt1.o(.debug_info): relocation 17 has invalid symbol index 13
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/Scrt1.o(.debug_info): relocation 18 has invalid symbol index 13
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/Scrt1.o(.debug_info): relocation 19 has invalid symbol index 13
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/Scrt1.o(.debug_info): relocation 20 has invalid symbol index 21
/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/Scrt1.o: In function `_start':
(.text+0x20): undefined reference to `main'
/tmp/ccFq9OHE.o: In function `_moddeinit':
/home/anarcat/src/build-area/atheme-services-6.0.11/modules/alis/main.c:91: undefined reference to `service_unbind_command'
/home/anarcat/src/build-area/atheme-services-6.0.11/modules/alis/main.c:92: undefined reference to `service_unbind_command'
/tmp/ccFq9OHE.o: In function `_modinit':
/home/anarcat/src/build-area/atheme-services-6.0.11/modules/alis/main.c:84: undefined reference to `service_add'
/home/anarcat/src/build-area/atheme-services-6.0.11/modules/alis/main.c:85: undefined reference to `service_bind_command'
/tmp/ccFq9OHE.o: In function `alis_cmd_help':
/home/anarcat/src/build-area/atheme-services-6.0.11/modules/alis/main.c:416: undefined reference to `command_success_nodata'
/home/anarcat/src/build-area/atheme-services-6.0.11/modules/alis/main.c:417: undefined reference to `command_success_nodata'
/home/anarcat/src/build-area/atheme-services-6.0.11/modules/alis/main.c:420: undefined reference to `command_success_nodata'
/home/anarcat/src/build-area/atheme-services-6.0.11/modules/alis/main.c:421: undefined reference to `command_success_nodata'
/home/anarcat/src/build-area/atheme-services-6.0.11/modules/alis/main.c:422: undefined reference to `ircd'
/home/anarcat/src/build-area/atheme-services-6.0.11/modules/alis/main.c:422: undefined reference to `command_success_nodata'
/home/anarcat/src/build-area/atheme-services-6.0.11/modules/alis/main.c:423: undefined reference to `command_success_nodata'
/home/anarcat/src/build-area/atheme-services-6.0.11/modules/alis/main.c:424: undefined reference to `command_help'
/tmp/ccFq9OHE.o: In function `print_channel':
/home/anarcat/src/build-area/atheme-services-6.0.11/modules/alis/main.c:276: undefined reference to `channel_modes'
/home/anarcat/src/build-area/atheme-services-6.0.11/modules/alis/main.c:271: undefined reference to `channel_modes'
/home/anarcat/src/build-area/atheme-services-6.0.11/modules/alis/main.c:271: undefined reference to `command_success_nodata'
/home/anarcat/src/build-area/atheme-services-6.0.11/modules/alis/main.c:281: undefined reference to `channel_modes'
/tmp/ccFq9OHE.o: In function `parse_alis':
/home/anarcat/src/build-area/atheme-services-6.0.11/modules/alis/main.c:140: undefined reference to `command_fail'
/home/anarcat/src/build-area/atheme-services-6.0.11/modules/alis/main.c:148: undefined reference to `command_fail'
/home/anarcat/src/build-area/atheme-services-6.0.11/modules/alis/main.c:159: undefined reference to `has_priv'
/tmp/ccFq9OHE.o: In function `alis_cmd_list':
/home/anarcat/src/build-area/atheme-services-6.0.11/modules/alis/main.c:369: undefined reference to `logcommand'
/home/anarcat/src/build-area/atheme-services-6.0.11/modules/alis/main.c:372: undefined reference to `command_success_nodata'
/home/anarcat/src/build-area/atheme-services-6.0.11/modules/alis/main.c:391: undefined reference to `chanlist'
/tmp/ccFq9OHE.o: In function `parse_alis':
/home/anarcat/src/build-area/atheme-services-6.0.11/modules/alis/main.c:179: undefined reference to `command_fail'
/home/anarcat/src/build-area/atheme-services-6.0.11/modules/alis/main.c:188: undefined reference to `command_fail'
/tmp/ccFq9OHE.o: In function `show_channel':
/home/anarcat/src/build-area/atheme-services-6.0.11/modules/alis/main.c:325: undefined reference to `ignore_mode_list'
/home/anarcat/src/build-area/atheme-services-6.0.11/modules/alis/main.c:340: undefined reference to `match'
/home/anarcat/src/build-area/atheme-services-6.0.11/modules/alis/main.c:343: undefined reference to `match'
/home/anarcat/src/build-area/atheme-services-6.0.11/modules/alis/main.c:315: undefined reference to `ignore_mode_list'
/tmp/ccFq9OHE.o: In function `channel_find':
/home/anarcat/src/build-area/atheme-services-6.0.11/modules/alis/../../include/inline/channels.h:21: undefined reference to `chanlist'
/tmp/ccFq9OHE.o: In function `alis_cmd_list':
/home/anarcat/src/build-area/atheme-services-6.0.11/modules/alis/main.c:383: undefined reference to `chanuser_find'
/home/anarcat/src/build-area/atheme-services-6.0.11/modules/alis/main.c:387: undefined reference to `command_success_nodata'
/tmp/ccFq9OHE.o: In function `parse_alis':
/home/anarcat/src/build-area/atheme-services-6.0.11/modules/alis/main.c:239: undefined reference to `command_fail'
/tmp/ccFq9OHE.o: In function `alis_cmd_list':
/home/anarcat/src/build-area/atheme-services-6.0.11/modules/alis/main.c:400: undefined reference to `command_success_nodata'
/tmp/ccFq9OHE.o: In function `alis_parse_mode':
/home/anarcat/src/build-area/atheme-services-6.0.11/modules/alis/main.c:115: undefined reference to `mode_to_flag'
/home/anarcat/src/build-area/atheme-services-6.0.11/modules/alis/main.c:116: undefined reference to `ignore_mode_list'
/tmp/ccFq9OHE.o: In function `show_channel':
/home/anarcat/src/build-area/atheme-services-6.0.11/modules/alis/main.c:335: undefined reference to `ignore_mode_list'
/tmp/ccFq9OHE.o: In function `parse_alis':
/home/anarcat/src/build-area/atheme-services-6.0.11/modules/alis/main.c:156: undefined reference to `command_fail'
/home/anarcat/src/build-area/atheme-services-6.0.11/modules/alis/main.c:250: undefined reference to `command_fail'
/home/anarcat/src/build-area/atheme-services-6.0.11/modules/alis/main.c:223: undefined reference to `command_fail'
/home/anarcat/src/build-area/atheme-services-6.0.11/modules/alis/main.c:198: undefined reference to `command_fail'
/tmp/ccFq9OHE.o: In function `_moddeinit':
/home/anarcat/src/build-area/atheme-services-6.0.11/modules/alis/main.c:94: undefined reference to `service_delete'
/tmp/ccFq9OHE.o: In function `_modinit':
/home/anarcat/src/build-area/atheme-services-6.0.11/modules/alis/main.c:86: undefined reference to `service_bind_command'
/tmp/ccFq9OHE.o: In function `alis_cmd_help':
/home/anarcat/src/build-area/atheme-services-6.0.11/modules/alis/main.c:429: undefined reference to `help_display'
/home/anarcat/src/build-area/atheme-services-6.0.11/modules/alis/main.c:425: undefined reference to `command_success_nodata'
/tmp/ccFq9OHE.o: In function `print_channel':
/home/anarcat/src/build-area/atheme-services-6.0.11/modules/alis/main.c:281: undefined reference to `command_success_nodata'
/home/anarcat/src/build-area/atheme-services-6.0.11/modules/alis/main.c:285: undefined reference to `command_success_nodata'
/home/anarcat/src/build-area/atheme-services-6.0.11/modules/alis/main.c:293: undefined reference to `command_success_nodata'
collect2: error: ld returned 1 exit status
Failed to compile main.c!
make[6]: *** [main.so] Erreur 1
make[6]: quittant le répertoire « /home/anarcat/src/build-area/atheme-services-6.0.11/modules/alis »
make[5]: *** [all] Erreur 1
make[5]: quittant le répertoire « /home/anarcat/src/build-area/atheme-services-6.0.11/modules/alis »
make[4]: *** [subdirs] Erreur 1
make[4]: quittant le répertoire « /home/anarcat/src/build-area/atheme-services-6.0.11/modules »
make[3]: *** [all] Erreur 1
make[3]: quittant le répertoire « /home/anarcat/src/build-area/atheme-services-6.0.11/modules »
make[2]: *** [subdirs] Erreur 1
make[2]: quittant le répertoire « /home/anarcat/src/build-area/atheme-services-6.0.11 »
make[1]: *** [all] Erreur 1
make[1]: quittant le répertoire « /home/anarcat/src/build-area/atheme-services-6.0.11 »
dh_auto_build: make -j1 returned exit code 2
make: *** [build] Erreur 2
dpkg-buildpackage: erreur: debian/rules build a produit une erreur de sortie de type 2
debuild: fatal error at line 1357:
dpkg-buildpackage -rfakeroot -D -us -uc failed

chanserv/set_restricted ignores banmasks

chanserv/set_restricted ignores banmasks set in flags, kicking and banning a user even when their banmask gives them flags on a channel.

Example log:

<neersighted> !flags testuser!*@* +AOov
*** testuser has joined #test ***
* ChanServ sets modes [+b testuser!test@*.pacbell.net]
*** testuser has been kicked from #test ("You are not authorized to be on this channel") ***

XML-RPC: atheme.ison timeouts when asking for an offline user

Hi!

Thanks for the null-dereference fix, but you forgot to send the xml-response.

--- a/modules/transport/xmlrpc/main.c
+++ b/modules/transport/xmlrpc/main.c
@@ -523,6 +523,7 @@ static int xmlrpcmethod_ison(void *conn, int parc, char *parv[])
        {
                xmlrpc_boolean(buf, false);
                xmlrpc_string(buf2, "*");
+               xmlrpc_send(2, buf, buf2);
                return 0;
        }

New module: chanserv/fsync

Scenario:

Channel op accidentally op's someone by mistake because of a miss-tab (or whatever other reasons)
The now op'ed person kick/bans all currents op's. The op then massop's the channel, throwing the channel into chaos.
The other channel ops do not have access to chanserv/clear or chanserv/unban or chanserv/sync while the channel owner is away, preventing them from fixing the mistake.
A /oper see this happen, knowing its a total mistake .. but the /oper does not have access in the channel deop everyone or access to chanserv/fflags to give himself or herself the flags to fix this.

I am suggesting creating a chanserv/fsync module that would allow the /oper to force sync the channel (mass deop everyone who is not suppose to be op in the above scenario).

SASL authentication does not provide UMODE +r on Unreal networks.

The issue is exactly as described in the title: When users connect and successfully authenticate via SASL on Unreal networks, UMODE +r is not given once the client registers. Here is a copy/paste from my development network running the latest Unreal HG tree:

20:59 [Ewnix] -!- Irssi: CLICAP: now enabled: multi-prefix sasl
20:59 [Ewnix] -!- phlux!lawl@xxx phlux You are now logged in as phlux.
20:59 [Ewnix] -!- Irssi: SASL authentication successful

20:59 [Ewnix] -!- Cannot join channel #services (IRCops only)
20:59 [Ewnix] -!- phlux [phlux@xxx]
20:59 [Ewnix] -!- ircname : phlux
20:59 [Ewnix] -!- hostname : phlux@xxx xxx
20:59 [Ewnix] -!- channels : @#idlerpg #Ewnix ~#wolf ~#Alabama
20:59 [Ewnix] -!- server : bryant.ca.us.ewnix.net [Ewnix Client Server]
20:59 [Ewnix] -!- : is using a Secure Connection
20:59 [Ewnix] -!- account : phlux
20:59 [Ewnix] -!- idle : 0 days 0 hours 0 mins 6 secs [signon: Mon Jul 9 20:59:06 2012]
20:59 [Ewnix] -!- End of WHOIS

21:00 -NickServ([email protected])- You have been logged out.
21:00 -NickServ([email protected])- You are now identified for phlux.

21:08 [Ewnix] -!- phlux [phlux@xxx]
21:08 [Ewnix] -!- ircname : phlux
21:08 [Ewnix] -!- hostname : phlux@xxx xxx
21:08 [Ewnix] -!- : is identified for this nick
21:08 [Ewnix] -!- channels : #services @#@shi @#idlerpg #Ewnix ~#wolf ~#Alabama
21:08 [Ewnix] -!- server : bryant.ca.us.ewnix.net [Ewnix Client Server]
21:08 [Ewnix] -!- : is using a Secure Connection
21:08 [Ewnix] -!- account : phlux

21:09 [Ewnix] -!- [services.ewnix.net] atheme 7.1.0-dev. services.

Expose async interfaces via Perl

Please expose the async interfaces for Atheme via Perl so that third-party modules which can cooperate with applications' event loops can be integrated into Atheme, e.g. for asynchronous weather information calls.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.