- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
protocols/twitter/twitter_http.c
rb235228 r5983eca 47 47 * This is actually pretty generic function... Perhaps it should move to the lib/http_client.c 48 48 */ 49 struct http_request*twitter_http(struct im_connection *ic, char *url_string, http_input_function func,50 49 void *twitter_http(struct im_connection *ic, char *url_string, http_input_function func, 50 gpointer data, int is_post, char **arguments, int arguments_len) 51 51 { 52 52 struct twitter_data *td = ic->proto_data; … … 55 55 void *ret; 56 56 char *url_arguments; 57 url_t *base_url = NULL;58 57 59 58 url_arguments = g_strdup(""); … … 68 67 } 69 68 } 70 71 if (strstr(url_string, "://")) {72 base_url = g_new0(url_t, 1);73 if (!url_set(base_url, url_string)) {74 g_free(base_url);75 return NULL;76 }77 }78 79 69 // Make the request. 80 70 g_string_printf(request, "%s %s%s%s%s HTTP/1.0\r\n" … … 82 72 "User-Agent: BitlBee " BITLBEE_VERSION " " ARCH "/" CPU "\r\n", 83 73 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); 74 td->url_path, url_string, 75 is_post ? "" : "?", is_post ? "" : url_arguments, td->url_host); 88 76 89 77 // If a pass and user are given we append them to the request. … … 92 80 char *full_url; 93 81 94 if (base_url) 95 full_url = g_strdup(url_string); 96 else 97 full_url = g_strconcat(set_getstr(&ic->acc->set, "base_url"), url_string, NULL); 82 full_url = g_strconcat(set_getstr(&ic->acc->set, "base_url"), url_string, NULL); 98 83 full_header = oauth_http_header(td->oauth_info, is_post ? "POST" : "GET", 99 84 full_url, url_arguments); … … 124 109 } 125 110 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 129 ret = http_dorequest(td->url_host, td->url_port, td->url_ssl, request->str, func, data); 111 ret = http_dorequest(td->url_host, td->url_port, td->url_ssl, request->str, func, data); 130 112 131 113 g_free(url_arguments); 132 114 g_string_free(request, TRUE); 133 g_free(base_url);134 return ret;135 }136 137 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)139 {140 struct http_request *ret = twitter_http(ic, url_string, func, data, is_post, arguments, arguments_len);141 if (ret)142 ret->flags |= flags;143 115 return ret; 144 116 }
Note: See TracChangeset
for help on using the changeset viewer.