Commit Graph

2650 Commits

Author SHA1 Message Date
Alexander Barton 160c52400f Cast getpid() and time() results for srand() input
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-02 13:24:13 +02:00
Alexander Barton 0b8acf1205 Xcode: update and add missing files to project 2011-08-02 13:16:28 +02:00
Alexander Barton 88f6fc5fd8 IRC_QUIT(): disconnect directly linked servers sending QUIT
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-02 00:56:49 +02:00
Alexander Barton da897a2a14 contrib/ngindent: detect "gindent" as GNU indent 2011-08-01 23:39:29 +02:00
Alexander Barton 989c9fa531 Handle channel user modes 'a', 'h', and 'q' from remote servers
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-01 23:30:55 +02:00
Alexander Barton 2fd42667c2 Handle unknown channel modes on server links 2011-08-01 22:30:00 +02:00
Alexander Barton 2dfa24d2fa Handle unknown user modes on server links 2011-08-01 22:09:40 +02:00
Alexander Barton 1ed602eb47 IRC_MODE(), Client_Mode(): code cleanup [2/2] 2011-08-01 21:51:31 +02:00
Alexander Barton ea725b99b7 Enlarge client user mode buffer, reduce client flags buffer
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-01 21:28:55 +02:00
Alexander Barton 3dc3a03538 Infom clients when other servers change their user modes 2011-08-01 21:10:16 +02:00
Alexander Barton 95f0e4033c doc/Platforms.txt: re-add mipsel/unknown/linux-gnu with gcc 4.1.2 2011-08-01 10:42:22 +02:00
Alexander Barton 409b2c86c8 Updated doc/Platforms.txt: mipsel/unknown/linux-gnu 2011-08-01 09:08:14 +02:00
Alexander Barton d692286d7a IRC_MODE(), Client_Mode(): code cleanup [1/2] 2011-08-01 09:07:32 +02:00
Alexander Barton 456e55921d Slightly change (and document!) IRC_KILL() calling convention 2011-07-30 19:48:48 +02:00
Alexander Barton 9f3690c39c Testsuite: make getpid.sh work even when run as root
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-30 18:47:58 +02:00
Alexander Barton 6cbe13085d Spoofed prefixes: close connection on non-server links only
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-19 16:07:34 +02:00
Alexander Barton b7780e3f2a Fix typo in doc/Platforms.txt; make Linux footnote more generic 2011-07-10 22:32:29 +02:00
Alexander Barton 04744e9d89 ngIRCd release 18 2011-07-10 20:05:16 +02:00
Alexander Barton 54f04f81e9 Update ChangeLog and NEWS for ngIRCd release 18 2011-07-10 20:02:01 +02:00
Alexander Barton 95e156b519 Updated doc/Platforms.txt for ngIRCd release 18 2011-07-10 19:58:41 +02:00
Alexander Barton e160121698 MorePrivacy: Don't register WHOWAS information
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-07-10 14:45:33 +02:00
Alexander Barton 54566b6b32 Add preliminary ngIRCd protocol module for Anope 1.9
See contrib/Anope/README and doc/Services.txt for more details
and installation instructions!
2011-07-10 14:23:11 +02:00
Alexander Barton c041bb340c Update timestamp of ngircd(8) manual page 2011-07-02 22:02:43 +02:00
Alexander Barton af60f04fef ngIRCd release 18~rc2 2011-06-29 10:22:46 +02:00
Alexander Barton 2d35731399 GnuTLS: use 1024 (DH_BITS_MIN) as minimum size of the DH prime
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-28 13:48:33 +02:00
Alexander Barton 7ae7ace579 ngircd.8: document debugging options 2011-06-28 13:45:16 +02:00
Alexander Barton 5f400694cf ngircd.conf.5: strip "SSL" prefix from variables in [SSL] section 2011-06-28 13:21:38 +02:00
Alexander Barton bd118c65fd Fix some wording, use spellchecker ;-) 2011-06-28 13:12:06 +02:00
Alexander Barton 29c49f643f doc/SSL.txt: adopt to new configuration file layout 2011-06-28 13:11:14 +02:00
Alexander Barton b6185b1ac8 ngIRCd release 18~rc1 2011-06-27 23:00:30 +02:00
Alexander Barton 14afdaee08 hash: Use UINT32 instead of uint32_t 2011-06-27 10:27:07 +02:00
Alexander Barton 949c8ea7c7 Update NEWS and ChangeLog file for our upcoming next release 2011-06-27 00:33:58 +02:00
Florian Westphal 1765f0ae0b hash: use more recent lookup3 algorithm instead of lookup2
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-27 00:16:37 +02:00
Alexander Barton 7f8d0ea5a3 Use srand()/rand() instead of srandom()/random(); seems to be more portable 2011-06-26 23:39:20 +02:00
Alexander Barton d99edb7728 Merge branch 'MorePrivacy'
* MorePrivacy:
  New configuration opion "MorePrivacy" to "censor" some user information
2011-06-26 15:41:27 +02:00
Alexander Barton cb28c4ff03 sample-ngircd.conf: remove "SSL" prefix from SSL-related variables 2011-06-26 15:39:39 +02:00
Alexander Barton 269310f04b Merge branch 'ScrubCTCP'
* ScrubCTCP:
  Add documentation for "ScrubCTCP" configuration option
  New option to scrub incoming CTCP commands
2011-06-26 15:38:53 +02:00
Alexander Barton 3282c1325e Merge branch 'newconfig'
* newconfig:
  sample-ngircd.conf: "SyslogFacility" should be commented out
  Move SSL-related configuration variables to new [SSL] section
  CheckFileReadable(): only check when a filename is given ...
  PAM: make clear which "Password" config option is ignored
  Really remove [Features] in our manual pages
  INSTALL: document changed location of configuration variables
  Update sample config file and manual page for new config structure
  Testsuite: update configuration files for new config file format
  Display configuration errors more prominent on "--configtest"
  conf.c: code cleanup
  Check for redability of SSL-related files like for MOTD file
  Restructure ngIRCd configuration, introduce [Limits] and [Options]
2011-06-26 15:24:07 +02:00
Alexander Barton 3d0ce77f12 sample-ngircd.conf: "SyslogFacility" should be commented out 2011-06-26 00:10:22 +02:00
Alexander Barton 946d838de4 Move SSL-related configuration variables to new [SSL] section 2011-06-26 00:09:36 +02:00
Alexander Barton a085444035 CheckFileReadable(): only check when a filename is given ... 2011-06-26 00:07:47 +02:00
Alexander Barton 449ad1eeea PAM: make clear which "Password" config option is ignored 2011-06-25 23:55:54 +02:00
Alexander Barton 9dfde13f0c Really remove [Features] in our manual pages 2011-06-25 23:54:41 +02:00
xor 5410d96748 Add documentation for "ScrubCTCP" configuration option 2011-06-25 22:27:56 +02:00
xor b80e115f39 New configuration opion "MorePrivacy" to "censor" some user information
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-25 22:21:20 +02:00
xor f087c68a99 New option to scrub incoming CTCP commands
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-25 21:37:17 +02:00
Alexander Barton 6aad5a6706 INSTALL: document changed location of configuration variables 2011-06-25 14:59:02 +02:00
Alexander Barton eba14d937d Update sample config file and manual page for new config structure 2011-06-25 14:58:12 +02:00
Alexander Barton c438c227b5 Testsuite: update configuration files for new config file format 2011-06-25 14:57:26 +02:00
Alexander Barton d41f4d6d20 Display configuration errors more prominent on "--configtest" 2011-06-25 14:56:27 +02:00