blob: 917a9d3a9e5e8686ce0069b0f4bbb6d8b45975c4 [file]
/* SPDX-License-Identifier: BSD-3-Clause */
#include "slirp.h"
static SlirpCb callbacks;
static void check_pool(Slirp *s, int expected)
{
struct mbuf *m = m_get(s);
g_assert_cmpint(M_ROOM(m), >=, expected);
memset(m->m_data, 0xa5, expected);
m_free(m);
m = m_get(s);
g_assert_cmpint(M_ROOM(m), >=, expected);
memset(m->m_data, 0x5a, expected);
m_free(m);
}
int main(void)
{
SlirpConfig cfg = {
.version = SLIRP_CONFIG_VERSION_MAX,
.if_mtu = 9000,
.if_mru = 8000,
};
Slirp *s = slirp_new(&cfg, &callbacks, NULL);
g_assert_cmpint(s->if_mtu6, ==, 9000);
g_assert_cmpint(s->if_mru6, ==, 8000);
check_pool(s, 9000);
slirp_cleanup(s);
cfg.if_mtu = 1500;
cfg.if_mtu6 = 9000;
cfg.if_mru6 = 4000;
s = slirp_new(&cfg, &callbacks, NULL);
g_assert_cmpint(s->if_mtu6, ==, 9000);
g_assert_cmpint(s->if_mru6, ==, 4000);
check_pool(s, 9000);
slirp_cleanup(s);
cfg.version = 6;
s = slirp_new(&cfg, &callbacks, NULL);
g_assert_cmpint(s->if_mtu6, ==, 1500);
g_assert_cmpint(s->if_mru6, ==, 8000);
check_pool(s, 1500);
slirp_cleanup(s);
return 0;
}