1
0
mirror of https://github.com/osmarks/ngircd.git synced 2024-10-28 21:06:16 +00:00
Commit Graph

2285 Commits

Author SHA1 Message Date
Alexander Barton
30b584c2e8 CONNECT, DISCONNECT: generate WALLOPS messages 2009-09-30 16:00:05 +02:00
Alexander Barton
eaaf0c3bd5 New function IRC_SendWallops().
Implement new global function IRC_SendWallops() that can be called by
other functions to generate WALLOPS messages to users with +w mode.
2009-09-30 16:00:05 +02:00
Alexander Barton
9a7499af8b Code cleanup of IRC_DISCONNECT(). 2009-09-30 16:00:05 +02:00
Alexander Barton
bce16c2864 Code cleanup of IRC_SQUIT() in preparation to deal with bug #73. 2009-09-30 16:00:05 +02:00
Alexander Barton
926204cacd New local functions Check_Oper() and No_Privileges(). 2009-09-30 16:00:05 +02:00
Alexander Barton
3bf0c6f3b9 Bad_OperPass(): code cleanup. 2009-09-30 16:00:05 +02:00
Alexander Barton
f78b0c61e9 New configuration option "AllowRemoteOper"
Added new configuration option "AllowRemoteOper" to control whether
remote IRC operators are allowed to use administrative commands that
affect this server or not

This commit introduces the configuration variable, but actually no
function is using it. That's up for the next patches to come ...
2009-09-30 16:00:04 +02:00
Florian Westphal
fa09883c72 fix assertion failure in ng_ipaddr.c
when building with debugging enabled, but without ipv6 support,
ngircd dumped core when loading a config file that specified an ipv6
listen address.

ngircd: ng_ipaddr.c:45: ng_ipaddr_init: Assertion `sizeof(*addr) >=
res0->ai_addrlen' failed.
2009-09-26 11:12:47 +02:00
Florian Westphal
affa03b277 configtest: complain when ssl keys are not readable 2009-09-20 23:22:28 +02:00
Alexander Barton
5b1efaee67 Check for sockaddr_in.sin_len and initialize it
Test for sockaddr_in.sin_len and initialize it to the correct value
which some systems (notably Mac OS X) require.

Note: this code path is only relevant when not using getaddrinfo().
2009-09-14 01:23:19 +02:00
Alexander Barton
536538968c Fix cb_connserver() to handle aborted outgoing connections
A configured server could have been removed while a connection apptempt
is still in progress. So the cb_connserver() callback has to test if the
server configuration record is still valid.
2009-09-12 00:17:42 +02:00
Florian Westphal
4daf780f01 conn.c: fix more sizeof(..dst_addr) misuse
the wrong sizeof() usage fixed in
d76910ce7b
(conn.c: fix resolver server address backlog) was a bit more
widespread, fix all others, too.
2009-09-11 23:31:46 +02:00
Florian Westphal
ed72bf4ceb resolve.c: fix valgrind 'uninitialized memory' warning
fix the following warning generated by valgrind if ipv6 is enabled:

Syscall param write(buf) points to uninitialised byte(s)
   at 0x4000982: (within /lib/ld-2.9.so)
   by 0x80681A8: Resolve_Name (resolve.c:477)
   by 0x805439F: Conn_Handler (conn.c:1658)
   by 0x804AA7C: main (ngircd.c:331)

The warning is because ng_ipaddr_t can be a union, and only the
necessary parts are initialised.  The callers know what part
of the union is valid, so this is not a bug.
2009-09-11 23:09:11 +02:00
Florian Westphal
d76910ce7b conn.c: fix resolver server address backlog
if more than one ip address is returned for a single host
name, ngircd is supposed to try other addresses in case
connect() to the first address returned fails for some
reason.

Alexander Barton noticed that this did not work at all,
as the additional results were not stored.
2009-09-11 22:55:32 +02:00
Alexander Barton
8fd0e29d46 Fix "implicit conversion shortens 64-bit value" warning
This patch fixes the following gcc warning in our sources:
"implicit conversion shortens 64-bit value into a 32-bit value"
2009-09-11 22:52:12 +02:00
Alexander Barton
66c6458ae7 Channel_Mode(): fix return code of function
Fix error handling of Channel_Mode() to return the correct connection
status ("connected"/"disconnected") insted of always returning success.
2009-09-11 00:48:07 +02:00
Alexander Barton
3b37ad334b IRC_SERVER(): code cleanup, remove unneeded variable 2009-09-11 00:41:12 +02:00
Alexander Barton
c191ea53a9 IRC_PASS(): remove unnecessary variable initialization 2009-09-10 11:50:43 +02:00
Alexander Barton
e1598e2670 Conn_Close(): remove unused variable "txt" 2009-09-10 11:49:39 +02:00
Florian Westphal
cf7e19193b do not add default listening port if ssl ports were specified
Cosmo Kastemaa reported that its impossible to create an ssl-only setup,
as ngircd binds to port 6667 by default, even if setting "Ports =".

Only add the default port if _both_ "Ports" and "SSLPorts" are
unspecified.

Fixes bugzilla #98.
2009-08-31 22:08:35 +02:00
Alexander Barton
805bf03490 Client_CheckID(): fix connection information
This patch fixes the following silly log messages:
'ID "XXX" already registered (on connection -1)!'

If the ID is already registered on a local connection, the local
connection ID is printed; and if the ID is connected via a remote
server, "via network" is displayed.
2009-07-17 16:16:04 +02:00
Alexander Barton
63cbc6cd42 Fix return code of Conf_EnableServer()
Conf_EnableServer() only reports success if all required variables,
including host name and port, are set for the specific server.
2009-07-17 14:55:30 +02:00
Florian Westphal
0ef94edad7 add section and rfc number to comment about QUIT error 2009-06-05 01:39:33 +02:00
Florian Westphal
643ae1b48b enforce upper limit on maximum number of handled commands
reported on #ngircd: pasting lots of lines into a channel can kill off
many people on the channel if the read buffer is drained quickly enough
and the client-side TCP can't keep up with the incoming data.

This implements a throttling scheme:
- an irc client may send up to 3 commands per second before a one second
pause is enforced.
- an irc client may send up to 256 bytes per second before a one second
pause is enforced.

After discussion with Alexander Barton, server <-> server links are
treated specially: There is no artificial limit on the number of bytes
sent per second, and up to 10 commands are processed per second before
a pause is enforced.

It may be neccessary to make those limits tuneable to accomondate larger
networks, but for now they are compile time values.
2009-05-25 22:25:18 +02:00
Florian Westphal
9b1c47220f conn.c: fix NumConnections imbalance
New_Server() can call Conn_Close() in its error paths,
but that function decrements the number of current active
connections. Thus we need to increment it earlier.
2009-05-17 21:32:53 +02:00
Florian Westphal
8e2c5816ee SSL/TLS: fix error handling when ssl ctx init for outgoing server link fails 2009-05-17 21:27:27 +02:00
Florian Westphal
f31c3a3aa2 SSL/TLS: fix error path in gnutls ssl ctx allocation 2009-05-17 21:18:04 +02:00
Florian Westphal
5196e9bcb1 SSL/TLS: remove redundant asserts/ifdefs 2009-05-16 20:48:43 +02:00
Florian Westphal
57aa64e117 SSL/TLS: proper indentation, remove erroneous comment 2009-05-14 00:00:55 +02:00
Alexander Barton
fd7e85b798 Update copyright notice, it's 2009 already! 2009-05-05 17:08:48 +02:00
Florian Westphal
627b0b713c security: fix remotely triggerable crash in SSL/TLS code
When a server is running with SSL/TLS support compiled in,
it is trivial to crash the server by sending an MOTD request
via another server in the network.

- ONLY servers without ssl/tls support compiled in are not affected.
  Disabling SSL in the configuration (no ssl listening ports, etc)
  does NOT help.
- servers that are running standalone (i.e., not connected to any
  other servers) are not affected, either.

This affects all ngircd releases since ngircd 13 (earlier versions
have no SSL/TLS support).
2009-05-05 10:21:20 +02:00
Tassilo Schweyer
37359799eb Fix server list announcement
When ngircd announces the list of currently known servers
to a new (connecting) server, it sent the introducer of
the servers instead of the top server.

Assuming this network:

irc1.example.com
|--irc2.example.com
|    `--irc3.example.com
|         `--irc4.example.com
`--irc5.example.com

When irc4 connects to irc3, irc3 tells irc4 that irc5 was
connected to irc2. (irc2 had introduced irc5 to irc3; but thats
not what ngircd should have sent to the new server).

This also placed users on the wrong servers.
2009-04-26 00:30:49 +02:00
David Kingston
9b59f043c8 allow ping timeout quit messages to show the timeout value 2009-04-23 21:39:45 +02:00
Florian Westphal
b545d38ae4 irc-server: do not remove hostnames from info text
that code does not really make sense -- the info
text is freely cofngiureable and des not follow a specific
format.

Also, that "+2" might have caused invalid memory accesses.
2009-04-22 23:15:17 +02:00
Florian Westphal
84eaed6c9a conn-zip: fix error handling
callers of (Un)Zip_Buffer() assume that
the function closes the connection on error.

However, this was not always the case.
2009-04-21 21:00:43 +02:00
Florian Westphal
544b9884f4 remove or translate old comments 2009-04-21 20:58:30 +02:00
Florian Westphal
5e16b6df2d client.c: remove unecessary comments 2009-04-21 20:58:28 +02:00
Florian Westphal
ea041b8838 add const qualifier to pointers where possible 2009-04-21 20:58:23 +02:00
Alexander Barton
54879b432b Display IPv6 addresses as "[<addr>]" when accepting connections.
With this patch ngIRCd displays IPv6 addresses as "[<addr>]:<port>" when
accepting new connections and later, if no successful DNS lookup could
be made (or DNS is disabled altogether).
2009-04-10 13:22:03 +02:00
Dana Dahlstrom
3a7d59c1ac misspelling in ERR_NORECIPIENT reply 2009-03-25 20:44:40 +01:00
Florian Westphal
ea35ba74b6 testsuite: add more predefined channels to server config
make sure it creates & and +, and accepts channel names without
a special character (ngircd should treat
'Name = chan' as 'Name = #chan').
2009-03-07 00:30:11 +01:00
Florian Westphal
2d4361d088 allow creation of persistent modeless channels 2009-03-07 00:21:43 +01:00
Florian Westphal
e9e7fc33f1 add and use Channel_IsModeless()
avoid "name[0] == '+'" where possible, having Channel_IsModeless()
makes things much more obvious.
2009-03-07 00:13:25 +01:00
Alexander Barton
c09742c518 Enhance INFO command to report compile time, if available 2009-03-05 16:04:36 +01:00
Alexander Barton
0a9608a26f Channel mode changes: break on error
Don't echo multiple syntax error messages (461) on invalid commands,
but break after the first one.
In addition, this solves corrupted 'Unknown mode "+' messages.
2009-03-03 16:33:40 +01:00
Alexander Barton
dee89c2355 Channel_Mode(): code cleanup (no functional changes) 2009-03-03 15:06:34 +01:00
Florian Westphal
b8c6dd503f TLS/SSL: remove useless error message when ssl connection is closed
When using OpenSSL, the following annoying "error" message was logged whenever
an encrypted connection was shut down in a orderly fashion:
TLS/SSL Connection shutdown: ConnSSL_Read: Unable to determine error

of course, this isn't an error at all.
2009-02-05 23:47:28 +01:00
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
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
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
0e4e22a7a6 Allow pre-defined server local channels ("&"). 2008-12-30 19:23:03 +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
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
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
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
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
Alexander Barton
7b69bc2ae8 Added some missing files of GIT tree to distribution archives
The following bits and bytes were not included in distribution archives:
 - contrib: ngindent, ngircd.sh
 - contrib/Debian: ngircd.postinst
 - contrib/MacOSX: preinstall.sh, postinstall.sh
 - doc/src: Doxyfile, header.inc.html, footer.inc.html, ngircd-doc.css
 - src/portab: splint.h
2008-11-13 23:17:32 +01:00
Alexander Barton
7ad167f4c4 Test suite: start two servers and test server-server links
I changed the test suite to start two test servers (on port 6789 and 6790),
so server-server links can be tested as well for which I included the new
test script "server-link-test.e".

In addition the documentation of the test suite (src/testsuite/README) has
been updated and is more complete now.
2008-11-13 22:46:06 +01:00
Alexander Barton
920d0636ff Add conf-ssl.h to "noinst_HEADERS"
conf-ssl.h must be listed in "noinst_HEADERS" so that it becomes included
in distribution archives generated by "make dist" and "make distcheck".
2008-11-13 00:22:25 +01:00
Alexander Barton
9f067a059d Connection counter: count outgoing connections as well.
This patch lets ngIRCd count outgoing connections as well as incoming
connections (up to now only outgoing connections have been counted). This
change is required because the Conn_Close() function doesn't know whether
it closes an outgoing connection or not and therefore would decrement the
counter below zero when an outgoing connection existed -- which would
trigger an assert() call ...

Please note that this patch changes the (so far undocumented but now fixed)
behaviour of the "MaxConnections" configuration option to account the sum
of the in- and outbound connections!
2008-11-12 01:26:04 +01:00
Alexander Barton
5a91d62100 Ignore numeric 020 ("please wait while we process your coinnection")
Some servers send the numeric 020 ("please wait while we process your
connection") when a client connects. This is no useful information for
this server, so we simply ignore it :-)
2008-11-11 23:11:49 +01:00
Alexander Barton
3a5b7b63ae GNUTLS: define new API types when installed library is too old
This patch enables ngIRCd to use GNUTLS in really old versions, tested
with version 1.0.16, that don't define the "new" data types ending in
xxx_t. LIBGNUTLS_VERSION_MAJOR isn't defined there as well, so we use
it to test if we must define the new types on our own.
2008-11-11 22:03:11 +01:00
Alexander Barton
9308541e6d Console log: output timestamp (seconds since start) for resolver, too 2008-11-11 22:01:27 +01:00
Alexander Barton
027cf22267 Console log: output timestamp (seconds since start of daemon) 2008-11-10 18:41:19 +01:00
Florian Westphal
125c05fba0 conn-ssl.c: work around gnutls API problems on 64 bit platforms
Alexander Barton reported a compiler warning on 64-bit platforms:
cc1: warnings being treated as errors
conn-ssl.c: In function 'ConnSSL_Init_SSL':
conn-ssl.c:403: error: cast to pointer from integer of
different size

Unfortunately, I couldn't find a real solution; the GNUTLS
API expects 'gnutls_transport_ptr_t' (which is void*),
but the default push/pull functions (send/recv) expect an int.

The only alternative solution is to pass in an address to the
file descriptor, then add send/recv wrappers that expect a pointer.

What a mess[tm].
2008-10-29 23:51:39 +01:00
Alexander Barton
fb19b05e1e GIT: don't ignore cvs-version.{h|new}, because it isn't used any more. 2008-10-29 22:33:03 +01:00
Alexander Barton
34b2f0085d Fix ForwardLookup(): "ISO C90 forbids specifying subobject to initialize"
This patch fixes the following warning of GCC (version 4.3.2) in
function ForwardLookup():

resolve.c: In function 'ForwardLookup':
resolve.c:282: warning: ISO C90 forbids specifying subobject to initialize
resolve.c:284: warning: ISO C90 forbids specifying subobject to initialize
resolve.c:285: warning: ISO C90 forbids specifying subobject to initialize
2008-10-19 20:07:35 +02:00
Alexander Barton
ce2541a826 Fix ConnSSL_LogCertInfo(): unused variable "cred" (GNUTLS)
This patch fixes the following warning of GCC (version 4.3.2) in
function ConnSSL_LogCertInfo() when compiling with GNUTLS support:

conn-ssl.c: In function 'ConnSSL_LogCertInfo':
conn-ssl.c:542: warning: unused variable 'cred'
2008-10-19 20:06:30 +02:00
Alexander Barton
f92a614a35 Enable KICK to be handled from remote servers and from services. 2008-09-23 11:53:16 +02:00
Alexander Barton
ec0b405d9d Respect RFC 1459 compatibility mode when announcing channels (no NJOIN). 2008-09-23 11:53:16 +02:00
Alexander Barton
178f9cbdac Announce IRC services in the network.
This patch
 - introduces a new server flag "S" to indicate that the server can handle
   the SERVICE command (on server links),
 - implements the IRC command "SERVICE" for server-server links,
 - uses the "SERVICE" command to announce IRC services when a new
   server connects to it,
 - and fixes the Send_Message() function to let it send messages to
   services using a "target mask".

If the remote server doesn't indicate that it can handle the "SERVICE"
command (it has not set the "S" flag), services are announced as regular
users as before.
2008-09-23 11:53:16 +02:00
Alexander Barton
6356418ae5 Change Introduce_Client() to set the correct client type (user/service). 2008-09-23 11:53:16 +02:00
Alexander Barton
28e9888764 Convert SQUERY to PRIVMSG on RFC 1459 compliant links. 2008-09-23 11:53:16 +02:00
Alexander Barton
3afa0e0658 Don't allow SQUERY to send to "target masks" and channels; only services! 2008-09-23 11:53:16 +02:00
Alexander Barton
3913de3cff Fix PRIVMSG/NOTICE handler (II): keep command when forwarding to channels.
- new function ngt_UpperStr().
- change Channel_Write() to take command name and error flag.
- remove now unneeded function Channel_Notice().
2008-09-23 11:53:15 +02:00
Alexander Barton
91e87a3705 New function ngt_UpperStr() 2008-09-23 11:53:15 +02:00
Alexander Barton
71e9ac486f Fix PRIVMSG/NOTICE handler Send_Message(): don't forward NOTICE as PRIVMSG. 2008-09-23 11:53:15 +02:00
Alexander Barton
d93030ad27 Make real use of the CLIENT_SERVICE client type.
This patch enables ngIRCd to handle IRC services as real services, and not
as "fake users":

  - Set correct client type CLIENT_SERVICE for services,
  - Change log messages to include correct client type,
  - PRIVMSG: allow users to send messages to services,
  - Send services nick names to other servers (as users).

Please note that this patch doesn't announce services as services in the
network, but as regular users (as before). Only the local server knows
of services as services (see LUSERS command, for example). It is up to
one of the next patches to fix this and to introduce the SERVICE command
in server to server communication.

The propagation of services as regular users between servers doesn't limit
the functionality of the IRC services and will be the fallback for servers
that don't support "real" services propagation in the future.
2008-09-23 11:53:15 +02:00
Alexander Barton
4e125fb67c Allow IRC services to change their nick names. 2008-09-23 11:53:15 +02:00
Alexander Barton
33f32dbd67 New function Client_TypeText() and Destroy_UserOrService().
Client_TypeText() is used to get correct naming ("Client", "Service", ...)
for log messages, and Destroy_UserOrService() is used to correctly destroy
user and services clients.
2008-09-23 11:53:15 +02:00
Alexander Barton
74aac88dbf Send_Message(): really enforce target client type. 2008-09-23 11:53:14 +02:00
Alexander Barton
02d7623074 Allow ngIRCd to detect services connected to an "virtual services server".
Introduce a new configuration variable "ServiceMask" in SERVER blocks to
define a mask matching nick names that should be treated as services.
Regular servers don't need this parameter (leave it empty, the default),
but you should set it to "*Serv" when connection ircservices, for example.

