Timeline
Aug 5, 2017:
- 11:54 PM Ticket #294 (~/zlog is a dubious default for logging) created by
- It is world-listable by default, and thus easy to leak information.
- 11:23 PM Changeset [5bb0743] by
- Silence "Use of uninitialized value $realm in uc"
- 11:23 PM Changeset [93e47c6] by
- 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
- 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
- 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
- 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
- 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
- Add a comment about existence of logging dirs
- 11:23 PM Changeset [7553744] by
- Remove irc: from irc message filenames
- 11:23 PM Changeset [858d094] by
- Log to subfolders of a base path A different subfolder for each protocol.
- 11:23 PM Changeset [ac4774f] by
- 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
- Log different realms to different files
- 11:23 PM Changeset [ab1aee4] by
- 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
- 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
- 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
- Moved notification of message logging to perl
- 11:23 PM Changeset [18c1925] by
- Moved the checking of whether or not to log messages to perl
- 11:23 PM Changeset [cd6521f] by
- Moved outgoing zephyr error logging to perl
- 11:23 PM Changeset [7a240b5] by
- 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
- 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
- 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
- Moved log generation code to perl.
- 11:21 PM Changeset [4bbe53a] by
- Add a comment for documentation As per https://github.com/barnowl/barnowl/pull/109#discussion_r131532750
- 11:21 PM Changeset [0d2c358] by
- Remove a useless 0 + perl cast
- 11:21 PM Changeset [958752c] by
- Set default deferred logging interval to 1 hour
- 11:21 PM Changeset [8a06468] by
- Clarify a comment about deferred logging mode As per https://github.com/barnowl/barnowl/pull/109#discussion_r131532293
- 11:21 PM Changeset [253f37f] by
- 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
- 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
- Print a message about how many logs are flushed
- 11:21 PM Changeset [89e4294] by
- Add comments to logging.c We note that defer_logs is only accessed on the disk-writing thread.
- 11:21 PM Changeset [e38f315] by
- 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
- 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
- Don't say that logging has resumed if it hasn't
- 11:21 PM Changeset [874fd19] by
- 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
- 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
- Add a variable to auto-flush logs every n minutes
- 11:21 PM Changeset [e6f21ea] by
- Add ETIMEDOUT to the list of errors for defer_logs This is for AFS blips
- 11:21 PM Changeset [77beb3c] by
- Add a -f flag to :flush-logs This allows us to bypass any troublesome messages in the queue.
- 11:21 PM Changeset [ec36247] by
- 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
- 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
- Add a comment for documentation As per https://github.com/barnowl/barnowl/pull/109#discussion_r131532750
- 10:54 PM Changeset [ca2bec4] by
- Remove a useless 0 + perl cast
- 10:54 PM Changeset [8a5803f] by
- Set default deferred logging interval to 1 hour
- 10:54 PM Changeset [69fd61e] by
- Clarify a comment about deferred logging mode As per https://github.com/barnowl/barnowl/pull/109#discussion_r131532293
- 10:54 PM Changeset [acefe010] by
- 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
- 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
- Print a message about how many logs are flushed
- 10:54 PM Changeset [6cd3a0f] by
- Add comments to logging.c We note that defer_logs is only accessed on the disk-writing thread.
- 10:54 PM Changeset [4c0e713] by
- 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
- 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
- Don't say that logging has resumed if it hasn't
- 10:54 PM Changeset [979dc4f] by
- 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
- 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
- Add a variable to auto-flush logs every n minutes
- 10:54 PM Changeset [6d03e21] by
- Add ETIMEDOUT to the list of errors for defer_logs This is for AFS blips
- 10:54 PM Changeset [aaee92a] by
- Add a -f flag to :flush-logs This allows us to bypass any troublesome messages in the queue.
- 10:54 PM Changeset [8f3eac3] by
- 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
- 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
- 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
- When I :renew, I get this in :show errors: […] It doesn't …
- 6:58 PM Changeset [cc4aca2] by
- Remove useless 'use Data::Dumper'
- 6:57 PM Changeset [8eb72d2] by
- Use eq not == for string comparison in Kerberos.pm
- 6:57 PM Changeset [a4b854a] by
- Make spacing in Kerberos.pm more uniform
- 6:57 PM Changeset [20ec886] by
- Fix variable names, remove dead variables
- 6:57 PM Changeset [38db1a1] by
- Fix spelling in Kerberos.pm
- 6:57 PM Changeset [268c7e8] by
- 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
- Use eq not == for string comparison in Kerberos.pm
- 6:48 PM Changeset [799ec08] by
- Make spacing in Kerberos.pm more uniform
- 6:48 PM Changeset [ab9adfc] by
- Fix variable names, remove dead variables
- 6:48 PM Changeset [da07199] by
- Fix spelling in Kerberos.pm
- 6:48 PM Changeset [e9f3e38] by
- 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
- Describe get_variable_info
- 5:54 PM Changeset [1f92f39] by
- 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
- Add BarnOwl::get_variable_info Returns a dictionary about a given variable.
- 5:54 PM Changeset [a95b564] by
- 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
- Correct tab-completion for set/unset They only allow -q at the front.
- 5:54 PM Changeset [41677d2] by
- 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.