aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/libslirp.h6
-rw-r--r--src/slirp.c6
-rw-r--r--src/slirp.h2
3 files changed, 13 insertions, 1 deletions
diff --git a/src/libslirp.h b/src/libslirp.h
index 77396f0..35ddab6 100644
--- a/src/libslirp.h
+++ b/src/libslirp.h
@@ -90,7 +90,7 @@ typedef struct SlirpCb {
} SlirpCb;
#define SLIRP_CONFIG_VERSION_MIN 1
-#define SLIRP_CONFIG_VERSION_MAX 4
+#define SLIRP_CONFIG_VERSION_MAX 5
typedef struct SlirpConfig {
/* Version must be provided */
@@ -140,6 +140,10 @@ typedef struct SlirpConfig {
* Fields introduced in SlirpConfig version 4 begin
*/
bool disable_dhcp; /* slirp will not reply to any DHCP requests */
+ /*
+ * Fields introduced in SlirpConfig version 5 begin
+ */
+ uint32_t mfr_id; /* Manufacturer ID (IANA Private Enterprise number) */
} SlirpConfig;
/* Create a new instance of a slirp stack */
diff --git a/src/slirp.c b/src/slirp.c
index 04bce41..588cada 100644
--- a/src/slirp.c
+++ b/src/slirp.c
@@ -648,6 +648,12 @@ Slirp *slirp_new(const SlirpConfig *cfg, const SlirpCb *callbacks, void *opaque)
slirp->cb->init_completed(slirp, slirp->opaque);
}
+ if (cfg->version >= 5) {
+ slirp->mfr_id = cfg->mfr_id;
+ } else {
+ slirp->mfr_id = 0;
+ }
+
ip6_post_init(slirp);
return slirp;
}
diff --git a/src/slirp.h b/src/slirp.h
index 35c2be3..a61ea15 100644
--- a/src/slirp.h
+++ b/src/slirp.h
@@ -151,6 +151,8 @@ struct Slirp {
bool disable_host_loopback;
+ uint32_t mfr_id;
+
/* mbuf states */
struct slirp_quehead m_freelist;
struct slirp_quehead m_usedlist;