This patch allows ngIRCd to detect services, it doesn't change the
functionality: you only get different log messages ;-)
2008-09-23 11:51:16 +02:00
Alexander Barton
c5342fb467 Centralize logging functions in Introduce_Client(). 2008-09-23 11:47:17 +02:00
Alexander Barton
557be8c56b Get rid of INTRO_INFO structure again: we don't need it at all!
All the required information is already stored in the CLIENT structure
of new new connection, so pass this to Introduce_Client() and don't
invent an unneeded new structure ...
2008-09-23 11:47:17 +02:00
Alexander Barton
687784d276 Announce_User(): support RFC 1459 compatibility mode. 2008-09-23 11:47:17 +02:00
Alexander Barton
92603f7c80 Introduce_Client(): send MODES in RFC 1459 mode, too. 2008-09-23 11:47:17 +02:00
Alexander Barton
d070ec08ab numeric.c: whitespace fixes ... 2008-09-23 11:47:17 +02:00
Alexander Barton
a60465be3e Server links: detect RFC 1459 mode direct after SERVER command
This patch allows ngIRCd to detect right after receiving the SERVER command
from the peer whether the RFC 1459 compatibility mode must be used or not.
And it fixes the announcement of users during establishing new server links
with such peers.
2008-09-23 11:47:17 +02:00
Alexander Barton
14048c4717 Send and handle NICK+USER commands for user registration (RFC 1459).
This patch enables ngIRCd to deal with NICK and USER commands following
RFC 1459 to register new clients, and to send these commands instead of one
full NICK command as specified in RFC 2813 on connections that are in RFC
1459 compatibility mode.

Can be useful for e. g. IRC services that simulate a RFC 1459 server.
2008-09-23 11:47:17 +02:00
Alexander Barton
f199d63724 New function IRC_WriteStrServersPrefixFlag_CB() using a callback function. 2008-09-23 11:47:17 +02:00
Alexander Barton
4f759d8113 New function Introduce_Client() to announce new local and remote users. 2008-09-23 11:47:17 +02:00
Alexander Barton
6bc2d3d06e New connection option CONN_RFC1459.
This new connection option CONN_RFC1459 indicates that the peer on this
link only supports the IRC protocol as defined in RFC 1459 and that the
compatibility mode (e. g. for outgoing commands like NICK) should be used.
2008-09-23 11:47:17 +02:00
Alexander Barton
a5735f68d7 New global function Conn_SetOption(). 2008-09-23 11:47:16 +02:00
Alexander Barton
13f1d57e84 USER: servers and services can alter user information after registration.
This is required to do RFC 1459 style user registration on server links,
and is used by some services packages, too. See RFC 1459 section 4.1.3.
2008-09-23 11:47:16 +02:00
Alexander Barton
068d43352d NICK: allow servers and services to use RFC 1459 syntax (2 parameters).
This patch allows servers and services to call the NICK command using the
syntax defined in RFC 1459 to register new users, with only two parameters.
See section 4.1.2.

Useful for some services packages, which emulate this protocol.
2008-09-23 11:47:16 +02:00
Alexander Barton
e56bd8ff89 Whitespace fixes: remove trailing tabulator characters. 2008-09-23 11:47:16 +02:00
Florian Westphal
2fce881d96 conn-ssl.c: don't append a newline to ConnSSL_GetCipherInfo 2008-09-15 12:25:54 +02:00
Florian Westphal
ef3327d372 TLS/SSL support: code changes.
This adds the required code to enable ssl/tls support
during compile and run time, respectively.
2008-09-13 15:10:32 +02:00
Florian Westphal
bdd44eb0ab TLS/SSL support: core files.
Contains support for both OpenSSL and GNU TLS.
Certificate Authentification is not yet supported.
2008-09-13 15:08:11 +02:00
Florian Westphal
c997e04325 Fix handling of MaxConnections option
Config option claimed to be 'number of connections' but in reality this
was treated as 'largest file descriptor allowed'.

This also fixes another bug in New_connection, where the
ng_ipaddr_tostr_r error path was missing a return statement.
2008-08-30 15:37:19 +02:00
Alexander Barton
2c2c93e311 Include "mcheck.h" when using mtrace(). 2008-08-18 23:27:56 +02:00
Alexander Barton
41a23d20e4 SECURITY: Fixed a message handling bug which could crash the daemon.
Some message targets could lead to a NULL pointer dereference and therefore
could crash the daemon (denial of service).
(cherry picked from commit e493ad2d30ff80bca2556cde2212e367cb006517)
2008-08-17 17:37:36 +02:00
Alexander Barton
c769cbecb6 Enable GNU libc "memory tracing" when compiled with debug code.
This patch lets ngIRCd activate "memory tracing" of the GNU libc when
compiled with debug code (configure: --enable-debug) and the functionality
is available on the system.
(http://www.gnu.org/software/libc/manual/html_node/Allocation-Debugging.html)
2008-08-13 16:00:57 +02:00
Alexander Barton
dfc3de131c Make ngIRCd compile and run on NeXTSTEP 3.3 and OPENSTEP 4.2
by Steven D. Blackford <kb7sqi@aol.com>:

"I wanted to let you know that I've done a quick port of ngircd-0.12.0 for
NEXTSTEP3.3/OPENSTEP4.2. There wasn't a lot of changes required to get it
to compile clean, but I did make the necessary changes so that I didn't
have to use -posix flag. The NeXT has a pretty buggy POSIX implementation
so I always try to work around it. :-)
Anway, here's the changes required to get it to compile."
2008-08-01 16:21:16 +02:00
Alexander Barton
ccbbd7d1a5 GIT: added src/testsuite/message-test to ignore list. 2008-07-27 20:51:37 +02:00
Alexander Barton
e5cf73b9ee Fix Validate_Args(): unused parameter "Idx" and "Req"
This patch fixes the following error message of GCC (tested with version
4.3.0) when not compiling ngIRCd in "strict RFC" mode:

parse.c: In function "Validate_Args":
parse.c:341: error: unused parameter "Idx"
parse.c:341: error: unused parameter "Req"
2008-07-27 20:35:01 +02:00
Alexander Barton
5df56111c4 message-test: Disable two tests using "localhost" as host name
Some operating systems, for example OpenBSD and OpenSolaris, use
"localhost.<domain>" instead of just "localhost" for 127.0.0.1, so
the "message-test" using "localhost" failed on such systems.

Don't have an idee how to make this work on all platforms ... :-/

So I simply disabled the two affected tests to make the testsuite
run on OpenBSD and OpenSolaris again.
2008-07-27 18:03:13 +02:00
Alexander Barton
e5174c629c Fix Send_Message(): "lastCurrentTarget" may be used uninitialized
This patch fixes the following warning of GCC 4.3.1:

irc.c: In function "Send_Message":
irc.c:315: error: "lastCurrentTarget" may be used uninitialized in
this function
2008-07-27 17:16:41 +02:00
Alexander Barton
3358ad07d7 Fix t_diff(): declaration of 'div' shadows a global declaration
This patch fixes the following GCC warning message:
irc-info.c:422: warning: declaration of 'div' shadows a global declaration
2008-07-27 15:58:06 +02:00
Alexander Barton
318c8b238b Cosmetic whitespace and line length fixes, mostly in Send_Message(). 2008-07-27 15:50:51 +02:00
Alexander Barton
f8381aafb4 Added "message-test" to Makefile, so it is distrubuted and run. 2008-07-27 14:45:04 +02:00
Brandon Beresini
d4eb55c79f Cleaned up PRIVMSG and NOTICE patches. 2008-07-27 01:23:20 +02:00
Brandon Beresini
2546a13ad2 Cumulative Message Patch 2008-07-27 01:23:04 +02:00
Alexander Barton
b92a7627f3 Don't allow empty channel names ("#") in strict RFC mode.
This closes Bug #88.

Patch proposed by Eric <egrunow@ucsd.edu>, but with wrong length
comparision: please note that Channel_IsValidName() checks the name
INCLUDING the prefix, so the test must be length<=1!
2008-07-22 13:24:14 +02:00
Alexander Barton
258143897c Return 461 (syntax error) on "JOIN :" and "PART :"
Up to this patch ngIRCd did not return any result (GIT master) or a badly
formated 403 (":irc.server 403 test  :No such channel" [note the two
spaces!], branch-0-12-x) on the above commands, this patch changes the
behaviour to reflect ircd 2.11 which returns 461 in both cases.
2008-07-22 13:18:19 +02:00
Alexander Barton
477f2fd9e7 Channel_Join(): Code cleanup. 2008-07-22 13:07:57 +02:00
Alexander Barton
3f01324160 Fixes to misc-test: accept "localhost.<domain>" as well as "localhost"
Some operating systems, for example OpenBSD, use "localhost.<domain>"
instead of "localhost", so the "who-test" expecting "localhost" failed
on such systems.

(Please see 149859c5fecc..., which fixes this for the who-test already)
2008-07-21 13:40:22 +02:00
Eric Grunow
71562ebe57 Translated comments from German to English 2008-06-16 13:58:56 +02:00
Alexander Barton
258e39e89f Fix GCC warnings for possibly uninitialized variables in IRC_JOIN
This patch fixes the following two warnings of GCC 4.2.4:

irc-channel.c: In function "IRC_JOIN":
irc-channel.c:185:
 warning: "lastkey" may be used uninitialized in this function
irc-channel.c:185:
 warning: "lastchan" may be used uninitialized in this function
2008-06-16 13:18:03 +02:00
Alexander Barton
e142c50ae6 GIT: added src/src/config.h.in~ to ignore list. 2008-06-11 16:02:06 +02:00
Alexander Barton
a84f7dcee5 Allow mixed line terminations (CR+LF/CR/LF) in non-RFC-compliant mode
Up to now ngIRCd accepted CR+LF as well as a single CR or LF in "non RFC
compliant" mode (the default). But ngIRCd became confused when it received
data containing mixed line endings (e. g. "111\r222\n333\r\n").

This patch enables ngIRCd (in "non RFC compliant" mode) to detect CR+LF,
CR, and LF as equally good line termination sequences and to always end the
command after the first one detected.

Some clients (for exmaple Trilian) are that ... broken to send such mixed
line terminations ...

First patch proposed by Scott Perry <scperry@ucsd.edu>,
Thanks to Ali Shemiran <ashemira@ucsd.edu> for testing!
2008-06-11 16:00:38 +02:00
Alexander Barton
8644cbf197 Don't allow stray \r or \n in command parameters
If ngircd receives an input line like "COMMAND arg\nIRRELEVANT\r\n",
"arg\nIRRELEVANT" is passed as an argument to COMMAND. This can lead
to output like:

:ngircd.test.server 322 nick #chan 1 :
topicwithprecedingnewline
:ngircd.test.server 322 nick #nxtchan 1 :
[..]

Worse, this allows clients to piggyback irc commands, e.g.
"TOPIC #a :test\n:fake!~a@nonexistant JOIN :#a\r\n", which
causes the client to receive a JOIN command during /LIST output.

Bug reported by Scott Perry, first patch by Florian Westphal.
2008-05-30 14:58:25 +02:00
Alexander Barton
6f7b669bec --configtest: return non-zero exit code if there are errors 2008-05-28 00:31:20 +02:00
Alexander Barton
951314cb79 Handle_Buffer(): code cleanup.
Both callers ignore the return code of this function, so get rid of it,
but make sure that the client is disconnected on errors.
2008-05-26 23:38:32 +02:00
Alexander Barton
d360871394 Conn_Handler(): cleanup code, add/translate comments.
In addition, the "timeout" variable has been removed because it is
unnecessary today: Handle_Buffer() handles all the data it can handle,
and io_dispatch() returns immediately when new data is available. So
we don't have to double-check but better sleep. Pointed out by Florian.
2008-05-26 21:38:27 +02:00
Scott Perry
b90f71ca2a Use strtok_r instead of strchr in IRC_JOIN.
This patch does significant cleanup on the join code by using strtok_r
instead of mangling strchr to parse channel names and keys in parallel when
a JOIN command contains a list of channels and keys.

Also adds an strtok_r implementation to libportab.
2008-05-26 21:20:03 +02:00
Alexander Barton
956bbe2c28 Reset client idle time on NICK, JOIN, and PART 2008-05-24 21:50:54 +02:00
Florian Westphal
e19f7a8c19 Remove ListenIPv4/ListenIPv6 options.
Use "Listen = list,of,addresses" instead.
2008-05-19 14:34:48 +02:00
Florian Westphal
4ed2cb1a02 make Listen parameter a comma-seperated list of addresses.
this also obsoletes ListenIPv4 and ListenIPv6 options.
If Listen is unset, it is treated as Listen="::,0.0.0.0".

Note: ListenIPv4 and ListenIPv6 options are still recognized,
but ngircd will print a warning if they are used in the config file.

Also, some plattforms require that ai_socktype
is set in the getaddrinfo() hints structure.
2008-05-19 14:27:35 +02:00
Jari Aalto
818a206a42 Add option aliases -V (for --version) and -h (for --help).
This patch adds -h and -V short options (to complement the usage).

It is based on a patch attached to Debian bug #466063, see
<http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=466063>.

Idea by Jari Aalto <jari.aalto@cante.net>,
patch adapted by Alexander Barton <alex@barton.de>.
2008-05-18 16:19:41 +02:00
Brandon Beresini
5d87f6ba80 Add tests for MOTD, VERSION, TIME, USERHOST
The misc-test.e file is also somewhat reorganized and commented here.

Patch from Brandon Beresini, Bryan Caldwell and Dana Dahlstrom.
2008-05-15 11:13:45 +02:00
Alexander Barton
d02b083543 Merge commit 'aad49bd260494878aed6795c7a897ad1d28c3082' 2008-05-13 12:14:14 +02:00
Scott Perry
70254a5553 This patch implements a (maybe) compliant WHOWAS command.
It is hard to test this in the test suite because we 1) shouldn't rely on
previous tests populating WHOWAS and 2) don't connect a user for more than 30
seconds.

