X-Git-Url: http://git.silcnet.org/gitweb/?p=silc.git;a=blobdiff_plain;f=apps%2Firssi%2Fsrc%2Fcore%2Fchat-commands.c;h=722d3df58955473c0c943e87429497123d94ee5b;hp=8b1b37389a0d3fde42589fe48e46d9e51aa95a44;hb=382d15d447b7a95390decfa783836ae4fe255b3d;hpb=d47a87b03b846e2333ef57b2c0d81f1644992964 diff --git a/apps/irssi/src/core/chat-commands.c b/apps/irssi/src/core/chat-commands.c index 8b1b3738..722d3df5 100644 --- a/apps/irssi/src/core/chat-commands.c +++ b/apps/irssi/src/core/chat-commands.c @@ -69,7 +69,7 @@ static SERVER_CONNECT_REC *get_server_connect(const char *data, int *plus_addr, g_hash_table_lookup(optlist, proto->chatnet); conn = server_create_conn(proto != NULL ? proto->id : -1, addr, atoi(portstr), chatnet, password, nick); - if (proto == NULL) + if (proto == NULL) proto = chat_protocol_find_id(conn->chat_type); if (proto->not_initialized) { @@ -80,17 +80,24 @@ static SERVER_CONNECT_REC *get_server_connect(const char *data, int *plus_addr, return NULL; } + if (strchr(addr, '/') != NULL) + conn->unix_socket = TRUE; + if (g_hash_table_lookup(optlist, "6") != NULL) conn->family = AF_INET6; else if (g_hash_table_lookup(optlist, "4") != NULL) conn->family = AF_INET; + if(g_hash_table_lookup(optlist, "ssl") != NULL) + conn->use_ssl = TRUE; + if (g_hash_table_lookup(optlist, "!") != NULL) conn->no_autojoin_channels = TRUE; if (g_hash_table_lookup(optlist, "noproxy") != NULL) g_free_and_null(conn->proxy); + *rawlog_file = g_strdup(g_hash_table_lookup(optlist, "rawlog")); host = g_hash_table_lookup(optlist, "host"); @@ -105,7 +112,8 @@ static SERVER_CONNECT_REC *get_server_connect(const char *data, int *plus_addr, return conn; } -/* SYNTAX: CONNECT [-4 | -6] [-ircnet ] [-host ] +/* SYNTAX: CONNECT [-4 | -6] [-ssl] [-noproxy] [-silcnet ] + [-host ] [-rawlog ]
| [ [ []]] */ static void cmd_connect(const char *data) { @@ -115,7 +123,7 @@ static void cmd_connect(const char *data) conn = get_server_connect(data, NULL, &rawlog_file); if (conn != NULL) { - server = CHAT_PROTOCOL(conn)->server_connect(conn); + server = server_connect(conn); server_connect_unref(conn); if (server != NULL && rawlog_file != NULL) @@ -206,7 +214,8 @@ static void sig_default_command_server(const char *data, SERVER_REC *server, signal_emit("command server connect", 3, data, server, item); } -/* SYNTAX: SERVER [-4 | -6] [-ircnet ] [-host ] +/* SYNTAX: SERVER [-4 | -6] [-ssl] [-noproxy] [-silcnet ] + [-host ] [-rawlog ] [+]
| [ [ []]] */ static void cmd_server_connect(const char *data, SERVER_REC *server) { @@ -221,7 +230,7 @@ static void cmd_server_connect(const char *data, SERVER_REC *server) if (conn != NULL) { if (!plus_addr) update_reconnection(conn, server); - server = CHAT_PROTOCOL(conn)->server_connect(conn); + server = server_connect(conn); server_connect_unref(conn); if (server != NULL && rawlog_file != NULL) @@ -242,8 +251,11 @@ static void cmd_disconnect(const char *data, SERVER_REC *server) if (!cmd_get_params(data, &free_arg, 2 | PARAM_FLAG_GETREST, &tag, &msg)) return; - if (*tag != '\0' && strcmp(tag, "*") != 0) + if (*tag != '\0' && strcmp(tag, "*") != 0) { server = server_find_tag(tag); + if (server == NULL) + server = server_find_lookup_tag(tag); + } if (server == NULL) cmd_param_error(CMDERR_NOT_CONNECTED); if (*msg == '\0') msg = (char *) settings_get_str("quit_message"); @@ -277,7 +289,6 @@ static void cmd_quit(const char *data) signal_emit("gui exit", 0); } -/* SYNTAX: JOIN [-invite] [-] [] */ static void cmd_join(const char *data, SERVER_REC *server) { GHashTable *optlist; @@ -308,7 +319,7 @@ static void cmd_join(const char *data, SERVER_REC *server) cmd_params_free(free_arg); } -/* SYNTAX: MSG [-] [-channel | -nick] */ +/* SYNTAX: MSG [-channel] */ static void cmd_msg(const char *data, SERVER_REC *server, WI_ITEM_REC *item) { GHashTable *optlist; @@ -324,7 +335,7 @@ static void cmd_msg(const char *data, SERVER_REC *server, WI_ITEM_REC *item) return; if (*target == '\0' || *msg == '\0') cmd_param_error(CMDERR_NOT_ENOUGH_PARAMS); - server = cmd_options_get_server("msg", optlist, SERVER(server)); + server = cmd_options_get_server("msg", optlist, server); if (server == NULL || !server->connected) cmd_param_error(CMDERR_NOT_CONNECTED); @@ -344,9 +355,8 @@ static void cmd_msg(const char *data, SERVER_REC *server, WI_ITEM_REC *item) target_type = IS_CHANNEL(item) ? SEND_TARGET_CHANNEL : SEND_TARGET_NICK; - target = item->name; - } - else if (g_hash_table_lookup(optlist, "channel") != NULL) + target = (char *) window_item_get_target(item); + } else if (g_hash_table_lookup(optlist, "channel") != NULL) target_type = SEND_TARGET_CHANNEL; else if (g_hash_table_lookup(optlist, "nick") != NULL) target_type = SEND_TARGET_NICK; @@ -434,7 +444,7 @@ void chat_commands_init(void) signal_add("default command server", (SIGNAL_FUNC) sig_default_command_server); - command_set_options("connect", "4 6 !! +host noproxy -rawlog"); + command_set_options("connect", "4 6 !! ssl +host noproxy -rawlog"); command_set_options("join", "invite"); command_set_options("msg", "channel nick"); }