mirror of
https://github.com/profanity-im/profanity.git
synced 2024-12-04 14:46:46 -05:00
Merge branch 'master' into plugins
This commit is contained in:
commit
d2c1ecfbf4
@ -397,7 +397,7 @@ xdg_get_data_home(void)
|
||||
}
|
||||
|
||||
char *
|
||||
generate_unique_id(char *prefix)
|
||||
create_unique_id(char *prefix)
|
||||
{
|
||||
static unsigned long unique_id;
|
||||
char *result = NULL;
|
||||
|
@ -99,7 +99,7 @@ resource_presence_t resource_presence_from_string(const char * const str);
|
||||
contact_presence_t contact_presence_from_resource_presence(resource_presence_t resource_presence);
|
||||
|
||||
char * p_sha1_hash(char *str);
|
||||
char * generate_unique_id(char *prefix);
|
||||
char * create_unique_id(char *prefix);
|
||||
|
||||
int cmp_win_num(gconstpointer a, gconstpointer b);
|
||||
int get_next_available_win_num(GList *used);
|
||||
|
@ -576,18 +576,18 @@ _free_room(ChatRoom *room)
|
||||
free(room->subject);
|
||||
free(room->password);
|
||||
if (room->roster != NULL) {
|
||||
g_hash_table_remove_all(room->roster);
|
||||
g_hash_table_destroy(room->roster);
|
||||
}
|
||||
if (room->nick_ac != NULL) {
|
||||
autocomplete_free(room->nick_ac);
|
||||
}
|
||||
if (room->nick_changes != NULL) {
|
||||
g_hash_table_remove_all(room->nick_changes);
|
||||
g_hash_table_destroy(room->nick_changes);
|
||||
}
|
||||
free(room);
|
||||
if (room->pending_broadcasts != NULL) {
|
||||
g_list_free_full(room->pending_broadcasts, free);
|
||||
}
|
||||
free(room);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -104,10 +104,12 @@ static void
|
||||
cb_write_fingerprints(void *opdata)
|
||||
{
|
||||
gcry_error_t err = 0;
|
||||
gchar *data_home = xdg_get_data_home();
|
||||
gchar *account_dir = str_replace(jid, "@", "_at_");
|
||||
|
||||
gchar *data_home = xdg_get_data_home();
|
||||
GString *basedir = g_string_new(data_home);
|
||||
free(data_home);
|
||||
|
||||
gchar *account_dir = str_replace(jid, "@", "_at_");
|
||||
g_string_append(basedir, "/profanity/otr/");
|
||||
g_string_append(basedir, account_dir);
|
||||
g_string_append(basedir, "/");
|
||||
@ -174,9 +176,10 @@ _otr_on_connect(ProfAccount *account)
|
||||
log_info("Loading OTR key for %s", jid);
|
||||
|
||||
gchar *data_home = xdg_get_data_home();
|
||||
gchar *account_dir = str_replace(jid, "@", "_at_");
|
||||
|
||||
GString *basedir = g_string_new(data_home);
|
||||
free(data_home);
|
||||
|
||||
gchar *account_dir = str_replace(jid, "@", "_at_");
|
||||
g_string_append(basedir, "/profanity/otr/");
|
||||
g_string_append(basedir, account_dir);
|
||||
g_string_append(basedir, "/");
|
||||
@ -256,9 +259,10 @@ _otr_keygen(ProfAccount *account)
|
||||
jid = strdup(account->jid);
|
||||
|
||||
gchar *data_home = xdg_get_data_home();
|
||||
gchar *account_dir = str_replace(jid, "@", "_at_");
|
||||
|
||||
GString *basedir = g_string_new(data_home);
|
||||
free(data_home);
|
||||
|
||||
gchar *account_dir = str_replace(jid, "@", "_at_");
|
||||
g_string_append(basedir, "/profanity/otr/");
|
||||
g_string_append(basedir, account_dir);
|
||||
g_string_append(basedir, "/");
|
||||
|
@ -154,11 +154,13 @@ wins_get_by_recipient(const char * const recipient)
|
||||
while (curr != NULL) {
|
||||
ProfWin *window = curr->data;
|
||||
if (g_strcmp0(window->from, recipient) == 0) {
|
||||
g_list_free(values);
|
||||
return window;
|
||||
}
|
||||
curr = g_list_next(curr);
|
||||
}
|
||||
|
||||
g_list_free(values);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -172,11 +174,13 @@ wins_get_num(ProfWin *window)
|
||||
gconstpointer num_p = curr->data;
|
||||
ProfWin *curr_win = g_hash_table_lookup(windows, num_p);
|
||||
if (g_strcmp0(curr_win->from, window->from) == 0) {
|
||||
g_list_free(keys);
|
||||
return GPOINTER_TO_INT(num_p);
|
||||
}
|
||||
curr = g_list_next(curr);
|
||||
}
|
||||
|
||||
g_list_free(keys);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -238,6 +242,7 @@ wins_new(const char * const from, win_type_t type)
|
||||
int cols = getmaxx(stdscr);
|
||||
ProfWin *new = win_create(from, cols, type);
|
||||
g_hash_table_insert(windows, GINT_TO_POINTER(result), new);
|
||||
g_list_free(keys);
|
||||
return new;
|
||||
}
|
||||
|
||||
|
@ -401,8 +401,9 @@ _send_bookmarks(void)
|
||||
|
||||
xmpp_stanza_t *iq = xmpp_stanza_new(ctx);
|
||||
xmpp_stanza_set_name(iq, STANZA_NAME_IQ);
|
||||
char *id = generate_unique_id("bookmarks_update");
|
||||
char *id = create_unique_id("bookmarks_update");
|
||||
xmpp_stanza_set_id(iq, id);
|
||||
free(id);
|
||||
xmpp_stanza_set_type(iq, STANZA_TYPE_SET);
|
||||
|
||||
xmpp_stanza_t *query = xmpp_stanza_new(ctx);
|
||||
@ -479,4 +480,4 @@ bookmark_init_module(void)
|
||||
bookmark_get_list = _bookmark_get_list;
|
||||
bookmark_find = _bookmark_find;
|
||||
bookmark_autocomplete_reset = _bookmark_autocomplete_reset;
|
||||
}
|
||||
}
|
||||
|
@ -238,6 +238,7 @@ caps_create_query_response_stanza(xmpp_ctx_t * const ctx)
|
||||
#endif
|
||||
}
|
||||
xmpp_stanza_set_attribute(identity, "name", name_str->str);
|
||||
g_string_free(name_str, TRUE);
|
||||
|
||||
xmpp_stanza_t *feature_caps = xmpp_stanza_new(ctx);
|
||||
xmpp_stanza_set_name(feature_caps, STANZA_NAME_FEATURE);
|
||||
|
@ -118,7 +118,13 @@ _jabber_connect_with_account(const ProfAccount * const account)
|
||||
log_info("Connecting using account: %s", account->name);
|
||||
|
||||
// save account name and password for reconnect
|
||||
if (saved_account.name != NULL) {
|
||||
free(saved_account.name);
|
||||
}
|
||||
saved_account.name = strdup(account->name);
|
||||
if (saved_account.passwd != NULL) {
|
||||
free(saved_account.passwd);
|
||||
}
|
||||
saved_account.passwd = strdup(account->password);
|
||||
|
||||
// connect with fulljid
|
||||
@ -203,7 +209,11 @@ _jabber_disconnect(void)
|
||||
static void
|
||||
_jabber_shutdown(void)
|
||||
{
|
||||
_connection_free_saved_account();
|
||||
_connection_free_saved_details();
|
||||
_connection_free_session_data();
|
||||
xmpp_shutdown();
|
||||
free(jabber_conn.log);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -353,6 +363,9 @@ _jabber_connect(const char * const fulljid, const char * const passwd,
|
||||
jid_destroy(jid);
|
||||
|
||||
log_info("Connecting as %s", fulljid);
|
||||
if (jabber_conn.log != NULL) {
|
||||
free(jabber_conn.log);
|
||||
}
|
||||
jabber_conn.log = _xmpp_get_file_logger();
|
||||
|
||||
if (jabber_conn.conn != NULL) {
|
||||
|
@ -116,7 +116,7 @@ _presence_subscription(const char * const jid, const jabber_subscr_t action)
|
||||
}
|
||||
|
||||
xmpp_stanza_t *presence = xmpp_stanza_new(ctx);
|
||||
char *id = generate_unique_id("sub");
|
||||
char *id = create_unique_id("sub");
|
||||
xmpp_stanza_set_id(presence, id);
|
||||
xmpp_stanza_set_name(presence, STANZA_NAME_PRESENCE);
|
||||
xmpp_stanza_set_type(presence, type);
|
||||
@ -125,6 +125,7 @@ _presence_subscription(const char * const jid, const jabber_subscr_t action)
|
||||
xmpp_stanza_release(presence);
|
||||
|
||||
jid_destroy(jidp);
|
||||
free(id);
|
||||
}
|
||||
|
||||
static GSList *
|
||||
@ -207,7 +208,7 @@ _presence_update(const resource_presence_t presence_type, const char * const msg
|
||||
connection_set_priority(pri);
|
||||
|
||||
xmpp_stanza_t *presence = stanza_create_presence(ctx);
|
||||
char *id = generate_unique_id("presence");
|
||||
char *id = create_unique_id("presence");
|
||||
xmpp_stanza_set_id(presence, id);
|
||||
stanza_attach_show(ctx, presence, show);
|
||||
stanza_attach_status(ctx, presence, msg);
|
||||
@ -224,6 +225,7 @@ _presence_update(const resource_presence_t presence_type, const char * const msg
|
||||
last = STANZA_TEXT_ONLINE;
|
||||
}
|
||||
accounts_set_last_presence(jabber_get_account_name(), last);
|
||||
free(id);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -545,6 +547,7 @@ _available_handler(xmpp_conn_t * const conn,
|
||||
if (priority_str != NULL) {
|
||||
priority = atoi(priority_str);
|
||||
}
|
||||
free(priority_str);
|
||||
}
|
||||
|
||||
resource_presence_t presence = resource_presence_from_string(show_str);
|
||||
@ -622,9 +625,10 @@ _get_caps_key(xmpp_stanza_t * const stanza)
|
||||
if ((hash_type != NULL) && (strcmp(hash_type, "sha-1") == 0)) {
|
||||
log_debug("Hash type %s supported.", hash_type);
|
||||
caps_key = strdup(node);
|
||||
id = generate_unique_id("caps");
|
||||
id = create_unique_id("caps");
|
||||
|
||||
_send_caps_request(node, caps_key, id, from);
|
||||
free(id);
|
||||
|
||||
// unsupported hash or legacy capabilities
|
||||
} else {
|
||||
|
@ -127,7 +127,7 @@ _roster_send_add_to_group(const char * const group, PContact contact)
|
||||
|
||||
new_groups = g_slist_append(new_groups, strdup(group));
|
||||
// add an id handler to handle the response
|
||||
char *unique_id = generate_unique_id(NULL);
|
||||
char *unique_id = create_unique_id(NULL);
|
||||
GroupData *data = malloc(sizeof(GroupData));
|
||||
data->group = strdup(group);
|
||||
if (p_contact_name(contact) != NULL) {
|
||||
@ -176,7 +176,7 @@ _roster_send_remove_from_group(const char * const group, PContact contact)
|
||||
xmpp_ctx_t * const ctx = connection_get_ctx();
|
||||
|
||||
// add an id handler to handle the response
|
||||
char *unique_id = generate_unique_id(NULL);
|
||||
char *unique_id = create_unique_id(NULL);
|
||||
GroupData *data = malloc(sizeof(GroupData));
|
||||
data->group = strdup(group);
|
||||
if (p_contact_name(contact) != NULL) {
|
||||
|
@ -100,7 +100,7 @@ stanza_create_bookmarks_pubsub_add(xmpp_ctx_t *ctx, const char * const jid,
|
||||
{
|
||||
xmpp_stanza_t *stanza = xmpp_stanza_new(ctx);
|
||||
xmpp_stanza_set_name(stanza, STANZA_NAME_IQ);
|
||||
char *id = generate_unique_id("bookmark_add");
|
||||
char *id = create_unique_id("bookmark_add");
|
||||
xmpp_stanza_set_id(stanza, id);
|
||||
xmpp_stanza_set_type(stanza, STANZA_TYPE_SET);
|
||||
|
||||
@ -196,8 +196,9 @@ stanza_create_chat_state(xmpp_ctx_t *ctx, const char * const recipient,
|
||||
xmpp_stanza_set_name(msg, STANZA_NAME_MESSAGE);
|
||||
xmpp_stanza_set_type(msg, STANZA_TYPE_CHAT);
|
||||
xmpp_stanza_set_attribute(msg, STANZA_ATTR_TO, recipient);
|
||||
char *id = generate_unique_id(NULL);
|
||||
char *id = create_unique_id(NULL);
|
||||
xmpp_stanza_set_id(msg, id);
|
||||
free(id);
|
||||
|
||||
chat_state = xmpp_stanza_new(ctx);
|
||||
xmpp_stanza_set_name(chat_state, state);
|
||||
@ -219,8 +220,9 @@ stanza_create_message(xmpp_ctx_t *ctx, const char * const recipient,
|
||||
xmpp_stanza_set_name(msg, STANZA_NAME_MESSAGE);
|
||||
xmpp_stanza_set_type(msg, type);
|
||||
xmpp_stanza_set_attribute(msg, STANZA_ATTR_TO, recipient);
|
||||
char *id = generate_unique_id(NULL);
|
||||
char *id = create_unique_id(NULL);
|
||||
xmpp_stanza_set_id(msg, id);
|
||||
free(id);
|
||||
|
||||
body = xmpp_stanza_new(ctx);
|
||||
xmpp_stanza_set_name(body, STANZA_NAME_BODY);
|
||||
@ -322,8 +324,9 @@ stanza_create_invite(xmpp_ctx_t *ctx, const char * const room,
|
||||
message = xmpp_stanza_new(ctx);
|
||||
xmpp_stanza_set_name(message, STANZA_NAME_MESSAGE);
|
||||
xmpp_stanza_set_attribute(message, STANZA_ATTR_TO, contact);
|
||||
char *id = generate_unique_id(NULL);
|
||||
char *id = create_unique_id(NULL);
|
||||
xmpp_stanza_set_id(message, id);
|
||||
free(id);
|
||||
|
||||
x = xmpp_stanza_new(ctx);
|
||||
xmpp_stanza_set_name(x, STANZA_NAME_X);
|
||||
@ -347,8 +350,9 @@ stanza_create_room_join_presence(xmpp_ctx_t * const ctx,
|
||||
xmpp_stanza_t *presence = xmpp_stanza_new(ctx);
|
||||
xmpp_stanza_set_name(presence, STANZA_NAME_PRESENCE);
|
||||
xmpp_stanza_set_attribute(presence, STANZA_ATTR_TO, full_room_jid);
|
||||
char *id = generate_unique_id("join");
|
||||
char *id = create_unique_id("join");
|
||||
xmpp_stanza_set_id(presence, id);
|
||||
free(id);
|
||||
|
||||
xmpp_stanza_t *x = xmpp_stanza_new(ctx);
|
||||
xmpp_stanza_set_name(x, STANZA_NAME_X);
|
||||
@ -359,7 +363,7 @@ stanza_create_room_join_presence(xmpp_ctx_t * const ctx,
|
||||
xmpp_stanza_t *pass = xmpp_stanza_new(ctx);
|
||||
xmpp_stanza_set_name(pass, "password");
|
||||
xmpp_stanza_t *text = xmpp_stanza_new(ctx);
|
||||
xmpp_stanza_set_text(text, strdup(passwd));
|
||||
xmpp_stanza_set_text(text, passwd);
|
||||
xmpp_stanza_add_child(pass, text);
|
||||
xmpp_stanza_add_child(x, pass);
|
||||
xmpp_stanza_release(text);
|
||||
@ -377,8 +381,9 @@ stanza_create_room_newnick_presence(xmpp_ctx_t *ctx,
|
||||
const char * const full_room_jid)
|
||||
{
|
||||
xmpp_stanza_t *presence = xmpp_stanza_new(ctx);
|
||||
char *id = generate_unique_id("sub");
|
||||
char *id = create_unique_id("sub");
|
||||
xmpp_stanza_set_id(presence, id);
|
||||
free(id);
|
||||
xmpp_stanza_set_name(presence, STANZA_NAME_PRESENCE);
|
||||
xmpp_stanza_set_attribute(presence, STANZA_ATTR_TO, full_room_jid);
|
||||
|
||||
@ -397,8 +402,9 @@ stanza_create_room_leave_presence(xmpp_ctx_t *ctx, const char * const room,
|
||||
xmpp_stanza_set_name(presence, STANZA_NAME_PRESENCE);
|
||||
xmpp_stanza_set_type(presence, STANZA_TYPE_UNAVAILABLE);
|
||||
xmpp_stanza_set_attribute(presence, STANZA_ATTR_TO, full_jid->str);
|
||||
char *id = generate_unique_id("leave");
|
||||
char *id = create_unique_id("leave");
|
||||
xmpp_stanza_set_id(presence, id);
|
||||
free(id);
|
||||
|
||||
g_string_free(full_jid, TRUE);
|
||||
|
||||
@ -510,8 +516,9 @@ stanza_create_ping_iq(xmpp_ctx_t *ctx)
|
||||
xmpp_stanza_t *iq = xmpp_stanza_new(ctx);
|
||||
xmpp_stanza_set_name(iq, STANZA_NAME_IQ);
|
||||
xmpp_stanza_set_type(iq, STANZA_TYPE_GET);
|
||||
char *id = generate_unique_id("ping");
|
||||
char *id = create_unique_id("ping");
|
||||
xmpp_stanza_set_id(iq, id);
|
||||
free(id);
|
||||
|
||||
xmpp_stanza_t *ping = xmpp_stanza_new(ctx);
|
||||
xmpp_stanza_set_name(ping, STANZA_NAME_PING);
|
||||
|
Loading…
Reference in New Issue
Block a user