@@ -250,7 +250,7 @@ type sockaddr_in = {
250
250
#[ cfg( target_os = "win32" ) ]
251
251
type sockaddr_in6 = {
252
252
a0 : * u8 , a1 : * u8 ,
253
- a2 : * u8 , a3 : * u8
253
+ a2 : * u8 , a3 : ( u8 , u8 , u8 , u8 )
254
254
} ;
255
255
256
256
mod uv_ll_struct_stubgen {
@@ -777,12 +777,13 @@ unsafe fn set_data_for_uv_handle<T, U>(handle: *T,
777
777
rustrt:: rust_uv_set_data_for_uv_handle ( handle as * libc:: c_void ,
778
778
data as * libc:: c_void ) ;
779
779
}
780
- unsafe fn get_data_for_req ( req : * libc :: c_void ) -> * libc:: c_void {
781
- ret rustrt:: rust_uv_get_data_for_req ( req) ;
780
+ unsafe fn get_data_for_req < T > ( req : * T ) -> * libc:: c_void {
781
+ ret rustrt:: rust_uv_get_data_for_req ( req as * libc :: c_void ) ;
782
782
}
783
- unsafe fn set_data_for_req ( req : * libc:: c_void ,
784
- data : * libc:: c_void ) {
785
- rustrt:: rust_uv_set_data_for_req ( req, data) ;
783
+ unsafe fn set_data_for_req < T , U > ( req : * T ,
784
+ data : * U ) {
785
+ rustrt:: rust_uv_set_data_for_req ( req as * libc:: c_void ,
786
+ data as * libc:: c_void ) ;
786
787
}
787
788
unsafe fn get_base_from_buf ( buf : uv_buf_t ) -> * u8 {
788
789
ret rustrt:: rust_uv_get_base_from_buf ( buf) ;
@@ -807,6 +808,19 @@ unsafe fn get_last_err_info(uv_loop: *libc::c_void) -> str {
807
808
err_name, err_msg) ;
808
809
}
809
810
811
+ unsafe fn get_last_err_data ( uv_loop : * libc:: c_void ) -> uv_err_data {
812
+ let err = last_error ( uv_loop) ;
813
+ let err_ptr = ptr:: addr_of ( err) ;
814
+ let err_name = str:: unsafe:: from_c_str ( err_name ( err_ptr) ) ;
815
+ let err_msg = str:: unsafe:: from_c_str ( strerror ( err_ptr) ) ;
816
+ { err_name: err_name, err_msg: err_msg }
817
+ }
818
+
819
+ type uv_err_data = {
820
+ err_name : str ,
821
+ err_msg : str
822
+ } ;
823
+
810
824
#[ cfg( test) ]
811
825
mod test {
812
826
enum tcp_read_data {
0 commit comments