Timeline


and

Aug 5, 2017:

11:54 PM Ticket #294 (~/zlog is a dubious default for logging) created by jgross@mit.edu
It is world-listable by default, and thus easy to leak information.
11:23 PM Changeset [5bb0743] by Jason Gross <jgross@mit.edu>
Silence "Use of uninitialized value $realm in uc"
11:23 PM Changeset [93e47c6] by Jason Gross <jgross@mit.edu>
Note conflict of loggingdirection and classlogging The description of loggingdirection specifies that it applies to all messages, and thus overrides classlogging. This implements option (2) of trac #242.
11:23 PM Changeset [dd96101] by Jason Gross <jgross@mit.edu>
Log loopbacks to loopback file in ~/zlog Not to ~/zlog/loop{sender,recip}. If compatibility logging is on, loopbacks get logged to ~/zlog/people/loopback, which is what happened before this branch.
11:23 PM Changeset [9c1e3377] by Jason Gross <jgross@mit.edu>
Add log-to-subdirectories, a compatibility frob If disabled (the default), then logging of jabber and AIM messages behaves how it used to. If enabled, then each protocol gets its own subdirectory.
11:23 PM Changeset [f065a96] by Jason Gross <jgross@mit.edu>
Use g_utf8_casefold and g_utf8_normalize We define a convenience function compat_casefold in util.c for reuse in filters.
11:23 PM Changeset [ba05db8] by Jason Gross <jgross@mit.edu>
Update IRC logging to be more idiomatic Based on a message from kini on #oplss at 2013-07-27 12:40: freenode / #oplss / kini 2013-07-27 12:40 (kini!kini@unaffiliated/kini) jgross: the standard format is "[timestamp] <username> message", one line per message freenode / #oplss / kini 2013-07-27 12:41 (kini!kini@unaffiliated/kini) non-message events are usually notated as "* event description", e.g. "* kini (unaffiliated/kini) joined #oplss", or whatever
11:23 PM Changeset [bb8ad8f] by Jason Gross <jgross@mit.edu>
Add a comment about existence of logging dirs
11:23 PM Changeset [7553744] by Jason Gross <jgross@mit.edu>
Remove irc: from irc message filenames
11:23 PM Changeset [858d094] by Jason Gross <jgross@mit.edu>
Log to subfolders of a base path A different subfolder for each protocol.
11:23 PM Changeset [ac4774f] by Jason Gross <jgross@mit.edu>
Add IRC logging filename generation Based on asedeno's comment "For IRC I'd probably want a combination of network and (channel or nick)."
11:23 PM Changeset [782fd39] by Jason Gross <jgross@mit.edu>
Log different realms to different files
11:23 PM Changeset [ab1aee4] by Jason Gross <jgross@mit.edu>
Ignore kerberos instances in the sender and recipient when logging This fixes trac-#151 (Handle logging of personal zephyrs from different instances of Kerberos principals sanely). Stripping the instance is only done for the filename, not for the actual log contents.
11:23 PM Changeset [5ca4b4f] by Jason Gross <jgross@mit.edu>
Moved the last of the logging-related variables to perl We seem to have picked logpath as the string variable we test in tester.c. Since this is no longer in C, I've replaced it with personalbell (no particular reason for that choice).
11:23 PM Changeset [8190ce8] by Jason Gross <jgross@mit.edu>
Moved logging-specific variables to perl But only the ones that could be moved losslessly, i.e., no special validsettings and not enums.
11:23 PM Changeset [145cabe] by Jason Gross <jgross@mit.edu>
Moved notification of message logging to perl
11:23 PM Changeset [18c1925] by Jason Gross <jgross@mit.edu>
Moved the checking of whether or not to log messages to perl
11:23 PM Changeset [cd6521f] by Jason Gross <jgross@mit.edu>
Moved outgoing zephyr error logging to perl
11:23 PM Changeset [7a240b5] by Jason Gross <jgross@mit.edu>
Scrapped the last bits of C code dealing with jabber. We still have an OWL_PROTOCOL_JABBER in owl.h, but it does no harm being there, and we don't use any of the other ones except for AIM. I figure there's no harm in waiting and ripping all of them out at the same time in perl/AIM
11:23 PM Changeset [978a164] by Jason Gross <jgross@mit.edu>
Moved log file name generation to perl I don't think that the class/personal distinction is the best for general protocols, but I don't know what should replace it. I've made class-logging default to only zephyr (a slight change from previous behavior, where jabber MUC's would be logged to $classlogpath, as well as all non-private non-login messages from other protocols), but made logging path generation overridable. TODO: Decide whether or not to filter out more 'bad' characters. Perhaps we should remove '!' because it indicates history in some shells and makes things obnoxious, or '~' becase it indicates homedirs in many shells. * '/' is for separating directories, and we don't want to accidentally make subdirectories We first NFKC for zephyrs, and then apply lc. The zephyr servers apply case-folded NFKC (so says http://zephyr.1ts.org/browser/zephyr/server/zstring.c). We should probably use Unicode::CaseFold instead of lc. I'm also not sure what the order case-adjustment and normalization should be. We first NFKC, then apply lc, to jabbers, as per http://xmpp.org/internet-drafts/attic/draft-ietf-xmpp-nodeprep-03.html (though I can't actually find anything that specifies the case-folding algorithm, nor the ordering). We now use lc instead of g_utf8_strdown to normalize AIM screennames.
11:23 PM Changeset [9410677] by Jason Gross <jgross@mit.edu>
Made owl_util_makepath available from perl There's probably a better way to do this. Maybe sub makepath { my $filename = shift; $filename =~ s{ ^ ~ ( [^/]* ) } { $1 ? (getpwnam($1))[7] : ( $ENV{HOME} || $ENV{LOGDIR} || (getpwuid($>))[7] ) }ex; return $filename; } (http://docstore.mik.ua/orelly/perl/cookbook/ch07_04.htm) or something. Additionally, I'm not sure why PREINIT: char *rv = NULL; CODE: { rv = foo(); RETVAL = rv; } OUTPUT: RETVAL CLEANUP: g_free(rv); is the paradigm for functions returning strings, when foo returns `char *` and not `const char *`. I've removed the `= NULL` part of the initlization, which I assume is left over from when we had to NULL-check things before freeing them, but I've copied the rest of the code.
11:23 PM Changeset [e08487a] by Jason Gross <jgross@mit.edu>
Moved log generation code to perl.
11:21 PM Changeset [4bbe53a] by Jason Gross <jasongross9@gmail.com>
Add a comment for documentation As per https://github.com/barnowl/barnowl/pull/109#discussion_r131532750
11:21 PM Changeset [0d2c358] by Jason Gross <jasongross9@gmail.com>
Remove a useless 0 + perl cast
11:21 PM Changeset [958752c] by Jason Gross <jasongross9@gmail.com>
Set default deferred logging interval to 1 hour
11:21 PM Changeset [8a06468] by Jason Gross <jasongross9@gmail.com>
Clarify a comment about deferred logging mode As per https://github.com/barnowl/barnowl/pull/109#discussion_r131532293
11:21 PM Changeset [253f37f] by Jason Gross <jasongross9@gmail.com>
Change int ret to int errnum as per PR review As per https://github.com/barnowl/barnowl/pull/109#discussion_r131532257
11:21 PM Changeset [4511ac3] by Jason Gross <jasongross9@gmail.com>
Better UI for :flush-logs and flush-logs-interval We now only print the message about how many logs there are to flush when -q is not passed to :flush-logs. The timer from flush-logs-interval passes -q, so the user won't see "There are no logs to flush." ever few minutes.
11:21 PM Changeset [565a43c] by Jason Gross <jasongross9@gmail.com>
Print a message about how many logs are flushed
11:21 PM Changeset [89e4294] by Jason Gross <jasongross9@gmail.com>
Add comments to logging.c We note that defer_logs is only accessed on the disk-writing thread.
11:21 PM Changeset [e38f315] by Jason Gross <jasongross9@gmail.com>
logging.c: Make bool defer_logs static It's not used outside the file, so we might as well make it static.
11:21 PM Changeset [604303c] by Jason Gross <jasongross9@gmail.com>
Give a bit more feedback when flushing logs It's a bit hard to tell what's happening when :flush-logs gives no feedback (though I think frequently the issue is that it just takes a long time to write to disk). This change displays how many logs there are to be flushed, when the flushing fails.
11:21 PM Changeset [1917e53] by Jason Gross <jasongross9@gmail.com>
Don't say that logging has resumed if it hasn't
11:21 PM Changeset [874fd19] by Jason Gross <jasongross9@gmail.com>
Fix the sense of drop_failed_logs Previously, :flush-logs was dropping failed logs, while :flush-logs -f was not. Additionally, :flush-logs -f was enqueing the failed messages at the end of the queue, breaking message ordering. This commit fixes both of these issues. I chose to optimize for the case where :flush-logs is run without renewing tickets (where the correct behavior is to stop at the first message that fails), rather than the case where the user is logging to a directory they never have permission to access (where the correct behavior is to try to log all of the messages, and keep only the ones that fail). This way, we won't ever flood the system with lots of requests for files we don't have permissions to access, and the user will have to :flush-logs -f if they log to a directory they don't have permission to write to.
11:21 PM Changeset [edb14cc] by Jason Gross <jasongross9@gmail.com>
Let the user know when the logs have been flushed I've found it a bit disconcerting to have no feedback on whether or not :flush-logs has succeeded, and on whether or not we're still in deferred logging mode. Perhaps a message (owl_function_makemsg with no newline) would be better than adminmsg here, but I'm not sure.
11:21 PM Changeset [9d6e37c] by Jason Gross <jasongross9@gmail.com>
Add a variable to auto-flush logs every n minutes
11:21 PM Changeset [e6f21ea] by Jason Gross <jasongross9@gmail.com>
Add ETIMEDOUT to the list of errors for defer_logs This is for AFS blips
11:21 PM Changeset [77beb3c] by Jason Gross <jasongross9@gmail.com>
Add a -f flag to :flush-logs This allows us to bypass any troublesome messages in the queue.
11:21 PM Changeset [ec36247] by Jason Gross <jasongross9@gmail.com>
Defer failed log messages Previously, when we failed to open a logging file, we errored, and dropped the log message. This commit makes it so that, if the reason we failed was a permissions error, we instead add the log entry to a queue of messages to be logged eventually, and inform the user that logging has been suspended. The user must run :flush-logs to resume logging. If :flush-log has an fopen that fails with EPERM or EACCES, we re-defer messages and inform the user. On shutdown, BarnOwl will attempt to log all messages currently in the queue one last time.
11:21 PM Changeset [e47e1b0] by Jason Gross <jasongross9@gmail.com>
Display log file name on failure to open file Also, make owl_log_error be like printf. This will be more useful in the next commit, when we display error codes.
10:54 PM Changeset [1bb9478] by Jason Gross <jgross@mit.edu>
Add a comment for documentation As per https://github.com/barnowl/barnowl/pull/109#discussion_r131532750
10:54 PM Changeset [ca2bec4] by Jason Gross <jgross@mit.edu>
Remove a useless 0 + perl cast
10:54 PM Changeset [8a5803f] by Jason Gross <jgross@mit.edu>
Set default deferred logging interval to 1 hour
10:54 PM Changeset [69fd61e] by Jason Gross <jgross@mit.edu>
Clarify a comment about deferred logging mode As per https://github.com/barnowl/barnowl/pull/109#discussion_r131532293
10:54 PM Changeset [acefe010] by Jason Gross <jgross@mit.edu>
Change int ret to int errnum as per PR review As per https://github.com/barnowl/barnowl/pull/109#discussion_r131532257
10:54 PM Changeset [76a7f48] by Jason Gross <jgross@mit.edu>
Better UI for :flush-logs and flush-logs-interval We now only print the message about how many logs there are to flush when -q is not passed to :flush-logs. The timer from flush-logs-interval passes -q, so the user won't see "There are no logs to flush." ever few minutes.
10:54 PM Changeset [a2317ca] by Jason Gross <jgross@mit.edu>
Print a message about how many logs are flushed
10:54 PM Changeset [6cd3a0f] by Jason Gross <jgross@mit.edu>
Add comments to logging.c We note that defer_logs is only accessed on the disk-writing thread.
10:54 PM Changeset [4c0e713] by Jason Gross <jgross@mit.edu>
logging.c: Make bool defer_logs static It's not used outside the file, so we might as well make it static.
10:54 PM Changeset [0e64661] by Jason Gross <jgross@mit.edu>
Give a bit more feedback when flushing logs It's a bit hard to tell what's happening when :flush-logs gives no feedback (though I think frequently the issue is that it just takes a long time to write to disk). This change displays how many logs there are to be flushed, when the flushing fails.
10:54 PM Changeset [5518461] by Jason Gross <jgross@mit.edu>
Don't say that logging has resumed if it hasn't
10:54 PM Changeset [979dc4f] by Jason Gross <jgross@mit.edu>
Fix the sense of drop_failed_logs Previously, :flush-logs was dropping failed logs, while :flush-logs -f was not. Additionally, :flush-logs -f was enqueing the failed messages at the end of the queue, breaking message ordering. This commit fixes both of these issues. I chose to optimize for the case where :flush-logs is run without renewing tickets (where the correct behavior is to stop at the first message that fails), rather than the case where the user is logging to a directory they never have permission to access (where the correct behavior is to try to log all of the messages, and keep only the ones that fail). This way, we won't ever flood the system with lots of requests for files we don't have permissions to access, and the user will have to :flush-logs -f if they log to a directory they don't have permission to write to.
10:54 PM Changeset [9f90937] by Jason Gross <jgross@mit.edu>
Let the user know when the logs have been flushed I've found it a bit disconcerting to have no feedback on whether or not :flush-logs has succeeded, and on whether or not we're still in deferred logging mode. Perhaps a message (owl_function_makemsg with no newline) would be better than adminmsg here, but I'm not sure.
10:54 PM Changeset [38fafd2] by Jason Gross <jgross@mit.edu>
Add a variable to auto-flush logs every n minutes
10:54 PM Changeset [6d03e21] by Jason Gross <jgross@mit.edu>
Add ETIMEDOUT to the list of errors for defer_logs This is for AFS blips
10:54 PM Changeset [aaee92a] by Jason Gross <jgross@mit.edu>
Add a -f flag to :flush-logs This allows us to bypass any troublesome messages in the queue.
10:54 PM Changeset [8f3eac3] by Jason Gross <jgross@mit.edu>
Defer failed log messages Previously, when we failed to open a logging file, we errored, and dropped the log message. This commit makes it so that, if the reason we failed was a permissions error, we instead add the log entry to a queue of messages to be logged eventually, and inform the user that logging has been suspended. The user must run :flush-logs to resume logging. If :flush-log has an fopen that fails with EPERM or EACCES, we re-defer messages and inform the user. On shutdown, BarnOwl will attempt to log all messages currently in the queue one last time.
10:54 PM Changeset [5ad24f1] by Jason Gross <jgross@mit.edu>
Display log file name on failure to open file Also, make owl_log_error be like printf. This will be more useful in the next commit, when we display error codes.
8:53 PM Ticket #293 (Bump required version of GLib) created by jgross@mit.edu
We use GLIB_CHECK_VERSION in a bunch of places; we can now remove …
7:07 PM Ticket #292 ("unhandled exception in callback: Broken pipe" in :renew) created by jgross@mit.edu
When I :renew, I get this in :show errors: […] It doesn't …
6:58 PM Changeset [cc4aca2] by Jason Gross <jgross@mit.edu>
Remove useless 'use Data::Dumper'
6:57 PM Changeset [8eb72d2] by Jason Gross <jasongross9@gmail.com>
Use eq not == for string comparison in Kerberos.pm
6:57 PM Changeset [a4b854a] by Jason Gross <jasongross9@gmail.com>
Make spacing in Kerberos.pm more uniform
6:57 PM Changeset [20ec886] by Jason Gross <jasongross9@gmail.com>
Fix variable names, remove dead variables
6:57 PM Changeset [38db1a1] by Jason Gross <jasongross9@gmail.com>
Fix spelling in Kerberos.pm
6:57 PM Changeset [268c7e8] by Jason Gross <jasongross9@gmail.com>
renew command implemented :renew in barnowl prompts for a password, and then runs kinit -l7d with that password renew was implemented using IPC::Open3 and AnyEvent libraries
6:48 PM Changeset [76d6db1] by Pweaver (Paul Weaver) <paul@mordor.org>
Use eq not == for string comparison in Kerberos.pm
6:48 PM Changeset [799ec08] by Pweaver (Paul Weaver) <paul@mordor.org>
Make spacing in Kerberos.pm more uniform
6:48 PM Changeset [ab9adfc] by Pweaver (Paul Weaver) <paul@mordor.org>
Fix variable names, remove dead variables
6:48 PM Changeset [da07199] by Pweaver (Paul Weaver) <paul@mordor.org>
Fix spelling in Kerberos.pm
6:48 PM Changeset [e9f3e38] by Pweaver (Paul Weaver) <paul@mordor.org>
renew command implemented :renew in barnowl prompts for a password, and then runs kinit -l7d with that password renew was implemented using IPC::Open3 and AnyEvent libraries
5:54 PM Changeset [6deb32b] by Jason Gross <jgross@mit.edu>
Describe get_variable_info
5:54 PM Changeset [1f92f39] by Jason Gross <jasongross9@gmail.com>
Revamp set/unset completion - unset <tab> only completes takes_on_off variables - Variables with validsettings <path> complete as file paths - Variables with validsettings a comma-separated list of options complete appropriately.
5:54 PM Changeset [81e93c3] by Jason Gross <jasongross9@gmail.com>
Add BarnOwl::get_variable_info Returns a dictionary about a given variable.
5:54 PM Changeset [a95b564] by Jason Gross <jasongross9@gmail.com>
Descriptions should be empty, not NULL It's annoying for code that assumes non-nullable string. Also we actually hit a g_return_val_if_fail via g_string_append when owl_variable_get_description is NULL.
5:54 PM Changeset [bf21c4e] by Jason Gross <jasongross9@gmail.com>
Correct tab-completion for set/unset They only allow -q at the front.
5:54 PM Changeset [41677d2] by Jason Gross <jasongross9@gmail.com>
Fix :set usage string Variable isn't optional. Rather either you pass no arguments or a bunch of them.
Note: See TracTimeline for information about the timeline view.