libpurple/protocols/simple/sipmsg.c

changeset 40052
cc03b5af25ea
parent 39962
c3ba045d5293
child 40053
abbd9caef452
--- a/libpurple/protocols/simple/sipmsg.c	Tue Oct 15 04:05:27 2019 +0000
+++ b/libpurple/protocols/simple/sipmsg.c	Wed Oct 16 01:06:17 2019 +0300
@@ -193,32 +193,21 @@
 }
 
 void sipmsg_remove_header(struct sipmsg *msg, const gchar *name) {
-	struct siphdrelement *elem;
-	GSList *tmp = msg->headers;
-	while(tmp) {
-		elem = tmp->data;
-		if(g_ascii_strcasecmp(elem->name, name)==0) {
-			msg->headers = g_slist_remove(msg->headers, elem);
-			g_free(elem->name);
-			g_free(elem->value);
-			g_free(elem);
-			return;
-		}
-		tmp = g_slist_next(tmp);
+	GSList *tmp = g_slist_find_custom(msg->headers, name, (GCompareFunc)g_ascii_strcasecmp);
+	if(tmp) {
+		struct siphdrelement *elem = tmp->data;
+		msg->headers = g_slist_remove(msg->headers, elem);
+		g_free(elem->name);
+		g_free(elem->value);
+		g_free(elem);
 	}
-	return;
 }
 
 const gchar *sipmsg_find_header(struct sipmsg *msg, const gchar *name) {
-	GSList *tmp;
-	struct siphdrelement *elem;
-	tmp = msg->headers;
-	while(tmp) {
-		elem = tmp->data;
-		if(g_ascii_strcasecmp(elem->name, name)==0) {
-			return elem->value;
-		}
-		tmp = g_slist_next(tmp);
+	GSList *tmp = g_slist_find_custom(msg->headers, name, (GCompareFunc)g_ascii_strcasecmp);
+	if(tmp) {
+		struct siphdrelement *elem = tmp->data;
+		return elem->value;
 	}
 	return NULL;
 }

mercurial