From a2ba3bbc5e121d61af36921f8477a9f5d81dcfe0 Mon Sep 17 00:00:00 2001 From: Leif Gruenwoldt Date: Mon, 3 Jan 2011 21:48:41 -0500 Subject: [PATCH 1/1] user and public actions may not require auth --- bti.c | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/bti.c b/bti.c index 0229a9a..a7fa43c 100644 --- a/bti.c +++ b/bti.c @@ -98,6 +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 @@ static int send_request(struct session *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; @@ -1544,11 +1545,17 @@ int main(int argc, char *argv[], char *envp[]) 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"); @@ -1570,7 +1577,7 @@ int main(int argc, char *argv[], char *envp[]) session->hostname); session->password = strdup(password); } - } else { + } else if (!session->guest) { if (!session->access_token_key || !session->access_token_secret) { request_access_token(session); -- 2.39.5