Author: omote.masahito
Date: Thu Dec 11 04:26:23 2008
New Revision: 5647

Modified:
   trunk/uim/curl.c

Log:
* uim/curl.c:
  - Remove test codes.
  - Add support for accessing via HTTP proxy without setting 'http_proxy'
    environment variable. Syncing with GNOME or KDE's configuration is not
    planned.


Modified: trunk/uim/curl.c
==============================================================================
--- trunk/uim/curl.c    (original)
+++ trunk/uim/curl.c    Thu Dec 11 04:26:23 2008
@@ -139,22 +139,31 @@
 static CURLcode
 uim_curl_perform(CURL *curl)
 {
+  uim_lisp use_proxy_;
   char *ua;
   char *referer;
+  char *http_proxy;
   CURLcode res;

   ua = uim_scm_symbol_value_str("uim-curl-user-agent");
   referer = uim_scm_symbol_value_str("uim-curl-referer");
+  use_proxy_ = uim_scm_symbol_value_bool("uim-curl-use-proxy?");
+  http_proxy = uim_scm_symbol_value_str("uim-curl-http-proxy");

   curl_easy_setopt(curl, CURLOPT_USERAGENT,
                   (ua != NULL) ? ua : "libcurl-agent/1.0");
   curl_easy_setopt(curl, CURLOPT_REFERER,
                   (referer != NULL) ? referer : "");
+  if(TRUEP(use_proxy_)) {
+    curl_easy_setopt(curl, CURLOPT_PROXY,
+                    (http_proxy != NULL) ? http_proxy : "");
+  }

   res = curl_easy_perform(curl);

   free(ua);
   free(referer);
+  free(http_proxy);

   return res;
 }
@@ -296,108 +305,3 @@
 {
   return;
 }
-
-#ifdef DEBUG
-void test1(void);
-void test2(void);
-void test3(void);
-void test4(void);
-void test5(void);
-
-int main(int argc, char *argv[])
-{
-
-  uim_init();
-  uim_plugin_instance_init();
-
-  test1();
-  test2();
-  test3();
-  test4();
-  test5();
-  uim_quit();
-}
-
-void test1(void)
-{
-  CURL *curl;
-  char urlbase[] = "http://d.hatena.ne.jp/keyword/";;
-  char url[1000];
-  uim_lisp uim_curl_str;
-  struct curl_memory_struct chunk;
-
-  curl = curl_easy_init();
-
-  if(curl == NULL)
-    exit(-1);
-  memset(&chunk, 0, sizeof(struct curl_memory_struct));
-
-  snprintf(url, sizeof(url), "%s%s", urlbase, "テスト");
-
-  curl_easy_setopt(curl, CURLOPT_URL, url);
-  curl_easy_setopt(curl, CURLOPT_USERAGENT, "libcurl-agent/1.0");
-  curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, uim_curl_write_func);
-  curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void *)&chunk);
-
-  curl_easy_perform(curl);
-  curl_easy_cleanup(curl);
-  curl_global_cleanup();
-  uim_curl_str = MAKE_STR(chunk.str);
-
-  printf("%s\n",chunk.str);
-}
-
-
-void test2(void)
-{
-  uim_lisp url, form, result;
-
-  url = MAKE_STR("http://d.hatena.ne.jp/keyword/テスト";);
-  form = LIST2(MAKE_SYM("curl-fetch-simple"), url);
-  result = uim_scm_eval(form);
-
-  printf("%s\n", REFER_C_STR(result));
-}
-
-void test3(void)
-{
-  uim_lisp url, form, result;
-
-  url = MAKE_STR("http://ja.wikipedia.org/wiki/テスト";);
-  form = LIST2(MAKE_SYM("curl-fetch-simple"), url);
-  result = uim_scm_eval(form);
-
-  printf("%s\n", REFER_C_STR(result));
-}
-
-void test4(void)
-{
-  uim_lisp url, form, result;
-  uim_lisp postdata;
-
-  url = MAKE_STR("http://search.hatena.ne.jp/search";);
-  /* '((name . value) (name . value) (name . value) ...) */
-  postdata = QUOTE(LIST3(CONS(MAKE_STR("submit"), MAKE_STR("検索")),
-                        CONS(MAKE_STR("ie"), MAKE_STR("utf8")),
-                        CONS(MAKE_STR("word"), MAKE_STR("日本"))));
-
-  form = LIST3(MAKE_SYM("curl-post"), url, postdata);
-  result = uim_scm_eval(form);
-  printf("%s\n", REFER_C_STR(result));
-}
-
-void test5(void)
-{
-  uim_lisp url, form, result;
-  uim_lisp ua;
-  url = MAKE_STR("http://www.ugtop.com/spill.shtml";);
-  form = LIST2(MAKE_SYM("curl-fetch-simple"), url);
-  result = uim_scm_eval(form);
-  printf("%s\n", REFER_C_STR(result));
-
- ua = uim_scm_eval_c_string("(define uim-curl-user-agent \"Mozilla/5.0\")");
-  form = LIST2(MAKE_SYM("curl-fetch-simple"), url);
-  result = uim_scm_eval(form);
-  printf("%s\n", REFER_C_STR(result));
-}
-#endif

Reply via email to