1
0
mirror of https://github.com/osmarks/ngircd.git synced 2024-12-13 18:30:27 +00:00
Commit Graph

2208 Commits

Author SHA1 Message Date
Florian Westphal
2fce4667a8 SSL/TLS: clear all ssl realted flags on shutdown
one ssl related flags was not cleared on ssl shutdown.
introduce and use CONN_SSL_FLAGS_ALL to zap them all.
2009-02-04 23:23:12 +01:00
Florian Westphal
c6a43fbaf0 TLS/SSL: fix memory leak when using compressed server links with ssl
commit 6bc2d3d06e
(New connection option CONN_RFC1459) forgot to adjust the ssl bitmasks.

The result is that when a compressed AND encrypted server link goes down
the memory allocated by zlib and the r/w buffers are no longer
free'd as the previous ConnSSL_Free() would then also remove the CONN_ZIP flag
from the flag mask.
2009-02-04 23:01:53 +01:00
Alexander Barton
3be9c477be Fix spelling of log message: "channek" vs. "channel" ... 2009-01-20 17:20:30 +01:00
Alexander Barton
d09094812f Channel key file: store file name and open on each access.
Store the file name of channel key files and reopen them on each access
(on each JOIN command) insted of just storing the file handles.

This eliminates the special requirements (no delete) and makes sure
that always the actual file contents are used in all circumstances.
2009-01-20 17:20:30 +01:00
Alexander Barton
c5000694d1 Support individual channel keys for pre-defined channels.
This patch introduces the new configuration variable "KeyFile" for
[Channel] sections in ngircd.conf. Here a file can be configured for each
pre-defined channel which contains individual channel keys for different
users. This file is line-based and must have the following syntax:

  <user>:<nick>:<key>

<user> and <nick> can contain the wildcard character "*".

Please not that these channel keys are only in effect, when the channel
has a regular key set using channel mode "k"!
2009-01-20 17:20:30 +01:00
Alexander Barton
2c1b6280fa RFC 2812, sec. 3.3.1: really check for the last dot
This fixes commit 5a3128243f and makes the test suite ("make check")
run again without errors.
2009-01-20 16:49:34 +01:00
Florian Westphal
5a3128243f irc.c: reject masks with wildcard after last dot
RFC 2812 says in section 3.3.1 ("Private Messages"):

The mask MUST have at least 1 (one) "." in it and no wildcards
following the last ".".
2009-01-18 00:36:38 +01:00
Florian Westphal
95e8320ca9 irc.c: Fix handling of channels containing dots
commit 2546a13ad2
('Cumulative Message Patch') broke PRIVMSG to channels
containing dots.

Fix this by switching evaluation order:
Check first if the target matches a existing channel and only do a check
for target masks if that failed.

PRIVMSG with host/server masks is described in RFC 2812, section 3.3.1.

Makes one wonder how a server is _really_ supposed to tell the difference
between hostmasks and channel names.

Sigh.
2009-01-18 00:20:38 +01:00
Ask Bjørn Hansen
8f46681bc8 Update ngircd.spec file
- Change Copyright to License
- Update URL
- Make BuildRoot use %{_tmppath} macro
- Add basic BuildRequires
- Compile with zlib and openssl
- Install all docs in standard document location

Signed-off-by: Ask Bjørn Hansen <ask@develooper.com>
2009-01-13 11:01:09 +01:00
Florian Westphal
1c7b9dbe93 remove unneeded LOG_DEBUG when not compiling with DEBUG support
when ngircd is build without DEBUG enabled, LOG_DEBUG messages
are always discarded.

To avoid the extra code, ngircd has a LogDebug() wrapper which
gets removed by the compiler when compiling without DEBUG defined.

