aboutsummaryrefslogtreecommitdiffstats
path: root/protocols/twitter/twitter_http.c
diff options
context:
space:
mode:
Diffstat (limited to 'protocols/twitter/twitter_http.c')
-rw-r--r--protocols/twitter/twitter_http.c49
1 files changed, 8 insertions, 41 deletions
diff --git a/protocols/twitter/twitter_http.c b/protocols/twitter/twitter_http.c
index 4385475c..34b9408d 100644
--- a/protocols/twitter/twitter_http.c
+++ b/protocols/twitter/twitter_http.c
@@ -38,9 +38,7 @@
#include <errno.h>
-char *twitter_urlencode(const char *instr);
char *twitter_url_append(char *url, char *key, char* value);
-static int isurlchar(unsigned char c);
/**
* Do a request.
@@ -106,9 +104,9 @@ void *twitter_http(char *url_string, http_input_function func, gpointer data, in
// Make the request.
request = g_strdup_printf( "%s %s HTTP/1.0\r\n"
- "Host: %s\r\n"
- "User-Agent: BitlBee " BITLBEE_VERSION " " ARCH "/" CPU "\r\n",
- is_post ? "POST" : "GET", url->file, url->host );
+ "Host: %s\r\n"
+ "User-Agent: BitlBee " BITLBEE_VERSION " " ARCH "/" CPU "\r\n",
+ is_post ? "POST" : "GET", url->file, url->host );
// If a pass and user are given we append them to the request.
if (userpass_base64)
@@ -145,8 +143,11 @@ void *twitter_http(char *url_string, http_input_function func, gpointer data, in
char *twitter_url_append(char *url, char *key, char* value)
{
- char *key_encoded = twitter_urlencode(key);
- char *value_encoded = twitter_urlencode(value);
+ char *key_encoded = g_strndup(key, 3 * strlen(key));
+ http_encode(key_encoded);
+ char *value_encoded = g_strndup(value, 3 * strlen(value));
+ http_encode(value_encoded);
+
char *retval;
if (strlen(url) != 0)
retval = g_strdup_printf("%s&%s=%s", url, key_encoded, value_encoded);
@@ -159,35 +160,6 @@ char *twitter_url_append(char *url, char *key, char* value)
return retval;
}
-char *twitter_urlencode(const char *instr)
-{
- int ipos=0, bpos=0;
- char *str = NULL;
- int len = strlen(instr);
-
- if(!(str = g_new(char, 3*len + 1) ))
- return "";
-
- while(instr[ipos]) {
- while(isurlchar(instr[ipos]))
- str[bpos++] = instr[ipos++];
- if(!instr[ipos])
- break;
-
- g_snprintf(&str[bpos], 4, "%%%.2x", instr[ipos]);
- bpos+=3;
- ipos++;
- }
- str[bpos]='\0';
-
- /* free extra alloc'ed mem. */
- len = strlen(str);
- str = g_renew(char, str, len+1);
-
- return (str);
-}
-
-
char *twitter_urldecode(const char *instr)
{
int ipos=0, bpos=0;
@@ -228,8 +200,3 @@ char *twitter_urldecode(const char *instr)
return (str);
}
-static int isurlchar(unsigned char c)
-{
- return (isalnum(c) || '-' == c || '_' == c);
-}
-