Also makes WHOWAS return ERR_NONICKNAMEGIVEN_MSG as implied by RFC.
2008-05-12 18:56:31 +02:00
Florian Westphal
b1d38de4d2 If bind() fails, also print ip address and not just the port number. 2008-05-12 18:46:55 +02:00
Alexander Barton
d90cc7add0 GIT: ignore symbolic links to tests in testsuite directory
Added symbolic links to new tests (invite-test, join-test, and kick-test)
to .gitignore file.
2008-05-11 15:20:46 +02:00
Alexander Barton
149859c5fe Fixes to who-test: accept "localhost.<domain>" as well as "localhost"
Some operating systems, for example OpenBSD, use "localhost.<domain>"
instead of "localhost", so the "who-test" expecting "localhost" failed
on such systems.
2008-05-11 15:17:22 +02:00
Florian Westphal
d9c26f3aeb ng_ipaddr.h must include netinet/in.h.
compile on FreeBSD 5.4 failed with:
./../ipaddr/ng_ipaddr.h:34: error: field `sin4' has incomplete type

Reported and tested by Jefferson S Almeida.
2008-05-10 21:49:51 +02:00
Brandon Beresini
0510bbe958 Removed space after # so that Cygwin's version of expect recognizes comments. 2008-05-09 21:54:47 +02:00
Ali Shemiran
12cd554af1 Fix secret channel information leak
/who on a secret channel that the user is not a member of
now returns proper RPL_ENDOFWHO_MSG instead of nothing.
2008-05-09 21:47:31 +02:00
ashemira@ucsd.edu
5cf5ba31eb Added Cygwin uid kludge. (verified working) 2008-05-08 13:04:25 +02:00
Eric Grunow
75b719a0c8 Anglified and improved comments in channel.c and channel.h
[Dana Dahlstrom: repair tab/space conversion in patch]
2008-05-08 03:15:04 +02:00
Alexander Barton
4e56e5341f Implement IRC commands SERVICE, SERVLIST, and SQUERY as dummy functions
SERVICE, SERVLIST, and SQUERY are required by RFC 2812 (it states in
section 3 that "all commands described in this section MUST be implemented
by any server for this protocol." -- So we implement them without (much)
actual functionality ...
2008-05-05 18:06:43 +02:00
Florian Westphal
3895b42d1b Add invite-test.e to test suite. 2008-05-05 16:12:41 +02:00
Dana Dahlstrom
6c81ffaece Tests for the INVITE command. 2008-05-05 16:12:41 +02:00
Dana Dahlstrom
97cc58fb13 Invite: prefix last argument with colon when necessary. 2008-05-05 16:12:41 +02:00
Dana Dahlstrom
c63d8fd051 tests for JOIN and various replies
Brandon Beresini sent me a patch yesterday adding tests for JOIN under
various circumstances, which I believe he worked on with Bryan Caldwell
and Ali Shemiran. I made a few modifications; the result is below.
2008-05-05 16:12:41 +02:00
Bryan Caldwell
3d8eda9c86 Allow KICK to handle comma-delimited lists (of channels, nicks).
includes test cases.

[fw@strlen.de:
	- move code around to avoid duplication
	- use const where possible
	- integrate test case]
2008-05-05 16:12:41 +02:00
Florian Westphal
3283d275ba Invite: Send RPL_AWAY to client sending the invite if target is away. 2008-05-05 15:52:41 +02:00
Dana Dahlstrom
faf9b6ea16 Fixes to who-test: accept any ident, escape some '*' flags.
This prevents who-test.e from failing when ngircd
is performing ident lookups and an ident server is running.
2008-05-05 15:40:00 +02:00
Florian Westphal
452fb28394 IRC_INVITE: coding style cleanup. 2008-05-05 15:39:54 +02:00
Florian Westphal
0428a1c4ea Constify some of Channel_Kick()s arguments. 2008-05-05 15:38:47 +02:00
Florian Westphal
98a8ea105c constify Client_Search() argument. 2008-05-05 15:38:43 +02:00
Rolf Eike Beer
83bfdddf99 Allow IRC ops to ignore channel limits when joining
Allow IRC ops to ignore any channel limit (bans, invite only etc.) when they
want to join a channel.
2008-05-05 14:45:28 +02:00
Alexander Barton
2a790861a1 Handle 1-character messages terminated with CR or LF correctly
Code cleanup and fix for Bug #83, "ngIRCd chokes on 1-character messages" in
function Handle_Buffer(): the buffer is now correctly cleared when ngIRCd
receives 1-character messages terminated with either CR or LF (in violation
to RFC 2812, section 2.3 "Messages", 5th paragraph).
2008-05-02 02:14:15 +02:00
Alexander Barton
4e507881f3 On AIX (for example) socklen_t is defined in sys/socket.h
On AIX and probably other systems socklen_t is defined in sys/socket.h,
so we have to include it here explicitly (tested by Florian).
2008-05-01 20:25:39 +02:00
Florian Westphal
f7c2e8223f Always enable modeless channels.
Modeless channels (+channels) are described in RFC 2811;
so my modifications to
530112b114
('Add support for modeless channels')
to disable +channels for --strict-rfc configurations
were wrong. This reverts those changes.
2008-05-01 18:08:07 +02:00
Alexander Barton
60acc62af7 Prevent GIT to complain about opless-channel-test link 2008-05-01 16:31:13 +02:00
Ali Shemiran
530112b114 Add support for modeless channels
Add support for modeless channels (+channels).

[fw@strlen.de:
 - integrate test cases
 - don't support +channels when compiled with --strict-rfc
 - do not set +o mode for channel creator
 - force +nt mode when channel is created ]
2008-05-01 15:55:12 +02:00
Alexander Barton
4a81367dac --configtest: fix missing whitespace at "ConnectIPv4" option. 2008-04-29 15:27:44 +02:00
Alexander Barton
bb6ee46892 Merge branch 'master' of git://git.breakpoint.cc/fw/ngircd-fw 2008-04-29 15:15:28 +02:00
Florian Westphal
9194319399 Testsuite: remove erroneous ConfUID setting in config file.
The config file for ngircds test suite contained obsolete
ConfUID/ConfGID settings, causing ngircd to needlesly complain when
started as non-root (which is hopefully the _normal_ case...)
2008-04-29 13:32:29 +02:00
Alexander Barton
33b1204349 Get rid of cvs-version.* and CVSDATE definition.
(cherry picked from commit b187fac244)
2008-04-25 00:14:11 +02:00
Alexander Barton
523a6fad09 Report ERR_NOTONCHANNEL when trying to part a channel one is not member of.
When trying to part a channel ("PART #channel") the client is not member of
the daemon now correctly reports the numeric ERR_NOTONCHANNEL (442) insted
of ERR_NOSUCHCHANNEL (403).
2008-04-24 23:52:54 +02:00
Alexander Barton
54b17fc201 Channel_Part(): Code and comment cleanup. 2008-04-24 23:47:33 +02:00
Alexander Barton
25f48a2a34 IRC_PART(): code and comment cleanup. 2008-04-24 23:46:59 +02:00
Florian Westphal
22fa782be7 IPv6: Add config options to disabe ipv4/ipv6 support.
This also enables ipv6-only setups.
2008-04-21 00:45:19 +02:00
Alexander Barton
a0efcdccfa Updated copyright notice to read "2001-2008". 2008-04-20 15:48:22 +02:00
Florian Westphal
8df445316a Channel_Mode: Remove duplicate code.
Incidentially, this doesn't even change the
generated code...
2008-04-19 16:58:00 +02:00
Florian Westphal
11af32466f Channel_Mode: change order of if (set) and if (client) check. 2008-04-19 16:51:42 +02:00
Florian Westphal
5538115537 Channel_Mode: Re-indent switch.
No functional changes were made.
2008-04-19 16:45:31 +02:00
Florian Westphal
b8643477ba Channel_Mode: check return type of Invite/Ban Add/Del function 2008-04-19 16:17:11 +02:00
Florian Westphal
796dcf6a62 Channel_Mode: unify 'b' and 'I' switch/case handling. 2008-04-19 14:16:17 +02:00
Florian Westphal
6b0c094809 Channel_Mode: Unify Del_Invite and Del_Ban handler 2008-04-19 14:12:06 +02:00
Florian Westphal
b36fc3b095 Constify Lists_MakeMask argument and return type. 2008-04-19 14:11:25 +02:00
Florian Westphal
2dd51a98e4 Channel_Mode: Unify Add_Invite and Add_Ban handler 2008-04-19 14:02:54 +02:00
Alexander Barton
7b33424c13 Added "portabtest" binary to .gitignore file in src/portabtest/. 2008-04-09 19:46:26 +02:00
Alexander Barton
bc63064d5c Moved .cvsignore files to .gitignore
Since we are using GIT starting from now, I converted all the
.cvsignore files to .gitignore files.
2008-04-09 18:54:52 +02:00
Florian Westphal
be844d74d3 Fix client.c sparse warnings.
client.c:72:6: warning: symbol 'Max_Users' was not declared. Should it be static?
client.c:72:21: warning: symbol 'My_Max_Users' was not declared. Should it be static?
2008-04-04 23:22:06 +02:00
Florian Westphal
637d739285 io.c: kill select FD_SETSIZE sanity check in io_library_init.
We already have way too many.
2008-04-03 23:20:26 +02:00
Florian Westphal
66e68de16a io.c: fix select FD_SETSIZE check when using epoll as io backend 2008-04-03 23:20:22 +02:00
Florian Westphal
7f44a2ad1c io.c: try to cut down the number of ifdefs.
consolidate backend-specific helpers and
add empty statinc inle stubs in the ifndef case
to let the compiler remove the functions at compile time.
2008-03-27 16:53:39 +01:00
Florian Westphal
abb1abeb77 Do not exit unconditionally if config file cannot be opened
ngircd will exit if the config file cannot be opened. While
thats okay if ngircd starts up for the first time, it isn't
when we are re-reading the config file after a /REHASH or SIGHUP.
2008-03-26 21:31:13 +01:00
Alexander Barton
ab1f48a346 Fix #include's: search log.h locally, include string.h. The latter is required because we include conn.h, which includes resolve.h, which includes ng_ipaddr.h, which contains a macro using strlcpy() ... 2008-03-11 15:42:58 +01:00
Florian Westphal
feb31e4200 IPv6 support.
all references to struct sockaddr/in_addr have been
removed from src/ngircd.
libngipaddr (in src/ipaddr/) hides all the gory details.
See src/ipaddr/ng_ipaddr.h for API description.
2008-02-26 23:50:35 +01:00
Rolf Eike Beer
44cdf1b1ca Fix sending of JOINs between servers.
This does hit only operators that join a channel with at least 2 servers active in the net
the server the oper connects to sends "channel^Go" to the other servers
the other server first searches for the channel and then strips the modes from the channel name
he has to do the other way round: first strip and then check the channel name.
2008-02-26 23:49:33 +01:00
Florian Westphal
e710e8ae37 Channel_Mode cleanups
- better indentation
- move answering request into seperate function.
2008-02-26 23:49:33 +01:00
Alexander Barton
5147b675cb Removed the SQUIT test for now, actually we don't support it yet. 2008-02-26 23:49:33 +01:00
Alexander Barton
ddecfcd831 Implemented IRC commands INFO, USERS (dummy), and SUMMON (dummy). 2008-02-26 23:49:33 +01:00
Dana Dahlstrom
2f71fbb2a1 Include flags in RPL_WHOREPLY messages.
RPL_WHOREPLY messages generated by IRC_WHO don't include flags (*,@,+)
that should appear according to this description:

http://www.mishscript.de/reference/rawhelp3.htm#raw352

Other IRC servers do include the flags.

Modify who-test.e to expose missing flags,
modify ngircd-test.conf to accommodate who-test.e, and fix
irc-info.c to correct these problems.
2008-02-26 23:49:33 +01:00
Dana Dahlstrom
1784180bf3 Don't send trailing space in MODE messages
Under some circumstances ngIRCd currently issues a channel MODE message
with a trailing space after the last parameter, which isn't permitted by
the grammar in RFC 2812 section 2.3.1:

http://tools.ietf.org/html/rfc2812#section-2.3.1

The following patch modifies mode-test.e to expose this, and modifies
irc-mode.c to correct it.
2008-02-26 23:49:33 +01:00
Florian Westphal
634ef8c131 IRC_JOIN cleanups.
- put sending of mode and forwarding of JOIN to other clients
 into seperate function.
- put sending of topic/channel names into seperate function.
- put access check into seperate function.
- translate/remove remaining german comments.
- stop if JOIN to a channel in a list (JOIN #a,#,b,#c...) fails
(This doesn't change the behaviour: skip-to-next-channel-on-error
did never work as intended)
2008-02-26 23:49:33 +01:00
Florian Westphal
4d152b771e Make IRC_WHO also search username/servername/hostname.
Dana Dahlstrom reported that IRC_WHO did not follow
RFC 2812, Section 3.6.1. Specifically:

- IRC_WHO did not send "G" flag instead if "H" if client was away
- did not search username/servername/hostname etc. if argument
  was not a channel.

Fix all of the above and tidy things up a bit.
Also add IRC_WHO test script contributed by Dana.
2008-02-26 23:49:33 +01:00
Dana Dahlstrom
c634303765 Remove duplicate Channel_FirstChannelOf().
noticed there's a way to make the loop
slightly more elegant.

[fw@strlen.de: Extra () to silence gcc.]
2008-02-26 23:49:33 +01:00
Florian Westphal
cb0d594e61 Make Channel_Part name and reason parameters 'const'. 2008-02-26 23:49:33 +01:00
Dana Dahlstrom
6bd35bf090 Implement RFC 2812 handling of "0" argument to JOIN
The students in my software-engineering class are writing IRC clients in
Java, and I'm running ngIRCd as a sandbox for them to play in. We
noticed ngIRCd doesn't obey the "JOIN 0" command specified in RFC 2812:

   JOIN 0             ; Leave all currently joined
                      channels.

http://tools.ietf.org/html/rfc2812#section-3.2.1
I believe the following patch addresses this. Cheers!

[fw@strlen.de: put it into a seperate function]
2008-02-26 23:49:33 +01:00
Florian Westphal
3022d7cff3 Don't use Client_Type after command has been processed.
This caused a read from already free'd memory, if the processed
command (IRC_QUIT) calls Client_Destroy.
2008-02-26 23:49:33 +01:00
Florian Westphal
42db159d26 Fix wrong strncpy usage if CVSDATE defined
Hello_User() used strncpy with overlapping src/dest.
Use memmove instead.
2008-02-26 23:49:33 +01:00
Florian Westphal
59b19ea6a3 This adds support for sending NOTICEs to a channel.
[also see Bug #70 in ngircd bugzilla].

Based on a patch by Fabian Schlager <fabian.schlager@gmail.com>.
2008-02-26 23:49:33 +01:00
Florian Westphal
4add9c29ed [Parser]: Fix minor sparse warnings
parse.c:56:9: warning: symbol 'My_Commands' was not declared. Should it be static?
parse.c:107:9: warning: symbol 'My_Numerics' was not declared. Should it be static?

Also move handling of numerics into a seperate helper function.
2008-01-13 16:12:49 +00:00
Florian Westphal
463c5cb7c5 IRC_PART could reference invalid memory. 2008-01-07 11:42:00 +00:00
Florian Westphal
61e6b5c0aa [Resolver]: Use dotted-decimal IP address if hostname is >= 64 2008-01-02 11:03:29 +00:00
Florian Westphal
91a6fffaa0 io_event_disable: return if event-to-disable is already off 2008-01-02 10:29:51 +00:00
Florian Westphal
2ce5b734bd kqueue: check for EV_ERROR in .flags
if kevent() returns events, check for EV_ERROR in event flags, too.
2007-12-27 18:25:26 +00:00
Florian Westphal
f99f9a8f02 Fix format arg: ListenAddress was printed instead of Bind address. 2007-12-13 01:30:16 +00:00
Florian Westphal
4715ccf9ca Fix format string in error path: didn't print strerror(errno) 2007-12-13 01:05:01 +00:00
Florian Westphal
8974e90552 implement '/STAT u' (uptime) 2007-12-11 11:29:43 +00:00
Florian Westphal
2fe13f0a45 Fix fmt string: int, not long 2007-12-07 21:19:01 +00:00
Florian Westphal
20ce56cc5b include <arpa/inet.h> inside tool.h
In file included from hash.c:24:
../tool/tool.h:27: warning: `struct in_addr' declared inside parameter list
2007-11-25 18:42:37 +00:00
Florian Westphal
47a0379e2b remove ip-string from Conf_Server struct
struct Conf_Server stored the ip address to connect to
in dotted-decimal notation; but we only need this for connect()
so long-time storage isn't necessary.
2007-11-23 16:28:37 +00:00
Florian Westphal
82d32ffb28 bind ListenAddress for outgoing connections
ngircd would always use INADDR_ANY for outgoing connections;
which might not be desirable. Added new [Server] option
"Bind" to set source ip.
2007-11-23 16:26:03 +00:00
Alexander Barton
024588dbe7 Funktions to handle numerics sent to the server. 2007-11-21 12:20:32 +00:00
Alexander Barton
47ca178a21 Introduce option to configure the maximum nick name lenth in ngircd.conf
- New configuration option "MaxNickLength" to specify the allowed maximum
  length of user nick names. Note: must be unique in an IRC network!
- Enhanced the IRC+ protocol to support an enhanced "server handshake" and
  enable server to recognice numeric 005 (ISUPPORT) and 376 (ENDOFMOTD).
  See doc/Protocol.txt for details.
