use crate::io;
use core::mem::MaybeUninit;
use windows_sys::Win32::Networking::WinSock::{WSACleanup, WSAGetLastError, WSAStartup, WSADATA};
pub fn wsa_startup() -> io::Result<WSADATA> {
let version = 0x202;
let mut data = MaybeUninit::uninit();
unsafe {
let ret = WSAStartup(version, data.as_mut_ptr());
if ret == 0 {
Ok(data.assume_init())
} else {
Err(io::Errno::from_raw_os_error(WSAGetLastError()))
}
}
}
pub fn wsa_cleanup() -> io::Result<()> {
unsafe {
if WSACleanup() == 0 {
Ok(())
} else {
Err(io::Errno::from_raw_os_error(WSAGetLastError()))
}
}
}