Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Catch DNS errors to avoid unhandled exceptions (#1215)
Catches potential DNS errors produced in outbound network requests to avoid unhandled exceptions. ## What problem is it solving? Fixes the problem described in #535. ## How is the problem addressed? The PR introduces a `try-catch` statement to catch errors produced when invoking `lookup` to resolve the target host address. When this happens, it sends empty binary data as a notification that the connection initiated but soon after, it closes the connection with error code `3000`. ## Testing Instructions The [original issue](#535) references `wp-now`, so it's recommended to test the changes using a local build of `wp-now` from the [`playground-tools` repository](https://github.com/WordPress/playground-tools). 1. In `wordpress-playground` repository, run `nx build php-wasm-node`. 2. Check out [`playground-tools` repository](https://github.com/WordPress/playground-tools). 3. In `playground-rools` repository, update the `@php-wasm/node` dependency to point to the local path of the `wordpress-playground` repository. **Example:** ```patch diff --git forkSrcPrefix/package.json forkDstPrefix/package.json index cc623dc57810509691383fa068cc8f921c957f48..ac84b7f467c2f7d23b9fa8c5f9487cafdb4644e6 100644 --- forkSrcPrefix/package.json +++ forkDstPrefix/package.json @@ -32,7 +32,7 @@ "@codemirror/state": "6.2.0", "@codemirror/theme-one-dark": "6.1.1", "@codemirror/view": "6.9.3", - "@php-wasm/node": "0.6.10", + "@php-wasm/node": "file:../wordpress-playground/dist/packages/php-wasm/node", "@php-wasm/progress": "0.6.10", "@php-wasm/universal": "0.6.10", "@php-wasm/web": "0.6.10", ``` 4. Run `npm i`. 5. Run `nx build wp-now`. 6. Run `node dist/packages/wp-now/cli.js start`. 7. Turn off internet connection. 8. Navigate to the site's WP admin (`/wp-admin`). 9. Observe no errors are logged and that `wp-now` doesn't crash. 10. Navigate to `/wp-admin/plugin-install.php`. 11. Observe no errors are logged and that `wp-now` doesn't crash. 12. Observe that the page shows an error message due to being offline. 13. Navigate to `/wp-admin/update-core.php` 14. Observe no errors are logged and that `wp-now` doesn't crash. > [!NOTE] > It's recommended to disable the network cache in your browser via the DevTools Network tab.
- Loading branch information