Add a few things necessary for openssl (not all)
This commit is contained in:
+19
-10
@@ -5,17 +5,26 @@
|
||||
|
||||
extern crate platform;
|
||||
|
||||
use core::ptr;
|
||||
use platform::types::*;
|
||||
|
||||
pub type in_addr_t = [u8; 4];
|
||||
pub type in_port_t = u16;
|
||||
pub type sa_family_t = u16;
|
||||
pub type socklen_t = u32;
|
||||
|
||||
#[repr(C)]
|
||||
pub struct sockaddr {
|
||||
pub sa_family: sa_family_t,
|
||||
pub sa_data: [c_char; 14],
|
||||
data: [c_char; 14]
|
||||
}
|
||||
|
||||
pub const AF_INET: c_int = 2;
|
||||
pub const SOCK_STREAM: c_int = 1;
|
||||
pub const SOCK_DGRAM: c_int = 2;
|
||||
pub const SOCK_NONBLOCK: c_int = 0o4000;
|
||||
pub const SOCK_CLOEXEC: c_int = 0o2000000;
|
||||
|
||||
#[no_mangle]
|
||||
pub unsafe extern "C" fn accept(
|
||||
socket: c_int,
|
||||
@@ -31,7 +40,7 @@ pub unsafe extern "C" fn bind(
|
||||
address: *const sockaddr,
|
||||
address_len: socklen_t,
|
||||
) -> c_int {
|
||||
unimplemented!();
|
||||
platform::bind(socket, address as *const platform::sockaddr, address_len)
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
@@ -40,7 +49,7 @@ pub unsafe extern "C" fn connect(
|
||||
address: *const sockaddr,
|
||||
address_len: socklen_t,
|
||||
) -> c_int {
|
||||
unimplemented!();
|
||||
platform::connect(socket, address as *const platform::sockaddr, address_len)
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
@@ -84,7 +93,7 @@ pub unsafe extern "C" fn recv(
|
||||
length: size_t,
|
||||
flags: c_int,
|
||||
) -> ssize_t {
|
||||
unimplemented!();
|
||||
recvfrom(socket, buffer, length, flags, ptr::null_mut(), ptr::null_mut())
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
@@ -96,7 +105,7 @@ pub unsafe extern "C" fn recvfrom(
|
||||
address: *mut sockaddr,
|
||||
address_len: *mut socklen_t,
|
||||
) -> ssize_t {
|
||||
unimplemented!();
|
||||
platform::recvfrom(socket, buffer, length, flags, address as *mut platform::sockaddr, address_len)
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
@@ -106,11 +115,11 @@ pub unsafe extern "C" fn send(
|
||||
length: size_t,
|
||||
flags: c_int,
|
||||
) -> ssize_t {
|
||||
unimplemented!();
|
||||
sendto(socket, message, length, flags, ptr::null(), 0)
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
pub unsafe extern "C" fn sento(
|
||||
pub unsafe extern "C" fn sendto(
|
||||
socket: c_int,
|
||||
message: *const c_void,
|
||||
length: size_t,
|
||||
@@ -118,7 +127,7 @@ pub unsafe extern "C" fn sento(
|
||||
dest_addr: *const sockaddr,
|
||||
dest_len: socklen_t,
|
||||
) -> ssize_t {
|
||||
unimplemented!();
|
||||
platform::sendto(socket, message, length, flags, dest_addr as *const platform::sockaddr, dest_len)
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
@@ -138,8 +147,8 @@ pub unsafe extern "C" fn shutdown(socket: c_int, how: c_int) -> c_int {
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
pub unsafe extern "C" fn socket(domain: c_int, _type: c_int, protocol: c_int) -> c_int {
|
||||
unimplemented!();
|
||||
pub unsafe extern "C" fn socket(domain: c_int, kind: c_int, protocol: c_int) -> c_int {
|
||||
platform::socket(domain, kind, protocol)
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
|
||||
Reference in New Issue
Block a user