diff options
author | Luke Bratch <luke@bratch.co.uk> | 2022-01-03 17:29:58 +0000 |
---|---|---|
committer | Luke Bratch <luke@bratch.co.uk> | 2022-01-03 17:29:58 +0000 |
commit | c1799538e9bba02ac188c262f051e9bae6e612f8 (patch) | |
tree | 3ed277bf697f24d0cf72ffbb06134de328ab9ee5 | |
parent | d9a27856ab4e3c365ff9755acc6a147c0ae0339d (diff) |
Increase maximum auto join channels from 10 to 40, correctly check for maximum configuration array length, correct configuration array debug output text.
-rw-r--r-- | TODO | 10 | ||||
-rw-r--r-- | config.c | 4 | ||||
-rw-r--r-- | structures.h | 2 |
3 files changed, 12 insertions, 4 deletions
@@ -14,6 +14,14 @@ Can memory usage be reduced further? (e.g. better channel struct management) Ability to load new certificate whilst running. -Are any other strncmps incorrect (i.e. just checking a substring)? +Remaining strncmps are safe but could do with length comparisons too. "Our initial MODE" comparison may need to be more complex. + +"/topic" response goes to all clients. + +Connection/login logging - is debug.log sufficient? + +Do connectcommands happen on reconnect? + +Are "no such nick/channel" messages as shown in clients correct compared to non-(bla)bouncer clients? Crash when requesting 30 hour replay. @@ -198,7 +198,7 @@ int getconfarr(char *confname, char *filename, char dest[MAXCONFARR][MAXDATASIZE // If we've on the closing brace line, then we're done if (line[i] == '}') { for (int i = 0; i < valuecount; i++) { - debugprint(DEBUG_FULL, "getconfstr(): returning '%s'.\n", dest[i]); + debugprint(DEBUG_FULL, "getconfarr(): returning '%s'.\n", dest[i]); } // Close fine and return success (or 0 if no values found in an otherwise valid array) @@ -235,7 +235,7 @@ int getconfarr(char *confname, char *filename, char dest[MAXCONFARR][MAXDATASIZE } // If we've found too many values, return an error - if (valuecount > MAXCONFARR) { + if (valuecount > MAXCONFARR - 1) { snprintf(dest[0], MAXDATASIZE, "Too many elements defined for configuration array '%s', maximum number is '%d'.\n", confname, MAXCONFARR); fclose(fp); return -1; diff --git a/structures.h b/structures.h index 9e5f575..d070638 100644 --- a/structures.h +++ b/structures.h @@ -29,7 +29,7 @@ #define MAXPORTLEN 6 // Up to 65535, so 5 characters + 1 for null #define CLIENTCODELEN 17 // Max length of a client code + 1 for null #define MAXCLIENTCODES 64 // Max number of client codes to track -#define MAXCONFARR 10 // Max number of entries that a configuration array can have +#define MAXCONFARR 40 // Max number of entries that a configuration array can have #define MAXCHANNICKS 8192 // Maximum number of nicks to track per channel struct ircdstate { |