void sr_init(struct sr_instance* sr) { /* REQUIRES */ assert(sr); /* Initialize cache and cache cleanup thread */ sr_arpcache_init(&(sr->cache)); pthread_attr_init(&(sr->attr)); pthread_attr_setdetachstate(&(sr->attr), PTHREAD_CREATE_JOINABLE); pthread_attr_setscope(&(sr->attr), PTHREAD_SCOPE_SYSTEM); pthread_attr_setscope(&(sr->attr), PTHREAD_SCOPE_SYSTEM); pthread_t thread; pthread_create(&thread, &(sr->attr), sr_arpcache_timeout, sr); /* Add initialization code here! */ if (sr->mode == 1){ sr_nat_init(&(sr->nat)); } } /* -- sr_init -- */
void sr_init(struct sr_instance* sr) { /* REQUIRES */ assert(sr); /* Initialize cache and cache cleanup thread */ sr_arpcache_init(&(sr->cache)); /* If we're using a NAT, then initialize it */ if (sr->use_nat) { sr_nat_init(&(sr->nat)); sr->nat.sr = sr; } pthread_attr_init(&(sr->attr)); pthread_attr_setdetachstate(&(sr->attr), PTHREAD_CREATE_JOINABLE); pthread_attr_setscope(&(sr->attr), PTHREAD_SCOPE_SYSTEM); pthread_attr_setscope(&(sr->attr), PTHREAD_SCOPE_SYSTEM); pthread_t thread; pthread_create(&thread, &(sr->attr), sr_arpcache_timeout, sr); } /* -- sr_init -- */