@@ -267,19 +267,17 @@ static void slirp_init_once(void)
267
267
}
268
268
}
269
269
270
- Slirp * slirp_initx (const SlirpConfig * cfg , const SlirpCb * callbacks ,
271
- void * opaque )
270
+ Slirp * slirp_new (const SlirpConfig * cfg , const SlirpCb * callbacks , void * opaque )
272
271
{
273
272
Slirp * slirp ;
274
- if (cfg == NULL ) {
275
- return NULL ;
276
- }
277
- if (cfg -> if_mtu > IF_MTU_MAX ) {
278
- return NULL ;
279
- }
280
- if (cfg -> if_mru > IF_MRU_MAX ) {
281
- return NULL ;
282
- }
273
+
274
+ g_return_val_if_fail (cfg != NULL , NULL );
275
+ g_return_val_if_fail (cfg -> version >= SLIRP_CONFIG_VERSION_MIN , NULL );
276
+ g_return_val_if_fail (cfg -> version <= SLIRP_CONFIG_VERSION_MAX , NULL );
277
+ g_return_val_if_fail (cfg -> if_mtu >= IF_MTU_MIN || cfg -> if_mtu == 0 , NULL );
278
+ g_return_val_if_fail (cfg -> if_mtu <= IF_MTU_MAX , NULL );
279
+ g_return_val_if_fail (cfg -> if_mru >= IF_MRU_MIN || cfg -> if_mru == 0 , NULL );
280
+ g_return_val_if_fail (cfg -> if_mru <= IF_MRU_MAX , NULL );
283
281
284
282
slirp = g_malloc0 (sizeof (Slirp ));
285
283
@@ -297,7 +295,6 @@ Slirp *slirp_initx(const SlirpConfig *cfg, const SlirpCb *callbacks,
297
295
ip_init (slirp );
298
296
ip6_init (slirp );
299
297
300
- /* Initialise mbufs *after* setting the MTU */
301
298
m_init (slirp );
302
299
303
300
slirp -> vnetwork_addr = cfg -> vnetwork ;
@@ -341,6 +338,7 @@ Slirp *slirp_init(int restricted, bool in_enabled, struct in_addr vnetwork,
341
338
{
342
339
SlirpConfig cfg ;
343
340
memset (& cfg , 0 , sizeof (cfg ));
341
+ cfg .version = 1 ;
344
342
cfg .restricted = restricted ;
345
343
cfg .in_enabled = in_enabled ;
346
344
cfg .vnetwork = vnetwork ;
@@ -359,7 +357,7 @@ Slirp *slirp_init(int restricted, bool in_enabled, struct in_addr vnetwork,
359
357
cfg .vnameserver6 = vnameserver6 ;
360
358
cfg .vdnssearch = vdnssearch ;
361
359
cfg .vdomainname = vdomainname ;
362
- return slirp_initx (& cfg , callbacks , opaque );
360
+ return slirp_new (& cfg , callbacks , opaque );
363
361
}
364
362
365
363
void slirp_cleanup (Slirp * slirp )
0 commit comments