diff --git a/README.md b/README.md index 9a02c16..789c5e9 100644 --- a/README.md +++ b/README.md @@ -17,8 +17,8 @@ This package requires a Memona version that supports plugin manifest schema 2. | Username | Optional account name for HTTP basic authentication | | Password | Optional password, stored as a secret | -For localhost or a server on a private network, turn on **Private network** in -the connection settings. Save and reconnect after changing these settings. +Public, LAN, VPN, link-local and localhost addresses work directly from the +server address; there is no separate network permission setting. Listing, reading, writing, creating directories, renaming and deleting are supported. Reads and writes stream in pieces of at most 1 MiB, so a file of any diff --git a/src/lib.rs b/src/lib.rs index d408824..abd2df0 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -441,6 +441,7 @@ impl Guest for Webdav { } } +#[cfg(not(test))] sdk::export!(Webdav with_types_in sdk); #[cfg(test)] diff --git a/wit/filesystem.wit b/wit/filesystem.wit index b5bcdf8..824db1d 100644 --- a/wit/filesystem.wit +++ b/wit/filesystem.wit @@ -35,11 +35,10 @@ interface host { /// `respond`. An empty result means the body is complete. pull: func(limit: u32) -> result, host-error>; } - /// Begins a request to any public HTTP or HTTPS host. Each redirect and - /// DNS result is checked, and DNS is pinned. Private/LAN addresses require - /// the connection's private-network grant. Cross-origin redirects remove - /// request headers; HTTPS cannot - /// downgrade. The host bounds total bytes per exchange, not buffer size. + /// Begins a request to any HTTP or HTTPS host, including LAN and loopback + /// addresses. Each redirect and DNS result is checked, and DNS is pinned. + /// Cross-origin redirects remove request headers; HTTPS cannot downgrade. + /// The host bounds total bytes per exchange, not buffer size. http: func(request: request) -> result; /// One open TCP connection. Dropping the handle closes the socket, and the @@ -51,10 +50,10 @@ interface host { /// Writes at most 1,048,576 bytes and returns how many were accepted. write: func(data: list) -> result; } - /// Opens a socket to any public host on a package-declared port. - /// The host resolves and pins DNS, applies the same private-address rule - /// as `http`, and starts TLS when asked. Ports - /// negotiated at runtime, such as an FTP data channel, must be declared. + /// Opens a socket to any host, including LAN and loopback addresses, on a + /// package-declared port. The host resolves and pins DNS and starts TLS + /// when asked. Ports negotiated at runtime, such as an FTP data channel, + /// must be declared. connect: func(host: string, port: u16, tls: bool) -> result; /// One datagram socket connected to a single peer. @@ -65,8 +64,8 @@ interface host { /// means none arrived inside the host's wait, not that the peer left. receive: func(limit: u32) -> result, host-error>; } - /// Connects a datagram socket under the same port and private-network rules - /// as `connect`, for the few filesystem protocols that still need one. + /// Connects a datagram socket under the same port rules as `connect`, for + /// the few filesystem protocols that still need one. bind: func(host: string, port: u16) -> result; /// A configuration value, typed as the package's manifest declared it.