2007-11-21 12:16:33 +00:00
Alexander Barton
53b98fd7e9 Fixes the wrong logging output when nested servers are introduced
to the network as well as the wrong output of the LINKS command.
2007-11-20 20:02:40 +00:00
Alexander Barton
68f896eee0 Adjust test suite to be usable on HP/UX 11.11 :-) 2007-11-18 15:07:16 +00:00
Alexander Barton
06bfb3adfb Fix code to compile using K&R C compiler and ansi2kr again. 2007-11-18 15:05:35 +00:00
Florian Westphal
ad7361dfe0 if ngircd doesn't run chrooted, it tries to chdir
to the users working directory (as returned by getpwuid()).
Failing to chdir to that directory isn't an error; so
log with LOG_INFO and prefix the message with "Notice".
2007-11-15 01:03:01 +00:00
Florian Westphal
001c00b273 New config option NoDNS: disables all DNS queries. 2007-10-25 11:01:19 +00:00
Florian Westphal
b861f536b2 configtest would still print "-1" for MaxConnections, MaxConnectionsIP and MaxJoins
if any of those values was set to 0.
2007-10-24 00:48:41 +00:00
Alexander Barton
8f162f4e17 Fixed propagation of channel mode 'P' on server links. 2007-10-14 12:08:57 +00:00
Florian Westphal
d223b587e4 accoring to comments in the code, MaxConnections, MaxConnectionsIP and MaxJoins
options allow setting values < 0 -- this isn't the case. Comments adjusted.
2007-10-13 19:11:06 +00:00
Alexander Barton
d4ed056147 Numeric 317: implemented "signon time" (displayed in WHOIS result). 2007-10-04 15:03:55 +00:00
Florian Westphal
4b9e52eb4d implement /WALLOPS as described in RFC 2812, section 4.7. 2007-08-02 10:14:26 +00:00
Alexander Barton
69081851ac SECURITY: Fixed a severe bug in handling JOIN commands, which could
cause the server to crash. Thanks to Sebastian Vesper, <net@veoson.net>.
2007-07-31 18:56:13 +00:00
Florian Westphal
efcca62a35 last fix accidentially broke reconnect timer. 2007-07-21 18:46:28 +00:00
Florian Westphal
cd65e0a56e Don't connect to a server if a connection to another server within the same group
is in progress.
2007-06-28 15:13:38 +00:00
Florian Westphal
2275add327 Add new server config option to disable automatic connect. (Tassilo Schweyer) 2007-06-28 05:15:12 +00:00
Florian Westphal
5675be4cd9 fix compile /w gcc 2.95 (reported by Tassilo Schweyer) 2007-06-11 20:06:46 +00:00
Alexander Barton
255edf7eab Reworked read and write buffer handling, introduced WRITEBUFFER_SLINK_LEN. 2007-05-17 23:34:24 +00:00
Alexander Barton
5930a29197 Zip_Flush(): close the connection in all error cases. 2007-05-17 15:16:47 +00:00
Florian Westphal
07d8da60de array_start() cannot legally return NULL if array_length() > 0 --> use assert(). 2007-05-17 14:46:14 +00:00
Alexander Barton
44afe042d1 Make Zip_Flush() more graceful. 2007-05-17 13:49:49 +00:00
Florian Westphal
a073bc89c4 there is no need to treat servers differently than clients on the read side. 2007-05-17 12:39:25 +00:00
Florian Westphal
63e89ceb21 make needlesly global function Conn_Write static. 2007-05-09 13:21:11 +00:00
Florian Westphal
09416f36bf remove ZBUFFER constants and increase max buffer size of server links 2007-05-09 08:55:14 +00:00
Florian Westphal
508b55126f fix compressed server links 2007-05-02 12:34:30 +00:00
Alexander Barton
9f65979979 2007 :-) 2007-04-09 01:24:05 +00:00
Florian Westphal
09deb857ce - change return type of Conn_InitListeners to unsigned
- remove minor whitespace damage
2007-04-04 21:52:12 +00:00
Florian Westphal
8c14d397ba put parentheses around argument 2007-04-03 22:08:10 +00:00
Florian Westphal
99eab1e216 if we can't bind a socket we now Log the port number, too. 2007-02-21 11:06:06 +00:00
Florian Westphal
c93d089736 return false instead of NULL in error path 2007-01-29 21:13:26 +00:00
Alexander Barton
429f85b77a Remove Client_DestroyNow() to keep semantik "every CONNECTON has a CLIENT". 2007-01-23 16:07:19 +00:00
Florian Westphal
ea2a4b3370 fix broken IO_DEBUG build 2007-01-19 13:52:54 +00:00
Florian Westphal
f9b9850662 io_event_add: return if eventtype is already registered. 2007-01-18 00:25:26 +00:00
Florian Westphal
1b852fce72 add support for predefined-channel configuration of k and l modes 2006-12-29 14:09:48 +00:00
Alexander Barton
43f8d149bb added "portabtest" binary to list of files to ignore. 2006-12-28 13:34:43 +00:00
Alexander Barton
949a4ef793 Added .cvsignore files to hide generated files from CVS. 2006-12-28 13:20:07 +00:00
Alexander Barton
f74781647a array_free(): enable debug code only when DEBUG_ARRAY is #define'd. 2006-12-28 12:53:41 +00:00
Alexander Barton
5c78230283 New configure option "--without-select"; when usin epoll() IO API include
support for select() as well by default and fall back on runtime when needed.
2006-12-26 16:00:45 +00:00
Alexander Barton
262d945284 Fixed typo in #ifdef which tests if this header is already included or not. 2006-12-25 22:53:52 +00:00
Florian Westphal
4243cae985 register io handler before creating new local client structure 2006-12-25 01:11:12 +00:00
Florian Westphal
40226d26b2 revert to last good revision again 8-/ 2006-12-17 23:04:45 +00:00
Florian Westphal
d2f7d3087d do not call Conn_Close when io_event_create fails 2006-12-17 22:55:07 +00:00
Florian Westphal
3f1e03edd9 fix possibe buffer-off-by one 2006-12-17 22:52:43 +00:00
Florian Westphal
23e7f7f0dd don't call Resolve_Shutdown() when io_event_create fails 2006-12-17 22:50:51 +00:00
Florian Westphal
8cb0e3af68 removed errouneous FD_SETSIZE limit when not using select() 2006-12-16 22:48:34 +00:00
Florian Westphal
5040d56489 minor cleanup 2006-12-07 22:24:14 +00:00
Florian Westphal
fb0fbe908d remove unused function Channel_PCount 2006-12-07 22:23:39 +00:00
Florian Westphal
fa7bb2790a moved invite/ban lists to channel structure 2006-12-07 17:57:20 +00:00
Florian Westphal
5877bca4bc fix RPL_LOCALUSERS_MSG (%ld -> %lu) 2006-12-02 14:24:36 +00:00
Florian Westphal
37602d1523 Log(LOG_DEBUG, .. -> LogDebug() 2006-12-02 14:10:48 +00:00
Florian Westphal
a09034563a predefined channels MUST start with '#', but this is not very intuitive,
since # is also used as a comment character in ngircd.conf. Thus
we prefix the name with '#' if it is missing.
2006-11-20 19:32:07 +00:00
Alexander Barton
5b35b101f2 Fixed validation of server names containing digits. 2006-11-10 10:05:00 +00:00
Florian Westphal
058d3085a9 New configuration option "PredefChannelsOnly": if set, make
all JOINs to-non existants channel return ERR_BANNEDFROMCHAN_MSG,
restricting users to those channels defined in the config file.
2006-11-05 13:03:46 +00:00
Florian Westphal
018e351630 -Whitespace Damage; Client_OperCount(), Client_UnknownCount(), Client_MyServerCount() return unsigned long 2006-10-07 10:40:52 +00:00
Florian Westphal
6e105bf87e channel maxusers now unsigned long 2006-10-06 21:32:58 +00:00
Florian Westphal
61966a6088 add const qualifier to Hash() and Matche() Arguments 2006-10-06 21:23:47 +00:00
Florian Westphal
27c96632f1 Client_IsValidNick: no need to strcpy. 2006-10-06 19:57:56 +00:00
Florian Westphal
4108e16be6 Channel_Join was severely broken. 2006-10-05 18:26:54 +00:00
Alexander Barton
4e02bdc322 Update info text of local server after re-reading configuration. 2006-10-03 10:59:40 +00:00
Alexander Barton
ca5e09865e Removed an unused variable -- but where did it come from!? Strange ... 2006-10-03 10:28:38 +00:00
Florian Westphal
d8950c5dd0 cleaned up Channel_IsValidName (now uses strcspn()) 2006-10-02 21:55:49 +00:00
Alexander Barton
257312b102 Changed Numerics 265 and 266 to follow ircd 2.11.x "standards". 2006-10-01 19:13:32 +00:00
Alexander Barton
27d947fb7d Allow PASS syntax defined in RFC 1459 for server links, too.
Removed client status CLIENT_GOTPASSSERVER.
2006-10-01 19:05:00 +00:00
Alexander Barton
bed98979dc Enhanced ISUPPORT message (numeric 005). 2006-10-01 19:03:05 +00:00
Florian Westphal
4c6c6ecf0e array_get: no need to multiply again. remove unneeded checks. remove array_free_wipe(). 2006-09-30 21:49:46 +00:00
Florian Westphal
a2f5a05ff8 io_close_poll()s closing brace mysteriously disappeared... fixed. 2006-09-19 18:21:30 +00:00
Florian Westphal
639eb40035 Added support for the /dev/poll i/o interface. 2006-09-17 10:41:06 +00:00
Florian Westphal
0d6f9d4e3e simplify io_library_init* 2006-09-16 16:47:27 +00:00
Florian Westphal
147de9dfa9 add support for the poll() interface 2006-09-16 15:00:09 +00:00
Florian Westphal
f6e729443e cleanup 2006-09-16 14:49:26 +00:00
Florian Westphal
e426c131c7 fix embarassing fileptr leak 2006-09-16 12:22:09 +00:00
Florian Westphal
e2aacff7d4 s/Log(LOG_DEBUG/LogDebug(/ , translated comments, etc. 2006-08-12 11:58:21 +00:00
Florian Westphal
0eccdbc137 -whitespace damage 2006-08-12 11:56:24 +00:00
Florian Westphal
939ee6a39b simplify Resolve_Read(). 2006-08-12 11:54:23 +00:00
Florian Westphal
83caef4598 if compiling without -DDEBUG, make LogDebug 'static inline' so gcc optimizes it away. 2006-08-05 09:16:21 +00:00
Alexander Barton
6eb3f3055d Added support for Solaris 11. 2006-08-05 00:15:28 +00:00
Alexander Barton
47026e14ce Don't assert() when a pre-defined channel has no topic. 2006-07-24 22:54:09 +00:00
Alexander Barton
63626449f8 Flag the format parameter of LogDebug() as "unused" when not compiling with
debug code to avoid gcc warnings. Added some documentation comments.
2006-07-23 23:23:45 +00:00
Alexander Barton
184eb1c54b Removed unused variable "ret" when using the select() API. 2006-07-23 23:11:44 +00:00
Alexander Barton
5ce6bf28d1 Removed (theoretically) division by zero; reformated some code. 2006-07-23 23:05:20 +00:00
Alexander Barton
f1f94f07e1 Validate "ServerName" variable. 2006-07-23 16:42:45 +00:00
Alexander Barton
3e8978d836 Allow DIE to send a message to all locally connected clients. Closes bug #48. 2006-07-23 15:43:18 +00:00
Alexander Barton
9a2d4eef44 "Enhanced" debug message for Handle_Write(), only print when data in buffer. 2006-07-23 15:22:56 +00:00
Alexander Barton
0d5fc770d3 Output some debug messages only if DEBUG_ZIP is #define'd. 2006-07-23 15:19:20 +00:00
Alexander Barton
5590f8624b Don't include conn.h, conn-func.h is enough. 2006-07-23 14:55:40 +00:00
Alexander Barton
47e581e453 Updated copyright notice ;-) 2006-07-23 12:07:33 +00:00
Florian Westphal
3833f8aae3 remove fd from io_event structure 2006-07-12 19:27:12 +00:00
Florian Westphal
161340d486 ALIGN_XXX( v ) macros now leave v alone if it was already aligned. 2006-07-01 22:11:48 +00:00
Alexander Barton
e9e1fa459b Sorted channel modes alphabetically. 2006-06-15 20:28:15 +00:00
Alexander Barton
00ab67dcdb The third parameter of bind() is of type "socklen_t", not "int". 2006-05-12 11:53:04 +00:00
Alexander Barton
dd3a3bc603 Use some more specific data types (e. g. pid_t vs. int), make "SPLint" happy :-) 2006-05-10 21:24:01 +00:00
Florian Westphal
0a3f562f36 make splint complain less... 2006-05-10 17:33:36 +00:00
Florian Westphal
9dfd42a7e6 disabled most (rather annoying) debug messages using DEBUG_ARRAY / DEBUG_IO defines 2006-05-09 17:02:40 +00:00
Alexander Barton
2af87e9152 Handle time shifts backwards gracefully. 2006-05-09 14:49:08 +00:00
Florian Westphal
185004cb30 kqueue support was completely broken; seemed to work on FreeBSD just because of sheer luck. 2006-05-07 10:54:42 +00:00
Florian Westphal
4a2eea2939 minor cleanup, removed unneeded check in safemult_sizet 2006-05-07 10:52:47 +00:00
Alexander Barton
6d3686e73d Send invite and ban lists only once and not repeatedly for every channel. 2006-04-30 21:31:43 +00:00
Florian Westphal
5d0ba011c7 Fix Connection Pool resizing. 2006-04-29 16:19:46 +00:00
Florian Westphal
87f4b1c6f6 Client_GetFromConn() removed and replaced with new function Conn_GetClient() 2006-04-23 10:37:27 +00:00
Florian Westphal
8067bab106 changes some comments, minor cleanup 2006-04-23 10:33:37 +00:00
Alexander Barton
097c7bd741 Fix up ngt_TrimStr() once more ... :-/ 2006-04-09 12:53:07 +00:00
Florian Westphal
bebfbedf3f fix ngt_TrimStr(), fix format string 2006-03-24 23:25:38 +00:00
Alexander Barton
cba9270845 ngt_TrimStr(): code cleanup. 2006-03-22 08:05:10 +00:00
Florian Westphal
2a9ffe7037 use strlcat return value; don't call time() repeatedly. 2006-03-18 22:27:09 +00:00
Florian Westphal
4000e01b28 corrected return value 2006-03-16 20:14:16 +00:00
Florian Westphal
68d3d36dd6 removed silly if (foo) { if (foo){ }} statement 2006-03-16 19:56:34 +00:00
Florian Westphal
eedfc35bbc s/gehoert// 2006-03-11 10:43:49 +00:00
Florian Westphal
d39d3ec4b9 Client_RegisterWhowas(): call time() only once 2006-03-11 10:33:30 +00:00
Alexander Barton
79dfd60a0c Don't use "awk" directly, instead use $(AWK) variable. 2006-03-11 01:48:50 +00:00
Alexander Barton
29ad5e0d94 Moved now local prototype of Client_New() to C file, renamed it to
Init_New_Client() and cleaned up some code and comments.
2006-03-11 01:37:31 +00:00
Florian Westphal
7e8ac0afcf Client_New() not used outside client.c -> static 2006-03-10 20:25:29 +00:00
Florian Westphal
93df629b69 changed connection structure to array-api 2006-02-16 19:21:57 +00:00
Florian Westphal
66060dbce9 new Function: LogDebug() 2006-02-08 17:33:28 +00:00
Florian Westphal
0701afedee removed Resolve_SUCCESS() Macro and Res_Stat->sucess boolean (no longer used/needed) 2006-02-08 15:24:10 +00:00
Florian Westphal
a17745d6d7 Make connid same as connection fd. 2006-02-08 15:20:21 +00:00
Florian Westphal
1249acfdba removed obsolete "int Conn_MaxFD" 2006-02-02 21:00:21 +00:00
Florian Westphal
c8fb6a2258 simplify IRC_Show_MOTD() 2006-01-27 17:19:58 +00:00
Alexander Barton
fb9707de98 Added test if the stress-test expect script itself completes without errors. 2005-12-30 22:13:21 +00:00
Alexander Barton
db9afbbf0e Modified expect script to work with servers having IDENT support. 2005-12-30 22:12:28 +00:00
Florian Westphal
4b2f966b7e Fix Bugzilla #64 -- ngicrd did not reconnect to other servers after failed forward dns lookup. 2005-12-09 09:26:55 +00:00
Alexander Barton
0570e13cac Minor whitespace fixes. 2005-11-21 16:31:30 +00:00
Alexander Barton
6b21249151 Remove direct call of Conf_UnsetServer(): it's already indirectly called
by Conn_Close() a few lines above.
2005-11-21 15:06:37 +00:00
Alexander Barton
bc09a3e487 Changed Handle_Write() to not close sockets itself but to call Conn_Close. 2005-10-11 19:29:23 +00:00
Alexander Barton
ff218617db gcc 4: "warning: declaration of 'dup' shadows a global declaration". 2005-09-24 17:06:54 +00:00
Florian Westphal
b65358b17c avoid 2nd time() call in Check_Servers(), improve comments 2005-09-24 02:48:46 +00:00
Florian Westphal
e9f3e69f36 use io_close instead of plain close in Conn_ExitListeners() 2005-09-24 02:20:00 +00:00
Florian Westphal
5b2364b236 merge new resolver code 2005-09-12 19:10:20 +00:00
Florian Westphal
4db29b0076 Minimal changes (needed for merging resolver changes) 2005-09-11 11:42:48 +00:00
Florian Westphal
0aae3ec5d7 Mostly formatting; changes needed for SSL merge 2005-09-10 23:42:12 +00:00
Florian Westphal
468a1c7767 Handle_Write(): Report write attempts on closed sockets when in debug mode. 2005-09-05 09:10:08 +00:00
Alexander Barton
ab3ac4e466 Removed obsolete debug message. 2005-09-05 08:11:11 +00:00
Alexander Barton
4d18ac83a2 Set one second penalty on unknown commands. 2005-09-04 23:42:24 +00:00
Alexander Barton
660b529c10 Add debug code to Conn_SetPenalty(). 2005-09-04 23:38:32 +00:00
Florian Westphal
565129f992 io_close(): explicitly remove fd from epoll set 2005-09-04 13:38:59 +00:00
Florian Westphal
fc4cd39202 Wait for DNS reverse lookup (and ident request) before writing results to pipe. 2005-09-03 11:17:16 +00:00
Florian Westphal
6444442931 fix fd leak (happens on failure of fork() ). 2005-09-02 21:47:30 +00:00
Alexander Barton
e899c75d7e Updated copyright notice. 2005-09-02 17:12:58 +00:00
Florian Westphal
cae9a3aee5 small formatting change 2005-09-02 17:01:23 +00:00
Alexander Barton
e708790566 JOIN now supports more than one channel key at a time. 2005-09-02 15:46:49 +00:00
Florian Westphal
dd3d2e2c39 Complain if MyPassword starts with ':'. (Reported by Ben Korvemaker) 2005-09-02 13:58:52 +00:00
Florian Westphal
9275dc4dc4 reformatted Handle_SERVER() 2005-09-02 13:50:52 +00:00
Alexander Barton
af9123fd82 Cleaned up some code, comments and log/debug messages. 2005-09-02 13:28:30 +00:00
Alexander Barton
ca32c1b311 Implementec numeric "333": Time and user name who set a channel topic. 2005-09-02 12:50:25 +00:00
Alexander Barton
a5b5a6a99a Make PONG handler compatible with ngIRCd <= 0.9 ("make it more relaxed"). 2005-09-01 10:51:24 +00:00
Florian Westphal
c65343e719 reformatted a few lines. 2005-08-30 22:08:00 +00:00
Florian Westphal
30c11b2313 use size_t for array length variables 2005-08-30 13:38:16 +00:00
Florian Westphal
b7033e1478 use size_t instead of unsigned int. 2005-08-30 13:36:32 +00:00
Florian Westphal
db992975eb last cleanup accidentally broke kqueue backend. 2005-08-29 13:58:54 +00:00
Alexander Barton
c12dc45f17 Added prefix to connection statistic NOTICE. 2005-08-29 11:11:15 +00:00
Alexander Barton
a2e4eb5aaf Fixed server NOTICEs to users with "s" mode ("server messages"). 2005-08-29 10:58:00 +00:00
Florian Westphal
58b8fb5d12 remove unneeded variable "bool action" 2005-08-28 16:51:20 +00:00
Florian Westphal
8efeae1714 fix embarassing cut&paste error 2005-08-28 12:18:50 +00:00
Florian Westphal
21ad5dcfff array_cat0_temporary(): removed confusing DEBUG messages 2005-08-28 11:47:02 +00:00
Alexander Barton
4074fd9149 Enhanced the handler for PING and PONG commands: fix forwarding and enable
back-passing of a client supplied additional argument of PING.
2005-08-28 11:40:13 +00:00
Florian Westphal
2f105b1c0a if the request is empty, remove \r\n (or single \n or \r) from receive buffer. 2005-08-28 00:19:29 +00:00
Florian Westphal
a2cdc08c39 fix handling of empty requests 2005-08-27 23:42:23 +00:00
Alexander Barton
e728bd2e1a Changed handling of timeouts for unregistered connections: don't reset
the counter if data is received and disconnect clients earlier.
2005-08-27 23:33:10 +00:00
Florian Westphal
12e288c062 removed misleading const qualifier 2005-08-27 23:23:54 +00:00
Florian Westphal
f36337fab3 fix kevent() warning on powerpc-apple-darwin8-gcc-4.0.0 2005-08-27 20:27:07 +00:00
Florian Westphal
1a46b37bd5 remove unneeded call io_event_kqueue_commit_cache() 2005-08-27 20:25:54 +00:00
Florian Westphal
6434d0b23e return PING argument in PONG reply if STRICT_RFC is not defined. 2005-08-27 18:39:56 +00:00
Alexander Barton
ac96fe5877 Changed log level of "Initialization failed" message from ERR to ALERT. 2005-08-25 08:48:43 +00:00
Alexander Barton
a6d1d26a43 Fixed line lengths ... 2005-08-25 08:40:15 +00:00
Alexander Barton
c2f5399b51 Fixed format string bug in "connection statistics" message; code cleanups. 2005-08-15 23:02:40 +00:00
Alexander Barton
ae6e6616a6 Made test script run a longer time. 2005-08-12 21:38:52 +00:00
Alexander Barton
a5915f75c9 Set timeout. 2005-08-12 21:35:12 +00:00
Alexander Barton
f2ba8abec5 Detect source directory correctly. 2005-08-12 21:34:19 +00:00
Alexander Barton
b15d906dff The KILL command killed much more than desired (including server links!)
when the target user is connected to a remote server.  [from 0.9.x]
2005-08-02 23:19:21 +00:00
Alexander Barton
1c14e2e0a2 Removed some line feeds in debug statements. 2005-08-02 22:48:57 +00:00
Alexander Barton
77f54693ef Removed unnecessary #define of "LOCAL", now use plain C "static" instead. 2005-07-31 20:13:07 +00:00
Alexander Barton
b61407713d Removed "U" unsignet suffix: caused problems with older compilers and is
not necessary for this constants.
2005-07-30 22:53:16 +00:00
Florian Westphal
51ccb5928a internal changes needed for future ssl support 2005-07-29 09:29:47 +00:00
Florian Westphal
84706af7fe topic no longer limited to 127 chars (now only limited by protocol) 2005-07-28 16:23:55 +00:00
Florian Westphal
46a191caf6 changed RES_STAT buffer to array 2005-07-28 16:13:09 +00:00
Florian Westphal
20ff63a8a1 add array_cat0_temporary() and array_init() 2005-07-28 16:12:50 +00:00
Florian Westphal
2e794a6943 Reverse lookup now checks result by additional forward lookup 2005-07-25 09:20:10 +00:00
Florian Westphal
6ecccd2644 add reverse lookup check 2005-07-24 21:42:00 +00:00
Alexander Barton
74cb2e2768 Eliminate some compiler warnings ("unused parameter"). 2005-07-22 21:31:05 +00:00
Alexander Barton
68dc35b548 Removed "srcdoc" target for src/ tree (now in doc/ subdirectory). 2005-07-22 21:01:03 +00:00
Florian Westphal
987559e46d change Handle_OPERATOR() formatting 2005-07-17 18:58:04 +00:00
Florian Westphal
fca29bfa23 prevent io_masterfd leak when library_init() is called twice 2005-07-14 14:35:38 +00:00
Alexander Barton
63db3daafe Cleaned up some log messages. 2005-07-14 09:20:39 +00:00
Alexander Barton
2e858755c5 Brought some debug log messages "in line". 2005-07-14 09:14:12 +00:00
Alexander Barton
b682a5e485 Reformatted some comments. 2005-07-14 09:11:38 +00:00
Florian Westphal
efbfe4ae83 removed unneeded variable "bsize" 2005-07-13 16:06:55 +00:00
Florian Westphal
c92e57fec3 add better error checks for io_ routines 2005-07-12 20:44:46 +00:00
Florian Westphal
ca130e6db6 removed unneeded return statement 2005-07-12 20:44:13 +00:00
Florian Westphal
248d75e566 fix embarassing buffer-off-by one 2005-07-11 20:58:05 +00:00
Florian Westphal
4715b17106 make Conn_NewListener local to conn.c 2005-07-11 14:56:38 +00:00
Florian Westphal
70facb7f6e made a few config options unsigned. 2005-07-11 14:11:35 +00:00
Florian Westphal
76604f847a change assertions to stop splint from complaining 2005-07-11 14:10:53 +00:00
Florian Westphal
c7693f625e s/strcpy/strlcpy/ 2005-07-10 21:07:22 +00:00
Florian Westphal
e50d049074 minor cosmetic changes 2005-07-09 21:35:20 +00:00
Florian Westphal
dd003e23b7 removed some Debug-Code. 2005-07-09 20:23:00 +00:00
Florian Westphal
178b564c51 io_library_shutdown: return void 2005-07-09 20:22:29 +00:00
Alexander Barton
8916b201fa Only setuid()/setgid() if it differs from current UID/GID.
Solves problems with Cygwin.
2005-07-08 23:19:20 +00:00
Alexander Barton
ead79d3e39 Use "ServerUID" (and not internal variable name) for error message. 2005-07-08 21:04:39 +00:00
Alexander Barton
02b0a51517 Renamed "Rendezvous" to "Zeroconf". 2005-07-08 16:18:38 +00:00
Florian Westphal
7b5a1bbe3c safemult_uint(): return bool 2005-07-07 21:26:31 +00:00
Florian Westphal
0d180a913f use new io event API. 2005-07-07 18:49:04 +00:00
Florian Westphal
60ae9c827e use dynamically sized unzip/zip buffer 2005-07-07 18:48:33 +00:00
Florian Westphal
c857e9c887 new io/buffer api. 2005-07-07 18:47:46 +00:00
Florian Westphal
579fce1831 remove FD_SETSIZE check (now in io_* functions) 2005-07-07 18:46:46 +00:00
Florian Westphal
2bf77fb0c3 use dynamic io buffers 2005-07-07 18:45:33 +00:00
Florian Westphal
774c6cda4d use new buffer API 2005-07-07 18:39:45 +00:00
Florian Westphal
afef7dee82 cleanup, use new io layer. 2005-07-07 18:39:08 +00:00
Florian Westphal
7eca418465 add new IO layer 2005-07-07 18:38:35 +00:00
Florian Westphal
ebbf92898e add new buffer abstraction layer 2005-07-07 18:38:14 +00:00
Florian Westphal
733ef4c815 removed Resolve_Init() 2005-07-07 18:37:36 +00:00
Alexander Barton
e5a19fa3a0 Fixed maximum length of user names, now allow up to 9 characters. 2005-07-05 22:44:47 +00:00
Alexander Barton
9a6b6f527b Handle oversized messages which should be sent to the network better. 2005-07-02 14:36:03 +00:00
Alexander Barton
43d644ed92 Code and comment cleanups, new #define "CUT_TXTSUFFIX". 2005-07-02 14:33:45 +00:00
Alexander Barton
0e3ce63ec1 Fix compiler warning "comparision between signed and unsigned". 2005-06-26 13:43:59 +00:00
Alexander Barton
162338b8c8 Ignore unknown commands received before the client is registered. 2005-06-24 20:56:46 +00:00
Alexander Barton
de395db8e3 Get rid of Log_SetDaemonized(). 2005-06-24 19:55:10 +00:00
Florian Westphal
dbea187373 removed global variable NGIRCd_NoDaemon 2005-06-24 19:20:56 +00:00
Florian Westphal
d81dab99fa put badchars back in 2005-06-18 08:57:37 +00:00
Florian Westphal
9dc5e50226 fix embarassing cut&paste error (add missing } ) 2005-06-17 23:17:09 +00:00
Florian Westphal
c06c815c28 fix "Can't get user information for UID" error message 2005-06-17 23:13:41 +00:00
Florian Westphal
04169f34cf only chdir() to users home when running as daemon 2005-06-17 20:35:45 +00:00
Florian Westphal
aec535c8b6 s/sprintf/snprintf 2005-06-17 19:16:53 +00:00
Florian Westphal
2d4dd33627 use strlcpy 2005-06-17 19:15:43 +00:00
Florian Westphal
b0699efdab remove unneeded strpy() 2005-06-17 19:14:58 +00:00
Florian Westphal
bc2dac3c74 startup: fork only once, never run with uid 0. 2005-06-17 18:22:45 +00:00
Alexander Barton
94dd7fa7d6 IRC_LIST(): Added missing calls of Client_ID() and cleand up the code. 2005-06-12 18:23:59 +00:00
Florian Westphal
fcf65beea4 changed formatting to match ngircd coding style 2005-06-12 18:02:09 +00:00
Florian Westphal
1cf8ccd8fe Make sure SimpleMessage() sends <= 512 chars 2005-06-12 17:21:46 +00:00
Florian Westphal
74424cb1a5 set 3 second penalty after failed /oper command. 2005-06-12 17:18:27 +00:00
Alexander Barton
5c20474fdb Only register clients that have been connected at least 30 sec. in WHOIS database. 2005-06-12 16:39:42 +00:00
Alexander Barton
8b0ac2306e Modified Conn_StartTime() to use information of the CLIENT structure. 2005-06-12 16:32:17 +00:00
Alexander Barton
5195555c5a Removed CONNECTION[].starttime, now saved in CLIENT structure. 2005-06-12 16:28:55 +00:00
Alexander Barton
a4660f40db New function Client_StartTime(). 2005-06-12 16:18:49 +00:00
Florian Westphal
cac9f279fa send RFC compliant netsplit messages. 2005-06-04 12:32:09 +00:00
Florian Westphal
517321807e Fix Handling of quit messages: always send only one QUIT message. 2005-06-04 11:53:24 +00:00
Florian Westphal
ae98008c1c remove Try_Write(), Call Handle_Write() directly instead. 2005-06-04 11:49:20 +00:00
Alexander Barton
45404a1644 Added some Doxygen documentation. 2005-06-01 21:52:18 +00:00
Florian Westphal
8ac701d6c8 add FreeRes_stat(), wait for resolver timeout. 2005-06-01 21:28:50 +00:00
Florian Westphal
158bf554c3 minor cleanup 2005-05-28 10:46:50 +00:00
Alexander Barton
9c3c7e5a09 Handle splint errors more gracefully. 2005-05-23 00:11:15 +00:00
Alexander Barton
cd0dc8627d Don't exit server if closing of a socket fails; instead ignore it and
pray that this will be "the right thing" ...
2005-05-22 23:55:57 +00:00
Alexander Barton
95f8b963a6 Reformatted and documented code of the first part of the IRC_NICK()
function; and register WHOWAS entries on nickname changes, too.
2005-05-17 23:24:43 +00:00
Alexander Barton
1aeaf64c66 New function Client_RegisterWhowas(). 2005-05-17 23:18:54 +00:00
Alexander Barton
06caecb0c4 Implemented IRC function "WHOWAS". 2005-05-16 12:25:15 +00:00
Alexander Barton
b1c14598e1 New functions Client_GetWhowas and Client_GetLastWhowasIndex; new structure WHOWAS. 2005-05-16 12:24:31 +00:00
Alexander Barton
7f0d101184 New functions Client_GetWhowas, Client_GetLastWhowasIndex, and Register_Whowas. 2005-05-16 12:23:48 +00:00
Alexander Barton
9f247ebd5a New defines MAX_WHOWAS and DEFAULT_WHOWAS. 2005-05-16 12:22:32 +00:00
Alexander Barton
dd9b4bc956 Away status texts set due to "a"-Modes received from other servers have
been fixed: the status text of the server has been set instead of the
away status text of the client (most probably introduced by patch 1.36).
2005-05-14 20:29:34 +00:00
Alexander Barton
a02f25a810 Added #include of "defines.h", necessary due to removal of the #include of
"defines.h" in the client.h header file.
2005-04-27 07:46:50 +00:00
Alexander Barton
aa25cd7da2 Reorder #includes, necessary due to removal of #include "defines.h" in
the client.h header file.
2005-04-27 07:38:00 +00:00
Alexander Barton
70fcdf1b5c Removed "invalid" #include of "defines.h" (don't include further header
files from a header file!).
2005-04-27 07:36:25 +00:00
Alexander Barton
dfe662ad45 Added missing #include of "defines.h". 2005-04-27 07:34:25 +00:00
Florian Westphal
7daa7fb278 removed Conn_UnsetOption() function. It was not used anymore.
removed Conn_SetOption(). replaced its only call (in conn-zip.c) with Conn_OPTION_ADD() macro.
2005-04-25 18:37:16 +00:00
Florian Westphal
e7c2c86aee removed "my_connects" fd_set. 2005-04-23 14:28:44 +00:00
Florian Westphal
c4bc2114c9 conn.h: option filed in CONNECTION struct is now UINT16.
conn-func.h: add accessor Macros

