+ switch (session->action) {
+ case ACTION_UPDATE:
+ snprintf(user_password, sizeof(user_password), "%s:%s",
+ session->account, session->password);
+ snprintf(data, sizeof(data), "status=\"%s\"", session->tweet);
+ curl_formadd(&formpost, &lastptr,
+ CURLFORM_COPYNAME, "status",
+ CURLFORM_COPYCONTENTS, session->tweet,
+ CURLFORM_END);
+
+ curl_formadd(&formpost, &lastptr,
+ CURLFORM_COPYNAME, "source",
+ CURLFORM_COPYCONTENTS, "bti",
+ CURLFORM_END);
+
+ curl_easy_setopt(curl, CURLOPT_HTTPPOST, formpost);
+ slist = curl_slist_append(slist, "Expect:");
+ curl_easy_setopt(curl, CURLOPT_HTTPHEADER, slist);
+ switch (session->host) {
+ case HOST_TWITTER:
+ curl_easy_setopt(curl, CURLOPT_URL, twitter_update_url);
+ break;
+ case HOST_IDENTICA:
+ curl_easy_setopt(curl, CURLOPT_URL, identica_update_url);
+ break;
+ }
+ curl_easy_setopt(curl, CURLOPT_USERPWD, user_password);
+
+ break;
+ case ACTION_FRIENDS:
+ snprintf(user_password, sizeof(user_password), "%s:%s",
+ session->account, session->password);
+ switch (session->host) {
+ case HOST_TWITTER:
+ curl_easy_setopt(curl, CURLOPT_URL, twitter_friends_url);
+ break;
+ case HOST_IDENTICA:
+ curl_easy_setopt(curl, CURLOPT_URL, identica_friends_url);
+ break;
+ }
+ curl_easy_setopt(curl, CURLOPT_USERPWD, user_password);
+
+ break;
+ case ACTION_USER:
+ switch (session->host) {
+ case HOST_TWITTER:
+ sprintf(user_url, "%s%s.xml", twitter_user_url, session->user);
+ curl_easy_setopt(curl, CURLOPT_URL, user_url);
+ break;
+ case HOST_IDENTICA:
+ sprintf(user_url, "%s%s.xml", identica_user_url, session->user);
+ curl_easy_setopt(curl, CURLOPT_URL, user_url);
+ break;
+ }
+
+ break;
+ case ACTION_REPLIES:
+ snprintf(user_password, sizeof(user_password), "%s:%s",
+ session->account, session->password);
+ switch (session->host) {
+ case HOST_TWITTER:
+ curl_easy_setopt(curl, CURLOPT_URL, twitter_replies_url);
+ break;
+ case HOST_IDENTICA:
+ curl_easy_setopt(curl, CURLOPT_URL, identica_replies_url);
+ break;
+ }
+ curl_easy_setopt(curl, CURLOPT_USERPWD, user_password);
+
+ break;
+ case ACTION_PUBLIC:
+ switch (session->host) {
+ case HOST_TWITTER:
+ curl_easy_setopt(curl, CURLOPT_URL, twitter_public_url);
+ break;
+ case HOST_IDENTICA:
+ curl_easy_setopt(curl, CURLOPT_URL, identica_public_url);
+ break;
+ }
+
+ break;
+ }
+
+ if (session->proxy)
+ curl_easy_setopt(curl, CURLOPT_PROXY, session->proxy);