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