mirror of
https://git.jabber.space/devs/cproof.git
synced 2026-07-19 21:56:21 +00:00
Merge branch 'master' into pgp
This commit is contained in:
@@ -321,20 +321,21 @@ static struct cmd_t command_defs[] =
|
||||
NULL } } },
|
||||
|
||||
{ "/join",
|
||||
cmd_join, parse_args, 1, 5, NULL,
|
||||
{ "/join room[@server] [nick value] [password value]", "Join a chat room.",
|
||||
{ "/join room[@server] [nick value] [password value]",
|
||||
"-------------------------------------------------",
|
||||
cmd_join, parse_args, 0, 5, NULL,
|
||||
{ "/join [room] [nick value] [password value]", "Join a chat room.",
|
||||
{ "/join [room] [nick value] [password value]",
|
||||
"-----------------------------------------",
|
||||
"Join a chat room at the conference server.",
|
||||
"",
|
||||
"room : Bare room JID, the chat server is determined by the 'muc.service' account property, 'conference.<domainpart>' by default.",
|
||||
"room@server : Full room JID.",
|
||||
"room : Bare room JID (the chat server is determined by the 'muc.service' account property) or full room jid."
|
||||
"nick value : Nickname to use in the room",
|
||||
"password value : Password if the room requires it.",
|
||||
"",
|
||||
"If no room is supplied, a generated name will be used with the format private-chat-[UUID].",
|
||||
"If no nickname is specified the account preference 'muc.nick' will be used which by default is the localpart of your JID.",
|
||||
"If the room doesn't exist, and the server allows it, a new one will be created.",
|
||||
"",
|
||||
"Example: /join",
|
||||
"Example: /join jdev@conference.jabber.org",
|
||||
"Example: /join jdev@conference.jabber.org nick mynick",
|
||||
"Example: /join private@conference.jabber.org nick mynick password mypassword",
|
||||
|
||||
@@ -38,6 +38,7 @@
|
||||
#include <stdlib.h>
|
||||
#include <errno.h>
|
||||
#include <assert.h>
|
||||
#include <uuid/uuid.h>
|
||||
#include <glib.h>
|
||||
|
||||
#include "chat_session.h"
|
||||
@@ -2081,8 +2082,24 @@ cmd_join(gchar **args, struct cmd_help_t help)
|
||||
}
|
||||
|
||||
if (args[0] == NULL) {
|
||||
cons_show("Usage: %s", help.usage);
|
||||
cons_show("");
|
||||
uuid_t uuid;
|
||||
uuid_generate(uuid);
|
||||
char *uuid_str = malloc(sizeof(char) * 37);
|
||||
uuid_unparse_lower(uuid, uuid_str);
|
||||
|
||||
char *account_name = jabber_get_account_name();
|
||||
ProfAccount *account = accounts_get_account(account_name);
|
||||
|
||||
GString *room_str = g_string_new("");
|
||||
g_string_append_printf(room_str, "private-chat-%s@%s", uuid_str, account->muc_service);
|
||||
|
||||
presence_join_room(room_str->str, account->muc_nick, NULL);
|
||||
muc_join(room_str->str, account->muc_nick, NULL, FALSE);
|
||||
|
||||
g_string_free(room_str, TRUE);
|
||||
free(uuid_str);
|
||||
account_free(account);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user