commit | 72f85005a2307fd0961543e3cea861ad7a4d201e | [log] [tgz] |
---|---|---|
author | B. Scott Michel <scooter.phd@gmail.com> | Mon Sep 16 09:14:32 2024 -0700 |
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | Thu Sep 26 03:04:25 2024 +0200 |
tree | aaea4bf5c09fd87901712517113ff624f4cc44f4 | |
parent | 5e97a93bf0599037de37d45c33d4cdb902a5264e [diff] |
socket abstraction: slirp_os_socket Use a typedef to abstract socket identifiers because Windows just has to be different (SOCKET type.) Moreover, SOCKET on Win64 is 64-bits and generates copious type slicing warnings. Other related changes: - Explicitly cast curtime's assignment to unsigned int to tamp down on type slicing warning. - Ensure that errno.h is always included. Important for Windows, which would otherwise #define errno as WSAGetLastError(); errno.h #define-s errno as a function, i.e., "*errno()". - Export slirp_inet_aton() utility function for Win32/64. - tcpx_listen() - WSASetLastError() unnecessary. - Use have_valid_socket() to check socket in error cleanup code (vs. "s >= 0").
libslirp is a user-mode networking library used by virtual machines, containers or various tools.
A C compiler, meson and glib2 development libraries.
(see also .gitlab-ci.yml DEPS variable for the list of dependencies on Fedora)
You may build and install the shared library with meson:
meson build ninja -C build install
And configure QEMU with --enable-slirp=system to link against it.
(QEMU may build with the submodule static library using --enable-slirp=git)
Unfortunately, there are no automated tests available.
You may run QEMU -net user
linked with your development version.
Feel free to open issues on the project issues page.
You may clone the gitlab project and create a merge request.
Contributing with gitlab allows gitlab workflow, tracking issues, running CI etc.
Alternatively, you may send patches to slirp@lists.freedesktop.org mailing list.
We intend to use libtool's versioning for the shared libraries and use SemVer for project versions.
For the versions available, see the tags on this repository.
See the COPYRIGHT file for details.