@@ -1609,13 +1609,13 @@ pub extern fn quiche_conn_is_path_validated(
1609
1609
#[ no_mangle]
1610
1610
pub extern fn quiche_conn_probe_path (
1611
1611
conn : & mut Connection , local : & sockaddr , local_len : socklen_t ,
1612
- peer : & sockaddr , peer_len : socklen_t , seq : * mut u64 ,
1612
+ peer : & sockaddr , peer_len : socklen_t , path_id : * mut u64 , cid_seq : * mut u64 ,
1613
1613
) -> c_int {
1614
1614
let local = std_addr_from_c ( local, local_len) ;
1615
1615
let peer = std_addr_from_c ( peer, peer_len) ;
1616
1616
match conn. probe_path ( local, peer) {
1617
1617
Ok ( v) => {
1618
- unsafe { * seq = v }
1618
+ unsafe { ( * path_id , * cid_seq ) = v }
1619
1619
0
1620
1620
} ,
1621
1621
Err ( e) => e. to_c ( ) as c_int ,
@@ -1624,12 +1624,13 @@ pub extern fn quiche_conn_probe_path(
1624
1624
1625
1625
#[ no_mangle]
1626
1626
pub extern fn quiche_conn_migrate_source (
1627
- conn : & mut Connection , local : & sockaddr , local_len : socklen_t , seq : * mut u64 ,
1627
+ conn : & mut Connection , local : & sockaddr , local_len : socklen_t ,
1628
+ path_id : * mut u64 , cid_seq : * mut u64 ,
1628
1629
) -> c_int {
1629
1630
let local = std_addr_from_c ( local, local_len) ;
1630
1631
match conn. migrate_source ( local) {
1631
1632
Ok ( v) => {
1632
- unsafe { * seq = v }
1633
+ unsafe { ( * path_id , * cid_seq ) = v }
1633
1634
0
1634
1635
} ,
1635
1636
Err ( e) => e. to_c ( ) as c_int ,
@@ -1639,13 +1640,13 @@ pub extern fn quiche_conn_migrate_source(
1639
1640
#[ no_mangle]
1640
1641
pub extern fn quiche_conn_migrate (
1641
1642
conn : & mut Connection , local : & sockaddr , local_len : socklen_t ,
1642
- peer : & sockaddr , peer_len : socklen_t , seq : * mut u64 ,
1643
+ peer : & sockaddr , peer_len : socklen_t , path_id : * mut u64 , cid_seq : * mut u64 ,
1643
1644
) -> c_int {
1644
1645
let local = std_addr_from_c ( local, local_len) ;
1645
1646
let peer = std_addr_from_c ( peer, peer_len) ;
1646
1647
match conn. migrate ( local, peer) {
1647
1648
Ok ( v) => {
1648
- unsafe { * seq = v }
1649
+ unsafe { ( * path_id , * cid_seq ) = v }
1649
1650
0
1650
1651
} ,
1651
1652
Err ( e) => e. to_c ( ) as c_int ,
@@ -1654,10 +1655,13 @@ pub extern fn quiche_conn_migrate(
1654
1655
1655
1656
#[ no_mangle]
1656
1657
pub extern fn quiche_conn_path_event_next (
1657
- conn : & mut Connection ,
1658
+ conn : & mut Connection , path_id : * mut u64 ,
1658
1659
) -> * const PathEvent {
1659
1660
match conn. path_event_next ( ) {
1660
- Some ( v) => Box :: into_raw ( Box :: new ( v) ) ,
1661
+ Some ( ( pid, e) ) => {
1662
+ unsafe { * path_id = pid }
1663
+ Box :: into_raw ( Box :: new ( e) )
1664
+ } ,
1661
1665
None => ptr:: null ( ) ,
1662
1666
}
1663
1667
}
@@ -1676,6 +1680,8 @@ pub extern fn quiche_path_event_type(ev: &PathEvent) -> u32 {
1676
1680
PathEvent :: ReusedSourceConnectionId { .. } => 4 ,
1677
1681
1678
1682
PathEvent :: PeerMigrated { .. } => 5 ,
1683
+
1684
+ PathEvent :: PeerPathStatus { .. } => 6 ,
1679
1685
}
1680
1686
}
1681
1687
@@ -1734,7 +1740,7 @@ pub extern fn quiche_path_event_closed(
1734
1740
peer_addr_len : & mut socklen_t ,
1735
1741
) {
1736
1742
match ev {
1737
- PathEvent :: Closed ( local, peer) => {
1743
+ PathEvent :: Closed ( local, peer, .. ) => {
1738
1744
* local_addr_len = std_addr_to_c ( local, local_addr) ;
1739
1745
* peer_addr_len = std_addr_to_c ( peer, peer_addr)
1740
1746
} ,
0 commit comments