Skip to content

Commit a10b8ee

Browse files
committed
pd-edge: cleanup legacy/compat code
1 parent bb8371c commit a10b8ee

33 files changed

Lines changed: 881 additions & 606 deletions

pd-edge-abi/src/abi_spec/tcp.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ fn tcp_stream_bind(stream: i64, local_addr: &str) {
2424
}
2525

2626
#[pd_host_function(name = "tcp::stream::set_target")]
27-
fn tcp_stream_set_target(stream: i64, target: &str) {
27+
fn tcp_stream_set_target(stream: i64, host: &str, port: i64) {
2828
unreachable!("abi declaration only")
2929
}
3030

pd-edge-abi/src/abi_spec/udp.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ fn udp_socket_bind(socket: i64, local_addr: &str) {
2424
}
2525

2626
#[pd_host_function(name = "udp::socket::set_target")]
27-
fn udp_socket_set_target(socket: i64, target: &str) {
27+
fn udp_socket_set_target(socket: i64, host: &str, port: i64) {
2828
unreachable!("abi declaration only")
2929
}
3030

pd-edge-abi/src/abi_spec/websocket.rs

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,22 @@ fn websocket_connection_is_present(connection: i64) -> bool {
1919
}
2020

2121
#[pd_host_function(name = "websocket::connection::set_target")]
22-
fn websocket_connection_set_target(connection: i64, target: &str) {
22+
fn websocket_connection_set_target(connection: i64, host: &str, port: i64) {
23+
unreachable!("abi declaration only")
24+
}
25+
26+
#[pd_host_function(name = "websocket::connection::set_scheme")]
27+
fn websocket_connection_set_scheme(connection: i64, scheme: &str) {
28+
unreachable!("abi declaration only")
29+
}
30+
31+
#[pd_host_function(name = "websocket::connection::set_path")]
32+
fn websocket_connection_set_path(connection: i64, path: &str) {
33+
unreachable!("abi declaration only")
34+
}
35+
36+
#[pd_host_function(name = "websocket::connection::set_query")]
37+
fn websocket_connection_set_query(connection: i64, query: &str) {
2338
unreachable!("abi declaration only")
2439
}
2540

pd-edge/examples/console/sample_console_http3_client.rss

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// Run with:
2-
// cargo run -p pd-edge --bin pd-edge-console -- --program pd-edge/examples/console/sample_console_http3_client.rss --run -- https://127.0.0.1:4443 GET
2+
// cargo run -p pd-edge --bin pd-edge-console -- --program pd-edge/examples/console/sample_console_http3_client.rss --run -- 127.0.0.1 GET
33
// Pass "-" as the body argument to stream the request body from stdin.
44
// Pass "false" as the fourth argument to disable TLS certificate verification.
55

@@ -11,12 +11,18 @@ use tls;
1111
let argc = console::args::count();
1212

1313
if argc == 0 {
14-
console::stderr::write("usage: <url> [method] [body|-] [verify=true|false]\n");
15-
console::stderr::write("example: https://127.0.0.1:4443 POST - false\n");
14+
console::stderr::write("usage: <host> [method] [body|-] [verify=true|false]\n");
15+
console::stderr::write("example: 127.0.0.1 POST - false\n");
1616
console::stderr::flush();
1717
runtime::exit();
1818
} else {
19-
let target = console::args::get(0);
19+
let host = console::args::get(0);
20+
let port = 4443;
21+
if host == "" {
22+
console::stderr::write("host is required\n");
23+
console::stderr::flush();
24+
runtime::exit();
25+
}
2026
let method = if argc > 1 => {
2127
console::args::get(1)
2228
} else => {
@@ -40,7 +46,8 @@ if argc == 0 {
4046
let verify_tls = verify_arg != "false" && verify_arg != "0" && verify_arg != "off";
4147

4248
let exchange = http::exchange::new();
43-
http::exchange::set_target(exchange, target);
49+
http::exchange::set_target(exchange, host, port);
50+
http::exchange::set_scheme(exchange, "https");
4451
http::exchange::set_method(exchange, method);
4552
http::exchange::set_version(exchange, "3");
4653
if body != "" {

pd-edge/examples/http/proxy/sample_proxy_program.rss

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,14 @@
11
use http;
22
use proxy;
3-
use runtime;
43

5-
// Minimal forwarding sample: send the request to x-upstream-target and mirror the response.
6-
let upstream = http::request::get_header("x-upstream-target");
7-
8-
if upstream == "" {
9-
http::response::set_status(400);
10-
http::response::set_body("missing x-upstream-target");
11-
runtime::exit();
12-
}
4+
// Minimal forwarding sample wired to a fixed local upstream fixture.
5+
let upstream_host = "127.0.0.1";
6+
let upstream_port = 18080;
7+
let upstream_path = "/sample";
138

149
let exchange = http::exchange::default_upstream();
15-
http::exchange::set_target(exchange, upstream);
10+
http::exchange::set_target(exchange, upstream_host, upstream_port);
11+
http::exchange::set_path(exchange, upstream_path);
1612

1713
if http::request::get_header("Streaming") != "" {
1814
// Accessing the response metadata/body implicitly executes the outbound exchange.

pd-edge/examples/http/proxy/sample_request_transform_program.rss

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,14 @@
11
use http;
22
use proxy;
3-
use runtime;
43

54
// Forward requests after optionally rewriting the downstream body chunk-by-chunk.
6-
let upstream = http::request::get_header("x-upstream-target");
7-
8-
if upstream == "" {
9-
http::response::set_status(400);
10-
http::response::set_body("missing x-upstream-target");
11-
runtime::exit();
12-
}
5+
let upstream_host = "127.0.0.1";
6+
let upstream_port = 18081;
7+
let upstream_path = "/transform";
138

149
let exchange = http::exchange::default_upstream();
15-
http::exchange::set_target(exchange, upstream);
10+
http::exchange::set_target(exchange, upstream_host, upstream_port);
11+
http::exchange::set_path(exchange, upstream_path);
1612

1713
if http::request::get_header("Chunk-Transform") != "" {
1814
// Consume the request stream incrementally and annotate each chunk before upload.

pd-edge/examples/http/proxy/sample_sse_proxy_program.rss

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,15 @@
11
use http;
22
use io;
3-
use runtime;
43
use tcp;
54

6-
let target = http::request::get_header("x-upstream-target");
7-
8-
if target == "" {
9-
http::response::set_status(400);
10-
http::response::set_body("missing x-upstream-target");
11-
runtime::exit();
12-
}
5+
let upstream_host = "127.0.0.1";
6+
let upstream_port = 18082;
7+
let upstream_path = "/events";
138

149
// Start the upstream exchange and mirror the SSE response head.
1510
let upstream = http::exchange::default_upstream();
16-
http::exchange::set_target(upstream, target);
11+
http::exchange::set_target(upstream, upstream_host, upstream_port);
12+
http::exchange::set_path(upstream, upstream_path);
1713

1814
let status = http::exchange::get_status(upstream);
1915
http::response::set_status(status);

pd-edge/examples/http/proxy/sample_subrequest_proxy_program.rss

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,30 @@
11
use http;
2-
use runtime;
32
use tcp;
43
use tls;
54

6-
// Required request headers:
7-
// - x-primary-target: first upstream endpoint sent through the default exchange handle
8-
// - x-secondary-target: second upstream endpoint sent through an explicit exchange handle
9-
let primary_target = http::request::get_header("x-primary-target");
10-
let secondary_target = http::request::get_header("x-secondary-target");
11-
12-
if primary_target == "" || secondary_target == "" {
13-
http::response::set_status(400);
14-
http::response::set_body("missing x-primary-target or x-secondary-target");
15-
runtime::exit();
16-
}
5+
let primary_host = "127.0.0.1";
6+
let primary_port = 18083;
7+
let primary_path = "/plain";
8+
let secondary_host = "localhost";
9+
let secondary_port = 18483;
10+
let secondary_path = "/secure";
11+
let secondary_scheme = "https";
1712

1813
// Use both the default handle and a second explicit handle to demonstrate concurrent subrequests.
1914
let primary = http::exchange::default_upstream();
2015
let secondary = http::exchange::new();
2116

2217
http::exchange::set_method(primary, "POST");
23-
http::exchange::set_target(primary, primary_target);
18+
http::exchange::set_target(primary, primary_host, primary_port);
19+
http::exchange::set_path(primary, primary_path);
2420
http::exchange::set_header(primary, "x-exchange-id", "primary");
2521
// Writes against the exchange handle stage the outbound request body.
2622
tcp::stream::write(primary, "alpha");
2723

2824
http::exchange::set_method(secondary, "POST");
29-
http::exchange::set_target(secondary, secondary_target);
25+
http::exchange::set_target(secondary, secondary_host, secondary_port);
26+
http::exchange::set_scheme(secondary, secondary_scheme);
27+
http::exchange::set_path(secondary, secondary_path);
3028
http::exchange::set_header(secondary, "x-exchange-id", "secondary");
3129
tcp::stream::write(secondary, "beta");
3230

pd-edge/examples/http/upstream/sample_upstream_http2_program.rss

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,23 @@
11
use http;
22
use tls;
33

4-
let origin = http::request::get_header("x-h2-origin");
4+
let origin_port = 18444;
55

6-
if origin == "" {
7-
http::response::set_status(400);
8-
http::response::set_body("missing x-h2-origin");
9-
} else {
6+
if true {
107
let slow = http::exchange::new();
118
let fast = http::exchange::new();
129

1310
// These are two different outbound HTTP requests to the same origin.
14-
http::exchange::set_target(slow, origin + "/slow");
11+
http::exchange::set_target(slow, "localhost", origin_port);
12+
http::exchange::set_scheme(slow, "https");
13+
http::exchange::set_path(slow, "/slow");
1514
http::exchange::set_method(slow, "POST");
1615
http::exchange::set_header(slow, "x-demo-request", "slow-request");
1716
http::exchange::set_body(slow, "alpha");
1817

19-
http::exchange::set_target(fast, origin + "/fast");
18+
http::exchange::set_target(fast, "localhost", origin_port);
19+
http::exchange::set_scheme(fast, "https");
20+
http::exchange::set_path(fast, "/fast");
2021
http::exchange::set_method(fast, "PUT");
2122
http::exchange::set_header(fast, "x-demo-request", "fast-request");
2223
http::exchange::set_body(fast, "beta");
@@ -52,7 +53,9 @@ if origin == "" {
5253
);
5354

5455
let reused = http::exchange::new();
55-
http::exchange::set_target(reused, origin + "/reuse");
56+
http::exchange::set_target(reused, "localhost", origin_port);
57+
http::exchange::set_scheme(reused, "https");
58+
http::exchange::set_path(reused, "/reuse");
5659
http::exchange::set_method(reused, "PATCH");
5760
http::exchange::set_header(reused, "x-demo-request", "reuse-request");
5861
http::exchange::set_body(reused, "gamma");

pd-edge/examples/http/upstream/sample_upstream_http3_program.rss

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,24 @@
11
use http;
22
use tls;
33

4-
let origin = http::request::get_header("x-h3-origin");
4+
let origin_port = 18445;
55

6-
if origin == "" {
7-
http::response::set_status(400);
8-
http::response::set_body("missing x-h3-origin");
9-
} else {
6+
if true {
107
let slow = http::exchange::new();
118
let fast = http::exchange::new();
129

1310
// These are two different outbound HTTP requests to the same origin.
14-
http::exchange::set_target(slow, origin + "/slow");
11+
http::exchange::set_target(slow, "127.0.0.1", origin_port);
12+
http::exchange::set_scheme(slow, "https");
13+
http::exchange::set_path(slow, "/slow");
1514
http::exchange::set_method(slow, "POST");
1615
http::exchange::set_version(slow, "3");
1716
http::exchange::set_header(slow, "x-demo-request", "slow-request");
1817
http::exchange::set_body(slow, "alpha");
1918

20-
http::exchange::set_target(fast, origin + "/fast");
19+
http::exchange::set_target(fast, "127.0.0.1", origin_port);
20+
http::exchange::set_scheme(fast, "https");
21+
http::exchange::set_path(fast, "/fast");
2122
http::exchange::set_method(fast, "PUT");
2223
http::exchange::set_version(fast, "3");
2324
http::exchange::set_header(fast, "x-demo-request", "fast-request");
@@ -54,7 +55,9 @@ if origin == "" {
5455
);
5556

5657
let reused = http::exchange::new();
57-
http::exchange::set_target(reused, origin + "/reuse");
58+
http::exchange::set_target(reused, "127.0.0.1", origin_port);
59+
http::exchange::set_scheme(reused, "https");
60+
http::exchange::set_path(reused, "/reuse");
5861
http::exchange::set_method(reused, "PATCH");
5962
http::exchange::set_version(reused, "3");
6063
http::exchange::set_header(reused, "x-demo-request", "reuse-request");

0 commit comments

Comments
 (0)