aboutsummaryrefslogtreecommitdiffstats
path: root/irc_commands.c
Commit message (Collapse)AuthorAgeLines
* Remove the ARCH / CPU defines.Jelmer Vernooij2016-05-15-2/+2
| | | | | | | These only reflect on what arch/cpu bitlbee was built, not on which it is running. This makes the Debian package unreproducible. See e.g. https://tests.reproducible-builds.org/rb-pkg/testing/i386/bitlbee.html
* Authentication: scaffolding for multiple authentication backendsDennis Kaarsemaker2016-03-25-1/+1
| | | | | | | | | | | | | | | | | | | | | | | Instead of always putting users passwords in XML files, allow site admins to configure a different authentication method to integrate authentication with other systems. This doesn't add any authentication backends yet, merely the scaffolding. Notably: - Password checking and loading/removing from storage has been decoupled. A new auth_check_pass function is used to check passwords. It does check against the configured storage first, but will handle the authentication backends as well. The XML storage merely signals that a user's password should be checked using an authentication backend. - If unknown-to-bitlbee users identify using an authentication backend, they are automatically registered. - If an authentication backend is used, that fact is stored in the XML file, the password is not. Passwords are also stored unencrypted in this case, as the password used to encrypt them can change underneath us. - configure and Makefile changes for the backend objects
* irc_sasl_plain_parse: fix size of the parts arraydequis2015-10-08-1/+1
| | | | | | | | Oddly enough it doesn't break. Maybe it overwrites the 'decoded' pointer when it doesn't need it anymore? Fun stuff. Also the version of gcc (5.2) i'm using doesn't complain about array bounds, clang does, and the older gcc (4.6) in travis does too.
* The SASL PLAIN RFC says that the first part can be emptydequis2015-10-08-2/+2
| | | | | | | | | | | | | | | | | So use the second part as the username, and only require it to be equal to the first part if that one is present. ABNF from the spec: message = [authzid] UTF8NUL authcid UTF8NUL passwd Note brackets. Authzid (authorization identity) is meant for impersonation, which we don't support. The actual login username is defined by authcid (authentication identity) Thanks grawity for pointing this out.
* IRCv3 SASL capability + PLAIN methoddequis2015-10-08-0/+122
| | | | | | | | | | | | | | | | | | | | | Only plain, no other methods. We don't have built-in SSL to implement EXTERNAL (certfp) and nothing else is worth implementing. The actual authentication is pretty much like sending a server password (when the server's authmode isn't closed), which means it happens in cmd_identify, but this code also calls storage_check_pass() to send the required success/failure replies. SASL doesn't give us much benefit other than standards compliance, but some clients might appreciate it. And having a fifth way to do the same thing doesn't hurt! Now we have: - identify in &bitlbee - identify to nickserv (alias for root) - 'nickserv' and 'ns' irc commands - server password - sasl plain
* Move CAP commands to irc_cap.c; use enum for flagsdequis2015-09-30-149/+0
|
* CAP LISTdequis2015-09-10-1/+24
|
* CAP LSdequis2015-09-10-6/+18
|
* CAP REQdequis2015-09-10-2/+89
|
* Initial implementation of ircv3 capability negotiationdequis2015-09-10-0/+28
| | | | | Mostly no-op for now. Puts registration on hold, supports the basic commands, and NAKs everything
* Reindent everything to K&R style with tabsIndent2015-02-20-491/+423
| | | | | | | Used uncrustify, with the configuration file in ./doc/uncrustify.cfg Commit author set to "Indent <please@skip.me>" so that it's easier to skip while doing git blame.
* irc_commands: implemented KICK supportjgeboski2015-01-29-0/+25
| | | | | | | | | | | With similar commands being supported, such as INVITE, the KICK command should be supported as well. The key motivation behind supporting KICK is having for having a way to remove users from group chats. As of now, there is no way for a bitlbee user to remove a user from a group chat. With no current KICK implementation, it made using this command a prime candidate for the UI side of this implementation. In addition, the KICK command has been supported in the control channel as well. This is to keep the INVITE/KICK pair consistent.
* Fix compiler warnings on Cygwin and Mac OS X.Jason Copenhaver2015-01-16-1/+3
| | | | | | | | * Don't use PIE/PIC on Cygwin/Darwin unless specified as these platforms don't support it. * Cleanup warnings for 'make check' build. * Fix the type issue for getsockopt calls. * Fix enum warnings in Yahoo libs on Mac OS X.
* Fix incorrect Free Software Foundation addressMatej Cepl2015-01-16-2/+2
|
* Add limit param to split_command_parts(), fix twitter quotes bugdequis2014-07-24-1/+1
| | | | Only took me a few months to write. I even added a test case.
* Allow use of "ac x set -del password" to use /oper to change the passwordWilmer van der Gaast2014-02-28-1/+1
| | | | | "securely". Patch from Flexo, bug #1117.
* Add irc_t* argument to all relevant nick_*() functions.Wilmer van der Gaast2013-04-20-4/+4
|
* I'm still bored on a long flight. Wrote a script to automatically updateWilmer van der Gaast2013-02-21-1/+1
| | | | | | | my copyright mentions since some were getting pretty stale. Left files not touched since before 2012 alone so that this change doesn't touch almost EVERY source file.
* Support /NOTICE for contacts, might be used by bots for example. Pre-ui-fixWilmer van der Gaast2012-12-24-0/+4
| | | | | these used to get a flag so OSCAR sends them as away messages IIRC, but meh.
* Set PACKAGE to BitlBee-LIBPURPLE for the libpurple variant, because in manyWilmer van der Gaast2012-05-02-2/+2
| | | | | ways it's not BitlBee and I'm tired of getting libpurple-related bug reports.
* Allow identify -noload/-force without typing a password. (/OPER)Wilmer van der Gaast2012-03-19-1/+12
| | | | | Patch from trac3r, bug #814.
* When changing nicks and the change is case-only (or no change *at all*),Wilmer van der Gaast2011-12-29-2/+6
| | | | | do not reset identify status. Bug #880.
* As I intended for a while already, use account tags everywhere instead ofWilmer van der Gaast2011-12-13-2/+2
| | | | | | | | "protocol(handle)". It's guaranteed to be unique and also shorter. It may suck for people who have multiple accounts and didn't change their tags, but that'll hopefully remind them to change them.
* rename irc_usermsg to irc_rootmsg.unknown2011-10-03-2/+2
| | | | | | add new irc_usermsg, irc_usernotice. deliver user-specific messages from libotr as notices to that user.
* Aaaaaargh! Who thought it'd be a good idea to make 8-bit integers signed??Wilmer van der Gaast2011-06-12-1/+1
| | | | | | NOW? WHO? Anyway, this bug was causing not only chars < ' ' to be stripped, but also anything with the highest bit set. (I.e. anything non-ASCII.)
* More password paranoia: Allow omitting the identify/register password asWilmer van der Gaast2011-02-01-18/+45
| | | | | | | | | | well (and enter it using /OPER instead). This is a gross hack and indeed still not solid: In irssi one can still use /RAWLOG SAVE to find the OPER line sent to BitlBee (and of course not everyone uses SSL to talk to remote BitlBee servers). This only works within 10-30 minutes after entering the password though.
* Some polishing/documentation for the "account add" without password hack.Wilmer van der Gaast2010-11-24-1/+7
|
* Allow omitting the password argument to "account add", to then separatelyWilmer van der Gaast2010-11-22-0/+11
| | | | | | | | | enter the password using the /OPER command (which will not echo to the screen and/or logs). It's a fairly ugly hack but the improved password security is worth it IMHO.
* Merging mainline, which includes a huge msnp13 merge.Wilmer van der Gaast2010-10-02-0/+1
|\ | | | | | | | | | | Not 100% sure about the OpenSSL merge, should double check that but I'm currently offline.
| * Move whatsnew stuff into help.txt. Stop putting too much string contentWilmer van der Gaast2010-09-06-0/+1
| | | | | | | | | | into the executable.
* | Merge mainline stuff.Wilmer van der Gaast2010-08-31-0/+8
|\|
| * Fix /WHO on single nicks.Wilmer van der Gaast2010-08-25-0/+8
| |
* | Added root_command_add() and use it to create the "otr" command.Wilmer van der Gaast2010-08-31-2/+2
|/
* OpenSolaris (non-gcc) fixes, patches from Dagobert Michelsen <dam@opencsw.org>Wilmer van der Gaast2010-08-07-1/+2
| | | | | with some changes.
* For bug #660, add a /LIST command.Wilmer van der Gaast2010-08-04-0/+15
|
* Don't crash when trying to join a channel with an invalid name.Wilmer van der Gaast2010-07-28-5/+6
|
* Block CTCPs to channels instead of sending them as plain messages. MaybeWilmer van der Gaast2010-07-27-1/+5
| | | | | some other day I'll find a reason for actually supporting them.
* Move control channel autoconfiguration to irc_cmd_join() instead so that itWilmer van der Gaast2010-07-14-0/+24
| | | | | | only triggers on channels created by the user. (And not at identify time, which was causing odd problems on my test setup.)
* Fixed cleaning up of channels. Something broke when changing theWilmer van der Gaast2010-07-13-1/+1
| | | | | irc_channel_del_user() syntax.
* Allow nick changes if they're only different in capitalisation, fixedWilmer van der Gaast2010-07-08-4/+7
| | | | | | faulty responses in the NICK command, and fixing crash bug in nick changes before finishing login.
* Fix handling of outgoing CTCP ACTIONs.Wilmer van der Gaast2010-07-03-1/+1
|
* Support /NOTICE, although for now just to yourself - some IRC clients useWilmer van der Gaast2010-07-01-3/+15
| | | | | this to measure lag.
* Allow joining multiple channels at once. Although BitlBee doesn't advertiseWilmer van der Gaast2010-06-28-21/+40
| | | | | support for this, irssi tries to do this anyway.
* Import chatrooms configured in older BitlBee versions. Settings are currentlyWilmer van der Gaast2010-06-27-1/+0
| | | | | | ignored though. Also removing the old chat.[ch] files since they're really not important anymore.
* Remember in which channel the user talked to someone and show responses inWilmer van der Gaast2010-06-26-1/+1
| | | | | that same channel.
* More correct handling of channel names (according to RFC 1459). PrettyWilmer van der Gaast2010-06-16-46/+0
| | | | | | much any 8-bit character is allowed in there - while nicknames are very restricted.
* Allow moving contacts around between groups. Works with at least Jabber,Wilmer van der Gaast2010-06-09-1/+3
| | | | | will check the others now.
* Restoring auto-identification using server password.Wilmer van der Gaast2010-06-07-1/+1
|
* Complete (hopefully) fix for nickname changes: Add flags to the identifyWilmer van der Gaast2010-06-07-0/+4
| | | | | | command to allow identifying without loading any new settings. With some documentation hints.
* Added /part msgs, and the ability to silently remove users from channelsWilmer van der Gaast2010-06-06-1/+1
| | | | | (when sending a /quit instead, for example).