Conn_OPTION_ADD( conn, CONN_OPTION )
Conn_OPTION_DEL( conn, CONN_OPTION )
Conn_OPTION_ISSET( conn, CONN_OPTION )

To add, remove or test for a certain option field attribute (e.g. CONN_ISCLOSING)
These Macros should be used instead of accessing conn->options directly.
2005-04-18 21:08:31 +00:00
Alexander Barton
129a22a29b Cleaned up (and documented) the IRC_KILL() function. 2005-04-18 15:44:39 +00:00
Florian Westphal
8304210c06 fix spelling 2005-04-16 20:50:03 +00:00
Florian Westphal
aee48a3b38 added kludge to make ngircd (with syslog) compile on mips-dec-ultrix4.5 2005-04-16 09:31:30 +00:00
Florian Westphal
77faf14b29 use strdup() to add oper hostname mask. 2005-04-16 09:23:01 +00:00
Florian Westphal
8b17579e60 private strdup() implementation in case libc does not provide it. 2005-04-16 09:20:53 +00:00
Florian Westphal
b4363162ce s/malloc(x*y)/calloc(x,y)/ 2005-04-16 09:19:49 +00:00
Alexander Barton
ca8ab38cac Use typedef instead of #define to declare the socklen_t type if needed. 2005-04-09 18:27:16 +00:00
Alexander Barton
dec7eba531 Added "-unrecog" to splint command line. 2005-04-09 18:23:37 +00:00
Alexander Barton
b0ae15e01d Target "lint": check whether splint command is available and suppress
warnings related to the used command line in the output.
2005-04-09 12:30:55 +00:00
Alexander Barton
811ac48bd2 Added new target "srcdoc" to generate the Doxygen source documentation. 2005-04-09 12:22:41 +00:00
Alexander Barton
e936a79f6b Added the control file for the Doxygen source documentation system. 2005-04-09 12:21:51 +00:00
Alexander Barton
4d0b03b423 Debine NDEBUG if DEBUG isn't defined to disable all assert() checks as well. 2005-03-30 16:37:02 +00:00
Alexander Barton
f6df13d5f8 When validationg the configuration file wait for a keypress only if both
stdin and(!) stdout are valid tty's.
2005-03-22 18:57:08 +00:00
Alexander Barton
f56a1bdf20 Use tabulator, not 8 spaces ... 2005-03-21 22:22:09 +00:00
Florian Westphal
49f5a4d454 Conf_Test(): check if stdin (and not stdout...) is connected to a terminal. 2005-03-20 15:00:25 +00:00
Florian Westphal
326607eea1 changed type of Conf_ListenPorts[] from "unsigned int" to UINT16. 2005-03-20 13:54:06 +00:00
Florian Westphal
bfba1f37ed Init_Conn_Struct(): Zero structure using memset(). 2005-03-20 11:00:31 +00:00
Florian Westphal
8adff59223 Remove INT, LONG, BOOLEAN, STATIC, CONST, CHAR datatypes.
use stdbool.h / inttypes.h if available.
2005-03-19 18:43:48 +00:00
Florian Westphal
27d93d7d8c fix Config_Error_NaN prototype (first argument missed "const") 2005-03-19 15:46:38 +00:00
Florian Westphal
8a2ed0a75f removed unneeded log.h include. 2005-03-19 14:50:59 +00:00
Alexander Barton
1d08d51e2e New configuration option "OperServerMode". 2005-03-15 16:56:16 +00:00
Alexander Barton
5e929effca New function New_Res_Stat() to initialize RES_STAT structure. 2005-03-05 12:57:14 +00:00
Alexander Barton
e618041168 Reduce the number of calls of strlen(). Idea by Florin Westphal. 2005-03-05 11:44:01 +00:00
Alexander Barton
e7f8782831 Added missing include of "match.h". 2005-03-03 08:36:19 +00:00
Alexander Barton
4ef172d603 Implemented support for "secret channels" (channel mode "s"). 2005-03-02 16:35:10 +00:00
Alexander Barton
490c9d04d7 New configuration option "Mask" for [Operator] sections to limit OPER command. 2005-03-02 16:07:30 +00:00
Alexander Barton
8579b2a1e5 Clean up the mode handling code: remove redundant parts ... 2005-02-27 20:09:44 +00:00
Alexander Barton
3da942e237 Updated to latest strl{cat|cpy} code of rsync:
- Make sure that strlcpy() returns the right value when the bufsize is 0.
- Fixed a bug in strlcat() where it would not properly detect a no-change
  condition if called with an initial string longer than the specified
  size limit (due to an unsigned var's inability to go negative).
Patch by Florian Westphal, <westphal@foo.fh-furtwangen.de>.
2005-02-27 09:29:13 +00:00
Alexander Barton
ec30cd4e5f Whitespace fixes. 2005-02-11 13:52:37 +00:00
Alexander Barton
f2fbf206b6 Don't play games with FILE* stdin/out/err, only touch "real" descriptors. 2005-02-10 16:55:52 +00:00
Alexander Barton
1fdd5478c6 Renamed NGIRCd_FillVersion() to Fill_Version(); Code cleanups. 2005-02-10 13:09:11 +00:00
Alexander Barton
9537542647 Write "error file" (/tmp/ngircd-XXX.err) only if compiled with debug
code ("--enable-debug") and running as daemon process.
2005-02-10 12:49:04 +00:00
Alexander Barton
894cd2cd68 Don't create version information string each time a client connects but
insetead on server startup. By Florian Westphal.
2005-02-09 09:52:58 +00:00
Alexander Barton
8edeed8418 Make sure that errno of fopen() isn't overwritten by the logging code. 2005-02-07 19:31:34 +00:00
Alexander Barton
112102b10c New configuration variable "PidFile", section "[Global]": if defined,
the server writes its process ID (PID) to this file. Default: off.
Idea by Florian Westphal, <westphal@foo.fh-furtwangen.de>.
2005-02-04 14:24:20 +00:00
Alexander Barton
85acb82469 Use ngt_TrimLastChr() where useful, by Florian Westphal. 2005-02-04 13:15:38 +00:00
Alexander Barton
51d09fb4f7 Add ngt_TrimLastChr() to header file. By Florian Westphal. 2005-02-04 13:09:03 +00:00
Alexander Barton
8308c170db Fixed a bug that could case a root exploit when the daemon is compiled
to do IDENT lookups and is logging to syslog. Bug discovered by CoKi,
<coki@nosystem.com.ar>, thanks a lot!
(http://www.nosystem.com.ar/advisories/advisory-11.txt)
2005-02-03 09:26:42 +00:00
Alexander Barton
18c92d9de7 We are in the year 2005 now! :-) 2005-01-26 22:03:15 +00:00
Alexander Barton
2440ed080c Fixed a buffer overflow that could cause the daemon to crash. Bug found
by Florian Westphal, <westphal@foo.fh-furtwangen.de>.
2005-01-26 13:23:24 +00:00
Alexander Barton
39f1ddd9d0 New function ngt_TrimLastChr(), prototype by Florian Westphal. 2005-01-25 16:16:48 +00:00
Alexander Barton
34e912d9f2 Fixed a typo in variable name ... 2005-01-24 14:19:04 +00:00
Alexander Barton
44172a8c7f Fixed a possible buffer underrun when reading the MOTD file. Thanks to
Florian Westphal, <westphal@foo.fh-furtwangen.de>.
2005-01-24 14:17:21 +00:00
Alexander Barton
a6d7fb8739 Code cleanups from Florian Westphal, <westphal@foo.fh-furtwangen.de>:
wrote functions for common error messages.
2005-01-20 00:13:08 +00:00
Alexander Barton
d16ce5a735 Code cleanups from Florian Westphal, <westphal@foo.fh-furtwangen.de>. 2005-01-20 00:11:49 +00:00
Alexander Barton
a40a026d15 Fixed detection of IRC lines which are too long to send. Detected by
Florian Westphal, <westphal@foo.fh-furtwangen.de>.
2005-01-19 23:33:53 +00:00
Alexander Barton
6c5f4beb53 Fixed return values of our own implementation of strlcpy(). The code has
been taken from rsync and they fixed it, but we didn't until today :-/
2005-01-18 09:05:37 +00:00
Alexander Barton
26b0ddf200 Translated source code comments. 2005-01-17 13:14:36 +00:00
Alexander Barton
b6690df2be Raised the maximum length of passwords to 20 characters. 2005-01-17 13:01:34 +00:00
Alexander Barton
429b5f3ec9 Fixed a memory leak when resizing the connection pool and realloc() failed.
Now we don't fall back to malloc(), which should be sane anyway.
Patch from Florian Westphal, <westphal@foo.fh-furtwangen.de>.
2005-01-17 11:57:39 +00:00
Alexander Barton
5049c5c694 Don't use a POSIX thread for the Howl "run loop". 2004-12-26 16:48:53 +00:00
Alexander Barton
292879aca4 Added support for the Howl (http://www.porchdogsoft.com/products/howl/)
Rendezvous API, in addition to the API of Apple (Mac OS X).
2004-12-26 00:14:33 +00:00
Alexander Barton
58736b3902 Fixed indentation and added some more debug code. 2004-12-22 17:37:41 +00:00
Alexander Barton
c1f32e8214 Made ngIRCd compile on HP/UX 10.20 with native HP pre-ANSI C compiler and
most probably other older C compilers on other systems.
2004-10-20 13:47:32 +00:00
Alexander Barton
eee2762852 Changed "read buffer" to "receive buffer" as suggested by Goetz. 2004-10-04 23:23:41 +00:00
Alexander Barton
c79fa28a66 Added some missing words: "address" :-) 2004-10-04 23:09:04 +00:00
Alexander Barton
1e692e5890 Fixed wrong variable names in output of "ngircd --configtest". 2004-09-24 18:00:40 +00:00
Alexander Barton
ceafdf109b Added functions.inc to EXTRA_DIST files. 2004-09-08 09:40:51 +00:00
Alexander Barton
450251f082 Fixed echo without newline for systems not understanding "echo -n"; added
new file "functions.inc" for functions usable by all test scripts.
2004-09-06 22:04:06 +00:00
Alexander Barton
ceef058065 Reverted extension of the "make all" target in the test-suite. 2004-09-06 20:35:28 +00:00
Alexander Barton
b04a526a19 Fixed wrong exit code check of "kill -0". 2004-09-06 20:22:30 +00:00
Alexander Barton
8ca1e4d548 If ServerUID is defined change the working directory to the home directory
of this user.
2004-09-04 20:28:51 +00:00
Alexander Barton
c5bdd86f96 Enhanced messages and exit codes. 2004-09-04 19:14:46 +00:00
Alexander Barton
aa26e2ef36 Added all test scripts to target "all". 2004-09-04 19:14:02 +00:00
Alexander Barton
9445962237 Changed text "test scripts" to "processes": some versions of expect(1)
fork child processes ...
2004-09-04 18:22:42 +00:00
Alexander Barton
6b898b63f0 Removed counting of test processes; don't check running processes by default. 2004-09-04 18:20:16 +00:00
Alexander Barton
f7a4d03ba2 Added detection of flags for ps(1). 2004-09-04 16:14:47 +00:00
Alexander Barton
ade1e2eb7b Added README, test-loop.sh and wait-tests.sh to EXTRA_DIST files. 2004-09-04 15:46:56 +00:00
Alexander Barton
a9a605de3e Made stress-server.sh to use wait-tests.sh to limit number of parallel tests. 2004-09-04 15:45:27 +00:00
Alexander Barton
7ec11de523 Two new scripts: test-loop.sh and wait-tests.sh 2004-09-04 15:44:45 +00:00
Alexander Barton
18eb92a72b Added support for looping and other enhancements. 2004-09-04 14:23:09 +00:00
Alexander Barton
9ddb934784 Set $srcdir if not already set by make. 2004-09-04 14:22:38 +00:00
Alexander Barton
4f8ac179bf If nick name is already in use, interpret this as "clienst still connected". 2004-09-04 14:22:13 +00:00
Alexander Barton
02b8e51562 Added preliminary README text. 2004-09-04 13:58:31 +00:00
Alexander Barton
364ff7087d Added cast to integer for Solaris. 2004-06-26 08:50:44 +00:00
Alexander Barton
a49a580a77 Fixed wrong buffer size calculation for resolver results. 2004-05-30 16:25:51 +00:00
Alexander Barton
c23bbe6b65 Fixed a warning message of the compiler when not using IDENT lookups. 2004-05-11 00:53:14 +00:00
Alexander Barton
3012c232eb Fixed resolver when using IDENT lookups, cleaned up code. 2004-05-11 00:01:11 +00:00
Alexander Barton
26390c60fb Added PID to all log messages on the console; enhanced logging of
resolver sub-processes in debug mode.
2004-05-10 23:57:46 +00:00
Alexander Barton
cdb039672c Enhanced output of "make lint". 2004-05-09 18:23:35 +00:00
Alexander Barton
7281b8dd4d New "chroot" feature (from Benjamin Pineau), introducing new configuration
variables "ChrootDir" and "MotdPhrase".
2004-05-07 11:19:20 +00:00
Alexander Barton
d433eb3896 Add flag "L" to default IRC+ server flags: synchronize INVITE-
and BAN-lists.
2004-04-25 15:46:50 +00:00
Alexander Barton
dd59820051 Synchronize INVITE- and BAN-lists if the peer requests it:
server flag "L". And better debug logging.
2004-04-25 15:43:18 +00:00
Alexander Barton
967476799f Don't send MODE changes when origin is a server and
mask is already known.
2004-04-25 15:42:05 +00:00
Alexander Barton
6b1e322865 New functions: Lists_SendInvites(), Lists_IsInviteEntry(), 2004-04-25 15:40:19 +00:00
Alexander Barton
1d8da4b525 Fixed a wrong assert() which could cause the daemon to exit spuriously
when closing down connections.
2004-04-25 14:06:11 +00:00
Alexander Barton
292c7bd4c0 Better logging of decompression errors returned by zlib. 2004-04-25 13:55:34 +00:00
Alexander Barton
64d330b726 Fixed handling of already existent entries in invite and ban lists:
the attempt to add an already existent entry is no error, it must
be propagated across servers (but not added to the list!).
2004-04-09 21:41:52 +00:00
Alexander Barton
233210b906 Servers other than the destination server didn't clean up the invite
list of an "invite-only" channel properly when an INVITE'd user joined.
2004-04-09 20:46:46 +00:00
Alexander Barton
f697923c48 Fixed detection of GNU C version and usability of __attribute__. 2004-03-15 19:26:39 +00:00
Alexander Barton
cb76d96efb Fixed some warnings of non-gcc-compilers (e. g. original Apple compiler on
A/UX): "warning: illegal pointer combination, op =".
2004-03-11 22:16:31 +00:00
Alexander Barton
de1489b39b Updated tests to reflect last changes to MODE behaviour. 2004-03-10 20:40:06 +00:00
Alexander Barton
56227abc5e Changed the reply of the MODE command to match the syntax of the original
ircd exactly: the unnecessary but missing ":" before the last parameter
has been added.
2004-02-29 16:28:44 +00:00
Alexander Barton
bdaf53e799 Fixed TRACE: don't output "Serv" lines for ourself; display more info. 2004-02-28 02:18:16 +00:00
Alexander Barton
33f4e6763b Better logging while establishing and shutting down connections.
Results of the resolver are now discarded after the client is registered.
2004-02-28 02:01:01 +00:00
Alexander Barton
6667bb6b77 The info text ("real name") of users is set to "-" if none has been
specified using the USER command (e. g. "USER user * * :"). Reason:
the original ircd doesn't like empty ones and would KILL such users.
2004-02-04 19:56:04 +00:00
Alexander Barton
b90bedbcb2 Fixed (optional) TCP Wrapper test which was broken and could result in
false results. Thanks to Fuminori Tanizaki <tany@mcnet.ad.jp>!
2004-02-03 20:28:30 +00:00
Alexander Barton
bb98fd8c85 The type of service (TOS) of all sockets is set to "interactive" now. 2004-01-25 16:06:34 +00:00
Alexander Barton
e9b0ec9148 Removed some debug code; translated some source code comments. 2004-01-19 21:54:59 +00:00
Alexander Barton
c53903eb3f Use "__attribute__" only if gcc is at least version 2.7 2004-01-17 03:22:46 +00:00
Alexander Barton
57c7e23622 Added #include for strings.h to fix compiler warnings. 2004-01-17 03:17:49 +00:00
Alexander Barton
cdb694aeb3 Added #include for strings.h and added some casts to remove compiler warnings. 2004-01-17 03:17:00 +00:00
Alexander Barton
6cafa16a56 Fixed order of #include's: time.h moves up! ;-) 2004-01-17 03:15:45 +00:00
Alexander Barton
f645e5b62e Adjusted copyright notice to include 2004. 2004-01-02 19:23:30 +00:00
Alexander Barton
c9ccb66944 Added new short command line option "-t" as alternative to "--configtest". 2003-12-29 14:53:26 +00:00
Alexander Barton
cb6279f102 Added IDENT option to version string. 2003-12-27 13:09:24 +00:00
Alexander Barton
b79b315dd4 Added optional support for IDENT lookups (configure switch "--with-ident"). 2003-12-27 13:01:12 +00:00
Alexander Barton
c40592d2ce Removed "USE_" prefixes of configuration #defines. 2003-12-26 15:55:07 +00:00
Alexander Barton
05170bc94c Fixed error messages related to server name configuration; updated
sample configuration file. (from 0.7.x)
2003-12-19 14:32:59 +00:00
Alexander Barton
ff2c1efae8 Fixed abort() when inviting users to nonexistent channels. 2003-12-05 11:57:28 +00:00
Alexander Barton
05e2c0f048 Extended version reporting of CVS builds. 2003-12-04 14:05:16 +00:00
Alexander Barton
be79fabcbf Fixed ban behavior: users which are banned from a channel can't no longer
send PRIVMSG's to this channel (fixes Bug #47).
2003-11-06 01:07:44 +00:00
Alexander Barton
ec2f16fa16 Fixed test suite: allow more connections ;-) 2003-11-05 23:31:43 +00:00
Alexander Barton
7b6e26628a Fixed and enhanced penalty handling; changed internal time resoluiton of
the server to one second. Code cleanup.
2003-11-05 23:24:48 +00:00
Alexander Barton
2981fe9eb7 New configuration option "MaxConnectionsIP". 2003-11-05 21:41:01 +00:00
Alexander Barton
e33ab90379 New configuration option "Listen" to bind the server to a specific ip. 2003-09-11 12:05:28 +00:00
Alexander Barton
d8f3c2b42b Suppress misleading error message of diff during make run. 2003-09-09 13:24:41 +00:00
Alexander Barton
b9f16c9635 Fixed typo in debug output. 2003-08-30 20:28:54 +00:00
Alexander Barton
1ed708ef39 Enhanced testsuite, should run under GNU/Hurd now. 2003-08-22 11:31:18 +00:00
Alexander Barton
6647da58fc NJOIN: Fixed propagation of user channel modes. 2003-07-09 18:45:56 +00:00
Alexander Barton
260b8e5f36 VERSION shows the CVS date if apropriate now. 2003-06-06 20:46:11 +00:00
Alexander Barton
9a009b24da Fixed a compiler warning related to an unnecessary assert(). 2003-06-05 10:48:13 +00:00
Alexander Barton
0424747e95 Made Makefiles more compatible with "make -j<N>". 2003-05-03 16:29:57 +00:00
Alexander Barton
e541da2a8f "ServerName" is checked better now: a dot (".") is required. 2003-04-29 12:36:09 +00:00
Alexander Barton
e55399c667 The KILL comand verifies and logs more parameters. 2003-04-29 12:19:20 +00:00
Alexander Barton
0e01a37a69 Fixed --configtest: there is no variable "ServerPwd", it's "Password". 2003-04-27 11:46:52 +00:00
Alexander Barton
83194a23a3 The server tried to connect to other servers only once when DNS or socket
failures occured.
2003-04-25 16:47:52 +00:00
Alexander Barton
0551f688f6 Made scripts mor portable (run on SunOS 5.6 now). 2003-04-22 19:27:50 +00:00
Alexander Barton
a061668b1a Added implicit initialisation of "i" in Conf_GetServer to workaround a egcs
2.91.66 bug which claims that this valiable could be used uninitialized.
2003-04-21 11:06:07 +00:00
Alexander Barton
489d8c5cd0 Removed unportable %z formater in strftime(). 2003-04-21 10:54:30 +00:00
Alexander Barton
daa996f177 Added missing prototype for dummy_snprintf(). 2003-04-21 10:53:38 +00:00
Alexander Barton
7deacbaa11 Added missing include for <sys/select.h>. 2003-04-21 10:53:10 +00:00
Alexander Barton
c3dfd63bf3 Fixed up some castings. 2003-04-21 10:52:26 +00:00
Alexander Barton
0b91df05e0 Fixed spelling mistake :-) 2003-04-20 23:09:43 +00:00
Alexander Barton
feafb6cb2e Don't forward NJOIN's for unknown nick names. 2003-04-20 23:09:26 +00:00
Alexander Barton
016e547daa Re-corrected test for CVS version. 2003-03-31 19:01:02 +00:00
Alexander Barton
62796722f1 Changed all PACKAGE's to PACKAGE_NAME and all VERSION's to PACKAGE_VERSION. 2003-03-31 15:54:21 +00:00
Alexander Barton
9ab97b29ae Fixed up bad test during unregistering of services. 2003-03-27 01:24:32 +00:00
Alexander Barton
24df40eca7 Synchronize server connections with server configurations after reloading the configuration. 2003-03-27 01:22:44 +00:00
Alexander Barton
02a22611be Clean up duplicate servers correctly. 2003-03-27 01:21:38 +00:00
Alexander Barton
59a0fb8cd9 New function Conn_SyncServerStruct(). 2003-03-27 01:20:22 +00:00
Alexander Barton
ac4f25e3a7 Enhanced (and fiexd) IRC_TRACE(): now shows operators and correct link uptimes. 2003-03-19 21:16:53 +00:00
Alexander Barton
7646739431 New message constant RPL_TRACEOPERATOR_MSG. Changed RPL_TRACESERVER_MSG. 2003-03-19 21:16:16 +00:00
Alexander Barton
f53455977d Added #include for stdarg.h when using ower own version of vsnprintf(). 2003-03-17 01:12:10 +00:00
Alexander Barton
9ca1f6a988 Removed now obsolete test for A/UX: configure does this job now. 2003-03-17 00:53:52 +00:00
Alexander Barton
e744936d19 New function Simple_Message(). Better error reporting to clients on connect. 2003-03-07 17:16:49 +00:00
Alexander Barton
4a5b3f34a5 Enlarged buffer for version string ;-) 2003-03-07 14:50:13 +00:00
Alexander Barton
439c945d56 Added support for TCP Wrappers. 2003-03-07 14:35:52 +00:00
Alexander Barton
29bd35bc4f - Added optional support for Rendezvous. 2003-02-23 12:04:05 +00:00
Alexander Barton
f179070113 - New constant RENDEZVOUS_TYPE. 2003-02-23 12:03:39 +00:00
Alexander Barton
aa15257936 - Added new source module "rendezvous". 2003-02-23 12:02:26 +00:00
Alexander Barton
cf4ad8d6f7 - Conn_Close() ignores recursive calls for the same link now. 2003-02-21 19:19:27 +00:00
Alexander Barton
2a3f8cc57d - new link "option" constant: CONN_ISCLOSING 2003-02-21 19:18:48 +00:00
Alexander Barton
fbec1f1070 The server didn't validate wheather the "target" client of a channel
user mode change is a valid channel member or not.
2003-01-21 21:04:16 +00:00
Alexander Barton
e07542a1ff - Non-members of a channel could crash the server when trying to change its modes. Fixed. 2003-01-17 19:04:19 +00:00
Alexander Barton
9eee0c883b - Client structures are removed correctly now if an outgoing connection can't be estahlished. 2003-01-15 14:28:59 +00:00
Alexander Barton
939767d502 - New function Client_DestroyNow(). 2003-01-15 14:28:25 +00:00
Alexander Barton
2152e37722 - Added "HELP" command. 2003-01-15 13:49:20 +00:00
Alexander Barton
42c4e6c7b1 - Added support for "TRACE" command. 2003-01-13 18:56:30 +00:00
Alexander Barton
0f3e84f415 - new library "libngtool", reorganized code and directory structure therefore. 2003-01-13 12:20:16 +00:00
Alexander Barton
fc1118cb5a - Enhanced error detection for numerics ("status codes"). 2003-01-12 22:18:46 +00:00
Alexander Barton
df00b38a0b - MODE returns the key and user limit for channel members correctly now. 2003-01-08 23:00:12 +00:00
Alexander Barton
ff98833136 - Kill_Nick() uses an "faked internal KILL" now. 2003-01-08 22:28:12 +00:00
Alexander Barton
1443bc381c - Enhanced IRC_KILL to get along with Client==Client_ThisServer() for "fake KILLs". 2003-01-08 22:27:13 +00:00
Alexander Barton
9d82635b15 - Fixed IRC_KILL: used wrong connection index. 2003-01-08 22:07:34 +00:00
Alexander Barton
fa80012e71 - Enhanced CHANINFO command for channel keys and user limits. 2003-01-08 22:04:43 +00:00
Alexander Barton
43d9a62473 - Enhanced (and fixed) CHANINFO command (channel keys, user limits). 2003-01-08 22:04:05 +00:00
Alexander Barton
51e1a2e04a - Changed semantics of Client_SetAway(). 2003-01-08 22:03:21 +00:00
Alexander Barton
bb94d18115 - fixed up propagation of modes with arguments between servers. 2003-01-08 17:45:15 +00:00
Alexander Barton
444fdcf905 - Check functions only on systems that support prototypes, elder cpmpilers
become confused instead!
2003-01-04 10:40:01 +00:00
Alexander Barton
1bf0426aaf - Fixed call of tail, should be more portable now ... 2003-01-04 10:39:14 +00:00
Alexander Barton
8139505829 - Link portabtest agains "true" library. 2003-01-03 22:04:14 +00:00
Alexander Barton
c9540015c8 - Added missing PARAMS(). 2003-01-03 22:03:51 +00:00
Alexander Barton
8c1df9ef8d - The server sets a correct away message now when receiving a "MODE +a". 2003-01-02 17:57:09 +00:00
Alexander Barton
c428ac7563 - Renamed RPL_FEATURE_MSG to RPL_ISUPPORT_MSG. 2003-01-02 17:55:28 +00:00
Alexander Barton
e12179aa92 - date in version string conforms to ISO now: YYYY-MM-DD 2003-01-02 16:42:33 +00:00
Alexander Barton
5e3e3ad445 - Adjusted copyright banner to include 2003 :-) 2003-01-01 13:32:23 +00:00
Alexander Barton
e17976a172 - Fixed up command forwarding: only to servers!
- Forwarding of WHOIS was broken in some situations.
2003-01-01 13:30:35 +00:00
Alexander Barton
ae6a7e7c0b - Fixed up command forwarding: only to servers! 2003-01-01 13:29:40 +00:00
Alexander Barton
8dadb17f83 - Changed "once"-server-config-flag into a generic flag.
- Changed semantics of "NGIRCd_Passive".
2002-12-31 16:13:29 +00:00
Alexander Barton
281f7583f5 - New functions Conf_EnableServer(), Conf_DisableServer() and Conf_AddServer().
- Changed "once"-server-config-flag into a generic flag.
2002-12-31 16:12:50 +00:00
Alexander Barton
a7956f334e - New command DISCONNECT. 2002-12-31 16:11:24 +00:00
Alexander Barton
3e026ded6f - New commands CONNECT and DISCONNECT. 2002-12-31 16:11:06 +00:00
Alexander Barton
4e485443d3 - New commands CONNECT and DISCONNECT.
- Validate operator status before syntax checks.
2002-12-31 16:10:55 +00:00
Alexander Barton
01b58a0582 - Fixed test if we are still connected after a KILL command. 2002-12-31 16:09:55 +00:00
Alexander Barton
b8d7dcec77 - Adjusted includes for new "conn-func.h" header. 2002-12-30 17:15:42 +00:00
Alexander Barton
b77dae3499 - Reorganized code for new modules "conn-func.c" and "conn-func.h". 2002-12-30 17:14:59 +00:00
Alexander Barton
0b04bfa7c0 - New source module "conn-func.c" and "conn-func.h". 2002-12-30 17:14:28 +00:00
Alexander Barton
437f2c335f - Renamed functions now found in "conn-zip.c". 2002-12-30 16:07:50 +00:00
Alexander Barton
e68cdf304f - New source files "conn-zip.c" and "conn-zip.h". 2002-12-30 16:07:23 +00:00
Alexander Barton
a2544e496c - Cleaned up handling of server configuration structures. 2002-12-30 00:01:42 +00:00
Alexander Barton
50d354bc21 - Removed needless include of <sys/select.h>. 2002-12-28 15:01:45 +00:00
Alexander Barton
8340e4267c - Fixed prefix of error messages of KILL. 2002-12-27 13:35:19 +00:00
Alexander Barton
e21b9d842c - If the server can't close a socket, it panics now.
- Quite enhanced logging :-)
2002-12-27 13:20:13 +00:00
Alexander Barton
15e4f67402 - Nicer log messages ;-) 2002-12-27 13:17:32 +00:00
Alexander Barton
01bec0daa2 - KILL can't kill server-links any more. 2002-12-27 13:17:04 +00:00
Alexander Barton
d19813cc4b - new message ERR_CANTKILLSERVER_MSG. 2002-12-27 13:15:16 +00:00
Alexander Barton
4d2f279d2d - fixed KILL: you can kill yourself now without crashing the server;
QUIT isn't send to other servers after the KILL any more.
2002-12-26 18:41:00 +00:00
Alexander Barton
b316c380ad - replaced some calls to sprintf() with snprintf() -- more secure :-) 2002-12-26 17:14:48 +00:00
Alexander Barton
695631b298 - replaced a lot of strcpy() calls with strlcpy() which is more secure. 2002-12-26 17:04:54 +00:00
Alexander Barton
6626395c88 - replaced a lot of strcat() calls with strlcat() which is more secure. 2002-12-26 16:48:14 +00:00
Alexander Barton
0ced4181b0 - replaced all strncpy()'s and strncat()'s with strlcpy() and strlcat(). 2002-12-26 16:25:43 +00:00
Alexander Barton
4f6f84e7e1 - include <sys/types.h>, if available. 2002-12-26 14:48:05 +00:00
Alexander Barton
b8456d1ba6 - addes required libngircd.a library to portabcheck_LDADD. 2002-12-26 14:46:28 +00:00
Alexander Barton
fbdf85b553 - strlcat() and strlcpy() replacement functions. 2002-12-26 14:34:11 +00:00
Alexander Barton
e13cb291dd - added prototypes for replacement functions. 2002-12-26 13:26:34 +00:00
Alexander Barton
5efd0987f3 - added tests for replacement functions. 2002-12-26 13:19:36 +00:00
Alexander Barton
60cf07c875 - added strlcpy.c for strlcpy() and strlcat() replacement functions. 2002-12-26 13:18:46 +00:00
Alexander Barton
3c738ed46d - definition of CONFIG_FILE and MOTD_FILE is now compatible with -Wtraditional. 2002-12-26 13:17:56 +00:00
Alexander Barton
9353a4a9cb - reverted last patch: now compatible with -Wtraditional of GCC 3. 2002-12-26 13:16:54 +00:00
Alexander Barton
d9a13b317e - fixed some warnings that showed up with -Wtraditional 2002-12-25 13:22:43 +00:00
Alexander Barton
ab44e1c6cc - new messages: RPL_FEATURE, RPL_LOCALUSERS and RPL_NETUSERS. 2002-12-22 23:32:05 +00:00
Alexander Barton
a3f59f1a5b - new numeric on login: RPL_FEATURE 2002-12-22 23:31:21 +00:00
Alexander Barton
212d36a33c - enhanced LUSERS reply: RPL_LOCALUSERS, RPL_NETUSERS. 2002-12-22 23:30:33 +00:00
Alexander Barton
d0304b19a2 - new Functions: Client_MaxUserCount(), Client_MyMaxUserCount, Adjust_Counters(). 2002-12-22 23:29:09 +00:00
Alexander Barton
397c5e2e02 - renamed variables to fit new signal handler.
- moved call to NGIRCd_Rehash() to Conn_Handler().
2002-12-19 04:35:26 +00:00
Alexander Barton
77c4c015e3 - renamed variables to fit new signal handler. 2002-12-19 04:33:27 +00:00
Alexander Barton
43a4bc5b8b - New signal handler. 2002-12-19 04:29:59 +00:00
Alexander Barton
8841d87365 - fixed user mode propagation over server-links (IRC operator, away, ...) 2002-12-18 14:16:21 +00:00
Alexander Barton
d9e3f834d7 - fixed RPL_STATSCOMMANDS_MSG 2002-12-18 14:03:14 +00:00
Alexander Barton
210282d00f - implemented subfunction "m" of STATS command. 2002-12-18 13:55:41 +00:00
Alexander Barton
17f7c6d3ed - new function Parse_GetCommandStruct(). 2002-12-18 13:53:20 +00:00
Alexander Barton
a02bf31d50 - new functions Conn_ResetWCounter() and Conn_WCounter(). 2002-12-18 13:50:22 +00:00
Alexander Barton
98677b4348 - "STATS l" now only shows server-server-links and the own connection. 2002-12-18 13:07:46 +00:00
Alexander Barton
3a811ef563 - Validate_Config(): removed unused variable "i". 2002-12-18 02:53:36 +00:00
Alexander Barton
3e4f58e416 - If Conf_MaxConnections is "ulimited" (<1) it is limited to FD_SETSIZE. 2002-12-18 02:52:51 +00:00
Alexander Barton
b7be46ed8a - validate Conf_MaxConnections against FD_SETSIZE if available;
- fixed up some log messages and enhanced configuration validation.
2002-12-18 02:47:12 +00:00
Alexander Barton
902ad91212 - new allocated connection structures will be initialized correctly now. 2002-12-17 11:46:54 +00:00
Alexander Barton
892144dc71 - new constant RPL_YOURESERVICE_MSG, ERR_CHANNELISFULL_MSG, ERR_BADCHANNELKEY_MSG.
- fixed ERR_PASSWDMISMATCH_MSG.
2002-12-16 23:11:59 +00:00
Alexander Barton
8d024d05d2 - new constant MAX_SERVICES,
- added k and l modes to CHANMODES.
2002-12-16 23:10:56 +00:00
Alexander Barton
69ad0e386e - Implemented channel modes k (key) and l (user limit). 2002-12-16 23:06:46 +00:00
Alexander Barton
2e88dd72d1 - New functions Channel_[Set]Key(), Channel_[Set]MaxUsers. 2002-12-16 23:05:24 +00:00
Alexander Barton
7924fafb25 - fixed some error messages and prefixes. 2002-12-16 17:14:57 +00:00
Alexander Barton
7f61f413f4 - fixed broken handling of modes received from other servers. 2002-12-16 10:52:53 +00:00
Alexander Barton
c0d74a3860 - fixed some parsing bugs.
- better logging.
2002-12-15 16:29:18 +00:00
Alexander Barton
48ec815e99 - modified test suite to reflect changes in MODE parser. 2002-12-15 15:52:34 +00:00
Alexander Barton
80c6dc86ed - new (and much more flexible!) MODE parser 2002-12-15 15:51:24 +00:00
Alexander Barton
25ca2b3cc5 - removed Conf_MaxPChannels and reverted to old behavior. 2002-12-14 13:36:19 +00:00
Alexander Barton
2694017426 - Conf_MaxPChannels is considered properly in channel mode changes now. 2002-12-14 13:24:09 +00:00
Alexander Barton
00e75ccd7d - fixed up Conf_MaxJoins test on JOIN. 2002-12-14 13:23:11 +00:00
Alexander Barton
e907816380 - fixed up Channel_PCount() and Channel_CountForUser(). 2002-12-14 13:21:56 +00:00
Alexander Barton
5b8b3b8384 - maximum channels per user limit implemented. 2002-12-13 17:53:32 +00:00
Alexander Barton
9f74b95015 - new message ERR_TOOMANYCHANNELS_MSG. 2002-12-13 17:51:41 +00:00
Alexander Barton
8b7b23cf8f - new configuration variables: MaxJoins, MaxPChannels. 2002-12-13 17:32:33 +00:00
Alexander Barton
b7eb5f66dc - new function Channel_CountForUser(). 2002-12-13 17:22:57 +00:00
Alexander Barton
427be23b6e - adjusted generation of cvs-version.h to new file header format. 2002-12-12 12:36:41 +00:00
Alexander Barton
ba767481d9 - removed old ID tag 2002-12-12 12:33:14 +00:00
Alexander Barton
490f28ffd1 - new file header format (in english);
- new file ident semantics.
2002-12-12 12:24:18 +00:00
Alexander Barton
c7f075236b - new file header format (in english). 2002-12-12 12:23:43 +00:00
Alexander Barton
44a2b3cf69 - added missing include of stdio.h header for sprintf(). 2002-12-12 11:40:41 +00:00
Alexander Barton
f0d633b5ac - new file header format. 2002-12-12 11:37:11 +00:00
Alexander Barton
0f3f03b51d - fixed up broken $Id field in new file header ... 2002-12-12 11:31:21 +00:00
Alexander Barton
fa7b3f0e4c - new file header format. 2002-12-12 11:30:23 +00:00
Alexander Barton
6725d7893c - translated file header and comments to english;
- new file ident semantics.
2002-12-12 11:26:08 +00:00
Alexander Barton
b99af4fa47 - IRC Operators can KILL users now. 2002-12-06 17:02:39 +00:00
Alexander Barton
6591f17f0a - Logging von Verbindungen, die geschlossen werden/wurden verbessert. 2002-12-03 18:57:10 +00:00
Alexander Barton
9f122037ae - Logging von doppelten ID's verbessert. 2002-12-03 18:56:33 +00:00
Alexander Barton
cde9dfdb77 - Verhalten von Conn_RecvQ() und Conn_SendQ() bei Kompression korrigiert. 2002-12-02 13:56:24 +00:00
Alexander Barton
f0349f5266 - bei ISON und USERHOST fehlte im Ergebnis-String der korrekte Absender. 2002-12-02 13:45:51 +00:00
Alexander Barton
bad7ac62a7 - STATS: Unterfunktion "L" implementiert. 2002-12-02 13:20:02 +00:00
Alexander Barton
39219230b2 - neue Befehle: Conn_StartTime(), Conn_SendQ(), Conn_RecvQ(), Conn_SendMsg(),
Conn_RecvMsg(), Conn_SendBytes[Zip](), Conn_RecvBytes[Zip]().
2002-12-02 13:19:37 +00:00
Alexander Barton
1e5fa014ba - RPL_STATSLINKINFO_MSG ueberarbeitet, RPL_STATSLINKINFOZIP_MSG eingefuehrt. 2002-12-02 13:17:46 +00:00
Alexander Barton
2e02da291a - Konfiguration wird nun besser validiert (Laenge, Zahlen). 2002-11-30 22:15:49 +00:00
Alexander Barton
e50d568f25 - bei STATS wurde der Target-Server aus dem falschen Argument bestimmt. 2002-11-30 18:10:01 +00:00
Alexander Barton
0c471b84f7 - neues Source-Modul "irc-info"; neuer Befehl STATS. 2002-11-30 17:39:56 +00:00
Alexander Barton
1e59617d2c - Parser auf Befehlstabelle umgestellt. 2002-11-30 15:04:57 +00:00
Alexander Barton
e93f545c74 - "Text-Prefix" fuer Server-Notices auf "" gesetzt. 2002-11-29 17:38:17 +00:00
Alexander Barton
a1437f1ad0 - der Server verschickt keine "NOTICE AUTH"'s mehr. 2002-11-29 17:36:50 +00:00
Alexander Barton
1d8cb34bc8 - "NOTICE AUTH" und Statistiken werden im Strict-RFC-Modus nicht mehr erzeugt. 2002-11-29 13:13:42 +00:00
Alexander Barton
93a39e8782 - Vor dem Schliessen einer Verbindung wird versucht, den Buffer zu leeren. 2002-11-28 16:56:20 +00:00
Alexander Barton
ee2c0f7701 - SQUIT wird nicht mehr zweimal fuer einen Server verschickt. 2002-11-28 14:31:43 +00:00
Alexander Barton
d3a6537fce - beim Umschalten auf Kompression wurden evtl. bereits gelesene Daten nicht
entpackt, der Datenstrom war somit dann korrumpiert.
2002-11-28 12:17:38 +00:00
Alexander Barton
b0b797b396 - Logging bei Prefix-Fehlern verbessert. 2002-11-28 11:02:50 +00:00
Alexander Barton
65f3adca21 - Unterstuetzung fuer komprimierte Server-Server-Links implementiert. 2002-11-26 23:07:24 +00:00
Alexander Barton
ecde730ec4 - neue Funktionen: Conn_SetOption(), Conn_UnsetOption(), Conn_Options().
- wenn mit zlib-Support: Conn_InitZip().
2002-11-26 23:06:51 +00:00
Alexander Barton
ad98f2c20d - Falsche Variable korrigiert ... 2002-11-26 08:36:34 +00:00
Alexander Barton
dc8ca3dfaf - nun ueberfluessige Meldung entfernt. 2002-11-25 01:01:59 +00:00
Alexander Barton
f86bbd718d - neuer Befehl IRC_TIME(). 2002-11-24 18:45:53 +00:00
Alexander Barton
283aed75cf - neuer IRC-Befehl "TIME". 2002-11-24 18:45:43 +00:00
Alexander Barton
15d78412bc - neue Konstante RPL_TIME_MSG. 2002-11-24 18:45:31 +00:00
Alexander Barton
1fd9216ca4 - MOTD kann nun auch an andere Server delegiert werden. 2002-11-24 16:36:03 +00:00
Alexander Barton
5ecb00ed23 - volle Lesebuffer und Timeouts behandelt Conn_Handle() nun besser.
- Handle_Buffer() liefert nun ein Ergebnis.
2002-11-23 17:04:07 +00:00
Alexander Barton
22b7b07932 - select() in Try_Write() hat falschen (keinen!) Timeout verwendet;
- der Timeout fuer das select() in Conn_Handler() ist nun TIME_RES (=2).
2002-11-23 16:09:57 +00:00
Alexander Barton
57bc0d7895 - neue Konstante TIME_RES: "Zeitaufloesung" des Servers. 2002-11-23 16:08:18 +00:00
Alexander Barton
1dd953b0c0 - Test-Suite an korrigiertest RPL_UMODEIS angepasst. 2002-11-22 23:45:51 +00:00
Alexander Barton
fa3dbfd8d6 - RELOAD in REHASH umbenannt.
- neue Funktion WHOWAS.
2002-11-22 23:33:00 +00:00
Alexander Barton
4eb57b590b - IRC_RELOAD() in IRC_REHASH() umbenannt. 2002-11-22 23:32:29 +00:00
Alexander Barton
12bf203167 - neue Funktion IRC_WHOWAS() begonnen. 2002-11-22 23:31:56 +00:00
Alexander Barton
cf2d479437 - NGIRCd_Reload() in NGIRCd_Rehash() umbenannt. 2002-11-22 23:31:23 +00:00
Alexander Barton
60f14cca38 - neue Meldungen: RPL_STATSLINKINFO, RPL_STATSCOMMANDS, RPL_ENDOFSTATS,
RPL_WHOWASUSER, RPL_ENDOFWHOWAS und ERR_WASNOSUCHNICK.
2002-11-22 23:08:04 +00:00
Alexander Barton
c0e7a0124d - RPL_UMODEIS hat Code 221, nicht 211 ... *argl* 2002-11-22 22:56:58 +00:00
Alexander Barton
085a03d107 - Channel-Mode "P" ("persistent") kann nur noch von IRC-Ops gesetzt werden. 2002-11-22 18:28:22 +00:00
Alexander Barton
4c6e07c309 - neue Funktion NGIRCd_Reload(). 2002-11-22 17:59:54 +00:00
Alexander Barton
e311cc0140 - Listen-Sockets werden ueber neue Funktion Conn_InitListeners() erzeugt.
- neue Funktion NGIRCd_Reload().
- Logging bei empfangenen Signalen verbessert.
- SIGHUP ruft nun NGIRCd_Reload() auf.
2002-11-22 17:59:43 +00:00
Alexander Barton
a5c9229084 - neue Funktion IRC_RELOAD(). 2002-11-22 17:58:41 +00:00
Alexander Barton
a0c032b2ff - neue Funktionen Conn_InitListeners() und Conn_ExitListeners(). 2002-11-22 17:58:19 +00:00
Alexander Barton
03ec91f943 - bessere Log-Meldungen. 2002-11-22 17:57:40 +00:00
Alexander Barton
7233b72145 - Channel_InitPredefined() prueft nun, ob ein Channel bereits existiert. 2002-11-22 17:57:15 +00:00
Alexander Barton
1656841f25 - neuer Befehl IRC_RELOAD(). 2002-11-22 16:36:43 +00:00
Alexander Barton
799511d472 - Befehle sortiert,
- neuer Befehl RELOAD.
2002-11-22 16:36:02 +00:00
Alexander Barton
ffb90f4cb5 - Logging vom Resolver und Connection-Statistiken verbessert. 2002-11-22 16:35:19 +00:00
Alexander Barton
c6b9f3a13d - angenommene Socketes werden nun korrekt auf "non-blocking" gestellt;
- beim Senden und Empfangen wird EAGAIN ("Blockierung") nun abgefangen.
2002-11-20 15:48:41 +00:00
Alexander Barton
dd09b17eae - Fehler-Ausgaben verbessert (Prefix-Fehler). 2002-11-20 10:54:24 +00:00
Alexander Barton
b2615bcc76 - Server identifizieren sich nun mit asyncronen Passwoertern. 2002-11-19 12:50:20 +00:00
Alexander Barton
1c0ded41af - Rechtschreibfehler korrigiert ;-) 2002-11-18 18:49:34 +00:00
Alexander Barton
7bbdfb3d84 - anstelle von "ListenPorts" wird nun korrekt "Ports" ausgegeben. 2002-11-18 18:47:42 +00:00
Alexander Barton
6250dcb1dc - Fehler-Handling von connect() gefixed: der Server kann sich nun auch
unter A/UX wieder zu anderen verbinden.
2002-11-11 00:54:25 +00:00
Alexander Barton
797f9170d7 - Test-Suite an A/UX angepasst. 2002-11-10 14:28:06 +00:00
Alexander Barton
70c9c05153 - User und Gruppe werden nun sowohl numerisch als auch namentlich angezeigt. 2002-11-10 13:38:41 +00:00
Alexander Barton
ae39724a63 - in ServerUID und ServerGID kann nun jeweils auch der Name (und nicht nur
die numerische ID) verwendet werden.
2002-11-08 23:09:26 +00:00
Alexander Barton
9523e28179 - IRC_Server() ruft nun Conn_SetServer() zur Server-Registrierung auf. 2002-11-05 14:18:59 +00:00
Alexander Barton
a4d5ca633a - Neue Funktion Conn_SetServer().
- Einige assert()'s aufgeraumt.
2002-11-05 14:18:39 +00:00
Alexander Barton
3102c550ff - neue Funktion Conn_SetServer(). 2002-11-05 14:18:13 +00:00
Alexander Barton
14e870e2ec - Code-Formatierung korrigiert (da waren Tabs wo keine hin gehoerten). 2002-11-04 19:25:26 +00:00
Alexander Barton
a6265aa0df - falsche Konstante korrigiert ... *argl*! 2002-11-04 13:26:00 +00:00
Alexander Barton
4c870f4be9 - Server und "normale" Clients werden wieder korrekt unterschieden. 2002-11-04 12:34:22 +00:00
Alexander Barton
a29e37a4c1 - Semantik der Conn_xxxFlag()-Funktionen geaendert. 2002-11-04 12:31:27 +00:00
Alexander Barton
b991de0f15 - Connection-Strukturen werden nun "pool-weise" verwaltet; der Pool wird
bei Bedarf bis zu einem konfigurierten Limit vergroessert.
- neue Funktionen Conn_First(), Conn_Next(), Conn_ClearFlags(), Conn_Flag()
  und Conn_SetFlag().
