diff --git a/samples/libcurl/src/main/kotlin/org/konan/libcurl/CUrl.kt b/samples/libcurl/src/main/kotlin/org/konan/libcurl/CUrl.kt index 3dc99e5a9a8..ce377349331 100644 --- a/samples/libcurl/src/main/kotlin/org/konan/libcurl/CUrl.kt +++ b/samples/libcurl/src/main/kotlin/org/konan/libcurl/CUrl.kt @@ -14,10 +14,13 @@ class CUrl(val url: String) { val header = staticCFunction(::header_callback) curl_easy_setopt(curl, CURLOPT_HEADERFUNCTION, header) curl_easy_setopt(curl, CURLOPT_HEADERDATA, stableRef.asCPointer()) + val write_data = staticCFunction(::write_callback) + curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data) + curl_easy_setopt(curl, CURLOPT_WRITEDATA, stableRef.asCPointer()) } val header = Event() - val data = Event() + val body = Event() fun nobody(){ curl_easy_setopt(curl, CURLOPT_NOBODY, 1L) @@ -50,13 +53,14 @@ fun header_callback(buffer: CPointer?, size: size_t, nitems: size_t, us return size * nitems } -/* -fun write_callback(buffer: COpaquePointer?, size: size_t, nitems: size_t, userdata: COpaquePointer?): size_t { + +fun write_callback(buffer: CPointer?, size: size_t, nitems: size_t, userdata: COpaquePointer?): size_t { if (buffer == null) return 0 + val data = buffer.toKString((size * nitems).toInt()).trim() if (userdata != null) { val curl = userdata.asStableRef().get() - curl.data(buffer.) + curl.body(data) } return size * nitems } -*/ + diff --git a/samples/libcurl/src/main/kotlin/org/konan/libcurl/Program.kt b/samples/libcurl/src/main/kotlin/org/konan/libcurl/Program.kt index e709cd6f019..ee1a14f2db5 100644 --- a/samples/libcurl/src/main/kotlin/org/konan/libcurl/Program.kt +++ b/samples/libcurl/src/main/kotlin/org/konan/libcurl/Program.kt @@ -8,13 +8,15 @@ fun main(args: Array) { curl.header += { println("[H] $it") } + + curl.body += { + println("[B] $it") + } + curl.fetch() curl.close() -/* - val write_data = staticCFunction(::write_data) - curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data); -*/ + } fun help() {