diff --git a/src/plugins/relay/api/remote/relay-remote-network.h b/src/plugins/relay/api/remote/relay-remote-network.h index 7635beb63..d0defa87e 100644 --- a/src/plugins/relay/api/remote/relay-remote-network.h +++ b/src/plugins/relay/api/remote/relay-remote-network.h @@ -20,6 +20,9 @@ #ifndef WEECHAT_PLUGIN_RELAY_REMOTE_NETWORK_H #define WEECHAT_PLUGIN_RELAY_REMOTE_NETWORK_H +extern int relay_remote_network_send (struct t_relay_remote *remote, + enum t_relay_msg_type msg_type, + const char *data, int data_size); extern int relay_remote_network_connect (struct t_relay_remote *remote); extern void relay_remote_network_disconnect (struct t_relay_remote *remote); diff --git a/src/plugins/relay/relay-command.c b/src/plugins/relay/relay-command.c index 2da4f53a3..843d3d00f 100644 --- a/src/plugins/relay/relay-command.c +++ b/src/plugins/relay/relay-command.c @@ -591,6 +591,54 @@ relay_command_remote (const void *pointer, void *data, return WEECHAT_RC_OK; } + if (weechat_strcmp (argv[1], "send") == 0) + { + WEECHAT_COMMAND_MIN_ARGS(4, "send"); + ptr_remote = relay_remote_search (argv[2]); + if (!ptr_remote) + { + weechat_printf ( + NULL, + _("%s%s: remote \"%s\" not found for \"%s\" command"), + weechat_prefix ("error"), + RELAY_PLUGIN_NAME, + argv[2], + "remote send"); + return WEECHAT_RC_OK; + } + if (ptr_remote->status != RELAY_STATUS_CONNECTED) + { + weechat_printf ( + NULL, + _("%s%s: no connection to remote \"%s\""), + weechat_prefix ("error"), + RELAY_PLUGIN_NAME, + argv[2]); + return WEECHAT_RC_OK; + } + relay_remote_send (ptr_remote, argv_eol[3]); + return WEECHAT_RC_OK; + } + + if (weechat_strcmp (argv[1], "disconnect") == 0) + { + WEECHAT_COMMAND_MIN_ARGS(3, "disconnect"); + ptr_remote = relay_remote_search (argv[2]); + if (!ptr_remote) + { + weechat_printf ( + NULL, + _("%s%s: remote \"%s\" not found for \"%s\" command"), + weechat_prefix ("error"), + RELAY_PLUGIN_NAME, + argv[2], + "remote disconnect"); + return WEECHAT_RC_OK; + } + relay_remote_disconnect (ptr_remote); + return WEECHAT_RC_OK; + } + if (weechat_strcmp (argv[1], "rename") == 0) { WEECHAT_COMMAND_MIN_ARGS(4, "rename"); @@ -634,25 +682,6 @@ relay_command_remote (const void *pointer, void *data, WEECHAT_COMMAND_ERROR; } - if (weechat_strcmp (argv[1], "disconnect") == 0) - { - WEECHAT_COMMAND_MIN_ARGS(3, "disconnect"); - ptr_remote = relay_remote_search (argv[2]); - if (!ptr_remote) - { - weechat_printf ( - NULL, - _("%s%s: remote \"%s\" not found for \"%s\" command"), - weechat_prefix ("error"), - RELAY_PLUGIN_NAME, - argv[2], - "remote disconnect"); - return WEECHAT_RC_OK; - } - relay_remote_disconnect (ptr_remote); - return WEECHAT_RC_OK; - } - if (weechat_strcmp (argv[1], "del") == 0) { WEECHAT_COMMAND_MIN_ARGS(3, "del"); @@ -784,6 +813,7 @@ relay_command_init () N_("list|listfull []" " || add [-