Mercurial > pidgin
changeset 11292:ef9280fdc511
[gaim-migrate @ 13492]
Apparently, users like to know when logging is failing. Who knew?
committer: Tailor Script <tailor@pidgin.im>
author | Richard Laager <rlaager@wiktel.com> |
---|---|
date | Thu, 18 Aug 2005 04:14:07 +0000 |
parents | 57fccea36e36 |
children | b9b9b67f6325 |
files | plugins/ChangeLog.API src/account.c src/conversation.c src/log.c src/log.h |
diffstat | 5 files changed, 27 insertions(+), 16 deletions(-) [+] |
line wrap: on
line diff
--- a/plugins/ChangeLog.API Thu Aug 18 03:14:29 2005 +0000 +++ b/plugins/ChangeLog.API Thu Aug 18 04:14:07 2005 +0000 @@ -75,6 +75,7 @@ * Removed: gaim_gtkconv_get_dest_tab_at_xy(), instead use gaim_gtkconv_get_tab_at_xy() * Added: gtk_imhtml_delete to clear out part of a imhtml buffer + * Changed: gaim_log_new(), added conv parameter Signals: * Changed: "received-im-msg" and "received-chat-msg" to match, both
--- a/src/account.c Thu Aug 18 03:14:29 2005 +0000 +++ b/src/account.c Thu Aug 18 04:14:07 2005 +0000 @@ -1842,7 +1842,7 @@ gc = gaim_account_get_connection(account); account->system_log = gaim_log_new(GAIM_LOG_SYSTEM, - gaim_account_get_username(account), account, + gaim_account_get_username(account), account, NULL, (gc != NULL && gc->login_time != 0) ? gc->login_time : time(NULL)); }
--- a/src/conversation.c Thu Aug 18 03:14:29 2005 +0000 +++ b/src/conversation.c Thu Aug 18 04:14:07 2005 +0000 @@ -628,7 +628,7 @@ gaim_log_free(conv->log); conv->log = gaim_log_new(GAIM_LOG_CHAT, gaim_conversation_get_name(conv), - account, time(NULL)); + account, conv, time(NULL)); gc = gaim_account_get_connection(account); @@ -686,7 +686,7 @@ g_free, NULL); conv->log = gaim_log_new(type == GAIM_CONV_CHAT ? GAIM_LOG_CHAT : GAIM_LOG_IM, conv->name, account, - time(NULL)); + conv, time(NULL)); /* copy features from the connection. */ conv->features = gc->flags;
--- a/src/log.c Thu Aug 18 03:14:29 2005 +0000 +++ b/src/log.c Thu Aug 18 04:14:07 2005 +0000 @@ -49,11 +49,13 @@ * PUBLIC LOGGING FUNCTIONS *********************************************** **************************************************************************/ -GaimLog *gaim_log_new(GaimLogType type, const char *name, GaimAccount *account, time_t time) +GaimLog *gaim_log_new(GaimLogType type, const char *name, GaimAccount *account, + GaimConversation *conv, time_t time) { GaimLog *log = g_new0(GaimLog, 1); log->name = g_strdup(gaim_normalize(account, name)); log->account = account; + log->conv = conv; log->time = time; log->type = type; log->logger_data = NULL; @@ -456,12 +458,13 @@ * LOGGERS ****************************************************************** ****************************************************************************/ -void gaim_log_common_writer(GaimLog *log, time_t time, const char *ext) +void gaim_log_common_writer(GaimLog *log, const char *ext) { char date[64]; GaimLogCommonLoggerData *data = log->logger_data; - if(!data) { + if (data == NULL) + { /* This log is new */ char *dir, *filename, *path; @@ -482,9 +485,15 @@ log->logger_data = data = g_new0(GaimLogCommonLoggerData, 1); data->file = g_fopen(path, "a"); - if (!data->file) { + if (data->file == NULL) + { gaim_debug(GAIM_DEBUG_ERROR, "log", "Could not create log file %s\n", path); + + if (log->conv != NULL) + gaim_conversation_write(log->conv, NULL, _("Logging of this conversation failed."), + GAIM_MESSAGE_ERROR, time(NULL)); + g_free(path); return; } @@ -518,7 +527,7 @@ GaimLogCommonLoggerData *data; time_t stamp = gaim_str_to_time(filename, FALSE); - log = gaim_log_new(type, name, account, stamp); + log = gaim_log_new(type, name, account, NULL, stamp); log->logger = logger; log->logger_data = data = g_new0(GaimLogCommonLoggerData, 1); data->path = g_build_filename(path, filename, NULL); @@ -769,7 +778,7 @@ if(!data) { const char *prpl = GAIM_PLUGIN_PROTOCOL_INFO(plugin)->list_icon(log->account, NULL); - gaim_log_common_writer(log, time, ".html"); + gaim_log_common_writer(log, ".html"); data = log->logger_data; @@ -910,7 +919,7 @@ */ const char *prpl = GAIM_PLUGIN_PROTOCOL_INFO(plugin)->list_icon(log->account, NULL); - gaim_log_common_writer(log, time, ".txt"); + gaim_log_common_writer(log, ".txt"); data = log->logger_data; @@ -1092,7 +1101,7 @@ newlen--; if (newlen != 0) { - log = gaim_log_new(GAIM_LOG_IM, sn, account, -1); + log = gaim_log_new(GAIM_LOG_IM, sn, account, NULL, -1); log->logger = &old_logger; log->time = lasttime; data = g_new0(struct old_logger_data, 1); @@ -1143,7 +1152,7 @@ if (logfound) { if ((newlen = ftell(file) - lastoff) != 0) { - log = gaim_log_new(GAIM_LOG_IM, sn, account, -1); + log = gaim_log_new(GAIM_LOG_IM, sn, account, NULL, -1); log->logger = &old_logger; log->time = lasttime; data = g_new0(struct old_logger_data, 1);
--- a/src/log.h Thu Aug 18 03:14:29 2005 +0000 +++ b/src/log.h Thu Aug 18 04:14:07 2005 +0000 @@ -113,6 +113,7 @@ char *name; /**< The name of this log */ GaimAccount *account; /**< The account this log is taking place on */ + GaimConversation *conv; /**< The conversation being logged */ time_t time; /**< The time this conversation started */ GaimLogLogger *logger; /**< The logging mechanism this log @@ -170,11 +171,12 @@ * @param name The name of this conversation (screenname, chat name, * etc.) * @param account The account the conversation is occurring on + * @param conv The conversation being logged * @param time The time this conversation started * @return The new log */ -GaimLog *gaim_log_new(GaimLogType type, const char *name, - GaimAccount *account, time_t time); +GaimLog *gaim_log_new(GaimLogType type, const char *name, GaimAccount *account, + GaimConversation *conv, time_t time); /** * Frees a log @@ -316,10 +318,9 @@ * file handle and log path. * * @param log The log to write to. - * @param time The time of the item being logged. * @param ext The file extension to give to this log file. */ -void gaim_log_common_writer(GaimLog *log, time_t time, const char *ext); +void gaim_log_common_writer(GaimLog *log, const char *ext); /** * Returns a sorted GList of GaimLogs of the requested type.