| 189 g_free(msg->target); |
189 g_free(msg->target); |
| 190 g_free(msg->body); |
190 g_free(msg->body); |
| 191 g_free(msg); |
191 g_free(msg); |
| 192 } |
192 } |
| 193 |
193 |
| 194 void sipmsg_remove_header(struct sipmsg *msg, const gchar *name) { |
194 static gint |
| 195 GSList *tmp = g_slist_find_custom(msg->headers, name, (GCompareFunc)g_ascii_strcasecmp); |
195 compare_header_names(gconstpointer a, gconstpointer b) |
| 196 if(tmp) { |
196 { |
| |
197 const PurpleKeyValuePair *kvpa = a; |
| |
198 const gchar *name = b; |
| |
199 return g_ascii_strcasecmp(kvpa->key, name); |
| |
200 } |
| |
201 |
| |
202 void |
| |
203 sipmsg_remove_header(struct sipmsg *msg, const gchar *name) |
| |
204 { |
| |
205 GSList *tmp = g_slist_find_custom(msg->headers, name, compare_header_names); |
| |
206 if (tmp) { |
| 197 PurpleKeyValuePair *elem = tmp->data; |
207 PurpleKeyValuePair *elem = tmp->data; |
| 198 msg->headers = g_slist_delete_link(msg->headers, tmp); |
208 msg->headers = g_slist_delete_link(msg->headers, tmp); |
| 199 purple_key_value_pair_free(elem); |
209 purple_key_value_pair_free(elem); |
| 200 } |
210 } |
| 201 } |
211 } |
| 202 |
212 |
| 203 const gchar *sipmsg_find_header(struct sipmsg *msg, const gchar *name) { |
213 const gchar * |
| 204 GSList *tmp = g_slist_find_custom(msg->headers, name, (GCompareFunc)g_ascii_strcasecmp); |
214 sipmsg_find_header(struct sipmsg *msg, const gchar *name) |
| 205 if(tmp) { |
215 { |
| |
216 GSList *tmp = g_slist_find_custom(msg->headers, name, compare_header_names); |
| |
217 if (tmp) { |
| 206 PurpleKeyValuePair *elem = tmp->data; |
218 PurpleKeyValuePair *elem = tmp->data; |
| 207 return elem->value; |
219 return elem->value; |
| 208 } |
220 } |
| 209 return NULL; |
221 return NULL; |
| 210 } |
222 } |
| 211 |
|