about summary refs log tree commit diff
path: root/src/rt/rust_uv.cpp
diff options
context:
space:
mode:
authorJeff Olson <olson.jeffery@gmail.com>2012-03-22 07:28:30 -0700
committerBrian Anderson <banderson@mozilla.com>2012-04-06 15:35:48 -0700
commitf179029296b8b8cf90b2b4e1a0cdd448e74e2a7d (patch)
treef8e4df66cd7afb57f3048cda78855fd853f3a296 /src/rt/rust_uv.cpp
parentda779988d586690094cefc5091b44befeb90085f (diff)
downloadrust-f179029296b8b8cf90b2b4e1a0cdd448e74e2a7d.tar.gz
rust-f179029296b8b8cf90b2b4e1a0cdd448e74e2a7d.zip
uv_write works, buffer passing still broke, can get sockaddr_in by val
.. but passing sockaddr_in by val back to C is broken, still passing by
ptr
.. the uv_write_cb is processed, but we have a status -1.. there is
also valgrind spew.. so buf passing is broken, still.
Diffstat (limited to 'src/rt/rust_uv.cpp')
-rw-r--r--src/rt/rust_uv.cpp11
1 files changed, 4 insertions, 7 deletions
diff --git a/src/rt/rust_uv.cpp b/src/rt/rust_uv.cpp
index 52a857a7791..54b95ac6fcb 100644
--- a/src/rt/rust_uv.cpp
+++ b/src/rt/rust_uv.cpp
@@ -307,13 +307,10 @@ rust_uv_write(uv_write_t* req, uv_stream_t* handle,
 	return uv_write(req, handle, bufs, buf_cnt, cb);
 }
 
-extern "C" void*
+extern "C" sockaddr_in
 rust_uv_ip4_addr(const char* ip, int port) {
-	sockaddr_in* addr_ptr = (sockaddr_in*)current_kernel_malloc(
-							  sizeof(sockaddr_in),
-							  "sockaddr_in");
 	printf("before creating addr_ptr.. ip %s port %d\n", ip, port);
-	*addr_ptr = uv_ip4_addr("173.194.33.40", 80);
-	printf("after creating .. port: %d\n", addr_ptr->sin_port);
-	return (void*)addr_ptr;
+	sockaddr_in addr = uv_ip4_addr("173.194.33.40", 80);
+	printf("after creating .. port: %d\n", addr.sin_port);
+	return addr;
 }