about summary refs log tree commit diff
path: root/src
AgeCommit message (Collapse)Author
2009-09-30New function IRC_SendWallops().Alexander Barton
Implement new global function IRC_SendWallops() that can be called by other functions to generate WALLOPS messages to users with +w mode.
2009-09-30Code cleanup of IRC_DISCONNECT().Alexander Barton
2009-09-30Code cleanup of IRC_SQUIT() in preparation to deal with bug #73.Alexander Barton
2009-09-30New local functions Check_Oper() and No_Privileges().Alexander Barton
2009-09-30Bad_OperPass(): code cleanup.Alexander Barton
2009-09-30New configuration option "AllowRemoteOper"Alexander Barton
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-26fix assertion failure in ng_ipaddr.cFlorian Westphal
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-20configtest: complain when ssl keys are not readableFlorian Westphal
2009-09-14Check for sockaddr_in.sin_len and initialize itAlexander Barton
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-12Fix cb_connserver() to handle aborted outgoing connectionsAlexander Barton
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-11conn.c: fix more sizeof(..dst_addr) misuseFlorian Westphal
the wrong sizeof() usage fixed in d76910ce7b9fad5679b7c614ed086e036560e37d (conn.c: fix resolver server address backlog) was a bit more widespread, fix all others, too.
2009-09-11resolve.c: fix valgrind 'uninitialized memory' warningFlorian Westphal
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-11conn.c: fix resolver server address backlogFlorian Westphal
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-11Fix "implicit conversion shortens 64-bit value" warningAlexander Barton
This patch fixes the following gcc warning in our sources: "implicit conversion shortens 64-bit value into a 32-bit value"
2009-09-11Channel_Mode(): fix return code of functionAlexander Barton
Fix error handling of Channel_Mode() to return the correct connection status ("connected"/"disconnected") insted of always returning success.
2009-09-11IRC_SERVER(): code cleanup, remove unneeded variableAlexander Barton
2009-09-10IRC_PASS(): remove unnecessary variable initializationAlexander Barton
2009-09-10Conn_Close(): remove unused variable "txt"Alexander Barton
2009-08-31do not add default listening port if ssl ports were specifiedFlorian Westphal
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-07-17Client_CheckID(): fix connection informationAlexander Barton
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-17Fix return code of Conf_EnableServer()Alexander Barton
Conf_EnableServer() only reports success if all required variables, including host name and port, are set for the specific server.
2009-06-05add section and rfc number to comment about QUIT errorFlorian Westphal
2009-05-25enforce upper limit on maximum number of handled commandsFlorian Westphal
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-17conn.c: fix NumConnections imbalanceFlorian Westphal
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-17SSL/TLS: fix error handling when ssl ctx init for outgoing server link failsFlorian Westphal
2009-05-17SSL/TLS: fix error path in gnutls ssl ctx allocationFlorian Westphal
2009-05-16SSL/TLS: remove redundant asserts/ifdefsFlorian Westphal
2009-05-14SSL/TLS: proper indentation, remove erroneous commentFlorian Westphal
2009-05-05Update copyright notice, it's 2009 already!Alexander Barton
2009-05-05security: fix remotely triggerable crash in SSL/TLS codeFlorian Westphal
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-04-26Fix server list announcementTassilo Schweyer
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-23allow ping timeout quit messages to show the timeout valueDavid Kingston
2009-04-22irc-server: do not remove hostnames from info textFlorian Westphal
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-21conn-zip: fix error handlingFlorian Westphal
callers of (Un)Zip_Buffer() assume that the function closes the connection on error. However, this was not always the case.
2009-04-21remove or translate old commentsFlorian Westphal
2009-04-21client.c: remove unecessary commentsFlorian Westphal
2009-04-21add const qualifier to pointers where possibleFlorian Westphal
2009-04-10Display IPv6 addresses as "[<addr>]" when accepting connections.Alexander Barton
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-03-25misspelling in ERR_NORECIPIENT replyDana Dahlstrom
2009-03-07testsuite: add more predefined channels to server configFlorian Westphal
make sure it creates & and +, and accepts channel names without a special character (ngircd should treat 'Name = chan' as 'Name = #chan').
2009-03-07allow creation of persistent modeless channelsFlorian Westphal
2009-03-07add and use Channel_IsModeless()Florian Westphal
avoid "name[0] == '+'" where possible, having Channel_IsModeless() makes things much more obvious.
2009-03-05Enhance INFO command to report compile time, if availableAlexander Barton
2009-03-03Channel mode changes: break on errorAlexander Barton
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-03Channel_Mode(): code cleanup (no functional changes)Alexander Barton
2009-02-05TLS/SSL: remove useless error message when ssl connection is closedFlorian Westphal
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-04SSL/TLS: clear all ssl realted flags on shutdownFlorian Westphal
one ssl related flags was not cleared on ssl shutdown. introduce and use CONN_SSL_FLAGS_ALL to zap them all.
2009-02-04TLS/SSL: fix memory leak when using compressed server links with sslFlorian Westphal
commit 6bc2d3d06e9cb4da68ea4b63d9b6b219d88ab927 (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-01-20Fix spelling of log message: "channek" vs. "channel" ...Alexander Barton
2009-01-20Channel key file: store file name and open on each access.Alexander Barton
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.