2002-11-02 23:00:45 +00:00
Alexander Barton
601f0ede61 - Modul an neues Connection-Handling angepasst. 2002-11-02 22:59:41 +00:00
Alexander Barton
0d32a3b4fe - neue Konfigurationsvariable "MaxConnections". 2002-11-02 22:59:01 +00:00
Alexander Barton
650f9a2d9e - neue Konfigurationsvariable "Conf_MaxConnections". 2002-11-02 22:58:41 +00:00
Alexander Barton
05839597bf Neue Funktionen: Conn_First(), Conn_Next(), Conn_ClearFlags(), Conn_SetFlag() und Conn_Flag(). 2002-11-02 22:58:19 +00:00
Alexander Barton
8eac8bcbfc MAX_CONNECTIONS durch CONNECTION_POOL ersetzt. 2002-11-02 22:57:41 +00:00
Alexander Barton
5b25c8ccd0 - Verbindungsstatistik ein wenig klarer formuliert. 2002-10-22 23:25:29 +00:00
Alexander Barton
135abb5d74 - AdminEMail ist nun auch korrekt gesetzt. 2002-10-21 13:45:23 +00:00
Alexander Barton
12cad28ee8 - Anpassungen bzw. Fixes fuer "strict RFC"-Mode. 2002-10-21 13:45:07 +00:00
Alexander Barton
b840be9875 - ausgehende Verbindungen mit ID 0 konnten nicht aufgebaut werden ... :-/
- einige Debug-Ausgaben erweitert.
2002-10-15 09:24:54 +00:00
Alexander Barton
3cf845fbfb - Segfault unter hoher Netzaktivitaet behoben: in Conn_Close() wird die
Connection-Struktur nun frueher als "ungueltig" markiert.
- besseres Error-Logging.
2002-10-14 22:21:00 +00:00
Alexander Barton
c49bee8d0b - RPL_YOURHOST_MSG nochmals leicht geaendert ... 2002-10-11 02:32:09 +00:00
Alexander Barton
452d98f329 - RPL_YOURHOST_MSG ist nun ircII-kompatibel :-) 2002-10-11 02:16:14 +00:00
Alexander Barton
736bacde90 - Es wird nun laenger auf Resolver-Ergebnisse gewartet, der Login aber
sofort fortgesetzt, so ein Ergebnis eintrifft.
2002-10-10 15:01:12 +00:00
Alexander Barton
df0eb17172 - neue Funktion Conn_ResetPenalty(). 2002-10-10 15:00:33 +00:00
Alexander Barton
345b9a3217 - "schneller Server-Reconnect" wird nun nur dann ausgefuehrt, wenn die
Verbindung zuvor "lange genug" aufgebaut war (z.B. also nicht mehr, wenn
  der Peer sofort beim Connect ein fatales ERROR liefert).
