pidgin/pidgin

simple: Replace siphdrelement by PurpleKeyValuePair.

2020-05-17, Elliott Sales de Andrade
744c1e9d80f1
Parents 0908be6e73de
Children f38b64939ecb
simple: Replace siphdrelement by PurpleKeyValuePair.
--- a/libpurple/protocols/simple/simple.c Wed May 13 02:01:23 2020 +0000
+++ b/libpurple/protocols/simple/simple.c Sun May 17 05:00:02 2020 -0400
@@ -607,14 +607,12 @@
static void sendout_sipmsg(struct simple_account_data *sip, struct sipmsg *msg) {
GSList *tmp = msg->headers;
- gchar *name;
- gchar *value;
GString *outstr = g_string_new("");
g_string_append_printf(outstr, "%s %s SIP/2.0\r\n", msg->method, msg->target);
while(tmp) {
- name = ((struct siphdrelement*) (tmp->data))->name;
- value = ((struct siphdrelement*) (tmp->data))->value;
- g_string_append_printf(outstr, "%s: %s\r\n", name, value);
+ PurpleKeyValuePair *pair = tmp->data;
+ g_string_append_printf(outstr, "%s: %s\r\n", pair->key,
+ (gchar *)pair->value);
tmp = g_slist_next(tmp);
}
g_string_append_printf(outstr, "\r\n%s", msg->body ? msg->body : "");
@@ -625,8 +623,6 @@
static void send_sip_response(PurpleConnection *gc, struct sipmsg *msg, int code,
const char *text, const char *body) {
GSList *tmp = msg->headers;
- gchar *name;
- gchar *value;
GString *outstr = g_string_new("");
/* When sending the acknowlegements and errors, the content length from the original
@@ -642,10 +638,9 @@
sipmsg_add_header(msg, "Content-Length", "0");
g_string_append_printf(outstr, "SIP/2.0 %d %s\r\n", code, text);
while(tmp) {
- name = ((struct siphdrelement*) (tmp->data))->name;
- value = ((struct siphdrelement*) (tmp->data))->value;
-
- g_string_append_printf(outstr, "%s: %s\r\n", name, value);
+ PurpleKeyValuePair *pair = tmp->data;
+ g_string_append_printf(outstr, "%s: %s\r\n", pair->key,
+ (gchar *)pair->value);
tmp = g_slist_next(tmp);
}
g_string_append_printf(outstr, "\r\n%s", body ? body : "");
--- a/libpurple/protocols/simple/sipmsg.c Wed May 13 02:01:23 2020 +0000
+++ b/libpurple/protocols/simple/sipmsg.c Sun May 17 05:00:02 2020 -0400
@@ -134,14 +134,18 @@
void sipmsg_print(const struct sipmsg *msg) {
GSList *cur;
- struct siphdrelement *elem;
- purple_debug(PURPLE_DEBUG_MISC, "simple", "SIP MSG\n");
- purple_debug(PURPLE_DEBUG_MISC, "simple", "response: %d\nmethod: %s\nbodylen: %d\n",msg->response,msg->method,msg->bodylen);
- if(msg->target) purple_debug(PURPLE_DEBUG_MISC, "simple", "target: %s\n",msg->target);
+ PurpleKeyValuePair *elem;
+ purple_debug_misc("simple", "SIP MSG");
+ purple_debug_misc("simple", "response: %d\nmethod: %s\nbodylen: %d",
+ msg->response, msg->method, msg->bodylen);
+ if (msg->target) {
+ purple_debug_misc("simple", "target: %s", msg->target);
+ }
cur = msg->headers;
while(cur) {
elem = cur->data;
- purple_debug(PURPLE_DEBUG_MISC, "simple", "name: %s value: %s\n",elem->name, elem->value);
+ purple_debug_misc("simple", "name: %s value: %s", elem->key,
+ (gchar *)elem->value);
cur = g_slist_next(cur);
}
}
@@ -149,7 +153,7 @@
char *sipmsg_to_string(const struct sipmsg *msg) {
GSList *cur;
GString *outstr = g_string_new("");
- struct siphdrelement *elem;
+ PurpleKeyValuePair *elem;
if(msg->response)
g_string_append_printf(outstr, "SIP/2.0 %d Unknown\r\n",
@@ -161,8 +165,8 @@
cur = msg->headers;
while(cur) {
elem = cur->data;
- g_string_append_printf(outstr, "%s: %s\r\n", elem->name,
- elem->value);
+ g_string_append_printf(outstr, "%s: %s\r\n", elem->key,
+ (gchar *)elem->value);
cur = g_slist_next(cur);
}
@@ -170,23 +174,17 @@
return g_string_free(outstr, FALSE);
}
-void sipmsg_add_header(struct sipmsg *msg, const gchar *name, const gchar *value) {
- struct siphdrelement *element = g_new(struct siphdrelement,1);
- element->name = g_strdup(name);
- element->value = g_strdup(value);
+
+void
+sipmsg_add_header(struct sipmsg *msg, const gchar *name, const gchar *value)
+{
+ PurpleKeyValuePair *element =
+ purple_key_value_pair_new_full(name, g_strdup(value), g_free);
msg->headers = g_slist_append(msg->headers, element);
}
-static void
-sipmsg_free_header(struct siphdrelement *elem)
-{
- g_free(elem->name);
- g_free(elem->value);
- g_free(elem);
-}
-
void sipmsg_free(struct sipmsg *msg) {
- g_slist_free_full(msg->headers, (GDestroyNotify)sipmsg_free_header);
+ g_slist_free_full(msg->headers, (GDestroyNotify)purple_key_value_pair_free);
g_free(msg->method);
g_free(msg->target);
g_free(msg->body);
@@ -196,16 +194,16 @@
void sipmsg_remove_header(struct sipmsg *msg, const gchar *name) {
GSList *tmp = g_slist_find_custom(msg->headers, name, (GCompareFunc)g_ascii_strcasecmp);
if(tmp) {
- struct siphdrelement *elem = tmp->data;
+ PurpleKeyValuePair *elem = tmp->data;
msg->headers = g_slist_delete_link(msg->headers, tmp);
- sipmsg_free_header(elem);
+ purple_key_value_pair_free(elem);
}
}
const gchar *sipmsg_find_header(struct sipmsg *msg, const gchar *name) {
GSList *tmp = g_slist_find_custom(msg->headers, name, (GCompareFunc)g_ascii_strcasecmp);
if(tmp) {
- struct siphdrelement *elem = tmp->data;
+ PurpleKeyValuePair *elem = tmp->data;
return elem->value;
}
return NULL;
--- a/libpurple/protocols/simple/sipmsg.h Wed May 13 02:01:23 2020 +0000
+++ b/libpurple/protocols/simple/sipmsg.h Sun May 17 05:00:02 2020 -0400
@@ -32,11 +32,6 @@
gchar *body;
};
-struct siphdrelement {
- gchar *name;
- gchar *value;
-};
-
struct sipmsg *sipmsg_parse_msg(const gchar *msg);
struct sipmsg *sipmsg_parse_header(const gchar *header);
void sipmsg_add_header(struct sipmsg *msg, const gchar *name, const gchar *value);