@@ -31,55 +31,41 @@ pub fn log(level: LogLevel, message: &str) -> Result<(), Status> {
31
31
}
32
32
33
33
extern "C" {
34
- fn proxy_get_current_time_nanoseconds ( return_time : * mut u64 ) -> Status ;
34
+ fn proxy_get_log_level ( return_level : * mut LogLevel ) -> Status ;
35
35
}
36
36
37
- pub fn get_current_time ( ) -> Result < SystemTime , Status > {
38
- let mut return_time : u64 = 0 ;
37
+ pub fn get_log_level ( ) -> Result < LogLevel , Status > {
38
+ let mut return_level : LogLevel = LogLevel :: Trace ;
39
39
unsafe {
40
- match proxy_get_current_time_nanoseconds ( & mut return_time ) {
41
- Status :: Ok => Ok ( UNIX_EPOCH + Duration :: from_nanos ( return_time ) ) ,
40
+ match proxy_get_log_level ( & mut return_level ) {
41
+ Status :: Ok => Ok ( return_level ) ,
42
42
status => panic ! ( "unexpected status: {}" , status as u32 ) ,
43
43
}
44
44
}
45
45
}
46
46
47
47
extern "C" {
48
- fn proxy_set_tick_period_milliseconds ( period : u32 ) -> Status ;
48
+ fn proxy_get_current_time_nanoseconds ( return_time : * mut u64 ) -> Status ;
49
49
}
50
50
51
- pub fn set_tick_period ( period : Duration ) -> Result < ( ) , Status > {
51
+ pub fn get_current_time ( ) -> Result < SystemTime , Status > {
52
+ let mut return_time: u64 = 0 ;
52
53
unsafe {
53
- match proxy_set_tick_period_milliseconds ( period . as_millis ( ) as u32 ) {
54
- Status :: Ok => Ok ( ( ) ) ,
54
+ match proxy_get_current_time_nanoseconds ( & mut return_time ) {
55
+ Status :: Ok => Ok ( UNIX_EPOCH + Duration :: from_nanos ( return_time ) ) ,
55
56
status => panic ! ( "unexpected status: {}" , status as u32 ) ,
56
57
}
57
58
}
58
59
}
59
60
60
61
extern "C" {
61
- fn proxy_get_configuration (
62
- return_buffer_data : * mut * mut u8 ,
63
- return_buffer_size : * mut usize ,
64
- ) -> Status ;
62
+ fn proxy_set_tick_period_milliseconds ( period : u32 ) -> Status ;
65
63
}
66
64
67
- pub fn get_configuration ( ) -> Result < Option < Bytes > , Status > {
68
- let mut return_data: * mut u8 = null_mut ( ) ;
69
- let mut return_size: usize = 0 ;
65
+ pub fn set_tick_period ( period : Duration ) -> Result < ( ) , Status > {
70
66
unsafe {
71
- match proxy_get_configuration ( & mut return_data, & mut return_size) {
72
- Status :: Ok => {
73
- if !return_data. is_null ( ) {
74
- Ok ( Some ( Vec :: from_raw_parts (
75
- return_data,
76
- return_size,
77
- return_size,
78
- ) ) )
79
- } else {
80
- Ok ( None )
81
- }
82
- }
67
+ match proxy_set_tick_period_milliseconds ( period. as_millis ( ) as u32 ) {
68
+ Status :: Ok => Ok ( ( ) ) ,
83
69
status => panic ! ( "unexpected status: {}" , status as u32 ) ,
84
70
}
85
71
}
@@ -258,6 +244,7 @@ pub fn get_map_value(map_type: MapType, key: &str) -> Result<Option<String>, Sta
258
244
Ok ( None )
259
245
}
260
246
}
247
+ Status :: NotFound => Ok ( None ) ,
261
248
status => panic ! ( "unexpected status: {}" , status as u32 ) ,
262
249
}
263
250
}
@@ -285,6 +272,7 @@ pub fn get_map_value_bytes(map_type: MapType, key: &str) -> Result<Option<Bytes>
285
272
Ok ( None )
286
273
}
287
274
}
275
+ Status :: NotFound => Ok ( None ) ,
288
276
status => panic ! ( "unexpected status: {}" , status as u32 ) ,
289
277
}
290
278
}
@@ -624,25 +612,78 @@ pub fn enqueue_shared_queue(queue_id: u32, value: Option<&[u8]>) -> Result<(), S
624
612
}
625
613
626
614
extern "C" {
627
- fn proxy_continue_request ( ) -> Status ;
615
+ fn proxy_continue_stream ( stream_type : StreamType ) -> Status ;
616
+ }
617
+
618
+ pub fn resume_downstream ( ) -> Result < ( ) , Status > {
619
+ unsafe {
620
+ match proxy_continue_stream ( StreamType :: Downstream ) {
621
+ Status :: Ok => Ok ( ( ) ) ,
622
+ status => panic ! ( "unexpected status: {}" , status as u32 ) ,
623
+ }
624
+ }
625
+ }
626
+
627
+ pub fn resume_upstream ( ) -> Result < ( ) , Status > {
628
+ unsafe {
629
+ match proxy_continue_stream ( StreamType :: Upstream ) {
630
+ Status :: Ok => Ok ( ( ) ) ,
631
+ status => panic ! ( "unexpected status: {}" , status as u32 ) ,
632
+ }
633
+ }
628
634
}
629
635
630
636
pub fn resume_http_request ( ) -> Result < ( ) , Status > {
631
637
unsafe {
632
- match proxy_continue_request ( ) {
638
+ match proxy_continue_stream ( StreamType :: HttpRequest ) {
639
+ Status :: Ok => Ok ( ( ) ) ,
640
+ status => panic ! ( "unexpected status: {}" , status as u32 ) ,
641
+ }
642
+ }
643
+ }
644
+
645
+ pub fn resume_http_response ( ) -> Result < ( ) , Status > {
646
+ unsafe {
647
+ match proxy_continue_stream ( StreamType :: HttpResponse ) {
633
648
Status :: Ok => Ok ( ( ) ) ,
634
649
status => panic ! ( "unexpected status: {}" , status as u32 ) ,
635
650
}
636
651
}
637
652
}
638
653
639
654
extern "C" {
640
- fn proxy_continue_response ( ) -> Status ;
655
+ fn proxy_close_stream ( stream_type : StreamType ) -> Status ;
641
656
}
642
657
643
- pub fn resume_http_response ( ) -> Result < ( ) , Status > {
658
+ pub fn close_downstream ( ) -> Result < ( ) , Status > {
659
+ unsafe {
660
+ match proxy_close_stream ( StreamType :: Downstream ) {
661
+ Status :: Ok => Ok ( ( ) ) ,
662
+ status => panic ! ( "unexpected status: {}" , status as u32 ) ,
663
+ }
664
+ }
665
+ }
666
+ pub fn close_upstream ( ) -> Result < ( ) , Status > {
667
+ unsafe {
668
+ match proxy_close_stream ( StreamType :: Upstream ) {
669
+ Status :: Ok => Ok ( ( ) ) ,
670
+ status => panic ! ( "unexpected status: {}" , status as u32 ) ,
671
+ }
672
+ }
673
+ }
674
+
675
+ pub fn reset_http_request ( ) -> Result < ( ) , Status > {
676
+ unsafe {
677
+ match proxy_close_stream ( StreamType :: HttpRequest ) {
678
+ Status :: Ok => Ok ( ( ) ) ,
679
+ status => panic ! ( "unexpected status: {}" , status as u32 ) ,
680
+ }
681
+ }
682
+ }
683
+
684
+ pub fn reset_http_response ( ) -> Result < ( ) , Status > {
644
685
unsafe {
645
- match proxy_continue_response ( ) {
686
+ match proxy_close_stream ( StreamType :: HttpResponse ) {
646
687
Status :: Ok => Ok ( ( ) ) ,
647
688
status => panic ! ( "unexpected status: {}" , status as u32 ) ,
648
689
}
@@ -685,19 +726,6 @@ pub fn send_http_response(
685
726
}
686
727
}
687
728
688
- extern "C" {
689
- fn proxy_clear_route_cache ( ) -> Status ;
690
- }
691
-
692
- pub fn clear_http_route_cache ( ) -> Result < ( ) , Status > {
693
- unsafe {
694
- match proxy_clear_route_cache ( ) {
695
- Status :: Ok => Ok ( ( ) ) ,
696
- status => panic ! ( "unexpected status: {}" , status as u32 ) ,
697
- }
698
- }
699
- }
700
-
701
729
extern "C" {
702
730
fn proxy_http_call (
703
731
upstream_data : * const u8 ,
0 commit comments