Browse Source

addrinfo stub

Jeremy Soller 6 years ago
parent
commit
594e53c6f1
1 changed files with 23 additions and 2 deletions
  1. 23 2
      src/header/netdb/mod.rs

+ 23 - 2
src/header/netdb/mod.rs

@@ -992,13 +992,33 @@ pub unsafe extern "C" fn setservent(stayopen: c_int) {
     }
 }
 
+#[no_mangle]
 pub unsafe extern "C" fn getaddrinfo(
     node: *const c_char,
     service: *const c_char,
     hints: *const addrinfo,
     res: *mut *mut addrinfo,
 ) -> c_int {
-    unimplemented!();
+    //TODO: getaddrinfo
+    let node_c = if node.is_null() {
+        None
+    } else {
+        Some(CStr::from_ptr(node))
+    };
+    let service_c = if service.is_null() {
+        None
+    } else {
+        Some(CStr::from_ptr(service))
+    };
+
+    eprintln!(
+        "getaddrinfo({:?}, {:?})",
+        node_c.map(|c| str::from_utf8_unchecked(c.to_bytes())),
+        service_c.map(|c| str::from_utf8_unchecked(c.to_bytes()))
+    );
+
+    platform::errno = ENOSYS;
+    EAI_SYSTEM
 }
 
 pub unsafe extern "C" fn getnameinfo(
@@ -1013,8 +1033,9 @@ pub unsafe extern "C" fn getnameinfo(
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn freeaddrinfo(res: *mut addrinfo) {
-    unimplemented!();
+
 }
 
 #[no_mangle]