about summary refs log tree commit diff
path: root/src
AgeCommit message (Collapse)Author
2011-12-04Suppress 'Can't create pre-defined channel: invalid name: ""' messagesAlexander Barton
Skip predefined channel structures that have configured no name, like the "--configtest" does.
2011-11-25Only use poll() when poll.h exists as wellAlexander Barton
2011-11-10whois-test: handle local hostname = "localhost.localdomain"Alexander Barton
Use the pattern "localhost*" for valid local hostnames.
2011-11-06Test for gai_strerror()Alexander Barton
If gai_strerror() isn't available, use a macro that simply returns a static error message (regardless of the real error code). For example, GNU libc 2.0.7 doesn't implement gai_strerror().
2011-11-06Only use AI_NUMERICHOST if it is #define'dAlexander Barton
It isn't using GNU libc 2.0.7, for example ...
2011-11-05defines.h: fix comment: "lenth" -> "length"Alexander Barton
Reported by Christoph Biedl in #ngircd. Thanks!
2011-11-05Init_Server_Struct(): correctly zero Server->bind_addrAlexander Barton
Don't use the size of the pointer, use the size of the variable!
2011-11-03Clean up and fix comments of Check_ArgIsTrue()Alexander Barton
Thanks to kaFux for pointing this out! And fix code formatting as well ...
2011-09-07Only close "unrelated" sockets in forked child processesAlexander Barton
This fixes the problem that ngIRCd can't do any IDENT lookups because of the socket has already been closed in the child process. The bug has been introduced starting with ngIRCd 17 ... :-( (commit ID 6ebb31ab35e)
2011-08-26Implemented user mode "R" and channel mode "R"Alexander Barton
- User mode "R": indicates that the nick name of this user is "registered". This mode isn't handled by ngIRCd itself, but must be set and unset by IRC services like Anope. - Channel mode "R": only registered users (having the user mode "R" set) are allowed to join this channel.
2011-08-23Use Proc_Close() to remove no longer unused pipes to child processesAlexander Barton
This removes spurious (but harmless) debug messages.
2011-08-23New function Proc_Close() to shutdown pipes to child processesAlexander Barton
2011-08-23Introduce DEBUG_BUFFER, rework some debug messagesAlexander Barton
DEBUG_BUFFER is off by default and therefore disables these messages: - "Handle_Write() called for connection XX, YY bytes pending ..." - "Connection XX: ZZ bytes left in read buffer."
2011-08-22Testsuite: bind to loopback (127.0.0.1) interface onlyAlexander Barton
2011-08-19New 2nd message "Nickname too long" for error code 432Alexander Barton
2011-08-19Client_CheckNick(), Client_IsValidNick(): code cleanupAlexander Barton
2011-08-13Merge branch 'ServerMode'Alexander Barton
* ServerMode: Handle channel user modes 'a', 'h', and 'q' from remote servers Handle unknown channel modes on server links Handle unknown user modes on server links IRC_MODE(), Client_Mode(): code cleanup [2/2] Enlarge client user mode buffer, reduce client flags buffer Infom clients when other servers change their user modes IRC_MODE(), Client_Mode(): code cleanup [1/2]
2011-08-09Merge branch 'bug113-SrvPrefix'Alexander Barton
* bug113-SrvPrefix: Slightly change (and document!) IRC_KILL() calling convention Spoofed prefixes: close connection on non-server links only
2011-08-02Cast getpid() and time() results for srand() inputAlexander Barton
This fixes: src/ngircd/ngircd.c:596: warning: implicit conversion shortens 64-bit value into a 32-bit value (i686-apple-darwin11-llvm-gcc-4.2)
2011-08-02IRC_QUIT(): disconnect directly linked servers sending QUITAlexander Barton
Without this patch, the server becomes removed from the network and the client structures, but the connection isn't shut down at all ...
2011-08-01Handle channel user modes 'a', 'h', and 'q' from remote serversAlexander Barton
These channel user modes aren't used for anything at the moment, but ngIRCd knows that these three modes are "channel user modes" and not "channel modes", that is that these modes take an "nick name" argument. Like unknown user and channel modes, these modes are saved and forwarded, but ignored otherwise.
2011-08-01Handle unknown channel modes on server linksAlexander Barton
2011-08-01Handle unknown user modes on server linksAlexander Barton
2011-08-01IRC_MODE(), Client_Mode(): code cleanup [2/2]Alexander Barton
2011-08-01Enlarge client user mode buffer, reduce client flags bufferAlexander Barton
We have to enlage our user mode buffer, so we can handle even unknown user modes in the future; and reduce the client flags buffer, because I can't imagine why we ever would need ~100 flags!? Now we support up to 15 user modes (was: 8) and up to 15 flags (was: 99). So in the end, we even save 99-15+8-15=77 bytes for each client structure!
2011-08-01Infom clients when other servers change their user modesAlexander Barton
2011-08-01IRC_MODE(), Client_Mode(): code cleanup [1/2]Alexander Barton
2011-07-30Slightly change (and document!) IRC_KILL() calling conventionAlexander Barton
2011-07-30Testsuite: make getpid.sh work even when run as rootAlexander Barton
Use ps(1) flag "-a" (as well as "-f"): "Select all processes except both session leaders (see getsid(2)) and processes not associated with a terminal." Thanks to Götz Hoffart for reporting this problem!
2011-07-19Spoofed prefixes: close connection on non-server links onlyAlexander Barton
On server-links, spoofed prefixes can happen because of the asynchronous nature of the IRC protocol. So don't break server-links, only log a message and ignore the command. This fixes bug 113, see: <https://arthur.barton.de/bugzilla/show_bug.cgi?id=113>
2011-07-10MorePrivacy: Don't register WHOWAS informationAlexander Barton
Citing an email from Florian to the ngIRCd mailing list: "I wonder what the expected behaviour is when Conf_MorePrivacy is changed from 'yes' to 'no' and the config is reloaded. At the moment, WHOWAS will start giving out information on Users that were connected during Conf_MorePrivacy=yes period. If this is not wanted, Client_RegisterWhowas() should be changed to not store a record when Conf_MorePrivacy is enabled." And I think it is "not wanted" :-)
2011-06-28GnuTLS: use 1024 (DH_BITS_MIN) as minimum size of the DH primeAlexander Barton
For outgoing connections, we use 2048 (DH_BITS) since commit 49b2d0e. This patch enables ngIRCd to accept incoming connections from other servers and clients that use at least 1024 bits (and no longer requires 2048 for incoming connections, too). Patch proposed by Florian Westphal.
2011-06-27hash: Use UINT32 instead of uint32_tAlexander Barton
2011-06-27hash: use more recent lookup3 algorithm instead of lookup2Florian Westphal
Bob Jenkins published a newer hash function in May 2006, it has better distribution. See http://burtleburtle.net/bob/hash/doobs.html for lengthy comparisions.
2011-06-26Use srand()/rand() instead of srandom()/random(); seems to be more portableAlexander Barton
2011-06-26Merge branch 'MorePrivacy'Alexander Barton
* MorePrivacy: New configuration opion "MorePrivacy" to "censor" some user information
2011-06-26Merge branch 'ScrubCTCP'Alexander Barton
* ScrubCTCP: Add documentation for "ScrubCTCP" configuration option New option to scrub incoming CTCP commands
2011-06-26Move SSL-related configuration variables to new [SSL] sectionAlexander Barton
2011-06-26CheckFileReadable(): only check when a filename is given ...Alexander Barton
2011-06-25PAM: make clear which "Password" config option is ignoredAlexander Barton
2011-06-25New configuration opion "MorePrivacy" to "censor" some user informationxor
this patch contains: * Fix for Conf_CloakUserToNick to make it conceal user details * Adds MorePrivacy-feature MorePrivacy censors some user information from being reported by the server. Signon time and idle time is censored. Part and quit messages are made to look the same. WHOWAS requests are silently dropped. All of this is useful if one wish to conceal users that access the ngircd servers from TOR or I2P.
2011-06-25New option to scrub incoming CTCP commandsxor
This patch makes it possible to scrub incomming CTCP commands from other servers and clients alike. The ngircd oper can enable it from the config file, by adding "ScrubCTCP = yes" under [OPTIONS]. It is default off. CTCP can be used to profile IRC users (get user clients name and version, and also their IP addresses). This is not something we like to happen when user pseudonymity/secrecy is important. The server silently drops incomming CTCP requests from both other servers and from users. The server that scrubs CTCP will not forward the CTCP requests to other servers in the network either, which can spell trouble if not every oper knows about the CTCP-scrubbing. Scrubbing CTCP commands also means that it is not possible to send files between users. There is one exception to the CTCP scrubbing performed: ACTION ("/me commands") requests are not scrubbed. ACTION is not dangerous to users (unless they use OTR, which does not encrypt CTCP requests) and most users would be confused if they were just dropped. A CTCP request looks like this: ctcp_char, COMMAND, arg0, arg1, arg2, .. argN, ctcp_char ctcp_char is 0x01. (just like bold is 0x02 and color is 0x03.) They are sent as part of a message and can be delivered to channels and users alike.
2011-06-25Testsuite: update configuration files for new config file formatAlexander Barton
2011-06-25Display configuration errors more prominent on "--configtest"Alexander Barton
2011-06-25conf.c: code cleanupAlexander Barton
2011-06-25Check for redability of SSL-related files like for MOTD fileAlexander Barton
Remove functions ssl_print_configvar() and ConfSSL_Puts(), introduce new function CheckFileReadable().
2011-06-25Restructure ngIRCd configuration, introduce [Limits] and [Options]Alexander Barton
The intention of this restructuring is to make the [Global] section much cleaner, so that it only contains variables that most installations must adjust to the local requirements. All the optional variables are moved to [Limits], for configurable limits and timers of ngIRCd, and [Options], for optional features. The old variables in the [Global] section are deprecated now, but still recognized.
2011-06-05conn: fix error handling when connecting to serverFlorian Westphal
The io_event_create error handling seems to miss a 'return' statement. Fix this by moving io_event_create() call around so we do not need the Conn_Close/Init calls in the error case.
2011-06-04ssl: gnutls: bump dh bitsize to 2048Florian Westphal
problem is that some clients refuse to connect to severs that only offer 1024. For interoperability it would be best to just use 4096, but that takes minutes, even on current hardware.
2011-05-06fix clang warning about dead storesFlorian Westphal
clang 'scan-build': Value stored to 'r' is never read Value stored to 'fd' is never read