mirror of
https://git.jabber.space/devs/cproof.git
synced 2026-07-30 14:26:22 +00:00
refactor: make Jid use glib functions
This commit is contained in:
@@ -385,7 +385,7 @@ cmd_connect(ProfWin* window, const char* const command, gchar** args)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
auto_char char* jid = NULL;
|
auto_gchar gchar* jid = NULL;
|
||||||
auto_char char* user = strdup(user_orig);
|
auto_char char* user = strdup(user_orig);
|
||||||
|
|
||||||
// connect with account
|
// connect with account
|
||||||
|
|||||||
@@ -144,13 +144,13 @@ account_new(gchar* name, gchar* jid, gchar* password, gchar* eval_password, gboo
|
|||||||
return new_account;
|
return new_account;
|
||||||
}
|
}
|
||||||
|
|
||||||
char*
|
gchar*
|
||||||
account_create_connect_jid(ProfAccount* account)
|
account_create_connect_jid(ProfAccount* account)
|
||||||
{
|
{
|
||||||
if (account->resource) {
|
if (account->resource) {
|
||||||
return create_fulljid(account->jid, account->resource);
|
return create_fulljid(account->jid, account->resource);
|
||||||
} else {
|
} else {
|
||||||
return strdup(account->jid);
|
return g_strdup(account->jid);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -84,7 +84,7 @@ ProfAccount* account_new(gchar* name, gchar* jid, gchar* password, gchar* eval_p
|
|||||||
GList* ox_enabled, GList* pgp_enabled, gchar* pgp_keyid,
|
GList* ox_enabled, GList* pgp_enabled, gchar* pgp_keyid,
|
||||||
gchar* startscript, gchar* theme, gchar* tls_policy, gchar* auth_policy,
|
gchar* startscript, gchar* theme, gchar* tls_policy, gchar* auth_policy,
|
||||||
gchar* client, int max_sessions);
|
gchar* client, int max_sessions);
|
||||||
char* account_create_connect_jid(ProfAccount* account);
|
gchar* account_create_connect_jid(ProfAccount* account);
|
||||||
gboolean account_eval_password(ProfAccount* account);
|
gboolean account_eval_password(ProfAccount* account);
|
||||||
void account_free(ProfAccount* account);
|
void account_free(ProfAccount* account);
|
||||||
void account_set_server(ProfAccount* account, const char* server);
|
void account_set_server(ProfAccount* account, const char* server);
|
||||||
|
|||||||
@@ -69,13 +69,7 @@ jid_create(const gchar* const str)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
result = malloc(sizeof(struct jid_t));
|
result = g_new0(Jid, 1);
|
||||||
result->str = NULL;
|
|
||||||
result->localpart = NULL;
|
|
||||||
result->domainpart = NULL;
|
|
||||||
result->resourcepart = NULL;
|
|
||||||
result->barejid = NULL;
|
|
||||||
result->fulljid = NULL;
|
|
||||||
result->refcnt = 1;
|
result->refcnt = 1;
|
||||||
|
|
||||||
gchar* atp = g_utf8_strchr(trimmed, -1, '@');
|
gchar* atp = g_utf8_strchr(trimmed, -1, '@');
|
||||||
@@ -109,9 +103,9 @@ jid_create(const gchar* const str)
|
|||||||
}
|
}
|
||||||
|
|
||||||
Jid*
|
Jid*
|
||||||
jid_create_from_bare_and_resource(const char* const barejid, const char* const resource)
|
jid_create_from_bare_and_resource(const gchar* const barejid, const gchar* const resource)
|
||||||
{
|
{
|
||||||
auto_char char* jid = create_fulljid(barejid, resource);
|
auto_gchar gchar* jid = create_fulljid(barejid, resource);
|
||||||
return jid_create(jid);
|
return jid_create(jid);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -160,8 +154,8 @@ jid_is_valid_room_form(Jid* jid)
|
|||||||
* barejid/resourcepart
|
* barejid/resourcepart
|
||||||
* Will return a newly created string that must be freed by the caller
|
* Will return a newly created string that must be freed by the caller
|
||||||
*/
|
*/
|
||||||
char*
|
gchar*
|
||||||
create_fulljid(const char* const barejid, const char* const resource)
|
create_fulljid(const gchar* const barejid, const gchar* const resource)
|
||||||
{
|
{
|
||||||
auto_gchar gchar* barejidlower = g_utf8_strdown(barejid, -1);
|
auto_gchar gchar* barejidlower = g_utf8_strdown(barejid, -1);
|
||||||
return g_strdup_printf("%s/%s", barejidlower, resource);
|
return g_strdup_printf("%s/%s", barejidlower, resource);
|
||||||
@@ -172,11 +166,11 @@ create_fulljid(const char* const barejid, const char* const resource)
|
|||||||
* Full JID = "test@conference.server/person"
|
* Full JID = "test@conference.server/person"
|
||||||
* returns "person"
|
* returns "person"
|
||||||
*/
|
*/
|
||||||
char*
|
gchar*
|
||||||
get_nick_from_full_jid(const char* const full_room_jid)
|
get_nick_from_full_jid(const gchar* const full_room_jid)
|
||||||
{
|
{
|
||||||
auto_gcharv gchar** tokens = g_strsplit(full_room_jid, "/", 0);
|
auto_gcharv gchar** tokens = g_strsplit(full_room_jid, "/", 0);
|
||||||
char* nick_part = NULL;
|
gchar* nick_part = NULL;
|
||||||
|
|
||||||
if (tokens) {
|
if (tokens) {
|
||||||
if (tokens[0] && tokens[1]) {
|
if (tokens[0] && tokens[1]) {
|
||||||
@@ -190,7 +184,7 @@ get_nick_from_full_jid(const char* const full_room_jid)
|
|||||||
/*
|
/*
|
||||||
* get the fulljid, fall back to the barejid
|
* get the fulljid, fall back to the barejid
|
||||||
*/
|
*/
|
||||||
const char*
|
const gchar*
|
||||||
jid_fulljid_or_barejid(Jid* jid)
|
jid_fulljid_or_barejid(Jid* jid)
|
||||||
{
|
{
|
||||||
if (jid->fulljid) {
|
if (jid->fulljid) {
|
||||||
|
|||||||
@@ -41,18 +41,18 @@
|
|||||||
struct jid_t
|
struct jid_t
|
||||||
{
|
{
|
||||||
unsigned int refcnt;
|
unsigned int refcnt;
|
||||||
char* str;
|
gchar* str;
|
||||||
char* localpart;
|
gchar* localpart;
|
||||||
char* domainpart;
|
gchar* domainpart;
|
||||||
char* resourcepart;
|
gchar* resourcepart;
|
||||||
char* barejid;
|
gchar* barejid;
|
||||||
char* fulljid;
|
gchar* fulljid;
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef struct jid_t Jid;
|
typedef struct jid_t Jid;
|
||||||
|
|
||||||
Jid* jid_create(const gchar* const str);
|
Jid* jid_create(const gchar* const str);
|
||||||
Jid* jid_create_from_bare_and_resource(const char* const barejid, const char* const resource);
|
Jid* jid_create_from_bare_and_resource(const gchar* const barejid, const gchar* const resource);
|
||||||
void jid_destroy(Jid* jid);
|
void jid_destroy(Jid* jid);
|
||||||
void jid_ref(Jid* jid);
|
void jid_ref(Jid* jid);
|
||||||
|
|
||||||
@@ -60,10 +60,10 @@ void jid_auto_destroy(Jid** str);
|
|||||||
#define auto_jid __attribute__((__cleanup__(jid_auto_destroy)))
|
#define auto_jid __attribute__((__cleanup__(jid_auto_destroy)))
|
||||||
|
|
||||||
gboolean jid_is_valid_room_form(Jid* jid);
|
gboolean jid_is_valid_room_form(Jid* jid);
|
||||||
char* create_fulljid(const char* const barejid, const char* const resource);
|
gchar* create_fulljid(const gchar* const barejid, const gchar* const resource);
|
||||||
char* get_nick_from_full_jid(const char* const full_room_jid);
|
gchar* get_nick_from_full_jid(const gchar* const full_room_jid);
|
||||||
|
|
||||||
const char* jid_fulljid_or_barejid(Jid* jid);
|
const gchar* jid_fulljid_or_barejid(Jid* jid);
|
||||||
gchar* jid_random_resource(void);
|
gchar* jid_random_resource(void);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -268,7 +268,7 @@ _send_room_presence(xmpp_stanza_t* presence)
|
|||||||
const char* const nick = muc_nick(room);
|
const char* const nick = muc_nick(room);
|
||||||
|
|
||||||
if (nick) {
|
if (nick) {
|
||||||
auto_char char* full_room_jid = create_fulljid(room, nick);
|
auto_gchar gchar* full_room_jid = create_fulljid(room, nick);
|
||||||
xmpp_stanza_set_to(presence, full_room_jid);
|
xmpp_stanza_set_to(presence, full_room_jid);
|
||||||
log_debug("Sending presence to room: %s", full_room_jid);
|
log_debug("Sending presence to room: %s", full_room_jid);
|
||||||
|
|
||||||
@@ -314,7 +314,7 @@ presence_change_room_nick(const char* const room, const char* const nick)
|
|||||||
const char* show = stanza_get_presence_string_from_type(presence_type);
|
const char* show = stanza_get_presence_string_from_type(presence_type);
|
||||||
const char* status = connection_get_presence_msg();
|
const char* status = connection_get_presence_msg();
|
||||||
int pri = accounts_get_priority_for_presence_type(session_get_account_name(), presence_type);
|
int pri = accounts_get_priority_for_presence_type(session_get_account_name(), presence_type);
|
||||||
auto_char char* full_room_jid = create_fulljid(room, nick);
|
auto_gchar gchar* full_room_jid = create_fulljid(room, nick);
|
||||||
|
|
||||||
xmpp_ctx_t* ctx = connection_get_ctx();
|
xmpp_ctx_t* ctx = connection_get_ctx();
|
||||||
xmpp_stanza_t* presence = stanza_create_room_newnick_presence(ctx, full_room_jid);
|
xmpp_stanza_t* presence = stanza_create_room_newnick_presence(ctx, full_room_jid);
|
||||||
@@ -621,7 +621,7 @@ _available_handler(xmpp_stanza_t* const stanza)
|
|||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
const char* jid = jid_fulljid_or_barejid(xmpp_presence->jid);
|
const gchar* jid = jid_fulljid_or_barejid(xmpp_presence->jid);
|
||||||
log_debug("Presence available handler fired for: %s", jid);
|
log_debug("Presence available handler fired for: %s", jid);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -632,7 +632,7 @@ _available_handler(xmpp_stanza_t* const stanza)
|
|||||||
XMPPCaps* caps = stanza_parse_caps(stanza);
|
XMPPCaps* caps = stanza_parse_caps(stanza);
|
||||||
if ((g_strcmp0(my_jid->fulljid, xmpp_presence->jid->fulljid) != 0) && caps) {
|
if ((g_strcmp0(my_jid->fulljid, xmpp_presence->jid->fulljid) != 0) && caps) {
|
||||||
log_debug("Presence contains capabilities.");
|
log_debug("Presence contains capabilities.");
|
||||||
const char* jid = jid_fulljid_or_barejid(xmpp_presence->jid);
|
const gchar* jid = jid_fulljid_or_barejid(xmpp_presence->jid);
|
||||||
_handle_caps(jid, caps);
|
_handle_caps(jid, caps);
|
||||||
}
|
}
|
||||||
stanza_free_caps(caps);
|
stanza_free_caps(caps);
|
||||||
|
|||||||
@@ -565,11 +565,11 @@ session_reconnect_now(void)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto_char char* jid = NULL;
|
auto_gchar gchar* jid = NULL;
|
||||||
if (account->resource) {
|
if (account->resource) {
|
||||||
jid = create_fulljid(account->jid, account->resource);
|
jid = create_fulljid(account->jid, account->resource);
|
||||||
} else {
|
} else {
|
||||||
jid = strdup(account->jid);
|
jid = g_strdup(account->jid);
|
||||||
}
|
}
|
||||||
const char* server;
|
const char* server;
|
||||||
unsigned short port;
|
unsigned short port;
|
||||||
|
|||||||
@@ -216,7 +216,7 @@ returns_fulljid_when_exists(void** state)
|
|||||||
{
|
{
|
||||||
Jid* jid = jid_create("localpart@domainpart/resourcepart");
|
Jid* jid = jid_create("localpart@domainpart/resourcepart");
|
||||||
|
|
||||||
const char* result = jid_fulljid_or_barejid(jid);
|
const gchar* result = jid_fulljid_or_barejid(jid);
|
||||||
|
|
||||||
assert_string_equal("localpart@domainpart/resourcepart", result);
|
assert_string_equal("localpart@domainpart/resourcepart", result);
|
||||||
|
|
||||||
@@ -228,7 +228,7 @@ returns_barejid_when_fulljid_not_exists(void** state)
|
|||||||
{
|
{
|
||||||
Jid* jid = jid_create("localpart@domainpart");
|
Jid* jid = jid_create("localpart@domainpart");
|
||||||
|
|
||||||
const char* result = jid_fulljid_or_barejid(jid);
|
const gchar* result = jid_fulljid_or_barejid(jid);
|
||||||
|
|
||||||
assert_string_equal("localpart@domainpart", result);
|
assert_string_equal("localpart@domainpart", result);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user