Apply coding style
Regards https://github.com/profanity-im/profanity/issues/1396
This commit is contained in:
292
src/log.c
292
src/log.c
@@ -45,63 +45,61 @@
|
||||
#include "glib.h"
|
||||
#include "glib/gstdio.h"
|
||||
|
||||
#include "log.h"
|
||||
#include "common.h"
|
||||
#include "config/files.h"
|
||||
#include "config/preferences.h"
|
||||
#include "xmpp/xmpp.h"
|
||||
#include "log.h"
|
||||
#include "xmpp/muc.h"
|
||||
#include "xmpp/xmpp.h"
|
||||
|
||||
#define PROF "prof"
|
||||
|
||||
static FILE *logp;
|
||||
static gchar *mainlogfile = NULL;
|
||||
static FILE* logp;
|
||||
static gchar* mainlogfile = NULL;
|
||||
|
||||
static GTimeZone *tz;
|
||||
static GDateTime *dt;
|
||||
static GTimeZone* tz;
|
||||
static GDateTime* dt;
|
||||
static log_level_t level_filter;
|
||||
|
||||
static GHashTable *logs;
|
||||
static GHashTable *groupchat_logs;
|
||||
static GDateTime *session_started;
|
||||
static GHashTable* logs;
|
||||
static GHashTable* groupchat_logs;
|
||||
static GDateTime* session_started;
|
||||
|
||||
static int stderr_inited;
|
||||
static log_level_t stderr_level;
|
||||
static int stderr_pipe[2];
|
||||
static char *stderr_buf;
|
||||
static GString *stderr_msg;
|
||||
static char* stderr_buf;
|
||||
static GString* stderr_msg;
|
||||
|
||||
enum {
|
||||
STDERR_BUFSIZE = 4000,
|
||||
STDERR_RETRY_NR = 5,
|
||||
};
|
||||
|
||||
struct dated_chat_log {
|
||||
gchar *filename;
|
||||
GDateTime *date;
|
||||
struct dated_chat_log
|
||||
{
|
||||
gchar* filename;
|
||||
GDateTime* date;
|
||||
};
|
||||
|
||||
static gboolean _log_roll_needed(struct dated_chat_log *dated_log);
|
||||
static struct dated_chat_log* _create_log(const char *const other, const char *const login);
|
||||
static struct dated_chat_log* _create_groupchat_log(const char *const room, const char *const login);
|
||||
static void _free_chat_log(struct dated_chat_log *dated_log);
|
||||
static gboolean _key_equals(void *key1, void *key2);
|
||||
static char* _get_log_filename(const char *const other, const char *const login, GDateTime *dt, gboolean create);
|
||||
static char* _get_groupchat_log_filename(const char *const room, const char *const login, GDateTime *dt,
|
||||
gboolean create);
|
||||
static gboolean _log_roll_needed(struct dated_chat_log* dated_log);
|
||||
static struct dated_chat_log* _create_log(const char* const other, const char* const login);
|
||||
static struct dated_chat_log* _create_groupchat_log(const char* const room, const char* const login);
|
||||
static void _free_chat_log(struct dated_chat_log* dated_log);
|
||||
static gboolean _key_equals(void* key1, void* key2);
|
||||
static char* _get_log_filename(const char* const other, const char* const login, GDateTime* dt, gboolean create);
|
||||
static char* _get_groupchat_log_filename(const char* const room, const char* const login, GDateTime* dt, gboolean create);
|
||||
static void _rotate_log_file(void);
|
||||
static char* _log_string_from_level(log_level_t level);
|
||||
static void _chat_log_chat(const char *const login, const char *const other, const gchar *const msg,
|
||||
chat_log_direction_t direction, GDateTime *timestamp, const char *const resourcepart);
|
||||
static void _groupchat_log_chat(const gchar *const login, const gchar *const room, const gchar *const nick,
|
||||
const gchar *const msg);
|
||||
static void _chat_log_chat(const char* const login, const char* const other, const gchar* const msg, chat_log_direction_t direction, GDateTime* timestamp, const char* const resourcepart);
|
||||
static void _groupchat_log_chat(const gchar* const login, const gchar* const room, const gchar* const nick, const gchar* const msg);
|
||||
|
||||
void
|
||||
log_debug(const char *const msg, ...)
|
||||
log_debug(const char* const msg, ...)
|
||||
{
|
||||
va_list arg;
|
||||
va_start(arg, msg);
|
||||
GString *fmt_msg = g_string_new(NULL);
|
||||
GString* fmt_msg = g_string_new(NULL);
|
||||
g_string_vprintf(fmt_msg, msg, arg);
|
||||
log_msg(PROF_LEVEL_DEBUG, PROF, fmt_msg->str);
|
||||
g_string_free(fmt_msg, TRUE);
|
||||
@@ -109,11 +107,11 @@ log_debug(const char *const msg, ...)
|
||||
}
|
||||
|
||||
void
|
||||
log_info(const char *const msg, ...)
|
||||
log_info(const char* const msg, ...)
|
||||
{
|
||||
va_list arg;
|
||||
va_start(arg, msg);
|
||||
GString *fmt_msg = g_string_new(NULL);
|
||||
GString* fmt_msg = g_string_new(NULL);
|
||||
g_string_vprintf(fmt_msg, msg, arg);
|
||||
log_msg(PROF_LEVEL_INFO, PROF, fmt_msg->str);
|
||||
g_string_free(fmt_msg, TRUE);
|
||||
@@ -121,11 +119,11 @@ log_info(const char *const msg, ...)
|
||||
}
|
||||
|
||||
void
|
||||
log_warning(const char *const msg, ...)
|
||||
log_warning(const char* const msg, ...)
|
||||
{
|
||||
va_list arg;
|
||||
va_start(arg, msg);
|
||||
GString *fmt_msg = g_string_new(NULL);
|
||||
GString* fmt_msg = g_string_new(NULL);
|
||||
g_string_vprintf(fmt_msg, msg, arg);
|
||||
log_msg(PROF_LEVEL_WARN, PROF, fmt_msg->str);
|
||||
g_string_free(fmt_msg, TRUE);
|
||||
@@ -133,11 +131,11 @@ log_warning(const char *const msg, ...)
|
||||
}
|
||||
|
||||
void
|
||||
log_error(const char *const msg, ...)
|
||||
log_error(const char* const msg, ...)
|
||||
{
|
||||
va_list arg;
|
||||
va_start(arg, msg);
|
||||
GString *fmt_msg = g_string_new(NULL);
|
||||
GString* fmt_msg = g_string_new(NULL);
|
||||
g_string_vprintf(fmt_msg, msg, arg);
|
||||
log_msg(PROF_LEVEL_ERROR, PROF, fmt_msg->str);
|
||||
g_string_free(fmt_msg, TRUE);
|
||||
@@ -145,11 +143,11 @@ log_error(const char *const msg, ...)
|
||||
}
|
||||
|
||||
void
|
||||
log_init(log_level_t filter, char *log_file)
|
||||
log_init(log_level_t filter, char* log_file)
|
||||
{
|
||||
level_filter = filter;
|
||||
tz = g_time_zone_new_local();
|
||||
gchar *lf = files_get_log_file(log_file);
|
||||
gchar* lf = files_get_log_file(log_file);
|
||||
|
||||
logp = fopen(lf, "a");
|
||||
g_chmod(lf, S_IRUSR | S_IWUSR);
|
||||
@@ -161,9 +159,9 @@ log_init(log_level_t filter, char *log_file)
|
||||
void
|
||||
log_reinit(void)
|
||||
{
|
||||
char *lf = strdup(mainlogfile);
|
||||
char *start = strrchr(lf, '/') +1;
|
||||
char *end = strstr(start, ".log");
|
||||
char* lf = strdup(mainlogfile);
|
||||
char* start = strrchr(lf, '/') + 1;
|
||||
char* end = strstr(start, ".log");
|
||||
*end = '\0';
|
||||
|
||||
log_close();
|
||||
@@ -196,14 +194,14 @@ log_close(void)
|
||||
}
|
||||
|
||||
void
|
||||
log_msg(log_level_t level, const char *const area, const char *const msg)
|
||||
log_msg(log_level_t level, const char* const area, const char* const msg)
|
||||
{
|
||||
if (level >= level_filter && logp) {
|
||||
dt = g_date_time_new_now(tz);
|
||||
|
||||
char *level_str = _log_string_from_level(level);
|
||||
char* level_str = _log_string_from_level(level);
|
||||
|
||||
gchar *date_fmt = g_date_time_format(dt, "%d/%m/%Y %H:%M:%S");
|
||||
gchar* date_fmt = g_date_time_format(dt, "%d/%m/%Y %H:%M:%S");
|
||||
|
||||
fprintf(logp, "%s: %s: %s: %s\n", date_fmt, area, level_str, msg);
|
||||
g_date_time_unref(dt);
|
||||
@@ -221,7 +219,7 @@ log_msg(log_level_t level, const char *const area, const char *const msg)
|
||||
}
|
||||
|
||||
log_level_t
|
||||
log_level_from_string(char *log_level)
|
||||
log_level_from_string(char* log_level)
|
||||
{
|
||||
assert(log_level != NULL);
|
||||
if (strcmp(log_level, "DEBUG") == 0) {
|
||||
@@ -240,21 +238,21 @@ log_level_from_string(char *log_level)
|
||||
static void
|
||||
_rotate_log_file(void)
|
||||
{
|
||||
gchar *log_file = g_strdup(mainlogfile);
|
||||
gchar* log_file = g_strdup(mainlogfile);
|
||||
size_t len = strlen(log_file);
|
||||
gchar *log_file_new = malloc(len + 4);
|
||||
gchar* log_file_new = malloc(len + 4);
|
||||
int i = 1;
|
||||
|
||||
// find an empty name. from .log -> log.01 -> log.99
|
||||
for(; i<100; i++) {
|
||||
for (; i < 100; i++) {
|
||||
g_sprintf(log_file_new, "%s.%02d", log_file, i);
|
||||
if (!g_file_test(log_file_new, G_FILE_TEST_EXISTS))
|
||||
break;
|
||||
}
|
||||
|
||||
char *lf = strdup(mainlogfile);
|
||||
char *start = strrchr(lf, '/') +1;
|
||||
char *end = strstr(start, ".log");
|
||||
char* lf = strdup(mainlogfile);
|
||||
char* start = strrchr(lf, '/') + 1;
|
||||
char* end = strstr(start, ".log");
|
||||
*end = '\0';
|
||||
|
||||
log_close();
|
||||
@@ -274,34 +272,34 @@ chat_log_init(void)
|
||||
{
|
||||
session_started = g_date_time_new_now_local();
|
||||
log_info("Initialising chat logs");
|
||||
logs = g_hash_table_new_full(g_str_hash, (GEqualFunc) _key_equals, free,
|
||||
(GDestroyNotify)_free_chat_log);
|
||||
logs = g_hash_table_new_full(g_str_hash, (GEqualFunc)_key_equals, free,
|
||||
(GDestroyNotify)_free_chat_log);
|
||||
}
|
||||
|
||||
void
|
||||
groupchat_log_init(void)
|
||||
{
|
||||
log_info("Initialising groupchat logs");
|
||||
groupchat_logs = g_hash_table_new_full(g_str_hash, (GEqualFunc) _key_equals, free,
|
||||
(GDestroyNotify)_free_chat_log);
|
||||
groupchat_logs = g_hash_table_new_full(g_str_hash, (GEqualFunc)_key_equals, free,
|
||||
(GDestroyNotify)_free_chat_log);
|
||||
}
|
||||
|
||||
void
|
||||
chat_log_msg_out(const char *const barejid, const char *const msg, const char *const resource)
|
||||
chat_log_msg_out(const char* const barejid, const char* const msg, const char* const resource)
|
||||
{
|
||||
if (prefs_get_boolean(PREF_CHLOG)) {
|
||||
char *mybarejid = connection_get_barejid();
|
||||
char* mybarejid = connection_get_barejid();
|
||||
_chat_log_chat(mybarejid, barejid, msg, PROF_OUT_LOG, NULL, resource);
|
||||
free(mybarejid);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
chat_log_otr_msg_out(const char *const barejid, const char *const msg, const char *const resource)
|
||||
chat_log_otr_msg_out(const char* const barejid, const char* const msg, const char* const resource)
|
||||
{
|
||||
if (prefs_get_boolean(PREF_CHLOG)) {
|
||||
char *mybarejid = connection_get_barejid();
|
||||
char *pref_otr_log = prefs_get_string(PREF_OTR_LOG);
|
||||
char* mybarejid = connection_get_barejid();
|
||||
char* pref_otr_log = prefs_get_string(PREF_OTR_LOG);
|
||||
if (strcmp(pref_otr_log, "on") == 0) {
|
||||
_chat_log_chat(mybarejid, barejid, msg, PROF_OUT_LOG, NULL, resource);
|
||||
} else if (strcmp(pref_otr_log, "redact") == 0) {
|
||||
@@ -313,11 +311,11 @@ chat_log_otr_msg_out(const char *const barejid, const char *const msg, const cha
|
||||
}
|
||||
|
||||
void
|
||||
chat_log_pgp_msg_out(const char *const barejid, const char *const msg, const char *const resource)
|
||||
chat_log_pgp_msg_out(const char* const barejid, const char* const msg, const char* const resource)
|
||||
{
|
||||
if (prefs_get_boolean(PREF_CHLOG)) {
|
||||
char *mybarejid = connection_get_barejid();
|
||||
char *pref_pgp_log = prefs_get_string(PREF_PGP_LOG);
|
||||
char* mybarejid = connection_get_barejid();
|
||||
char* pref_pgp_log = prefs_get_string(PREF_PGP_LOG);
|
||||
if (strcmp(pref_pgp_log, "on") == 0) {
|
||||
_chat_log_chat(mybarejid, barejid, msg, PROF_OUT_LOG, NULL, resource);
|
||||
} else if (strcmp(pref_pgp_log, "redact") == 0) {
|
||||
@@ -329,11 +327,11 @@ chat_log_pgp_msg_out(const char *const barejid, const char *const msg, const cha
|
||||
}
|
||||
|
||||
void
|
||||
chat_log_omemo_msg_out(const char *const barejid, const char *const msg, const char *const resource)
|
||||
chat_log_omemo_msg_out(const char* const barejid, const char* const msg, const char* const resource)
|
||||
{
|
||||
if (prefs_get_boolean(PREF_CHLOG)) {
|
||||
char *mybarejid = connection_get_barejid();
|
||||
char *pref_omemo_log = prefs_get_string(PREF_OMEMO_LOG);
|
||||
char* mybarejid = connection_get_barejid();
|
||||
char* pref_omemo_log = prefs_get_string(PREF_OMEMO_LOG);
|
||||
if (strcmp(pref_omemo_log, "on") == 0) {
|
||||
_chat_log_chat(mybarejid, barejid, msg, PROF_OUT_LOG, NULL, resource);
|
||||
} else if (strcmp(pref_omemo_log, "redact") == 0) {
|
||||
@@ -345,11 +343,11 @@ chat_log_omemo_msg_out(const char *const barejid, const char *const msg, const c
|
||||
}
|
||||
|
||||
void
|
||||
chat_log_otr_msg_in(ProfMessage *message)
|
||||
chat_log_otr_msg_in(ProfMessage* message)
|
||||
{
|
||||
if (prefs_get_boolean(PREF_CHLOG)) {
|
||||
char *mybarejid = connection_get_barejid();
|
||||
char *pref_otr_log = prefs_get_string(PREF_OTR_LOG);
|
||||
char* mybarejid = connection_get_barejid();
|
||||
char* pref_otr_log = prefs_get_string(PREF_OTR_LOG);
|
||||
if (message->enc == PROF_MSG_ENC_NONE || (strcmp(pref_otr_log, "on") == 0)) {
|
||||
if (message->type == PROF_MSG_TYPE_MUCPM) {
|
||||
_chat_log_chat(mybarejid, message->from_jid->barejid, message->plain, PROF_IN_LOG, message->timestamp, message->from_jid->resourcepart);
|
||||
@@ -369,11 +367,11 @@ chat_log_otr_msg_in(ProfMessage *message)
|
||||
}
|
||||
|
||||
void
|
||||
chat_log_pgp_msg_in(ProfMessage *message)
|
||||
chat_log_pgp_msg_in(ProfMessage* message)
|
||||
{
|
||||
if (prefs_get_boolean(PREF_CHLOG)) {
|
||||
char *mybarejid = connection_get_barejid();
|
||||
char *pref_pgp_log = prefs_get_string(PREF_PGP_LOG);
|
||||
char* mybarejid = connection_get_barejid();
|
||||
char* pref_pgp_log = prefs_get_string(PREF_PGP_LOG);
|
||||
if (strcmp(pref_pgp_log, "on") == 0) {
|
||||
if (message->type == PROF_MSG_TYPE_MUCPM) {
|
||||
_chat_log_chat(mybarejid, message->from_jid->barejid, message->plain, PROF_IN_LOG, message->timestamp, message->from_jid->resourcepart);
|
||||
@@ -393,11 +391,11 @@ chat_log_pgp_msg_in(ProfMessage *message)
|
||||
}
|
||||
|
||||
void
|
||||
chat_log_omemo_msg_in(ProfMessage *message)
|
||||
chat_log_omemo_msg_in(ProfMessage* message)
|
||||
{
|
||||
if (prefs_get_boolean(PREF_CHLOG)) {
|
||||
char *mybarejid = connection_get_barejid();
|
||||
char *pref_omemo_log = prefs_get_string(PREF_OMEMO_LOG);
|
||||
char* mybarejid = connection_get_barejid();
|
||||
char* pref_omemo_log = prefs_get_string(PREF_OMEMO_LOG);
|
||||
if (strcmp(pref_omemo_log, "on") == 0) {
|
||||
if (message->type == PROF_MSG_TYPE_MUCPM) {
|
||||
_chat_log_chat(mybarejid, message->from_jid->barejid, message->plain, PROF_IN_LOG, message->timestamp, message->from_jid->resourcepart);
|
||||
@@ -417,10 +415,10 @@ chat_log_omemo_msg_in(ProfMessage *message)
|
||||
}
|
||||
|
||||
void
|
||||
chat_log_msg_in(ProfMessage *message)
|
||||
chat_log_msg_in(ProfMessage* message)
|
||||
{
|
||||
if (prefs_get_boolean(PREF_CHLOG)) {
|
||||
char *mybarejid = connection_get_barejid();
|
||||
char* mybarejid = connection_get_barejid();
|
||||
|
||||
if (message->type == PROF_MSG_TYPE_MUCPM) {
|
||||
_chat_log_chat(mybarejid, message->from_jid->barejid, message->plain, PROF_IN_LOG, message->timestamp, message->from_jid->resourcepart);
|
||||
@@ -433,11 +431,10 @@ chat_log_msg_in(ProfMessage *message)
|
||||
}
|
||||
|
||||
static void
|
||||
_chat_log_chat(const char *const login, const char *const other, const char *const msg,
|
||||
chat_log_direction_t direction, GDateTime *timestamp, const char *const resourcepart)
|
||||
_chat_log_chat(const char* const login, const char* const other, const char* const msg, chat_log_direction_t direction, GDateTime* timestamp, const char* const resourcepart)
|
||||
{
|
||||
char *other_name;
|
||||
GString *other_str = NULL;
|
||||
char* other_name;
|
||||
GString* other_str = NULL;
|
||||
|
||||
if (resourcepart) {
|
||||
other_str = g_string_new(other);
|
||||
@@ -449,26 +446,26 @@ _chat_log_chat(const char *const login, const char *const other, const char *con
|
||||
other_name = (char*)other;
|
||||
}
|
||||
|
||||
struct dated_chat_log *dated_log = g_hash_table_lookup(logs, other_name);
|
||||
struct dated_chat_log* dated_log = g_hash_table_lookup(logs, other_name);
|
||||
|
||||
// no log for user
|
||||
if (dated_log == NULL) {
|
||||
dated_log = _create_log(other_name, login);
|
||||
g_hash_table_insert(logs, strdup(other_name), dated_log);
|
||||
|
||||
// log entry exists but file removed
|
||||
// log entry exists but file removed
|
||||
} else if (!g_file_test(dated_log->filename, G_FILE_TEST_EXISTS)) {
|
||||
dated_log = _create_log(other_name, login);
|
||||
g_hash_table_replace(logs, strdup(other_name), dated_log);
|
||||
|
||||
// log file needs rolling
|
||||
// log file needs rolling
|
||||
} else if (_log_roll_needed(dated_log)) {
|
||||
dated_log = _create_log(other_name, login);
|
||||
g_hash_table_replace(logs, strdup(other_name), dated_log);
|
||||
}
|
||||
|
||||
if (resourcepart) {
|
||||
g_string_free(other_str, TRUE);
|
||||
g_string_free(other_str, TRUE);
|
||||
}
|
||||
|
||||
if (timestamp == NULL) {
|
||||
@@ -477,8 +474,8 @@ _chat_log_chat(const char *const login, const char *const other, const char *con
|
||||
g_date_time_ref(timestamp);
|
||||
}
|
||||
|
||||
gchar *date_fmt = g_date_time_format(timestamp, "%H:%M:%S");
|
||||
FILE *chatlogp = fopen(dated_log->filename, "a");
|
||||
gchar* date_fmt = g_date_time_format(timestamp, "%H:%M:%S");
|
||||
FILE* chatlogp = fopen(dated_log->filename, "a");
|
||||
g_chmod(dated_log->filename, S_IRUSR | S_IWUSR);
|
||||
if (chatlogp) {
|
||||
if (direction == PROF_IN_LOG) {
|
||||
@@ -514,33 +511,33 @@ _chat_log_chat(const char *const login, const char *const other, const char *con
|
||||
}
|
||||
|
||||
void
|
||||
groupchat_log_msg_out(const gchar *const room, const gchar *const msg)
|
||||
groupchat_log_msg_out(const gchar* const room, const gchar* const msg)
|
||||
{
|
||||
if (prefs_get_boolean(PREF_GRLOG)) {
|
||||
char *mybarejid = connection_get_barejid();
|
||||
char *mynick = muc_nick(room);
|
||||
char* mybarejid = connection_get_barejid();
|
||||
char* mynick = muc_nick(room);
|
||||
_groupchat_log_chat(mybarejid, room, mynick, msg);
|
||||
free(mybarejid);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
groupchat_log_msg_in(const gchar *const room, const gchar *const nick, const gchar *const msg)
|
||||
groupchat_log_msg_in(const gchar* const room, const gchar* const nick, const gchar* const msg)
|
||||
{
|
||||
if (prefs_get_boolean(PREF_GRLOG)) {
|
||||
char *mybarejid = connection_get_barejid();
|
||||
char* mybarejid = connection_get_barejid();
|
||||
_groupchat_log_chat(mybarejid, room, nick, msg);
|
||||
free(mybarejid);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
groupchat_log_omemo_msg_out(const gchar *const room, const gchar *const msg)
|
||||
groupchat_log_omemo_msg_out(const gchar* const room, const gchar* const msg)
|
||||
{
|
||||
if (prefs_get_boolean(PREF_CHLOG)) {
|
||||
char *mybarejid = connection_get_barejid();
|
||||
char *pref_omemo_log = prefs_get_string(PREF_OMEMO_LOG);
|
||||
char *mynick = muc_nick(room);
|
||||
char* mybarejid = connection_get_barejid();
|
||||
char* pref_omemo_log = prefs_get_string(PREF_OMEMO_LOG);
|
||||
char* mynick = muc_nick(room);
|
||||
|
||||
if (strcmp(pref_omemo_log, "on") == 0) {
|
||||
_groupchat_log_chat(mybarejid, room, mynick, msg);
|
||||
@@ -554,11 +551,11 @@ groupchat_log_omemo_msg_out(const gchar *const room, const gchar *const msg)
|
||||
}
|
||||
|
||||
void
|
||||
groupchat_log_omemo_msg_in(const gchar *const room, const gchar *const nick, const gchar *const msg)
|
||||
groupchat_log_omemo_msg_in(const gchar* const room, const gchar* const nick, const gchar* const msg)
|
||||
{
|
||||
if (prefs_get_boolean(PREF_CHLOG)) {
|
||||
char *mybarejid = connection_get_barejid();
|
||||
char *pref_omemo_log = prefs_get_string(PREF_OMEMO_LOG);
|
||||
char* mybarejid = connection_get_barejid();
|
||||
char* pref_omemo_log = prefs_get_string(PREF_OMEMO_LOG);
|
||||
|
||||
if (strcmp(pref_omemo_log, "on") == 0) {
|
||||
_groupchat_log_chat(mybarejid, room, nick, msg);
|
||||
@@ -572,27 +569,26 @@ groupchat_log_omemo_msg_in(const gchar *const room, const gchar *const nick, con
|
||||
}
|
||||
|
||||
void
|
||||
_groupchat_log_chat(const gchar *const login, const gchar *const room, const gchar *const nick,
|
||||
const gchar *const msg)
|
||||
_groupchat_log_chat(const gchar* const login, const gchar* const room, const gchar* const nick, const gchar* const msg)
|
||||
{
|
||||
struct dated_chat_log *dated_log = g_hash_table_lookup(groupchat_logs, room);
|
||||
struct dated_chat_log* dated_log = g_hash_table_lookup(groupchat_logs, room);
|
||||
|
||||
// no log for room
|
||||
if (dated_log == NULL) {
|
||||
dated_log = _create_groupchat_log(room, login);
|
||||
g_hash_table_insert(groupchat_logs, strdup(room), dated_log);
|
||||
|
||||
// log exists but needs rolling
|
||||
// log exists but needs rolling
|
||||
} else if (_log_roll_needed(dated_log)) {
|
||||
dated_log = _create_groupchat_log(room, login);
|
||||
g_hash_table_replace(logs, strdup(room), dated_log);
|
||||
}
|
||||
|
||||
GDateTime *dt_tmp = g_date_time_new_now_local();
|
||||
GDateTime* dt_tmp = g_date_time_new_now_local();
|
||||
|
||||
gchar *date_fmt = g_date_time_format(dt_tmp, "%H:%M:%S");
|
||||
gchar* date_fmt = g_date_time_format(dt_tmp, "%H:%M:%S");
|
||||
|
||||
FILE *grpchatlogp = fopen(dated_log->filename, "a");
|
||||
FILE* grpchatlogp = fopen(dated_log->filename, "a");
|
||||
g_chmod(dated_log->filename, S_IRUSR | S_IWUSR);
|
||||
if (grpchatlogp) {
|
||||
if (strncmp(msg, "/me ", 4) == 0) {
|
||||
@@ -621,12 +617,12 @@ chat_log_close(void)
|
||||
}
|
||||
|
||||
static struct dated_chat_log*
|
||||
_create_log(const char *const other, const char *const login)
|
||||
_create_log(const char* const other, const char* const login)
|
||||
{
|
||||
GDateTime *now = g_date_time_new_now_local();
|
||||
char *filename = _get_log_filename(other, login, now, TRUE);
|
||||
GDateTime* now = g_date_time_new_now_local();
|
||||
char* filename = _get_log_filename(other, login, now, TRUE);
|
||||
|
||||
struct dated_chat_log *new_log = malloc(sizeof(struct dated_chat_log));
|
||||
struct dated_chat_log* new_log = malloc(sizeof(struct dated_chat_log));
|
||||
new_log->filename = strdup(filename);
|
||||
new_log->date = now;
|
||||
|
||||
@@ -636,12 +632,12 @@ _create_log(const char *const other, const char *const login)
|
||||
}
|
||||
|
||||
static struct dated_chat_log*
|
||||
_create_groupchat_log(const char * const room, const char *const login)
|
||||
_create_groupchat_log(const char* const room, const char* const login)
|
||||
{
|
||||
GDateTime *now = g_date_time_new_now_local();
|
||||
char *filename = _get_groupchat_log_filename(room, login, now, TRUE);
|
||||
GDateTime* now = g_date_time_new_now_local();
|
||||
char* filename = _get_groupchat_log_filename(room, login, now, TRUE);
|
||||
|
||||
struct dated_chat_log *new_log = malloc(sizeof(struct dated_chat_log));
|
||||
struct dated_chat_log* new_log = malloc(sizeof(struct dated_chat_log));
|
||||
new_log->filename = strdup(filename);
|
||||
new_log->date = now;
|
||||
|
||||
@@ -651,12 +647,11 @@ _create_groupchat_log(const char * const room, const char *const login)
|
||||
}
|
||||
|
||||
static gboolean
|
||||
_log_roll_needed(struct dated_chat_log *dated_log)
|
||||
_log_roll_needed(struct dated_chat_log* dated_log)
|
||||
{
|
||||
gboolean result = FALSE;
|
||||
GDateTime *now = g_date_time_new_now_local();
|
||||
if (g_date_time_get_day_of_year(dated_log->date) !=
|
||||
g_date_time_get_day_of_year(now)) {
|
||||
GDateTime* now = g_date_time_new_now_local();
|
||||
if (g_date_time_get_day_of_year(dated_log->date) != g_date_time_get_day_of_year(now)) {
|
||||
result = TRUE;
|
||||
}
|
||||
g_date_time_unref(now);
|
||||
@@ -665,7 +660,7 @@ _log_roll_needed(struct dated_chat_log *dated_log)
|
||||
}
|
||||
|
||||
static void
|
||||
_free_chat_log(struct dated_chat_log *dated_log)
|
||||
_free_chat_log(struct dated_chat_log* dated_log)
|
||||
{
|
||||
if (dated_log) {
|
||||
if (dated_log->filename) {
|
||||
@@ -681,53 +676,53 @@ _free_chat_log(struct dated_chat_log *dated_log)
|
||||
}
|
||||
|
||||
static gboolean
|
||||
_key_equals(void *key1, void *key2)
|
||||
_key_equals(void* key1, void* key2)
|
||||
{
|
||||
gchar *str1 = (gchar *) key1;
|
||||
gchar *str2 = (gchar *) key2;
|
||||
gchar* str1 = (gchar*)key1;
|
||||
gchar* str2 = (gchar*)key2;
|
||||
|
||||
return (g_strcmp0(str1, str2) == 0);
|
||||
}
|
||||
|
||||
static char*
|
||||
_get_log_filename(const char *const other, const char *const login, GDateTime *dt, gboolean create)
|
||||
_get_log_filename(const char* const other, const char* const login, GDateTime* dt, gboolean create)
|
||||
{
|
||||
char *chatlogs_dir = files_get_data_path(DIR_CHATLOGS);
|
||||
GString *log_file = g_string_new(chatlogs_dir);
|
||||
char* chatlogs_dir = files_get_data_path(DIR_CHATLOGS);
|
||||
GString* log_file = g_string_new(chatlogs_dir);
|
||||
free(chatlogs_dir);
|
||||
|
||||
gchar *login_dir = str_replace(login, "@", "_at_");
|
||||
gchar* login_dir = str_replace(login, "@", "_at_");
|
||||
g_string_append_printf(log_file, "/%s", login_dir);
|
||||
if (create) {
|
||||
create_dir(log_file->str);
|
||||
}
|
||||
free(login_dir);
|
||||
|
||||
gchar *other_file = str_replace(other, "@", "_at_");
|
||||
gchar* other_file = str_replace(other, "@", "_at_");
|
||||
g_string_append_printf(log_file, "/%s", other_file);
|
||||
if (create) {
|
||||
create_dir(log_file->str);
|
||||
}
|
||||
free(other_file);
|
||||
|
||||
gchar *date = g_date_time_format(dt, "/%Y_%m_%d.log");
|
||||
gchar* date = g_date_time_format(dt, "/%Y_%m_%d.log");
|
||||
g_string_append(log_file, date);
|
||||
g_free(date);
|
||||
|
||||
char *result = strdup(log_file->str);
|
||||
char* result = strdup(log_file->str);
|
||||
g_string_free(log_file, TRUE);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
static char*
|
||||
_get_groupchat_log_filename(const char *const room, const char *const login, GDateTime *dt, gboolean create)
|
||||
_get_groupchat_log_filename(const char* const room, const char* const login, GDateTime* dt, gboolean create)
|
||||
{
|
||||
char *chatlogs_dir = files_get_data_path(DIR_CHATLOGS);
|
||||
GString *log_file = g_string_new(chatlogs_dir);
|
||||
char* chatlogs_dir = files_get_data_path(DIR_CHATLOGS);
|
||||
GString* log_file = g_string_new(chatlogs_dir);
|
||||
free(chatlogs_dir);
|
||||
|
||||
gchar *login_dir = str_replace(login, "@", "_at_");
|
||||
gchar* login_dir = str_replace(login, "@", "_at_");
|
||||
g_string_append_printf(log_file, "/%s", login_dir);
|
||||
if (create) {
|
||||
create_dir(log_file->str);
|
||||
@@ -739,18 +734,18 @@ _get_groupchat_log_filename(const char *const room, const char *const login, GDa
|
||||
create_dir(log_file->str);
|
||||
}
|
||||
|
||||
gchar *room_file = str_replace(room, "@", "_at_");
|
||||
gchar* room_file = str_replace(room, "@", "_at_");
|
||||
g_string_append_printf(log_file, "/%s", room_file);
|
||||
if (create) {
|
||||
create_dir(log_file->str);
|
||||
}
|
||||
free(room_file);
|
||||
|
||||
gchar *date = g_date_time_format(dt, "/%Y_%m_%d.log");
|
||||
gchar* date = g_date_time_format(dt, "/%Y_%m_%d.log");
|
||||
g_string_append(log_file, date);
|
||||
g_free(date);
|
||||
|
||||
char *result = strdup(log_file->str);
|
||||
char* result = strdup(log_file->str);
|
||||
g_string_free(log_file, TRUE);
|
||||
|
||||
return result;
|
||||
@@ -759,26 +754,25 @@ _get_groupchat_log_filename(const char *const room, const char *const login, GDa
|
||||
static char*
|
||||
_log_string_from_level(log_level_t level)
|
||||
{
|
||||
switch (level)
|
||||
{
|
||||
case PROF_LEVEL_ERROR:
|
||||
return "ERR";
|
||||
case PROF_LEVEL_WARN:
|
||||
return "WRN";
|
||||
case PROF_LEVEL_INFO:
|
||||
return "INF";
|
||||
case PROF_LEVEL_DEBUG:
|
||||
return "DBG";
|
||||
default:
|
||||
return "LOG";
|
||||
switch (level) {
|
||||
case PROF_LEVEL_ERROR:
|
||||
return "ERR";
|
||||
case PROF_LEVEL_WARN:
|
||||
return "WRN";
|
||||
case PROF_LEVEL_INFO:
|
||||
return "INF";
|
||||
case PROF_LEVEL_DEBUG:
|
||||
return "DBG";
|
||||
default:
|
||||
return "LOG";
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
log_stderr_handler(void)
|
||||
{
|
||||
GString * const s = stderr_msg;
|
||||
char * const buf = stderr_buf;
|
||||
GString* const s = stderr_msg;
|
||||
char* const buf = stderr_buf;
|
||||
ssize_t size;
|
||||
int retry = 0;
|
||||
int i;
|
||||
@@ -835,7 +829,7 @@ log_stderr_init(log_level_t level)
|
||||
goto err_close;
|
||||
|
||||
rc = log_stderr_nonblock_set(stderr_pipe[0])
|
||||
?: log_stderr_nonblock_set(stderr_pipe[1]);
|
||||
?: log_stderr_nonblock_set(stderr_pipe[1]);
|
||||
if (rc != 0)
|
||||
goto err_close;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user