From: Greg Kroah-Hartman Date: Wed, 12 Jan 2011 19:01:39 +0000 (-0800) Subject: Merge https://github.com/leif81/bti into main tree X-Git-Url: https://git.toastfreeware.priv.at/gregoa/bti.git/commitdiff_plain/6614ae6e7e2aeda209654226e3d3cffde0d54a21?hp=-c Merge https://github.com/leif81/bti into main tree This fixes an issue with twitter queries for non-oauth portions of the api. --- 6614ae6e7e2aeda209654226e3d3cffde0d54a21 diff --combined bti.c index 26d7928,a7fa43c..4ad5b54 --- a/bti.c +++ b/bti.c @@@ -98,6 -98,7 +98,7 @@@ struct session int dry_run; int page; int no_oauth; + int guest; enum host host; enum action action; void *readline_handle; @@@ -592,7 -593,7 +593,7 @@@ static int send_request(struct session if (!session->hosturl) session->hosturl = strdup(twitter_host); - if (session->no_oauth) { + if (session->no_oauth || session->guest) { curl_buf = bti_curl_buffer_alloc(session->action); if (!curl_buf) return -ENOMEM; @@@ -749,29 -750,26 +750,29 @@@ break; } - if (is_post) { - req_url = oauth_sign_url2(endpoint, &postarg, OA_HMAC, - NULL, session->consumer_key, - session->consumer_secret, - session->access_token_key, - session->access_token_secret); - reply = oauth_http_post(req_url, postarg); - } else { - req_url = oauth_sign_url2(endpoint, NULL, OA_HMAC, NULL, - session->consumer_key, - session->consumer_secret, - session->access_token_key, - session->access_token_secret); - reply = oauth_http_get(req_url, postarg); - } + dbg("%s\n", endpoint); + if (!session->dry_run) { + if (is_post) { + req_url = oauth_sign_url2(endpoint, &postarg, OA_HMAC, + NULL, session->consumer_key, + session->consumer_secret, + session->access_token_key, + session->access_token_secret); + reply = oauth_http_post(req_url, postarg); + } else { + req_url = oauth_sign_url2(endpoint, NULL, OA_HMAC, NULL, + session->consumer_key, + session->consumer_secret, + session->access_token_key, + session->access_token_secret); + reply = oauth_http_get(req_url, postarg); + } - dbg("%s\n", req_url); - dbg("%s\n", reply); - if (req_url) - free(req_url); + dbg("%s\n", req_url); + dbg("%s\n", reply); + if (req_url) + free(req_url); + } if ((session->action != ACTION_UPDATE) && (session->action != ACTION_RETWEET)) @@@ -1547,11 -1545,17 +1548,17 @@@ int main(int argc, char *argv[], char * if (session->host == HOST_TWITTER) { if (!session->consumer_key || !session->consumer_secret) { - fprintf(stderr, - "Twitter no longer supports HTTP basic authentication.\n" - "Both consumer key, and consumer secret are required" - " for bti in order to behave as an OAuth consumer.\n"); - goto exit; + if (session->action == ACTION_USER || + session->action == ACTION_PUBLIC) { + /* Some actions may still work without authentication */ + session->guest = 1; + } else { + fprintf(stderr, + "Twitter no longer supports HTTP basic authentication.\n" + "Both consumer key, and consumer secret are required" + " for bti in order to behave as an OAuth consumer.\n"); + goto exit; + } } if (session->action == ACTION_GROUP) { fprintf(stderr, "Groups only work in Identi.ca.\n"); @@@ -1573,7 -1577,7 +1580,7 @@@ session->hostname); session->password = strdup(password); } - } else { + } else if (!session->guest) { if (!session->access_token_key || !session->access_token_secret) { request_access_token(session);