Author: omote.masahito
Date: Wed Apr  2 07:26:54 2008
New Revision: 5376

Modified:
  trunk/uim/curl.c

Log:
* uim/curl.c: Add referer support.


Modified: trunk/uim/curl.c
==============================================================================
--- trunk/uim/curl.c    (original)
+++ trunk/uim/curl.c    Wed Apr  2 07:26:54 2008
@@ -94,6 +94,7 @@
  struct curl_memory_struct chunk;
  uim_lisp fetched_str_;
  char *ua;
+  char *referer;

  curl = curl_easy_init();

@@ -105,9 +106,12 @@
  curl_easy_setopt(curl, CURLOPT_URL, url);

  ua = uim_scm_symbol_value_str("uim-curl-user-agent");
+  referer = uim_scm_symbol_value_str("uim-curl-referer");

  curl_easy_setopt(curl, CURLOPT_USERAGENT,
                   (ua != NULL) ? ua : "libcurl-agent/1.0");
+  curl_easy_setopt(curl, CURLOPT_REFERER,
+                  (referer != NULL) ? referer : "");
  curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, uim_curl_write_func);
  curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void *)&chunk);

@@ -118,6 +122,7 @@
  fetched_str_ = (chunk.str != NULL) ? MAKE_STR(chunk.str) : uim_scm_f();

  free(ua);
+  free(referer);
  free(chunk.str);

  return fetched_str_;
@@ -135,6 +140,7 @@
  struct curl_httppost* post_first = NULL;
  struct curl_httppost* post_last = NULL;
  char *ua;
+  char *referer;

  curl = curl_easy_init();

@@ -146,9 +152,12 @@
  curl_easy_setopt(curl, CURLOPT_URL, url);

  ua = uim_scm_symbol_value_str("uim-curl-user-agent");
+  referer = uim_scm_symbol_value_str("uim-curl-referer");

  curl_easy_setopt(curl, CURLOPT_USERAGENT,
                   (ua != NULL) ? ua : "libcurl-agent/1.0");
+  curl_easy_setopt(curl, CURLOPT_REFERER,
+                  (referer != NULL) ? referer : "");
  curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, uim_curl_write_func);
  curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void *)&chunk);

@@ -178,6 +187,7 @@
  fetched_str_ = (chunk.str != NULL) ? MAKE_STR(chunk.str) : uim_scm_f();

  free(ua);
+  free(referer);
  free(chunk.str);

  return fetched_str_;

Reply via email to