Changeset 5ebff60 for protocols/twitter/twitter_http.c
- Timestamp:
- 2015-02-20T22:50:54Z (10 years ago)
- Branches:
- master
- Children:
- 0b9daac, 3d45471, 7733b8c
- Parents:
- af359b4
- git-author:
- Indent <please@…> (19-02-15 05:47:20)
- git-committer:
- dequis <dx@…> (20-02-15 22:50:54)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
protocols/twitter/twitter_http.c
raf359b4 r5ebff60 48 48 */ 49 49 struct http_request *twitter_http(struct im_connection *ic, char *url_string, http_input_function func, 50 50 gpointer data, int is_post, char **arguments, int arguments_len) 51 51 { 52 52 struct twitter_data *td = ic->proto_data; … … 68 68 } 69 69 } 70 70 71 71 if (strstr(url_string, "://")) { 72 72 base_url = g_new0(url_t, 1); … … 76 76 } 77 77 } 78 78 79 79 // Make the request. 80 80 g_string_printf(request, "%s %s%s%s%s HTTP/1.1\r\n" 81 82 83 84 85 86 87 81 "Host: %s\r\n" 82 "User-Agent: BitlBee " BITLBEE_VERSION " " ARCH "/" CPU "\r\n", 83 is_post ? "POST" : "GET", 84 base_url ? base_url->file : td->url_path, 85 base_url ? "" : url_string, 86 is_post ? "" : "?", is_post ? "" : url_arguments, 87 base_url ? base_url->host : td->url_host); 88 88 89 89 // If a pass and user are given we append them to the request. … … 92 92 char *full_url; 93 93 94 if (base_url) 94 if (base_url) { 95 95 full_url = g_strdup(url_string); 96 else96 } else { 97 97 full_url = g_strconcat(set_getstr(&ic->acc->set, "base_url"), url_string, NULL); 98 } 98 99 full_header = oauth_http_header(td->oauth_info, is_post ? "POST" : "GET", 99 100 full_url, url_arguments); 100 101 101 102 g_string_append_printf(request, "Authorization: %s\r\n", full_header); … … 116 117 // Append the Content-Type and url-encoded arguments. 117 118 g_string_append_printf(request, 118 119 120 119 "Content-Type: application/x-www-form-urlencoded\r\n" 120 "Content-Length: %zd\r\n\r\n%s", 121 strlen(url_arguments), url_arguments); 121 122 } else { 122 123 // Append an extra \r\n to end the request... … … 124 125 } 125 126 126 if (base_url) 127 ret = http_dorequest(base_url->host, base_url->port, base_url->proto == PROTO_HTTPS, request->str, func, data); 128 else 127 if (base_url) { 128 ret = http_dorequest(base_url->host, base_url->port, base_url->proto == PROTO_HTTPS, request->str, func, 129 data); 130 } else { 129 131 ret = http_dorequest(td->url_host, td->url_port, td->url_ssl, request->str, func, data); 132 } 130 133 131 134 g_free(url_arguments); … … 136 139 137 140 struct http_request *twitter_http_f(struct im_connection *ic, char *url_string, http_input_function func, 138 gpointer data, int is_post, char **arguments, int arguments_len, twitter_http_flags_t flags) 141 gpointer data, int is_post, char **arguments, int arguments_len, 142 twitter_http_flags_t flags) 139 143 { 140 144 struct http_request *ret = twitter_http(ic, url_string, func, data, is_post, arguments, arguments_len); 141 if (ret) 145 146 if (ret) { 142 147 ret->flags |= flags; 148 } 143 149 return ret; 144 150 } … … 147 153 { 148 154 char *key_encoded = g_strndup(key, 3 * strlen(key)); 155 149 156 http_encode(key_encoded); 150 157 char *value_encoded = g_strndup(value, 3 * strlen(value)); … … 152 159 153 160 char *retval; 154 if (strlen(url) != 0) 161 if (strlen(url) != 0) { 155 162 retval = g_strdup_printf("%s&%s=%s", url, key_encoded, value_encoded); 156 else163 } else { 157 164 retval = g_strdup_printf("%s=%s", key_encoded, value_encoded); 165 } 158 166 159 167 g_free(key_encoded);
Note: See TracChangeset
for help on using the changeset viewer.