diff options
author | Luke Bratch <luke@bratch.co.uk> | 2019-09-14 13:11:20 +0100 |
---|---|---|
committer | Luke Bratch <luke@bratch.co.uk> | 2019-09-14 13:11:20 +0100 |
commit | e546de81cbecac2b02d29a02d6c6fd7d0785d739 (patch) | |
tree | e6afd5fcf595d43cae9df0417c112e537991b1d0 /functions.c | |
parent | 5ea442d5b8d0b9101737c7c4b7ff7cb89a1f7821 (diff) |
Handle ignoring replay messages from before we launched better to avoid misleading error messages going to clients.
Diffstat (limited to 'functions.c')
-rw-r--r-- | functions.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/functions.c b/functions.c index 0a03ca9..af8d5dd 100644 --- a/functions.c +++ b/functions.c @@ -786,7 +786,7 @@ int channelindex(struct channel *channels, char *name) { } // Send the requested number of lines of replay log to the requested client. -// 'sourcefd' is the client to send to, and replayseconds is the number of +// 'sourcefd' is the client to send to, and 'replayseconds' is the number of // seconds of replay log to replay. // Returns 1 for success or 0 for failure. int doreplay(int sourcefd, int replayseconds, struct client *clients, struct settings *settings, struct ircdstate *ircdstate, struct channel *channels) { @@ -811,9 +811,13 @@ int doreplay(int sourcefd, int replayseconds, struct client *clients, struct set // Replay those lines! for (int i = 0; i < numlines; i++) { - if (!readreplayline(replayseconds, i, outgoingmsg, settings, ircdstate)) { + int ret = readreplayline(replayseconds, i, outgoingmsg, settings, ircdstate); + if (ret == 0) { debugprint(DEBUG_CRIT, "Error requesting replay line.\n"); return 0; + } else if (ret == -1) { + debugprint(DEBUG_FULL, "doreplay(): readreplayline() said to ignore replay line.\n"); + continue; } // Check if the replay line is a TOPIC, a JOIN, or a PART so we don't |