mirror of
https://github.com/weechat/weechat.git
synced 2026-06-30 14:56:39 +02:00
Fix dcc chat buffer name in xfer plugin (use irc server in name) (bug #29925)
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
WeeChat ChangeLog
|
||||
=================
|
||||
Sébastien Helleu <flashcode@flashtux.org>
|
||||
v0.3.4-dev, 2010-11-10
|
||||
v0.3.4-dev, 2010-11-12
|
||||
|
||||
|
||||
Version 0.3.4 (under dev!)
|
||||
@@ -67,6 +67,7 @@ Version 0.3.4 (under dev!)
|
||||
* python: add info "python2_bin" (path to python 2.x interpreter)
|
||||
* lua: fix crash when unloading script
|
||||
* ruby: fix compilation with Ruby 1.9.2 (patch #7316)
|
||||
* xfer: fix dcc chat buffer name (use irc server in name) (bug #29925)
|
||||
* xfer: fix dcc file transfer for large files (more than 4 GB) on 32-bit systems
|
||||
(bug #31531)
|
||||
* xfer: fix bug at end of file sent, sometimes transfer is still active although
|
||||
|
||||
@@ -1018,7 +1018,7 @@ irc_command_dcc (void *data, struct t_gui_buffer *buffer, int argc,
|
||||
unsigned long address;
|
||||
struct t_infolist *infolist;
|
||||
struct t_infolist_item *item;
|
||||
char plugin_id[128], str_address[128], charset_modifier[256];
|
||||
char str_address[128], charset_modifier[256];
|
||||
|
||||
IRC_BUFFER_GET_SERVER_CHANNEL(buffer);
|
||||
IRC_COMMAND_CHECK_SERVER("dcc", 1);
|
||||
@@ -1049,9 +1049,7 @@ irc_command_dcc (void *data, struct t_gui_buffer *buffer, int argc,
|
||||
if (item)
|
||||
{
|
||||
weechat_infolist_new_var_string (item, "plugin_name", weechat_plugin->name);
|
||||
snprintf (plugin_id, sizeof (plugin_id),
|
||||
"%lx", (long unsigned int)ptr_server);
|
||||
weechat_infolist_new_var_string (item, "plugin_id", plugin_id);
|
||||
weechat_infolist_new_var_string (item, "plugin_id", ptr_server->name);
|
||||
weechat_infolist_new_var_string (item, "type", "file_send");
|
||||
weechat_infolist_new_var_string (item, "protocol", "dcc");
|
||||
weechat_infolist_new_var_string (item, "remote_nick", argv[2]);
|
||||
@@ -1082,9 +1080,7 @@ irc_command_dcc (void *data, struct t_gui_buffer *buffer, int argc,
|
||||
if (item)
|
||||
{
|
||||
weechat_infolist_new_var_string (item, "plugin_name", weechat_plugin->name);
|
||||
snprintf (plugin_id, sizeof (plugin_id),
|
||||
"%lx", (long unsigned int)ptr_server);
|
||||
weechat_infolist_new_var_string (item, "plugin_id", plugin_id);
|
||||
weechat_infolist_new_var_string (item, "plugin_id", ptr_server->name);
|
||||
weechat_infolist_new_var_string (item, "type", "chat_send");
|
||||
weechat_infolist_new_var_string (item, "remote_nick", argv[2]);
|
||||
weechat_infolist_new_var_string (item, "local_nick", ptr_server->nick);
|
||||
|
||||
@@ -407,7 +407,7 @@ irc_ctcp_recv_dcc (struct t_irc_server *server, const char *nick,
|
||||
char *pos_start_resume, *filename;
|
||||
struct t_infolist *infolist;
|
||||
struct t_infolist_item *item;
|
||||
char plugin_id[128], charset_modifier[256];
|
||||
char charset_modifier[256];
|
||||
|
||||
if (!arguments || !arguments[0])
|
||||
return;
|
||||
@@ -509,9 +509,7 @@ irc_ctcp_recv_dcc (struct t_irc_server *server, const char *nick,
|
||||
if (item)
|
||||
{
|
||||
weechat_infolist_new_var_string (item, "plugin_name", weechat_plugin->name);
|
||||
snprintf (plugin_id, sizeof (plugin_id),
|
||||
"%lx", (long unsigned int)server);
|
||||
weechat_infolist_new_var_string (item, "plugin_id", plugin_id);
|
||||
weechat_infolist_new_var_string (item, "plugin_id", server->name);
|
||||
weechat_infolist_new_var_string (item, "type", "file_recv");
|
||||
weechat_infolist_new_var_string (item, "protocol", "dcc");
|
||||
weechat_infolist_new_var_string (item, "remote_nick", nick);
|
||||
@@ -614,9 +612,7 @@ irc_ctcp_recv_dcc (struct t_irc_server *server, const char *nick,
|
||||
if (item)
|
||||
{
|
||||
weechat_infolist_new_var_string (item, "plugin_name", weechat_plugin->name);
|
||||
snprintf (plugin_id, sizeof (plugin_id),
|
||||
"%lx", (long unsigned int)server);
|
||||
weechat_infolist_new_var_string (item, "plugin_id", plugin_id);
|
||||
weechat_infolist_new_var_string (item, "plugin_id", server->name);
|
||||
weechat_infolist_new_var_string (item, "type", "file_recv");
|
||||
weechat_infolist_new_var_string (item, "filename",
|
||||
(filename) ? filename : pos_file);
|
||||
@@ -713,9 +709,7 @@ irc_ctcp_recv_dcc (struct t_irc_server *server, const char *nick,
|
||||
if (item)
|
||||
{
|
||||
weechat_infolist_new_var_string (item, "plugin_name", weechat_plugin->name);
|
||||
snprintf (plugin_id, sizeof (plugin_id),
|
||||
"%lx", (long unsigned int)server);
|
||||
weechat_infolist_new_var_string (item, "plugin_id", plugin_id);
|
||||
weechat_infolist_new_var_string (item, "plugin_id", server->name);
|
||||
weechat_infolist_new_var_string (item, "type", "file_recv");
|
||||
weechat_infolist_new_var_string (item, "filename",
|
||||
(filename) ? filename : pos_file);
|
||||
@@ -822,9 +816,7 @@ irc_ctcp_recv_dcc (struct t_irc_server *server, const char *nick,
|
||||
if (item)
|
||||
{
|
||||
weechat_infolist_new_var_string (item, "plugin_name", weechat_plugin->name);
|
||||
snprintf (plugin_id, sizeof (plugin_id),
|
||||
"%lx", (long unsigned int)server);
|
||||
weechat_infolist_new_var_string (item, "plugin_id", plugin_id);
|
||||
weechat_infolist_new_var_string (item, "plugin_id", server->name);
|
||||
weechat_infolist_new_var_string (item, "type", "chat_recv");
|
||||
weechat_infolist_new_var_string (item, "remote_nick", nick);
|
||||
weechat_infolist_new_var_string (item, "local_nick", server->nick);
|
||||
|
||||
@@ -3846,8 +3846,7 @@ irc_server_xfer_send_ready_cb (void *data, const char *signal,
|
||||
const char *type_data, void *signal_data)
|
||||
{
|
||||
struct t_infolist *infolist;
|
||||
struct t_irc_server *server, *ptr_server;
|
||||
long unsigned int value;
|
||||
struct t_irc_server *ptr_server;
|
||||
const char *plugin_name, *plugin_id, *type, *filename;
|
||||
int spaces_in_name;
|
||||
|
||||
@@ -3864,14 +3863,7 @@ irc_server_xfer_send_ready_cb (void *data, const char *signal,
|
||||
plugin_id = weechat_infolist_string (infolist, "plugin_id");
|
||||
if (plugin_name && (strcmp (plugin_name, IRC_PLUGIN_NAME) == 0) && plugin_id)
|
||||
{
|
||||
sscanf (plugin_id, "%lx", &value);
|
||||
server = (struct t_irc_server *)value;
|
||||
for (ptr_server = irc_servers; ptr_server;
|
||||
ptr_server = ptr_server->next_server)
|
||||
{
|
||||
if (ptr_server == server)
|
||||
break;
|
||||
}
|
||||
ptr_server = irc_server_search (plugin_id);
|
||||
if (ptr_server)
|
||||
{
|
||||
type = weechat_infolist_string (infolist, "type");
|
||||
@@ -3881,7 +3873,7 @@ irc_server_xfer_send_ready_cb (void *data, const char *signal,
|
||||
{
|
||||
filename = weechat_infolist_string (infolist, "filename");
|
||||
spaces_in_name = (strchr (filename, ' ') != NULL);
|
||||
irc_server_sendf (server,
|
||||
irc_server_sendf (ptr_server,
|
||||
IRC_SERVER_SEND_OUTQ_PRIO_HIGH, NULL,
|
||||
"PRIVMSG %s :\01DCC SEND %s%s%s "
|
||||
"%s %d %s\01",
|
||||
@@ -3895,7 +3887,7 @@ irc_server_xfer_send_ready_cb (void *data, const char *signal,
|
||||
}
|
||||
else if (strcmp (type, "chat_send") == 0)
|
||||
{
|
||||
irc_server_sendf (server,
|
||||
irc_server_sendf (ptr_server,
|
||||
IRC_SERVER_SEND_OUTQ_PRIO_HIGH, NULL,
|
||||
"PRIVMSG %s :\01DCC CHAT chat %s %d\01",
|
||||
weechat_infolist_string (infolist, "remote_nick"),
|
||||
@@ -3925,8 +3917,7 @@ irc_server_xfer_resume_ready_cb (void *data, const char *signal,
|
||||
const char *type_data, void *signal_data)
|
||||
{
|
||||
struct t_infolist *infolist;
|
||||
struct t_irc_server *server, *ptr_server;
|
||||
long unsigned int value;
|
||||
struct t_irc_server *ptr_server;
|
||||
const char *plugin_name, *plugin_id, *filename;
|
||||
int spaces_in_name;
|
||||
|
||||
@@ -3943,19 +3934,13 @@ irc_server_xfer_resume_ready_cb (void *data, const char *signal,
|
||||
plugin_id = weechat_infolist_string (infolist, "plugin_id");
|
||||
if (plugin_name && (strcmp (plugin_name, IRC_PLUGIN_NAME) == 0) && plugin_id)
|
||||
{
|
||||
sscanf (plugin_id, "%lx", &value);
|
||||
server = (struct t_irc_server *)value;
|
||||
for (ptr_server = irc_servers; ptr_server;
|
||||
ptr_server = ptr_server->next_server)
|
||||
{
|
||||
if (ptr_server == server)
|
||||
break;
|
||||
}
|
||||
ptr_server = irc_server_search (plugin_id);
|
||||
if (ptr_server)
|
||||
{
|
||||
filename = weechat_infolist_string (infolist, "filename");
|
||||
spaces_in_name = (strchr (filename, ' ') != NULL);
|
||||
irc_server_sendf (server, IRC_SERVER_SEND_OUTQ_PRIO_HIGH, NULL,
|
||||
irc_server_sendf (ptr_server,
|
||||
IRC_SERVER_SEND_OUTQ_PRIO_HIGH, NULL,
|
||||
"PRIVMSG %s :\01DCC RESUME %s%s%s %d %s\01",
|
||||
weechat_infolist_string (infolist, "remote_nick"),
|
||||
(spaces_in_name) ? "\"" : "",
|
||||
@@ -3986,8 +3971,7 @@ irc_server_xfer_send_accept_resume_cb (void *data, const char *signal,
|
||||
void *signal_data)
|
||||
{
|
||||
struct t_infolist *infolist;
|
||||
struct t_irc_server *server, *ptr_server;
|
||||
long unsigned int value;
|
||||
struct t_irc_server *ptr_server;
|
||||
const char *plugin_name, *plugin_id, *filename;
|
||||
int spaces_in_name;
|
||||
|
||||
@@ -4004,19 +3988,13 @@ irc_server_xfer_send_accept_resume_cb (void *data, const char *signal,
|
||||
plugin_id = weechat_infolist_string (infolist, "plugin_id");
|
||||
if (plugin_name && (strcmp (plugin_name, IRC_PLUGIN_NAME) == 0) && plugin_id)
|
||||
{
|
||||
sscanf (plugin_id, "%lx", &value);
|
||||
server = (struct t_irc_server *)value;
|
||||
for (ptr_server = irc_servers; ptr_server;
|
||||
ptr_server = ptr_server->next_server)
|
||||
{
|
||||
if (ptr_server == server)
|
||||
break;
|
||||
}
|
||||
ptr_server = irc_server_search (plugin_id);
|
||||
if (ptr_server)
|
||||
{
|
||||
filename = weechat_infolist_string (infolist, "filename");
|
||||
spaces_in_name = (strchr (filename, ' ') != NULL);
|
||||
irc_server_sendf (server, IRC_SERVER_SEND_OUTQ_PRIO_HIGH, NULL,
|
||||
irc_server_sendf (ptr_server,
|
||||
IRC_SERVER_SEND_OUTQ_PRIO_HIGH, NULL,
|
||||
"PRIVMSG %s :\01DCC ACCEPT %s%s%s %d %s\01",
|
||||
weechat_infolist_string (infolist, "remote_nick"),
|
||||
(spaces_in_name) ? "\"" : "",
|
||||
|
||||
@@ -316,12 +316,13 @@ xfer_chat_open_buffer (struct t_xfer *xfer)
|
||||
|
||||
buffer_created = 0;
|
||||
|
||||
length = strlen (xfer->plugin_name) + 8 + strlen (xfer->remote_nick) + 1;
|
||||
length = strlen (xfer->plugin_name) + 8 + strlen (xfer->plugin_id) + 1
|
||||
+ strlen (xfer->remote_nick) + 1;
|
||||
name = malloc (length);
|
||||
if (name)
|
||||
{
|
||||
snprintf (name, length, "%s_dcc_%s",
|
||||
xfer->plugin_name, xfer->remote_nick);
|
||||
snprintf (name, length, "%s_dcc.%s.%s",
|
||||
xfer->plugin_name, xfer->plugin_id, xfer->remote_nick);
|
||||
xfer->buffer = weechat_buffer_search (XFER_PLUGIN_NAME, name);
|
||||
if (!xfer->buffer)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user