Fix logging hostname of queries
- Move query topic setting from frontend (where its too late) - Respect chanopts for logging hostname - Open query logfile *after* chanopts loaded
This commit is contained in:
parent
dc9a7d3a59
commit
60fa7efbc8
|
@ -41,6 +41,7 @@
|
|||
#include "chanopt.h"
|
||||
#include "ignore.h"
|
||||
#include "hexchat-plugin.h"
|
||||
#include "inbound.h"
|
||||
#include "plugin.h"
|
||||
#include "plugin-identd.h"
|
||||
#include "plugin-timer.h"
|
||||
|
@ -491,7 +492,6 @@ new_ircwindow (server *serv, char *name, int type, int focus)
|
|||
break;
|
||||
case SESS_DIALOG:
|
||||
sess = session_new (serv, name, type, focus);
|
||||
log_open_or_close (sess);
|
||||
break;
|
||||
default:
|
||||
/* case SESS_CHANNEL:
|
||||
|
@ -506,6 +506,16 @@ new_ircwindow (server *serv, char *name, int type, int focus)
|
|||
scrollback_load (sess);
|
||||
if (sess->scrollwritten && sess->scrollback_replay_marklast)
|
||||
sess->scrollback_replay_marklast (sess);
|
||||
if (type == SESS_DIALOG)
|
||||
{
|
||||
struct User *user;
|
||||
|
||||
log_open_or_close (sess);
|
||||
|
||||
user = userlist_find_global (serv, name);
|
||||
if (user && user->hostname)
|
||||
set_topic (sess, user->hostname, user->hostname);
|
||||
}
|
||||
plugin_emit_dummy_print (sess, "Open Context");
|
||||
|
||||
return sess;
|
||||
|
|
|
@ -81,6 +81,15 @@ clear_channel (session *sess)
|
|||
void
|
||||
set_topic (session *sess, char *topic, char *stripped_topic)
|
||||
{
|
||||
/* The topic of dialogs are the users hostname which is logged is new */
|
||||
if (sess->type == SESS_DIALOG && (!sess->topic || strcmp(sess->topic, stripped_topic))
|
||||
&& sess->logfd != -1)
|
||||
{
|
||||
char tbuf[1024];
|
||||
g_snprintf (tbuf, sizeof (tbuf), "[%s has address %s]\n", sess->channel, stripped_topic);
|
||||
write (sess->logfd, tbuf, strlen (tbuf));
|
||||
}
|
||||
|
||||
g_free (sess->topic);
|
||||
sess->topic = g_strdup (stripped_topic);
|
||||
fe_set_topic (sess, topic, stripped_topic);
|
||||
|
@ -179,16 +188,7 @@ inbound_privmsg (server *serv, char *from, char *ip, char *text, int id,
|
|||
}
|
||||
|
||||
if (ip && ip[0])
|
||||
{
|
||||
if (prefs.hex_irc_logging && sess->logfd != -1 &&
|
||||
(!sess->topic || strcmp(sess->topic, ip)))
|
||||
{
|
||||
char tbuf[1024];
|
||||
g_snprintf (tbuf, sizeof (tbuf), "[%s has address %s]\n", from, ip);
|
||||
write (sess->logfd, tbuf, strlen (tbuf));
|
||||
}
|
||||
set_topic (sess, ip, ip);
|
||||
}
|
||||
inbound_chanmsg (serv, NULL, NULL, from, text, FALSE, id, tags_data);
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -3508,7 +3508,6 @@ mg_changui_new (session *sess, restore_gui *res, int tab, int focus)
|
|||
{
|
||||
int first_run = FALSE;
|
||||
session_gui *gui;
|
||||
struct User *user = NULL;
|
||||
|
||||
if (res == NULL)
|
||||
{
|
||||
|
@ -3522,9 +3521,6 @@ mg_changui_new (session *sess, restore_gui *res, int tab, int focus)
|
|||
sess->server->front_session = sess;
|
||||
}
|
||||
|
||||
if (!is_channel (sess->server, sess->channel))
|
||||
user = userlist_find_global (sess->server, sess->channel);
|
||||
|
||||
if (!tab)
|
||||
{
|
||||
gui = g_new0 (session_gui, 1);
|
||||
|
@ -3532,8 +3528,6 @@ mg_changui_new (session *sess, restore_gui *res, int tab, int focus)
|
|||
sess->gui = gui;
|
||||
mg_create_topwindow (sess);
|
||||
fe_set_title (sess);
|
||||
if (user && user->hostname)
|
||||
set_topic (sess, user->hostname, user->hostname);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -3553,9 +3547,6 @@ mg_changui_new (session *sess, restore_gui *res, int tab, int focus)
|
|||
gui->is_tab = TRUE;
|
||||
}
|
||||
|
||||
if (user && user->hostname)
|
||||
set_topic (sess, user->hostname, user->hostname);
|
||||
|
||||
mg_add_chan (sess);
|
||||
|
||||
if (first_run || (prefs.hex_gui_tab_newtofront == FOCUS_NEW_ONLY_ASKED && focus)
|
||||
|
|
Loading…
Reference in New Issue