about summary refs log tree commit diff
path: root/src
AgeCommit message (Collapse)Author
2013-09-05Move the IRC_SetPenalty() call after the assertsFederico G. Schwindt
2013-09-05Correct numeric returned by whoisFederico G. Schwindt
As per RFC whois should return 431 if no nick is provided. While here convert upper check to use irc-macros. As a bonus we get to set the penalty for free.
2013-09-05Minor cosmetic changeFederico G. Schwindt
Add a define to indicate any client. While I'm here use hex values instead of decimal, it's somewhat clearer that they could be OR'ed together.
2013-09-03getpid.sh: use /bin/pidof when availableAlexander Barton
2013-09-03Don't enforce channel types for other serversAlexander Barton
The configuration option "AllowedChannelTypes" must only be enforced for regular clients and not for remote servers. Channels created by other servres are always allowed, because they already exist and the daemon must stay in sync with the network.
2013-09-02Only log "IDENT ... no result" when IDENT was looked upAlexander Barton
Without this patch, ngIRCd logged the "IDENT lookup for connection X: no result"-message even when IDENT lookups have been disabled using the "Ident = no" configuration option, which is a little bit misleading. Reported by "btwe" in #ngircd.
2013-08-31ngircd: use setgid/setuid errno value in error pathFlorian Westphal
Need to use saved errno value as strerror argument, else you get bogus output ('success') in the log message.
2013-08-31Show connection flag "s" (SSL) in RPL_TRACE{LINK|SERVER}Alexander Barton
Now you can check if a server-to-server link is SSL-encrypted or not using the IRC "TRACE" command. Idea by Götz Hoffart, thanks!
2013-08-27Change away to be allocated dynamicallyFederico G. Schwindt
2013-08-27Ignore "operation not permitted" while dropping groupsAlexander Barton
Without this exception, you can't start ngIRCd as user any more, it is analog to setting the user and group ID.
2013-08-27ngircd: discard supplementary group ids on startupFlorian Westphal
The intention was to switch to JUST uid:gid, but setgid is not sufficient. Reported-by: Michael Scherer <misc@zarb.org>
2013-08-26Merge branch 'bug159-WebircIPA'Alexander Barton
* bug159-WebircIPA: Introduce Free_Client() function to free CLIENT structure Save client IP address text for "WebIRC" users
2013-08-26Introduce Free_Client() function to free CLIENT structureAlexander Barton
2013-08-26Save client IP address text for "WebIRC" usersAlexander Barton
This patch introduces a new field in the CLIENT structure, "ipa_text", which points to an optional textual representation of the client IP address (or NULL) which can be used to store the "real" IP address information of a client using the "WEBIRC" protocol. Without this patch, ngIRCd ignored the <ip-address> paramater ... In addition, the functions Client_SetIPAText() and Client_IPAText() have been introduced to set and get the textual representation of the client IP address. Client_IPAText() can be used even when no "IP address text" has been set before, it then returns the real IP address of the connection. Closes bug #159.
2013-08-26Implement new configuration option "DefaultUserModes"Alexander Barton
The new configuration option "DefaultUserModes" lists user modes that become automatically set on new local clients right after login. Please note that only modes can be set that the client could set on itself, you can't set "a" (away) or "o" (IRC Op), for example! User modes "i" (invisible) or "x" (cloaked) etc. are "interesting", though. Default: set no modes (like without this patch). Closes bug #160.
2013-08-26Change strdup() to strndup()Federico G. Schwindt
2013-08-26private strndup() implementation in case libc does not provide itFederico G. Schwindt
2013-08-25Silence warningFederico G. Schwindt
Cast the result of the operation to long, not the time(NULL) call. On systems where sizeof(time_t) is other than long this will produce a warning.
2013-08-25Plug memory leakFederico G. Schwindt
2013-08-25Implement account login supportFederico G. Schwindt
This is done via the `accountname' METADATA command and used to automatically identify users after netsplits or across service restarts.
2013-08-24Fix spellingFederico G. Schwindt
2013-08-23Correctly handle return code of Handle_Write()Alexander Barton
There have been code paths that ignored the return code of Handle_Write() when sending "notice auth" messages to new clients connecting to the server. But because Handle_Write() would have closed the client connection again if an error occurred, this would have resulted in new errors and assert()'s later on that could have crashed the server (denial of service). Only setups having the configuration option "NoticeAuth" enabled are affected, which is not the default. CVE-2013-5580.
2013-08-21Enhance log messages on "recursive" connection errorsAlexander Barton
2013-08-21Add some assert() calls to ng_ipaddr libraryAlexander Barton
2013-08-17Merge branch 'ssl-log-messages'Alexander Barton
* ssl-log-messages: Make SSL-related log messages more readable ConnSSL_HandleError: Code cleanup, more documentation
2013-08-14Make SSL-related log messages more readableAlexander Barton
- Don't use internal function names but describe the error. - Streamline wording, use "SSL" for SSL and TLS. - Streamline punctuation.
2013-08-14Use _IRC_ARGC_BETWEEN_OR_RETURN_ when possibleFederico G. Schwindt
2013-08-13ConnSSL_HandleError: Code cleanup, more documentationAlexander Barton
2013-08-12Change log level of "SSL connection shutting down"Alexander Barton
2013-08-11Fix 2 bugs introduced in 74514b8c23Federico G. Schwindt
Channel_Modes() and Channel_Topic() return static memory that is zeroed at creation time. Fix checking for empty modes and topic so they're propagated correctly.
2013-08-07IRC_SERVER(): Code cleanupAlexander Barton
2013-08-07Introduce new function IRC_WriteErrClient()Alexander Barton
This function is used to send "error messages", including numerics, back to clients and to automatically enforce a 2 second penalty. With this patch, all error results enforces a delay for the client. All callers of IRC_WriteStrClient(ERR_xxx) have been converted. Please note that this patch prolongs the time "make check" needs to complete its tests, because of lots of new enforced penalties ...
2013-08-06irc-macros.h: Update copyright, don't forget contributors!Alexander Barton
2013-08-06irc-write.c: Clean up code and add more documentation commentsAlexander Barton
2013-08-06Fix return code of some IRC_WriteXXX() functionsAlexander Barton
These functions usually write to more than one target, and therefore can't return value indicating success or failure in a sane way. And, even more omportant, these functions should send to as much as possible clients and not stop at the first client which isn't reachable any more!
2013-08-06Streamline punctuation of log messagesAlexander Barton
See commit d38d153f for details.
2013-08-05Inline who_flags_statusFederico G. Schwindt
2013-08-04Convert more code to use Channel_HasModeFederico G. Schwindt
2013-08-04Simplify mode checking on channels and users within a channelFederico G. Schwindt
Add Channel_HasMode() and Channel_UserHasMode() and use it where possible.
2013-08-04Use Client_HasMode and Client_HasFlag where appropriateFederico G. Schwindt
2013-08-04Merge branch 'bug152-AllowedChannelTypes'Alexander Barton
* bug152-AllowedChannelTypes: Implement new configuration option "AllowedChannelTypes" Introduce "CHANTYPES" #define
2013-08-04Implement new configuration option "AllowedChannelTypes"Alexander Barton
The new configuration variable "AllowedChannelTypes" lists all allowed channel types (channel prefixes) for newly created channels on the local server. By default, all supported channel types are allowed. If set to the empty string, local clients can't create new channels at all, which equals the old "PredefChannelsOnly = yes" setting. This patch deprecates the "PredefChannelsOnly" variable, too, but it is still supported and translated to the apropriate "AllowedChannelTypes" setting. When "PredefChannelsOnly" is processed, a warning message is logged. Closes bug #152.
2013-08-04More spelling fixesFederico G. Schwindt
Remove superflous comments, mostly in German. Fix spelling and use american variants for consistency.
2013-08-04Change cloaked hostname to be malloc'd on demandFederico G. Schwindt
This shaves a few bytes when cloaked hostnames are not used and restricts the cloakhost announcement iif there is something to send.
2013-08-04Add Client_HasFlag() to check if a client has certain flagFederico G. Schwindt
2013-08-04Fix spellingFederico G. Schwindt
2013-08-04Rename XXX_Fingerprint to XXX_CertFpFederico G. Schwindt
2013-08-04Improved client announcementFederico G. Schwindt
Move Announce_User() to client.c and rename it to Client_Announce(). Use this in cb_introduceClient() instead of duplicating the code. This fix the certificate fingerprint announcement for new clients. Also ensure the certificate fingerprint is only announced if the client supports it (`M' flag).
2013-08-04Introduce "CHANTYPES" #defineAlexander Barton
This #define lists all the prefix characters of all supported channel types, this is "#&+" at the moment.
2013-08-03Merge remote-tracking branch 'fgsch/certfp'Alexander Barton
* fgsch/certfp: Simplify MOTD handling Add certificate fingerprint support