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