diff options
author | Luke Bratch <luke@bratch.co.uk> | 2019-09-16 19:42:04 +0100 |
---|---|---|
committer | Luke Bratch <luke@bratch.co.uk> | 2019-09-16 19:42:04 +0100 |
commit | 7a3a8aa2a521f752a042ede37b81125689aa0067 (patch) | |
tree | 102028a6866a1f95ec3694ef521a5724ae4fee7e | |
parent | a37c6010340f3bc755fcd7c54da13daea7645e42 (diff) |
Make all log filenames lowercase - since IRC nicks and channel names are case-insensitive, we can ensure a nick/channel with varying case always ends up in the same log file.
-rw-r--r-- | TODO | 2 | ||||
-rw-r--r-- | functions.c | 7 | ||||
-rw-r--r-- | functions.h | 3 | ||||
-rw-r--r-- | logging.c | 5 |
4 files changed, 15 insertions, 2 deletions
@@ -1,5 +1,3 @@ All the TODOs sprinkled throughout the code! User/channel mode logging. - -Make all log filenames lowercase since IRC nick and channel names are case insensitive. diff --git a/functions.c b/functions.c index 58be95f..730819f 100644 --- a/functions.c +++ b/functions.c @@ -1583,3 +1583,10 @@ void stripprefixesfromnick(char *nick) { // Copy back to source string strcpy(nick, nicktmp); } + +// Convert the given 'string' into lowercase +void strlower(char *string) { + for (int i = 0; string[i]; i++) { + string[i] = tolower(string[i]); + } +} diff --git a/functions.h b/functions.h index 614137d..e8b03f9 100644 --- a/functions.h +++ b/functions.h @@ -208,4 +208,7 @@ int addnamereplytochannel(char *namereply, struct channel *channels); // Strips all leading prefixes (colons, user modes) from a nick void stripprefixesfromnick(char *nick); + +// Convert the given 'string' into lowercase +void strlower(char *string); #endif @@ -114,6 +114,11 @@ int logline(char *str, struct ircdstate *ircdstate, char *basedir, int type) { debugprint(DEBUG_CRIT, "Filename would be too long if logging either '%s', '%s' or '%s', returning!\n", from, to, ircdname); return 0; } + // Make the filename lowercase (since IRC nicks and channel names are case-insensitive, + // we can ensure a nick/channel with varying case always ends up in the same log file) + strlower(from); + strlower(to); + strlower(ircdname); switch(type) { case LOG_PRIVMSG: |