curl: intro `CurlHTTPRequest::unix_socket_path`
[nit.git] / lib / curl / native_curl.nit
index d611dbf..d3ed43a 100644 (file)
@@ -87,9 +87,9 @@ extern class NativeCurl `{ CURL * `}
        fun easy_setopt(opt: CURLOption, obj: Object): CURLCode
        do
                if obj isa Int then return native_setopt_int(opt, obj)
-               if obj isa Bool and obj == true then return native_setopt_int(opt, 1)
-               if obj isa Bool and obj == false then return native_setopt_int(opt, 0)
-               if obj isa String then return native_setopt_string(opt, obj)
+               if obj == true then return native_setopt_int(opt, 1)
+               if obj == false then return native_setopt_int(opt, 0)
+               if obj isa String then return native_setopt_string(opt, obj.to_cstring)
                if obj isa FileWriter then return native_setopt_file(opt, obj._file.as(not null))
                if obj isa CURLSList then return native_setopt_slist(opt, obj)
                return once new CURLCode.unknown_option
@@ -107,9 +107,8 @@ extern class NativeCurl `{ CURL * `}
        private fun native_setopt_slist(opt: CURLOption, list: CURLSList): CURLCode `{ return curl_easy_setopt( self, opt, list); `}
 
        # Internal method to set options to CURL using String parameter.
-       private fun native_setopt_string(opt: CURLOption, str: String): CURLCode import String.to_cstring `{
-               char *rStr = String_to_cstring(str);
-               return curl_easy_setopt( self, opt, rStr);
+       private fun native_setopt_string(opt: CURLOption, str: CString): CURLCode `{
+               return curl_easy_setopt( self, opt, str);
        `}
 
        # Request Chars internal information from the CURL session
@@ -121,7 +120,7 @@ extern class NativeCurl `{ CURL * `}
                 return answ.item.to_s
        end
 
-       # Internal method used to get String object information initially knowns as C Chars type
+       # Internal method used to get String object information initially known as C Chars type
        private fun native_getinfo_chars(opt: CURLInfoChars, res: Ref[CString]): CURLCode
        import Ref[CString].item= `{
                char *r;
@@ -324,7 +323,7 @@ extern class CURLSList `{ struct curl_slist * `}
                var r = new Array[String]
                var cursor = self
                loop
-                       if native_data_reachable(cursor) != true then break
+                       if not native_data_reachable(cursor) then break
                        r.add(native_data(cursor))
                        cursor = native_next(cursor)
                end
@@ -753,6 +752,10 @@ extern class CURLOption `{ CURLoption `}
 #      new     `{ return CURLOPT_SSH_KEYFUNCTION; `}
 #      new     `{ return CURLOPT_SSH_KEYDATA; `}
 
+       # TELNET Options
+
+#      new     `{ return CURLOPT_TELNETOPTIONS; `}
+
        # Other Options
 
 #      new     `{ return CURLOPT_PRIVATE; `}
@@ -760,7 +763,6 @@ extern class CURLOption `{ CURLoption `}
 #      new     `{ return CURLOPT_NEW_FILE_PERMS; `}
 #      new     `{ return CURLOPT_NEW_DIRECTORY_PERMS; `}
 
-       # TELNET Options
-
-#      new     `{ return CURLOPT_TELNETOPTIONS; `}
+       # Set the Unix domain socket
+       new unix_socket_path `{ return CURLOPT_UNIX_SOCKET_PATH; `}
 end