Update a few functings which were using the
Log(LOG_DEBUG, .. interface directly without #ifdef DEBUG guards.

   text	   data	    bss	    dec	    hex	filename
 127748	   1900	  28280	 157928	  268e8	ngircd.before
 126836	   1896	  28280	 157012	  26554	ngircd.after
2009-01-10 00:54:07 +01:00
Florian Westphal
0acef7c598 documentation: gnutls does not support password-protected privkeys
already mentioned in man page and sample config file, but for
completeness also document it in doc/SSL.txt.
2009-01-09 21:33:19 +01:00
Alexander Barton
00c8dfa8be Mac OS X: update texts for Mac OS X Installer.app 2009-01-06 17:40:25 +01:00
Alexander Barton
75243ffb37 Xcode: build ngIRCd with IPv6 support on Mac OS X 2009-01-06 17:39:11 +01:00
Alexander Barton
5468ba3744 Xcode: get release number dynamically; new make target "xcode-clean".
- make target "xcode" now detects the release number stored in the
  configure.in file and passes it to Xcode.
- new make target "xcode-clean" which removes all files generated by
  "make xcode" and removes the Xcode build directory.
2009-01-06 16:02:27 +01:00
Alexander Barton
eb159e0a8d Xcode: define TARGET_VENDOR and TARGET_OS 2009-01-06 16:00:15 +01:00
Alexander Barton
df3473c9c1 Add new and missing files to Mac OS X Xcode project 2009-01-06 15:09:39 +01:00
Alexander Barton
a11e895045 Rename Channel_Free() to Free_Channel(), it is a local function 2009-01-05 13:53:33 +01:00
Alexander Barton
175f0af979 Clean up channel allocation table on shutdown/restart.
Silly bug: the condition of a while() loop in the Channel_Exit() function
used the wrong variable and therefore got never executed ...

This bug is in the code since the beginning (see commit bb19cfda in 2002);
shame on me!
2009-01-05 12:58:37 +01:00
Florian Westphal
40a0e9abbe Add Channel_Free().
Central function to free a channel structure and all its resources
(invite/ban lists, topic, ...).
2009-01-05 12:48:48 +01:00
Alexander Barton
0659503afd Clean up (reformat and comment) Delete_Channel() function. 2009-01-04 15:25:07 +01:00
Alexander Barton
18efc7469c Free topic array on channel deletion.
The topic array in the CHANNEL structure must be free()'d before the
channel itself becomes deleted.
2009-01-04 15:22:32 +01:00
Alexander Barton
fd9266df78 Fix spelling in some documents. 2009-01-01 17:56:42 +01:00
Alexander Barton
0e4e22a7a6 Allow pre-defined server local channels ("&"). 2008-12-30 19:23:03 +01:00
Alexander Barton
9d20397470 Spell check and enhance ngIRCd manual pages. 2008-12-30 19:20:09 +01:00
Florian Westphal
307cdce908 man ngircd.conf: line break missing before the SSLConnect description
reported by Christoph Biedl.
2008-12-29 23:34:20 +01:00
Florian Westphal
dc9f42dc3c defines.h: remove MAX_LISTEN_PORTS, MAX_SERVICES
_SERVICES was never used; _LISTEN_PORTS is a leftover from
commit 51ccb5928a
('internal changes needed for future ssl support').
2008-12-27 23:51:52 +01:00
Florian Westphal
a971047bc5 Remove limit on max number of predefined channels.
This resolves Bugzilla Bug 68 ('Too many pre-defined channels configured.')
2008-12-26 01:07:56 +01:00
Florian Westphal
6500d443fc channel.c: constify a few function arguments. 2008-12-26 01:07:52 +01:00
Florian Westphal
d26a283ea9 use %ld as format specifier for posix data types
in the same vein as the earlier commit:
cast posix data types (pid_t, ...) to long and use
%ld as format specifier. This will avoid problems
when sizeof(int) != sizeof(type).

We could also cast to int, but this might truncate the value.
2008-12-26 01:07:13 +01:00
Alexander Barton
4b83a23d9d ngIRCd release 13 2008-12-25 23:18:29 +01:00
Florian Westphal
8a94ec9728 don't print pid_t type with %ld format specifier
Reported by Christoph Biedl:
ngircd[21581]: Running as user irc(39), group irc(39), with PID 140733193409613.

cast pid_t to long to avoid this.
While we are there, cast uid_t and gid_t, too.
2008-12-17 22:55:20 +01:00
Alexander Barton
e5fea5380d Update the date ("Dec 2008") of the manual pages. 2008-12-06 00:20:59 +01:00
Alexander Barton
9a82ca0d6b doc/Platforms.txt: added x86_64/unknown/linux-gnu 2008-12-05 22:35:23 +01:00
Alexander Barton
e573f54b0c doc/Platforms.txt: update list of tested platforms. 2008-12-05 18:11:50 +01:00
Alexander Barton
e070d93f64 doc/SSL.txt: enhance documentation. 2008-12-04 13:20:38 +01:00
Alexander Barton
1519afa391 doc/Services.txt: explain which IRC Services versions are compatible 2008-12-04 11:14:26 +01:00
Alexander Barton
85ce82e504 Testsuite start-server.sh: return correct exit code.
src/testsuite/start-server.sh returns 0 when no errors occurred and the
daemon has been startet and 1 on errors. Always returning 0 is wrong ...
2008-12-03 16:49:55 +01:00
Alexander Barton
83c699d5a5 Make testsuite (getpid.sh) work on OpenSolaris (i386/pc/solaris2.11). 2008-12-03 16:49:17 +01:00
Alexander Barton
56cf95278e doc/Services.txt: document using ngIRCd with IRC Services. 2008-12-02 15:41:57 +01:00
Alexander Barton
d0b2526a01 sample-ngircd.conf: remove now unused CVS "$Id$" 2008-11-22 14:47:01 +01:00
Alexander Barton
7cf9d93aee ngIRCd release 13~rc1 2008-11-21 22:08:23 +01:00
Alexander Barton
ffc5f93ef5 Fix double minus signs in manual pages
This patch fixes the following lintian(1) warning: "Manual page seems
to contain a hyphen where a minus sign was intended. '-' chars are
interpreted as hyphens (U+2010) by groff, not as minus signs (U+002D).
Since options to programs use minus signs (U+002D), this means for
example in UTF-8 locales that you cannot cut&paste options, nor search
for them easily. '-' must be escaped ('\-') to be interpreted as minus."
2008-11-21 21:37:03 +01:00
Alexander Barton
97d97ef5c4 Debian package ("make deb"): fix some lintian(1) warnings 2008-11-21 21:36:59 +01:00
Alexander Barton
2eb564ccaa Change formatting of some log messages
- Fix formatting of some log messages, mostly punctuation.
- cb_Connect_to_Server(): don't use string concatenation, because it
  is not supported by pre-ANSI C compilers ...
2008-11-20 23:50:26 +01:00
Alexander Barton
14baf64f41 Fix pem_passwd_cb(): unused variable "rwflag" (OpenSSL)
This patch fixes the following warning of GCC (version 4.3.2) in
function pem_passwd_cb() when compiling with OpenSSL support and
without debug code:

conn-ssl.c: In function 'pem_passwd_cb':
conn-ssl.c:122: warning: unused parameter 'rwflag'
2008-11-20 23:46:20 +01:00
Alexander Barton
4c113d8850 New configuration option "NoIdent" to disable IDENT lookups
The new configuration option "NoIdent" in ngircd.conf can be used to
disable IDENT lookups even when the ngIRCd daemon is compiled with IDENT
lookups enabled.
2008-11-19 19:11:39 +01:00
Alexander Barton
3243d9ee44 Implement the IRC command "SERVLIST"
The IRC command "SERVLIST" lists all the registered services, see RFC 2811, section 3.5.1.
The syntax is "SERVLIST [<mask> [<type>]]". The parameter <type> is not used by ngIRCd at
the moment, all registered services are of type 0 (which is the default when omitted).
2008-11-19 18:16:26 +01:00
Alexander Barton
672b391523 Updated NEWS and ChangeLog, using NEWS for news only :-) 2008-11-19 11:46:37 +01:00
Alexander Barton
0eda085f1e Create local &SERVER channel and log server messages to it
ngIRCd now creates a server-local channel &SERVER with channel modes
+mnPt (moderated, no messages from outside the channel, persistent and
with the topic locked) and logs all the messages to it that a user with
mode +s ("server messages") receives.

If an IRC operator withdraws the +P ("persistent") mode and the &SERVER
channel is freed because of no members, nothing special happens. The
channel can be recerated any time later and ngIRCd would begin logging
to it again.
2008-11-17 23:27:06 +01:00
Alexander Barton
2cc21caf32 Implement local channels (prefix "&")
This patch implements server-local channels, prefix "&", that are only
visible to users of the same local server and not in the network.

Patch written by Scott Perry (2008-06-04), see:
 - http://arthur.barton.de/cgi-bin/bugzilla/show_bug.cgi?id=87
 - http://arthur.barton.de/cgi-bin/bugzilla/attachment.cgi?id=24&action=view
2008-11-17 21:52:56 +01:00