diff options
| author | Luke Bratch <luke@bratch.co.uk> | 2019-05-16 21:50:35 +0100 | 
|---|---|---|
| committer | Luke Bratch <luke@bratch.co.uk> | 2019-05-16 21:50:35 +0100 | 
| commit | cfe9c969680a7a09ee60cf048f71b81d82bef1df (patch) | |
| tree | b035bf87184f3168722acf97e0a043bf2d00f2f6 /blabouncer.c | |
| parent | 61a369b85e51e0d54e1651e4ff8c11fe4815a0c0 (diff) | |
Make logging and replay logging optional.
Diffstat (limited to 'blabouncer.c')
| -rw-r--r-- | blabouncer.c | 33 | 
1 files changed, 24 insertions, 9 deletions
| diff --git a/blabouncer.c b/blabouncer.c index 8ed8d72..41e0a47 100644 --- a/blabouncer.c +++ b/blabouncer.c @@ -13,7 +13,6 @@  // - Configurable auto channels  // - Comma separated channel list in JOINs/PARTs  // - Only send some things to the requesting client (e.g. LIST replies) -// - Customise logging (disabling it, log file location)  // - Alert when clients connect/authenticate/disconnect  // - Perhaps rename arr_ssl and server_ssl since they may not even be OpenSSL sockets  // - Is it possible to replay JOINs/PARTs accurately? @@ -106,6 +105,8 @@ struct settings {    int clienttls;    int servertls;    char basedir[PATH_MAX]; +  int logging; +  int replaylogging;  };  // Return index of requested client FD within arr_clients @@ -688,11 +689,15 @@ int processircmessage(SSL *server_ssl, int *clientsockfd, char *str, int source,            sendtoallclients(clientsockfd, fdmax, arr_clients, str, sourcefd, arr_authed, arr_ssl, settings); -          // Write to replay log -          writereplayline(str, settings->basedir); +          // Write to replay log if replay logging enabled +          if (settings->replaylogging) { +            writereplayline(str, settings->basedir); +          } -          // Write to normal log -          logprivmsg(str, settings->ircnick, settings->basedir); +          // Write to normal log if logging enabled +          if (settings->logging) { +            logprivmsg(str, settings->ircnick, settings->basedir); +          }            return 1;          } @@ -875,11 +880,15 @@ int processircmessage(SSL *server_ssl, int *clientsockfd, char *str, int source,          // Send to all except source client          sendtoallclients(clientsockfd, fdmax, arr_clients, outgoingmsg, sourcefd, arr_authed, arr_ssl, settings); -        // Write to replay log -        writereplayline(outgoingmsg, settings->basedir); +        // Write to replay log if replay logging enabled +        if (settings->replaylogging) { +          writereplayline(outgoingmsg, settings->basedir); +        } -        // Write to normal log -        logprivmsg(outgoingmsg, settings->ircnick, settings->basedir); +        // Write to normal log if logging enabled +        if (settings->logging) { +          logprivmsg(outgoingmsg, settings->ircnick, settings->basedir); +        }          return 1;        } @@ -1464,6 +1473,12 @@ int main(int argc, char *argv[]) {      }    } +  // Is logging enabled? +  settings.logging = getconfint("logging", settings.conffile); + +  // Is replay logging enabled? +  settings.replaylogging = getconfint("replaylogging", settings.conffile); +    // TODO: see if any of this can be shared (i.e. 1. avoid code duplication, and 2. see if variables can be shared between client/server sockets)    // TODO: track fdmax - kind of doing this now with arr_clients and num_clients but might be pointlessly tracking both in some places (?) | 
