[624] in BarnOwl Developers
[D-O-H] r725 - trunk/owl
daemon@ATHENA.MIT.EDU (chmrr@MIT.EDU)
Thu Oct 29 18:08:03 2009
Resent-From: nelhage@mit.edu
Resent-To: barnowl-dev-mtg@charon.mit.edu
To: dirty-owl-hackers@mit.edu
From: chmrr@MIT.EDU
Reply-To: dirty-owl-hackers@MIT.EDU
Date: Fri, 01 Jun 2007 04:01:56 -0400
Author: chmrr
Date: 2007-06-01 04:01:55 -0400 (Fri, 01 Jun 2007)
New Revision: 725
Modified:
trunk/owl/
trunk/owl/logging.c
trunk/owl/perlwrap.pm
Log:
r1604@utwig: chmrr | 2007-06-01 04:01:29 -0400
* Outgoing messages now log as much information as incomign messages
* Code reuse is a Good Thing
Property changes on: trunk/owl
___________________________________________________________________
Name: svk:merge
- 06e3988a-d725-0410-af47-c5dd11e74598:/local/barnowl:1380
8baf6839-b125-0410-9df9-922793c80423:/local/barnowl:17717
8baf6839-b125-0410-9df9-922793c80423:/local/owl:15641
bb873fd7-8e23-0410-944a-99ec44c633eb:/local/d-o-h/branches/par:19594
fe09232e-8620-0410-8e36-e6b4839e121d:/branches/par:688
+ 06e3988a-d725-0410-af47-c5dd11e74598:/local/barnowl:1604
8baf6839-b125-0410-9df9-922793c80423:/local/barnowl:17717
8baf6839-b125-0410-9df9-922793c80423:/local/owl:15641
bb873fd7-8e23-0410-944a-99ec44c633eb:/local/d-o-h/branches/par:19594
fe09232e-8620-0410-8e36-e6b4839e121d:/branches/par:688
Modified: trunk/owl/logging.c
===================================================================
--- trunk/owl/logging.c 2007-05-31 02:30:09 UTC (rev 724)
+++ trunk/owl/logging.c 2007-06-01 08:01:55 UTC (rev 725)
@@ -32,17 +32,8 @@
}
/* handle outgoing messages */
- if (owl_message_is_type_aim(m)) {
- owl_log_outgoing_aim(m);
- } else if (owl_message_is_type_zephyr(m)) {
- owl_log_outgoing_zephyr(m);
- } else if (owl_message_is_type_loopback(m)) {
- owl_log_outgoing_loopback(m);
- } else if (owl_message_is_type_jabber(m)) {
- owl_log_outgoing_jabber(m);
- }else {
- owl_function_error("Unknown message type for logging");
- }
+ owl_log_outgoing(m);
+
owl_function_debugmsg("owl_log_message: leaving");
}
@@ -83,51 +74,94 @@
return(1);
}
-void owl_log_outgoing_zephyr(owl_message *m)
+void owl_log_zephyr(owl_message *m, FILE *file) {
+ char *tmp;
+ tmp=short_zuser(owl_message_get_sender(m));
+ fprintf(file, "Class: %s Instance: %s", owl_message_get_class(m), owl_message_get_instance(m));
+ if (strcmp(owl_message_get_opcode(m), "")) fprintf(file, " Opcode: %s", owl_message_get_opcode(m));
+ fprintf(file, "\n");
+ fprintf(file, "Time: %s Host: %s\n", owl_message_get_timestr(m), owl_message_get_hostname(m));
+ fprintf(file, "From: %s <%s>\n\n", owl_message_get_zsig(m), tmp);
+ fprintf(file, "%s\n\n", owl_message_get_body(m));
+ owl_free(tmp);
+}
+
+void owl_log_aim(owl_message *m, FILE *file) {
+ fprintf(file, "From: <%s> To: <%s>\n", owl_message_get_sender(m), owl_message_get_recipient(m));
+ fprintf(file, "Time: %s\n\n", owl_message_get_timestr(m));
+ if (owl_message_is_login(m))
+ fprintf(file, "LOGIN\n\n");
+ else if (owl_message_is_logout(m))
+ fprintf(file, "LOGOUT\n\n");
+ else
+ fprintf(file, "%s\n\n", owl_message_get_body(m));
+}
+
+void owl_log_jabber(owl_message *m, FILE *file) {
+ fprintf(file, "From: <%s> To: <%s>\n",owl_message_get_sender(m), owl_message_get_recipient(m));
+ fprintf(file, "Time: %s\n\n", owl_message_get_timestr(m));
+ fprintf(file, "%s\n\n",owl_message_get_body(m));
+}
+
+void owl_log_generic(owl_message *m, FILE *file) {
+ fprintf(file, "From: <%s> To: <%s>\n", owl_message_get_sender(m), owl_message_get_recipient(m));
+ fprintf(file, "Time: %s\n\n", owl_message_get_timestr(m));
+ fprintf(file, "%s\n\n", owl_message_get_body(m));
+}
+
+void owl_log_append(owl_message *m, char *filename) {
+ FILE *file;
+ file=fopen(filename, "a");
+ if (!file) {
+ owl_function_error("Unable to open file for logging");
+ return;
+ }
+ if (owl_message_is_type_zephyr(m)) {
+ owl_log_zephyr(m, file);
+ } else if (owl_message_is_type_jabber(m)) {
+ owl_log_jabber(m, file);
+ } else if (owl_message_is_type_aim(m)) {
+ owl_log_aim(m, file);
+ } else {
+ owl_log_generic(m, file);
+ }
+ fclose(file);
+}
+
+void owl_log_outgoing(owl_message *m)
{
- FILE *file;
char filename[MAXPATHLEN], *logpath;
- char *to, *text;
+ char *to;
- /* strip local realm */
- to=short_zuser(owl_message_get_recipient(m));
+ /* Figure out what path to log to */
+ if (owl_message_is_type_zephyr(m)) {
+ to = short_zuser(owl_message_get_recipient(m));
+ } else if (owl_message_is_type_jabber(m)) {
+ to = owl_sprintf("jabber:%s", owl_message_get_recipient(m));
+ } else if (owl_message_is_type_aim(m)) {
+ char *temp;
+ temp = owl_aim_normalize_screenname(owl_message_get_recipient(m));
+ downstr(temp);
+ to = owl_sprintf("aim:%s", temp);
+ owl_free(temp);
+ } else {
+ to = owl_sprintf("loopback");
+ }
/* expand ~ in path names */
- logpath=owl_text_substitute(owl_global_get_logpath(&g), "~", owl_global_get_homedir(&g));
-
- text=owl_message_get_body(m);
-
+ logpath = owl_text_substitute(owl_global_get_logpath(&g), "~", owl_global_get_homedir(&g));
snprintf(filename, MAXPATHLEN, "%s/%s", logpath, to);
- file=fopen(filename, "a");
- if (!file) {
- owl_function_error("Unable to open file for outgoing logging");
- owl_free(logpath);
- owl_free(to);
- return;
- }
- fprintf(file, "OUTGOING (owl): %s\n%s\n", to, text);
- if (text[strlen(text)-1]!='\n') {
- fprintf(file, "\n");
- }
- fclose(file);
+ owl_free(to);
+ owl_log_append(m, filename);
+
snprintf(filename, MAXPATHLEN, "%s/all", logpath);
owl_free(logpath);
- file=fopen(filename, "a");
- if (!file) {
- owl_function_error("Unable to open file for outgoing logging");
- owl_free(to);
- return;
- }
- fprintf(file, "OUTGOING (owl): %s\n%s\n", to, text);
- if (text[strlen(text)-1]!='\n') {
- fprintf(file, "\n");
- }
- fclose(file);
- owl_free(to);
+ owl_log_append(m, filename);
}
+
void owl_log_outgoing_zephyr_error(char *to, char *text)
{
FILE *file;
@@ -184,181 +218,35 @@
owl_free(tobuff);
}
-void owl_log_outgoing_jabber(owl_message *m)
-{
- FILE *file;
- char filename[MAXPATHLEN], *logpath;
- char *tobuff, *normalto, *text;
- owl_function_debugmsg("owl_log_outgoing_jabber: entering");
- /* normalize and downcase the screenname */
- normalto = owl_message_get_recipient(m);
-
- /* downstr(normalto); */
- tobuff=owl_sprintf("jabber:%s", normalto);
- /* owl_free(normalto); */
-
- /* expand ~ in path names */
- logpath = owl_text_substitute(owl_global_get_logpath(&g), "~", owl_global_get_homedir(&g));
-
- text=owl_message_get_body(m);
-
- snprintf(filename, MAXPATHLEN, "%s/%s", logpath, tobuff);
- file=fopen(filename, "a");
- if (!file) {
- owl_function_error("Unable to open file for outgoing logging");
- owl_free(logpath);
- owl_free(tobuff);
- return;
- }
- fprintf(file, "OUTGOING (owl): %s\n%s\n", tobuff, text);
- if (text[strlen(text)-1]!='\n') {
- fprintf(file, "\n");
- }
- fclose(file);
-
- snprintf(filename, MAXPATHLEN, "%s/all", logpath);
- owl_free(logpath);
- file=fopen(filename, "a");
- if (!file) {
- owl_function_error("Unable to open file for outgoing logging");
- owl_free(tobuff);
- return;
- }
- fprintf(file, "OUTGOING (owl): %s\n%s\n", tobuff, text);
- if (text[strlen(text)-1]!='\n') {
- fprintf(file, "\n");
- }
- fclose(file);
-
- owl_free(tobuff);
-}
-
-
-void owl_log_outgoing_aim(owl_message *m)
-{
- FILE *file;
- char filename[MAXPATHLEN], *logpath;
- char *tobuff, *normalto, *text;
-
- owl_function_debugmsg("owl_log_outgoing_aim: entering");
-
- /* normalize and downcase the screenname */
- normalto=owl_aim_normalize_screenname(owl_message_get_recipient(m));
- downstr(normalto);
- tobuff=owl_sprintf("aim:%s", normalto);
- owl_free(normalto);
-
- /* expand ~ in path names */
- logpath = owl_text_substitute(owl_global_get_logpath(&g), "~", owl_global_get_homedir(&g));
-
- text=owl_message_get_body(m);
-
- snprintf(filename, MAXPATHLEN, "%s/%s", logpath, tobuff);
- file=fopen(filename, "a");
- if (!file) {
- owl_function_error("Unable to open file for outgoing logging");
- owl_free(logpath);
- owl_free(tobuff);
- return;
- }
- fprintf(file, "OUTGOING (owl): %s\n%s\n", tobuff, text);
- if (text[strlen(text)-1]!='\n') {
- fprintf(file, "\n");
- }
- fclose(file);
-
- snprintf(filename, MAXPATHLEN, "%s/all", logpath);
- owl_free(logpath);
- file=fopen(filename, "a");
- if (!file) {
- owl_function_error("Unable to open file for outgoing logging");
- owl_free(tobuff);
- return;
- }
- fprintf(file, "OUTGOING (owl): %s\n%s\n", tobuff, text);
- if (text[strlen(text)-1]!='\n') {
- fprintf(file, "\n");
- }
- fclose(file);
-
- owl_free(tobuff);
-}
-
-void owl_log_outgoing_loopback(owl_message *m)
-{
- FILE *file;
- char filename[MAXPATHLEN], *logpath;
- char *tobuff, *text;
-
- tobuff=owl_sprintf("loopback");
-
- /* expand ~ in path names */
- logpath = owl_text_substitute(owl_global_get_logpath(&g), "~", owl_global_get_homedir(&g));
-
- text=owl_message_get_body(m);
-
- snprintf(filename, MAXPATHLEN, "%s/%s", logpath, tobuff);
- file=fopen(filename, "a");
- if (!file) {
- owl_function_error("Unable to open file for outgoing logging");
- owl_free(logpath);
- owl_free(tobuff);
- return;
- }
- fprintf(file, "OUTGOING (owl): %s\n%s\n", tobuff, text);
- if (text[strlen(text)-1]!='\n') {
- fprintf(file, "\n");
- }
- fclose(file);
-
- snprintf(filename, MAXPATHLEN, "%s/all", logpath);
- owl_free(logpath);
- file=fopen(filename, "a");
- if (!file) {
- owl_function_error("Unable to open file for outgoing logging");
- owl_free(tobuff);
- return;
- }
- fprintf(file, "OUTGOING (owl): %s\n%s\n", tobuff, text);
- if (text[strlen(text)-1]!='\n') {
- fprintf(file, "\n");
- }
- fclose(file);
-
- owl_free(tobuff);
-}
-
void owl_log_incoming(owl_message *m)
{
- FILE *file, *allfile;
char filename[MAXPATHLEN], allfilename[MAXPATHLEN], *logpath;
- char *frombuff=NULL, *from=NULL, *zsig=NULL;
+ char *frombuff=NULL, *from=NULL;
int len, ch, i, personal;
/* figure out if it's a "personal" message or not */
if (owl_message_is_type_zephyr(m)) {
if (owl_message_is_personal(m)) {
- personal=1;
+ personal = 1;
} else {
- personal=0;
+ personal = 0;
}
} else if (owl_message_is_type_jabber(m)) {
- /* This needs to be fixed to handle groupchat */
- char* msgtype = owl_message_get_attribute_value(m,"jtype");
- if (msgtype && !strcmp(msgtype,"groupchat")) {
- personal =0;
- } else {
- personal=1;
- }
+ /* This needs to be fixed to handle groupchat */
+ char* msgtype = owl_message_get_attribute_value(m,"jtype");
+ if (msgtype && !strcmp(msgtype,"groupchat")) {
+ personal = 0;
+ } else {
+ personal = 1;
+ }
} else {
if (owl_message_is_private(m) || owl_message_is_loginout(m)) {
- personal=1;
+ personal = 1;
} else {
- personal=0;
+ personal = 0;
}
}
-
if (owl_message_is_type_zephyr(m)) {
if (personal) {
@@ -414,89 +302,11 @@
snprintf(filename, MAXPATHLEN, "%s/%s", logpath, from);
}
owl_free(logpath);
-
- file=fopen(filename, "a");
- if (!file) {
- owl_function_error("Unable to open file for incoming logging");
- owl_free(frombuff);
- return;
- }
+ owl_free(frombuff);
- allfile=NULL;
- if (personal) {
- allfile=fopen(allfilename, "a");
- if (!allfile) {
- owl_function_error("Unable to open file for incoming logging");
- owl_free(frombuff);
- fclose(file);
- return;
- }
- }
+ owl_log_append(m, filename);
- /* write to the main file */
- if (owl_message_is_type_zephyr(m)) {
- char *tmp;
-
- tmp=short_zuser(owl_message_get_sender(m));
- fprintf(file, "Class: %s Instance: %s", owl_message_get_class(m), owl_message_get_instance(m));
- if (strcmp(owl_message_get_opcode(m), "")) fprintf(file, " Opcode: %s", owl_message_get_opcode(m));
- fprintf(file, "\n");
- fprintf(file, "Time: %s Host: %s\n", owl_message_get_timestr(m), owl_message_get_hostname(m));
- zsig=owl_message_get_zsig(m);
- fprintf(file, "From: %s <%s>\n\n", zsig, tmp);
- fprintf(file, "%s\n\n", owl_message_get_body(m));
- owl_free(tmp);
- } else if (owl_message_is_type_aim(m) && !owl_message_is_loginout(m)) {
- fprintf(file, "From: <%s> To: <%s>\n", owl_message_get_sender(m), owl_message_get_recipient(m));
- fprintf(file, "Time: %s\n\n", owl_message_get_timestr(m));
- fprintf(file, "%s\n\n", owl_message_get_body(m));
- } else if (owl_message_is_type_aim(m) && owl_message_is_loginout(m)) {
- fprintf(file, "From: <%s> To: <%s>\n", owl_message_get_sender(m), owl_message_get_recipient(m));
- fprintf(file, "Time: %s\n\n", owl_message_get_timestr(m));
- if (owl_message_is_login(m)) fprintf(file, "LOGIN\n\n");
- if (owl_message_is_logout(m)) fprintf(file, "LOGOUT\n\n");
- } else if (owl_message_is_type_jabber(m)) {
- fprintf(file, "From: <%s> To: <%s>\n",owl_message_get_sender(m), owl_message_get_recipient(m));
- fprintf(file, "Time: %s\n\n", owl_message_get_timestr(m));
- fprintf(file, "%s\n\n",owl_message_get_body(m));
- }
- else {
- fprintf(file, "From: <%s> To: <%s>\n", owl_message_get_sender(m), owl_message_get_recipient(m));
- fprintf(file, "Time: %s\n\n", owl_message_get_timestr(m));
- fprintf(file, "%s\n\n", owl_message_get_body(m));
- }
+ if (personal)
+ owl_log_append(m, allfilename);
- fclose(file);
-
- /* if it's a personal message, also write to the 'all' file */
- if (personal) {
- if (owl_message_is_type_zephyr(m)) {
- char *tmp;
-
- tmp=short_zuser(owl_message_get_sender(m));
- fprintf(allfile, "Class: %s Instance: %s", owl_message_get_class(m), owl_message_get_instance(m));
- if (strcmp(owl_message_get_opcode(m), "")) fprintf(allfile, " Opcode: %s", owl_message_get_opcode(m));
- fprintf(allfile, "\n");
- fprintf(allfile, "Time: %s Host: %s\n", owl_message_get_timestr(m), owl_message_get_hostname(m));
- fprintf(allfile, "From: %s <%s>\n\n", zsig, tmp);
- fprintf(allfile, "%s\n\n", owl_message_get_body(m));
- owl_free(tmp);
- } else if (owl_message_is_type_aim(m) && !owl_message_is_loginout(m)) {
- fprintf(allfile, "From: <%s> To: <%s>\n", owl_message_get_sender(m), owl_message_get_recipient(m));
- fprintf(allfile, "Time: %s\n\n", owl_message_get_timestr(m));
- fprintf(allfile, "%s\n\n", owl_message_get_body(m));
- } else if (owl_message_is_type_aim(m) && owl_message_is_loginout(m)) {
- fprintf(allfile, "From: <%s> To: <%s>\n", owl_message_get_sender(m), owl_message_get_recipient(m));
- fprintf(allfile, "Time: %s\n\n", owl_message_get_timestr(m));
- if (owl_message_is_login(m)) fprintf(allfile, "LOGIN\n\n");
- if (owl_message_is_logout(m)) fprintf(allfile, "LOGOUT\n\n");
- } else {
- fprintf(allfile, "From: <%s> To: <%s>\n", owl_message_get_sender(m), owl_message_get_recipient(m));
- fprintf(allfile, "Time: %s\n\n", owl_message_get_timestr(m));
- fprintf(allfile, "%s\n\n", owl_message_get_body(m));
- }
- fclose(allfile);
- }
-
- owl_free(frombuff);
}
Modified: trunk/owl/perlwrap.pm
===================================================================
--- trunk/owl/perlwrap.pm 2007-05-31 02:30:09 UTC (rev 724)
+++ trunk/owl/perlwrap.pm 2007-06-01 08:01:55 UTC (rev 725)
@@ -571,7 +571,7 @@
my $sender = $m->long_sender;
$sender =~ s/\n.*$//s;
$header .= " " x (4 - ((length $header) % 4));
- $header .= "(" . $sender . ")";
+ $header .= "(" . $sender . '@color[default]' . ")";
my $message = $header . "\n". indentBody($m);
if($m->is_personal && $m->direction eq "in") {
$message = BarnOwl::Style::boldify($message);