2002-10-09 17:07:22 +00:00
Alexander Barton
af719e60c5 - double in DOUBLE geaendert (ist in portab.h nun definiert). 2002-10-09 17:02:49 +00:00
Alexander Barton
84022a12fd - neue Datentypen LONG, ULONG und DOUBLE. 2002-10-09 16:53:30 +00:00
Alexander Barton
c7b55aa6f4 - verwendete Datentypen aufgeraumt: beispielsweise INT32 ist nun oft ein LONG. 2002-10-09 16:53:02 +00:00
Alexander Barton
1e83e6662f - fehlenden Return-Wert ergaenzt (ich Dubel). 2002-10-09 13:35:32 +00:00
Alexander Barton
b6c049cb3c - Client wird nun via NOTICEs ueber Resolver-Status informiert. 2002-10-09 13:34:19 +00:00
Alexander Barton
39d7b014cf - NOTICE liefert nun nie(!) einen Fehler, auch nicht, wenn Client noch nicht registriert. 2002-10-09 13:33:19 +00:00
Alexander Barton
bd645f5095 - neue Konstante NOTICE_TXTPREFIX. 2002-10-09 13:15:45 +00:00
Alexander Barton
856f24eb7e - Server-NOTICEs haben nun ein "Text-Prefix". 2002-10-09 13:15:18 +00:00
Alexander Barton
f060db5ec5 - Connection-Statistik implementiert.
- Server-NOTICEs haben nun ein "Text-Prefix".
2002-10-09 13:15:08 +00:00
Alexander Barton
180eb810cf - "make distcheck" lief seit der Aenderung gestern nicht mehr durch. Fixed. 2002-10-08 18:30:03 +00:00
Alexander Barton
25f32ce8b8 - bei CVS-Versionen wird nun das Datum der letzten CVS-Aenderung angezeigt,
Versionsnummer entsprechend angepasst.
2002-10-07 21:16:12 +00:00
Alexander Barton
467e76aa32 - der Puffer fuer das Prefix war zu klein. 2002-10-04 12:39:58 +00:00
Alexander Barton
ec474a4bd2 - "format-string-bugs", die zum Abbruch des Servers fuehrten, behoben. 2002-10-04 11:21:46 +00:00
Alexander Barton
74ff9828de - kleinere "code cleanups". 2002-10-03 21:49:59 +00:00
Alexander Barton
df2bd0e6fb - buffer overflow behoben. 2002-10-03 21:03:11 +00:00
Alexander Barton
a33105dcd1 - Syntax von RPL_MYINFO_MSG korrigiert (liefert nun vier Parameter). 2002-10-03 15:49:17 +00:00
Alexander Barton
67d79b92e6 - fehlerhaften "Socket-Test-Patch" korrigiert. 2002-09-26 16:11:26 +00:00
Alexander Barton
c50ecda715 - Conn_Write() prueft nun, ob der Socket noch offen ist, ehe Daten gesendet werden. 2002-09-26 15:59:02 +00:00
Alexander Barton
9d928b240b - Dokumentation aktualisiert. 2002-09-23 22:07:42 +00:00
Alexander Barton
8d1efc81f6 - per Default werden nun nur noch 5 Sessions parallel gestartet. 2002-09-23 20:54:17 +00:00
Alexander Barton
2b6dbb07e8 - in RPL_YOURHOST_MSG wurde ein fehlerhafter Versionsstring geliefert. 2002-09-22 21:40:33 +00:00
Alexander Barton
06cb16580e - getpid.sh wird nun auf bei "make distcheck" gefunden. 2002-09-20 15:39:24 +00:00
Alexander Barton
7058a8c006 - das Test-Binary wurde nicht immer kopiert. 2002-09-20 15:12:42 +00:00
Alexander Barton
b71db1a9a5 - auch unter Cygwin wird ngircd-TEST bei "make clean" nun entfernt. 2002-09-20 15:09:44 +00:00
Alexander Barton
420c96d17b - das ngIRCd-Binary fuer die Tests wird nun kopiert, nicht mehr verlinkt. 2002-09-20 15:08:12 +00:00
Alexander Barton
efedfe12ff - Die PID des Test-Servers wird nun mit dem Script "getpid.sh" ermittelt. 2002-09-20 14:46:55 +00:00
Alexander Barton
90ab7c7c48 - die ermittelte PID des ngIRCd wird besser validiert (leer?). 2002-09-20 13:57:01 +00:00
Alexander Barton
33bda862da - Fehler bei Validierung von "AdminInfo2" behoben. 2002-09-19 10:19:12 +00:00
Alexander Barton
b5d6597c0a - Parameter fuer ps werden in anderer (besserer) Reihenfolge getestet. 2002-09-18 20:58:56 +00:00
Alexander Barton
982a08b80d - katastrophalen Fix fuer Return-Wert korrigiert ... ARGL! 2002-09-17 17:11:56 +00:00
Alexander Barton
34bdaaa33f - CLIENTS-Konstante unter IRIX vermindet. 2002-09-16 09:54:17 +00:00
Alexander Barton
508fa48aa6 - es wird nun getestet, mit welchen Parametern "ps" aufgerufen werden muss. 2002-09-16 09:53:16 +00:00
Alexander Barton
66b461a5ab - neue Konstanten: RPL_ADMINME_MSG, RPL_ADMINLOC1_MSG, RPL_ADMINLOC2_MSG, RPL_ADMINEMAIL_MSG. 2002-09-16 09:23:40 +00:00
Alexander Barton
e3d70f2c43 - Auf Systemen, die "sys/select.h" kennen (z.B. AIX 3.2.5) wird dieses nun includiert. 2002-09-16 09:22:41 +00:00
Alexander Barton
5502fb271d - neuer Befehl: ADMIN 2002-09-16 09:20:27 +00:00
Alexander Barton
e6f96a7a86 - IRC_WriteStrServersPrefix() lieferte einen Return-Wert, obwohl als VOID deklariert. 2002-09-16 09:19:23 +00:00
Alexander Barton
005391ca5b - LIST kann nun auch an andere Server geforwarded werden. 2002-09-16 09:16:17 +00:00
Alexander Barton
3a3d6d7b9a - neuer Befehl IRC_ADMIN(). 2002-09-16 09:14:45 +00:00
Alexander Barton
4ded22b00b - Admin-Info eingebaut (Variablen "AdminInfo1", "AdminInfo2" und "AdminEMail"). 2002-09-16 09:13:40 +00:00
Alexander Barton
b615d12897 - Admin-Info eingebaut (Variablen "AdminInfo1", "AdminInfo2" und "AdminEMail");
- Bug bei zu langem Operator-Name behoben.
2002-09-16 09:13:06 +00:00
Alexander Barton
21244add31 - unter Darwin werden nur noch 20 Clients parallel gestartet. 2002-09-13 06:11:19 +00:00
Alexander Barton
e7b09536bf - ps wird nun (hoffentlich portabler) jeweils mit "ax" aufgerufen. 2002-09-13 06:04:49 +00:00
Alexander Barton
a0b06ecbd4 - ${srcdir} wird nun beachtet. 2002-09-12 02:28:44 +00:00
Alexander Barton
3f873b0c39 - PID des Test-Servers wird besser ermittelt. 2002-09-12 02:27:47 +00:00
Alexander Barton
05bf66dff0 - Test-Server wird in aktuelles Verzeichnis als "ngircd-TEST" verlinkt.
- die PID des Test-ngIRCd wird besser ermittelt.
2002-09-12 02:27:30 +00:00
Alexander Barton
069ca5df40 - $(srcdir) wird nun beachtet; fehlenden "\" ergaenzt; Dateien ergaenzt. 2002-09-12 02:26:17 +00:00
Alexander Barton
fc6f64742c - EXTRA_DIST ergaenzt, clean-Target erweitert.
- neues Script "stress-server.sh" integriert.
2002-09-09 22:56:07 +00:00
Alexander Barton
d040fa2a7d - laeuft der ngIRCd im Vordergrund, so wird syslog nicht mehr benutzt. 2002-09-09 22:55:21 +00:00
Alexander Barton
4d46eac733 - Tests erweitert. 2002-09-09 21:26:00 +00:00
Alexander Barton
85691130b1 - nun ist auch ein Test-Operator konfiguriert. 2002-09-09 21:25:50 +00:00
Alexander Barton
c4d78a3469 - Test-Suite fuer den ngIRCd begonnen. 2002-09-09 10:16:24 +00:00
Alexander Barton
dd4535b7f1 - Testprogramm ueberarbeitet, macht nun selber keine Ausgaben mehr. 2002-09-09 10:05:10 +00:00
Alexander Barton
1734e53410 - Anpassungen an neue Test-Suite (Ausgabeformat). 2002-09-09 10:00:39 +00:00
Alexander Barton
843fe45dee - ngIRCd "Test-Suite" in Build-System aufgenommen. 2002-09-09 10:00:15 +00:00
Alexander Barton
51dabeafaa - Server-Versionsausgabe ueberarbeitet. 2002-09-09 03:34:33 +00:00
Alexander Barton
05fc4a4cb7 - Parameter von List_Add{Invited|Banned}() erweitert.
- neue Funktion Already_Registered().
- doppelte Ban- und Invite-Eintraege werden nun vermieden.
2002-09-08 17:06:07 +00:00
Alexander Barton
f3c0c7c0b3 - Parameter von List_Add{Invited|Banned}() erweitert. 2002-09-08 17:05:25 +00:00
Alexander Barton
c2aefbb3e1 - auch Nicht-ChanOps konnten Ban- und Invite-Lists veraendern. 2002-09-08 01:38:36 +00:00
Alexander Barton
296ddebed1 - Bans/Invites: andere Server wurden nicht informiert.
- neue Funktion Send_ListChange().
2002-09-08 01:16:58 +00:00
Alexander Barton
ffcf5ab999 - neu: Lists_AddInvited(), Lists_DelInvited(), Lists_ShowInvites, Lists_AddBanned(), Lists_DelBanned(), Lists_ShowBanned und Lists_MakeMask(). 2002-09-08 00:56:14 +00:00
Alexander Barton
592565aef5 - neu: Check_List(), Check_List(), Lists_AddInvited(), Lists_DelInvited(), Lists_ShowInvites, Lists_AddBanned(), Lists_DelBanned(), Lists_ShowBanned und Lists_MakeMask().
- einige Bug-Fixes, bessere Debug-Meldungen.
2002-09-08 00:55:45 +00:00
Alexander Barton
53f76a1dad - den BAN-Befehl gibt es gar nicht ;-) 2002-09-08 00:52:55 +00:00
Alexander Barton
ce4b719459 - ein INVITE wird auch dann gespeichert (obwohl der Channel nicht +i ist), wenn der Client gebanned ist.
- den BAN-Befehl gibt es gar nicht ;-)
2002-09-08 00:52:39 +00:00
Alexander Barton
19ac723e48 - Invite- und Ban-Lists (MODE +I, MODE +b) implementiert. 2002-09-08 00:51:28 +00:00
Alexander Barton
a1ded68a49 - ein "banned client" darf in einen Channel, wenn er "invited" ist. 2002-09-08 00:50:25 +00:00
Alexander Barton
8a927a1b6a - Penalty-Delays gelten nun auch für Schreibvorgaenge.
- Conn_Handler() besser strukturiert ...
2002-09-07 22:34:44 +00:00
Alexander Barton
eab10c91b7 - "Timing" mal wieder geaendert: sollte schon 1 Sekunde sein, sonst kommen z.B. die PING-Timeouts falsch. 2002-09-07 21:35:06 +00:00
Alexander Barton
6c19b0e438 - "Timing" von Conn_Handler() geaendert: der Daemon sollte nun noch weniger CPU-Zeit brauchen :-) 2002-09-07 21:13:38 +00:00
Alexander Barton
6f15c062a3 - "check-version" an neuen Versionsstring angepasst. 2002-09-07 18:06:29 +00:00
Alexander Barton
60df88777e - IRC+-Protokoll ist nun abschaltbar.
- neue Konstante PROTOIRC.
2002-09-07 17:58:00 +00:00
Alexander Barton
3dc1621200 - IRC+-Protokoll ist nun abschaltbar. 2002-09-07 17:57:31 +00:00
Alexander Barton
14cbca87c8 - IRC+-Protokoll ist nun abschaltbar; Versionsstring angepasst. 2002-09-07 17:57:17 +00:00
Alexander Barton
378e511e04 - New_Chan() in Channel_Create() umbenannt; entsprechende Anpassungen.
- Neue Funktion Channel_SetModes().
2002-09-03 23:57:57 +00:00
Alexander Barton
1f9ba7b326 - neuen Befehl CHANINFO implementiert: IRC_CHANINFO(). 2002-09-03 23:56:55 +00:00
Alexander Barton
3010f03414 - neue Funktion IRC_WriteStrServersPrefixFlag(). 2002-09-03 23:56:06 +00:00
Alexander Barton
938abb0236 - CHANINFO wird auf Server-Links gesendet, wenn unterstuetzt. 2002-09-03 23:55:44 +00:00
Alexander Barton
1256f34736 - neuen Befehl CONNECT begonnen zu implementieren. 2002-09-03 23:54:59 +00:00
Alexander Barton
d1ac40391e - neue Befehle CHANINFO und CONNECT. 2002-09-03 23:54:06 +00:00
Alexander Barton
33a3550df4 - neue Konstante IRCPLUSFLAGS. 2002-09-03 23:53:41 +00:00
Alexander Barton
1c668252c9 - IRC+-Protokoll-Flags erweitert. 2002-09-03 23:53:19 +00:00
Alexander Barton
55ee4c9553 - Das IRC+-Protokoll wird nun richtig erkannt ... 2002-09-03 20:58:43 +00:00
Alexander Barton
ad1cbe34b4 - Anpassungen/Umstellung auf IRC+-Protokoll. 2002-09-03 20:39:54 +00:00
Alexander Barton
5aa9c8f44c - Flags von connecteten Servern werden nun gespeichert. 2002-09-03 18:55:03 +00:00
Alexander Barton
e62ad97937 - CLIENT-Struktur um Flags erweitert.
- neue Funktionen Client_SetFlags() und Client_Flags().
2002-09-03 18:54:31 +00:00
Alexander Barton
6d81286b08 - neue Konstante CLIENT_FLAGS_LEN. 2002-09-03 18:53:38 +00:00
Alexander Barton
40ebd4704a - Ausgaben auf der Console werden nun "geflushed". 2002-09-03 17:25:45 +00:00
Alexander Barton
c76e6769db - Server-Flag "o" ("OperCanUseMode") implementiert. 2002-09-02 21:06:11 +00:00
Alexander Barton
c0910498e8 - Logmeldungen fuer Server- und Protokollversionen verbessert. 2002-09-02 19:31:26 +00:00
Alexander Barton
f43e284b22 - Konstante PASSSERVERADD durch Variable NGIRCd_ProtoID ersetzt. 2002-09-02 19:05:44 +00:00
Alexander Barton
c67bb2ac9f - Version (Server und Protokoll) von connectierten Servern wird nun ausgewertet. 2002-09-02 19:04:30 +00:00
Alexander Barton
d58431a097 - PASS-Befehl auf NGIRCd_ProtoID umgestellt. 2002-09-02 19:03:09 +00:00
Alexander Barton
ff07226814 - neue Variable: NGIRCd_ProtoID (Protokoll- und Server-ID fuer "PASS"-Befehl) 2002-09-02 19:01:11 +00:00
Alexander Barton
65b31ffbb2 - NGIRCd_ProtoID (Protokoll- und Server-ID) wird erzeugt. 2002-09-02 19:00:25 +00:00
Alexander Barton
adcd9289c2 - vorkonfigurierte Channel: Fehlerhaften Test "kein Null-Name" korrigiert. 2002-09-02 18:23:35 +00:00
Alexander Barton
7e1b3b9157 - neue Konfigurationsoption "OperCanUseMode" (Sektion "Global"):
ist sie aktiv, koennen IRC-Operatoren immer Channel-Modes setzen.
2002-09-02 14:59:17 +00:00
Alexander Barton
f673fb960a - an Clients wurden Modes mit fuehrendem ":" geliefert. Das ist zwar RFC-
konform (IMO), macht aber leider grosse(!!) Probleme :-/
2002-08-27 13:57:03 +00:00
Alexander Barton
7d30c8cebc - Hmpf. "Verfruehtes" CVS-Update einiger Source-Files zurueckgenommen ... 2002-08-26 23:47:58 +00:00
Alexander Barton
d645ce86e9 - Bei einem JOIN in einen persistenten Channel werden nun evtl. zu setzende
User-Modes korrekt in den Channel gemeldet.
2002-08-26 23:39:22 +00:00
Alexander Barton
7b6cfc17c4 - neue Funktion Conn_SetPenalty() zum Setzen von sog. "Penalty Zeiten";
wird bisher nur beim Connect verwendet (eine Sekunde).
2002-08-26 00:03:15 +00:00
Alexander Barton
5063de59b1 - Prefixe werden nur noch bei reg. Verbindungen validiert, ansonsten ignoriert. 2002-07-29 20:35:33 +00:00
Alexander Barton
e0ed3aa141 - Semantik der Validate_XXX()-Funktionen verbessert,
- Validate_Prefix() mit "Leben" erfuellt ;-)
2002-07-26 21:12:24 +00:00
Alexander Barton
e07fab17b1 - NJOIN wurde "zerhackt" an andere Server weitergegeben. 2002-07-25 12:33:19 +00:00
Alexander Barton
3da161131a - KILL konnte keine Remote-Clients toeten; zudem besseres Logging. 2002-07-25 11:37:01 +00:00
Alexander Barton
b1f4200608 - bei INVITE wurde im Antwort-Status-Code das falsche Prefix verschickt. 2002-07-25 11:36:16 +00:00
Alexander Barton
2d4f7847d8 - "portability header" werden nun bei Lint-Laeufen gefunden. 2002-07-22 13:23:28 +00:00
Alexander Barton
81a26d988a - Lists_AddInvited() kann nun einen Fehler liefern. 2002-07-15 16:35:21 +00:00
Alexander Barton
1d524784ff - Channel-Modes "b" und "I" in CHANMODES aufgenommen. 2002-07-15 16:34:46 +00:00
Alexander Barton
a6b61df983 - neue Konstanten fuer Invite- und Banlists: RPL_xxxLIST_MSG, RPL_ENDOFxxx_MSG
- neue Message ERR_UNKNOWNMODE_MSG.
2002-07-15 16:33:57 +00:00
Alexander Barton
adbb2e09df - neues Modul match.c/match.h hinzugefuegt. 2002-06-26 15:44:47 +00:00
Alexander Barton
39b9f65d0d - IRC_LIST ruft nun Match() auf und beherrscht somit nun Patterns. 2002-06-26 15:44:15 +00:00
Alexander Barton
cf9629b9c7 - neues #define: REGISTER 2002-06-26 15:43:38 +00:00
Alexander Barton
8907c8dd3d - neues Modul "match" begonnen. 2002-06-26 15:42:58 +00:00
Alexander Barton
c1a278b0eb - Reihenfolge der Tests geaendert. Ist "huebscher" :-) 2002-06-26 12:48:20 +00:00
Alexander Barton
151babd168 - IRC_INVITE() validierte das Ziel eines INVITES nicht korrekt. 2002-06-11 13:59:07 +00:00
Alexander Barton
9fd8254ada - auch bei IRC_NOTICE() wurde das Ziel nicht korrekt validiert. 2002-06-11 13:58:43 +00:00
Alexander Barton
e876e210da - Code-Stelle in IRC_JOIN "klarer" gemacht :-) 2002-06-10 21:10:25 +00:00
Alexander Barton
e6d1bcdf82 - bessere Fehlermeldung, wenn malloc() fehl schlaegt. 2002-06-10 21:09:39 +00:00
Alexander Barton
c3d9c40a74 - wurde bei PRIVMSG als Ziel ein Server angegeben, so beendete sich der ngircd mit einem assert(). 2002-06-10 21:08:45 +00:00
Alexander Barton
63c36773e4 - Bessere Logging, wenn malloc() fehl schlaegt. 2002-06-09 13:19:08 +00:00
Alexander Barton
e2b827d8b1 - Flag "OnlyOnce" bei Lists_AddInvited() ergaenzt.
- Neue Funktion Lists_DeleteChannel().
2002-06-09 13:18:40 +00:00
Alexander Barton
31a8dd2f2f - Invite-Lists weiter implementiert.
- Flag "OnlyOnce" bei Lists_AddInvited() ergaenzt.
- Neue Funktion Lists_DeleteChannel().
2002-06-09 13:18:23 +00:00
Alexander Barton
27a70171f1 - Flag "OnlyOnce" bei Lists_AddInvited() ergaenzt. 2002-06-09 13:17:29 +00:00
Alexander Barton
1fd7215def - Besseres Logging, wenn malloc() fehl schlaegt.
- Ban- und Invite-Lists werden korrekt aufgeraeumt.
2002-06-09 13:15:58 +00:00
Alexander Barton
acd91c0164 - der INCLUDE-Pfad wird nun anders gesetzt; loest Probleme mit ansi2knr. 2002-06-02 23:17:12 +00:00
Alexander Barton
9cb74e8135 - besseres Logging beim Restart des Servers. 2002-06-02 23:16:42 +00:00
Alexander Barton
b788a3daa5 - Pre-defined Channels werden spaeter erzeugt. 2002-06-02 17:13:33 +00:00
Alexander Barton
04162c3944 - Neue Funktion Channel_InitPredefined(). 2002-06-02 17:13:07 +00:00
Alexander Barton
5cac54044b - Log-Meldungen bezueglich Server-Restart verbessert. 2002-06-02 17:03:32 +00:00
Alexander Barton
ae958aa1a5 - Syntax von Conn_Handler() geaendert: kein Timeout mehr.
- Log-Meldungen bezueglich Server-Restart verbessert.
- Timeout von select() auf eine Sekunde erhoeht.
2002-06-02 17:03:08 +00:00
Alexander Barton
b966b2108d - Syntax von Conn_Handler() geaendert: kein Timeout mehr. 2002-06-02 17:02:34 +00:00
Alexander Barton
9ec32d15ab - die "umask" des Servers wird nun auf 077 gesetzt;
- Hauptschleife geaendert.
2002-06-02 17:01:21 +00:00
Alexander Barton
adc1eedda3 - IRC_INVITE() implementiert. 2002-06-02 15:23:46 +00:00
Alexander Barton
6d28127154 - neue Funktion Lists_AddInvited(). 2002-06-02 15:23:16 +00:00
Alexander Barton
646acbc0b2 - neue Konstanten ERR_INVITEONLYCHAN_MSG und ERR_BANNEDFROMCHAN_MSG. 2002-06-02 15:22:40 +00:00