| Age | Commit message (Collapse) | Author |
|
This fixes the following warning with gcc 4.6.3.:
irc-mode.c: In function "Channel_Mode":
irc-mode.c:947:26: error: "list" may be used uninitialized
in this function
irc-mode.c:884:25: error: "list" may be used uninitialized
in this function
(The variable has never been used uninitialized, so don't worry)
|
|
Thanks to Christoph Biedl.
|
|
When
* building the ngircd Debian package (on Linux at least) and
* using the sbuild build system,
the command "ps -af" does not include the commands running inside the
sbuild system. Therefore, start-server.sh will report a fail as getpid.sh
cannot not find the ./T-ngircd1 just started although it's actually
running. This results in a funny build log ...
starting server 1 ... failure!
FAIL: start-server1
running connect-test ... ok.
PASS: connect-test
The self-test of getpid.sh however will likely succeed as it's happy if
it sees any process with "sh" somewhere in the name. Things go downhill
from there.
The confusing things are:
* The alternative cowbuilder/pbuilder does not have this problem.
* The alternative usage "ps ax" does fine.
So, as a quick hack, the patch attached adds another switch to getpid.sh.
|
|
Start "regular" logging not until the configuration file has been read in
and "SyslolgFacility" is set, and log all configuration errors using the
generic "daemon" facility.
So if there are no configuration errors, logging starts right after parsing
the configuration and we log the configuration file used _after_ reading it.
But this is no problem because every configuration error message includes
the configuration file name as well.
(The "double hello" has been introduced by commit 3641e5110952)
|
|
|
|
Using gcc 2.7.2, this fixes:
irc-channel.c: In function `join_allowed':
irc-channel.c:86: parse error before `const'
|
|
Syslog logging has been initialized before reading the configuraton
file, so ngIRCd always used the default facility and ignored the
"SyslogFacility" configuration option.
Thanks to Patrik Schindler for reporting this issue!
|
|
|
|
Bug reported by Cahata, thanks!
|
|
Setting the hostname twice doesn't do much harm a lot, but isn't elegant.
And for IPv6 addresses, it isn't correct the first time (missing []) ...
|
|
|
|
|
|
simplifies things a bit. io_dispatch() is called repeatedly from the
main loop.
|
|
This patch updates the limits for handling commands from a remote server:
- "<user count> / 5 + <min>" using "<min>=10" during normal operation,
- the above count multiplied with 5 while servers are syncing.
The intention is to a) make the limit dependent of the number of users
in the network (the more users, the more commands required to sync) and
b) to significantly rise this limit while servers are joining the network
to make the login and synchronization faster.
|
|
At the end of sending all "state" to the remote server, a PING command
is sent to request a PONG reply. Until then, no "regual" PING was sent,
so Conn_LastPing(<connection>) is null and now becomes non-null in the
PONG command handler.
So the servers are still synchronizing when Conn_LastPing(<connection>)
is 0, which could easily be tested.
|
|
|
|
|
|
Thanks to Cahata for the idea!
|
|
"Modes which are specified in the same pair share the same maximum size",
so "beI:50" means a total of 50 entries, regardless of the list.
See <http://www.irc.org/tech_docs/draft-brocklesby-irc-isupport-03.txt>,
thanks to Cahata for reporting this!
|
|
The numeric RPL_WHOISHOST_MSG(378) returns the DNS hostname (if
available) and the IP address of a client in the WHOIS reply.
Only the user itself and local IRC operators get this numeric.
|
|
|
|
|
|
This allows to use "*!<user>@<host>" or "*!*@<host>" masks to reject
clients even before receiving PASS, NICK and USER commands and before
forking authentication child processes which reduces resource usage.
|
|
- Use Client_Reject(), get rid of Reject_Client().
- Refactor Class_IsMember() to Class_GetMemberReason(),
- New function Class_HandleServerBans().
|
|
|
|
|
|
|
|
This allows a channel operator to define exception masks that allow users
to join the channel even when a "ban" would match and prevent them from
joining: the exception list (e) overrides the ban list (b).
|
|
|
|
|
|
And enhance our test suite to check this a little bit better :-)
|
|
Process further targets, even if one has been a server ID:
just skip this one with an error message and continue.
|
|
If the target user of a PRIVMSG or NOTICE command has the user mode 'C'
set, it is required that both sender and receiver are on the same channel.
This prevents private flooding by completely unknown clients.
|
|
|
|
|
|
- New function Lists_Count().
- New limit #define MAX_HNDL_CHANNEL_LISTS = 50.
- New numeric #define ERR_LISTFULL_MSG(478).
- Adjust numeric RPL_ISUPPORT2_MSG(005) accordingly ("MAXLIST")
|
|
|
|
This prototype has been introduced by commit fa7bb279 in 2006,
but as far as I can see, this function never existed ...
|
|
- Check correct list for duplicates when adding items.
- Don't generate any messages when adding duplicates or removing
non-existing items (this is how ircd-seven and ircu behave).
- Code cleanup: Add_Ban_Invite(), Del_Ban_Invite().
|
|
|
|
Commit 565523cb allowed processing of further channel names given to the
JOIN command when a single name was invalid.
After this patch, the JOIN command handler continues to process channel
name lists even after errors like "channel is full", "too many channels",
and the like and generates appropriate error messages for all the
channels given by the client.
|
|
Don't check the channel limit and don't report "too many channels"
when trying to join a channel that the client is already a member of.
|
|
The daemon reported ERR_UMODEUNKNOWNFLAG(501), which is wrong.
|
|
|
|
Introduce new #define's MAX_RPL_LIST(100), MAX_RPL_WHO(25),
MAX_RPL_WHOIS(10), and MAX_RPL_WHOWAS(25).
|
|
It the limit is reached, a NOTICE is sent to the client and list
processing should stop.
|
|
|
|
|
|
To streamline naming, in preparation for MAX_RPL_WHO and MAX_RPL_WHOWAS :-)
|
|
|