libpurple/protocols/gg/oauth/oauth-parameter.c

Sat, 22 Jul 2017 15:13:37 -0500

author
Mike Ruprecht <cmaiku@gmail.com>
date
Sat, 22 Jul 2017 15:13:37 -0500
changeset 38931
41b4c8bf1d52
parent 34232
a5517f235e0f
child 39916
6a79856cb8f5
permissions
-rw-r--r--

Port from strdup() to g_strdup()

This patch ports to use g_strdup() instead of stdrup(), removing
checks for the latter.

33349
d4a017428f4d Gadu-Gadu: missing copyright notes
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33329
diff changeset
1 /* purple
33329
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
2 *
33349
d4a017428f4d Gadu-Gadu: missing copyright notes
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33329
diff changeset
3 * Purple is the legal property of its developers, whose names are too numerous
d4a017428f4d Gadu-Gadu: missing copyright notes
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33329
diff changeset
4 * to list here. Please refer to the COPYRIGHT file distributed with this
d4a017428f4d Gadu-Gadu: missing copyright notes
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33329
diff changeset
5 * source distribution.
d4a017428f4d Gadu-Gadu: missing copyright notes
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33329
diff changeset
6 *
d4a017428f4d Gadu-Gadu: missing copyright notes
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33329
diff changeset
7 * Code adapted from libgadu (C) 2008 Wojtek Kaniewski <wojtekka@irc.pl>
d4a017428f4d Gadu-Gadu: missing copyright notes
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33329
diff changeset
8 * (http://toxygen.net/libgadu/) during Google Summer of Code 2012
d4a017428f4d Gadu-Gadu: missing copyright notes
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33329
diff changeset
9 * by Tomek Wasilczyk (http://www.wasilczyk.pl).
33329
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
10 *
33349
d4a017428f4d Gadu-Gadu: missing copyright notes
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33329
diff changeset
11 * This program is free software; you can redistribute it and/or modify
d4a017428f4d Gadu-Gadu: missing copyright notes
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33329
diff changeset
12 * it under the terms of the GNU General Public License as published by
d4a017428f4d Gadu-Gadu: missing copyright notes
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33329
diff changeset
13 * the Free Software Foundation; either version 2 of the License, or
d4a017428f4d Gadu-Gadu: missing copyright notes
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33329
diff changeset
14 * (at your option) any later version.
33329
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
15 *
33349
d4a017428f4d Gadu-Gadu: missing copyright notes
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33329
diff changeset
16 * This program is distributed in the hope that it will be useful,
d4a017428f4d Gadu-Gadu: missing copyright notes
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33329
diff changeset
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
d4a017428f4d Gadu-Gadu: missing copyright notes
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33329
diff changeset
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
d4a017428f4d Gadu-Gadu: missing copyright notes
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33329
diff changeset
19 * GNU General Public License for more details.
d4a017428f4d Gadu-Gadu: missing copyright notes
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33329
diff changeset
20 *
d4a017428f4d Gadu-Gadu: missing copyright notes
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33329
diff changeset
21 * You should have received a copy of the GNU General Public License
d4a017428f4d Gadu-Gadu: missing copyright notes
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33329
diff changeset
22 * along with this program; if not, write to the Free Software
d4a017428f4d Gadu-Gadu: missing copyright notes
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33329
diff changeset
23 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
33329
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
24 */
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
25
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
26 #include "oauth-parameter.h"
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
27
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
28 struct gg_oauth_parameter {
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
29 char *key;
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
30 char *value;
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
31 struct gg_oauth_parameter *next;
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
32 };
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
33
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
34 int gg_oauth_parameter_set(gg_oauth_parameter_t **list, const char *key, const char *value)
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
35 {
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
36 gg_oauth_parameter_t *p, *new_p;
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
37 char *new_key;
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
38 char *new_value;
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
39
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
40 if (value == NULL)
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
41 return 0;
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
42
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
43 if (list == NULL)
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
44 return -1;
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
45
38931
41b4c8bf1d52 Port from strdup() to g_strdup()
Mike Ruprecht <cmaiku@gmail.com>
parents: 34232
diff changeset
46 new_key = g_strdup(key);
33329
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
47
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
48 if (new_key == NULL)
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
49 return -1;
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
50
38931
41b4c8bf1d52 Port from strdup() to g_strdup()
Mike Ruprecht <cmaiku@gmail.com>
parents: 34232
diff changeset
51 new_value = g_strdup(value);
33329
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
52
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
53 if (new_value == NULL) {
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
54 free(new_key);
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
55 return -1;
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
56 }
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
57
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
58 new_p = malloc(sizeof(gg_oauth_parameter_t));
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
59
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
60 if (new_p == NULL) {
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
61 free(new_key);
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
62 free(new_value);
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
63 return -1;
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
64 }
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
65
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
66 memset(new_p, 0, sizeof(gg_oauth_parameter_t));
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
67 new_p->key = new_key;
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
68 new_p->value = new_value;
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
69
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
70 if (*list != NULL) {
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
71 p = *list;
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
72
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
73 while (p != NULL && p->next != NULL)
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
74 p = p->next;
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
75
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
76 p->next = new_p;
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
77 } else {
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
78 *list = new_p;
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
79 }
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
80
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
81 return 0;
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
82 }
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
83
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
84 char *gg_oauth_parameter_join(gg_oauth_parameter_t *list, int header)
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
85 {
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
86 gg_oauth_parameter_t *p;
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
87 int len = 0;
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
88 char *res, *out;
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
89
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
90 if (header)
34232
a5517f235e0f HTTP: migrate purple_util_fetch_url_request to new API for GG prpl
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33349
diff changeset
91 len += strlen("OAuth ");
33329
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
92
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
93 for (p = list; p; p = p->next) {
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
94 gchar *escaped;
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
95 len += strlen(p->key);
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
96
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
97 len += (header) ? 3 : 1;
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
98
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
99 escaped = g_uri_escape_string(p->value, NULL, FALSE);
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
100 len += strlen(escaped);
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
101 g_free(escaped);
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
102
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
103 if (p->next)
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
104 len += 1;
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
105 }
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
106
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
107 res = malloc(len + 1);
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
108
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
109 if (res == NULL)
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
110 return NULL;
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
111
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
112 out = res;
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
113
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
114 *out = 0;
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
115
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
116 if (header) {
34232
a5517f235e0f HTTP: migrate purple_util_fetch_url_request to new API for GG prpl
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33349
diff changeset
117 strcpy(out, "OAuth ");
33329
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
118 out += strlen(out);
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
119 }
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
120
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
121 for (p = list; p; p = p->next) {
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
122 gchar *escaped;
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
123 strcpy(out, p->key);
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
124 out += strlen(p->key);
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
125
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
126 strcpy(out++, "=");
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
127
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
128 if (header)
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
129 strcpy(out++, "\"");
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
130
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
131 escaped = g_uri_escape_string(p->value, NULL, FALSE);
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
132 strcpy(out, escaped);
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
133 out += strlen(escaped);
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
134 g_free(escaped);
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
135
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
136 if (header)
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
137 strcpy(out++, "\"");
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
138
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
139 if (p->next != NULL)
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
140 strcpy(out++, (header) ? "," : "&");
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
141 }
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
142
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
143 return res;
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
144 }
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
145
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
146 void gg_oauth_parameter_free(gg_oauth_parameter_t *list)
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
147 {
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
148 while (list != NULL) {
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
149 gg_oauth_parameter_t *next;
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
150
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
151 next = list->next;
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
152
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
153 free(list->key);
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
154 free(list->value);
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
155 free(list);
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
156
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
157 list = next;
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
158 }
cf23e0f1861a Gadu-Gadu: OAuth support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
159 }

mercurial