Skip to content

Commit 8e3b40b

Browse files
authored
Resolve url in WASI (#2)
* Resolve url in wasi. Signed-off-by: Tricster <[email protected]>
1 parent bfd7b01 commit 8e3b40b

File tree

2 files changed

+29
-8
lines changed

2 files changed

+29
-8
lines changed

examples/crud/src/main.rs

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ where
3333
* Amount float
3434
* Shipping float
3535
* Tax float
36-
* ShippingAddress string
36+
* ShippingAddress string
3737
*/
3838

3939
#[tokio::main(flavor = "current_thread")]
@@ -54,20 +54,23 @@ async fn main() -> Result<()> {
5454
.collect::<String>()
5555
.await?;
5656
println!("create new table");
57-
}
58-
else{
57+
} else {
5958
// delete all data from the table.
6059
println!("delete all from commerce");
6160
let _ = conn.query_iter("DELETE FROM commerce;").await?;
6261
}
6362

6463
// insert some data
65-
let _ = conn.query_iter("INSERT INTO commerce VALUES
64+
let _ = conn
65+
.query_iter(
66+
"INSERT INTO commerce VALUES
6667
(1, 12, 2, 56.0, 15.0, 2.0, 'Mataderos 2312'),
6768
(2, 15, 3, 256.0, 30.0, 16.0, '1234 NW Bobcat Lane'),
6869
(3, 11, 5, 536.0, 50.0, 24.0, '20 Havelock'),
6970
(4, 8, 8, 126.0, 20.0, 12.0, '224 Pandan Loop'),
70-
(5, 24, 1, 46.0, 10.0, 2.0, 'No.10 Jalan Besar');").await?;
71+
(5, 24, 1, 46.0, 10.0, 2.0, 'No.10 Jalan Besar');",
72+
)
73+
.await?;
7174

7275
// query data
7376
let result = conn
@@ -79,7 +82,9 @@ async fn main() -> Result<()> {
7982
dbg!(result);
8083

8184
// delete some data
82-
let _ = conn.query_iter("DELETE FROM commerce WHERE OrderID=4;").await?;
85+
let _ = conn
86+
.query_iter("DELETE FROM commerce WHERE OrderID=4;")
87+
.await?;
8388
// query data
8489
let result = conn
8590
.query_iter("SELECT * from commerce;")
@@ -90,9 +95,13 @@ async fn main() -> Result<()> {
9095
dbg!(result);
9196

9297
// update some data
93-
let _ = conn.query_iter("UPDATE commerce
98+
let _ = conn
99+
.query_iter(
100+
"UPDATE commerce
94101
SET ShippingAddress = '8366 Elizabeth St.'
95-
WHERE OrderID = 2;").await?;
102+
WHERE OrderID = 2;",
103+
)
104+
.await?;
96105
// query data
97106
let result = conn
98107
.query_iter("SELECT * from commerce;")

src/io/mod.rs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -375,7 +375,19 @@ impl Stream {
375375
TcpStream::connect((host.as_str(), *port)).await?
376376
}
377377
HostPortOrUrl::Url(url) => {
378+
#[cfg(not(target_os = "wasi"))]
378379
let addrs = url.socket_addrs(|| Some(DEFAULT_PORT))?;
380+
#[cfg(target_os = "wasi")]
381+
let mut addrs = wasmedge_wasi_socket::nslookup(
382+
url.host_str().expect("Unable to get host"),
383+
"http",
384+
)
385+
.unwrap();
386+
#[cfg(target_os = "wasi")]
387+
for addr in addrs.iter_mut() {
388+
addr.set_port(url.port_or_known_default().expect("No port found in url"));
389+
}
390+
379391
TcpStream::connect(&*addrs).await?
380392
}
381393
};

0 commit comments

Comments
 (0)