Add OLSR support for NIIT (IP 4to6 tunnel device)
[olsrd.git] / src / main.c
index c2edd6b..a6873b5 100644 (file)
@@ -78,6 +78,8 @@ bool olsr_win32_end_flag = false;
 static void olsr_shutdown(int) __attribute__ ((noreturn));
 #endif
 
+#define DEF_NIIT_IFNAME         "niit4to6"
+
 /*
  * Local function prototypes
  */
@@ -162,6 +164,21 @@ static void olsr_create_lock_file(void) {
   return;
 }
 
+#ifdef linux
+static void handle_niit_config(void) {
+  int if_index;
+
+  if (olsr_cnf->ip_version == AF_INET || !olsr_cnf->use_niit) {
+    return;
+  }
+
+  if_index = if_nametoindex(DEF_NIIT_IFNAME);
+  if (if_index > 0 && olsr_check_ifup(DEF_NIIT_IFNAME)) {
+    olsr_cnf->niit_if_index = if_index;
+  }
+}
+#endif
+
 /**
  * loads a config file
  * @return <0 if load failed, 0 otherwise
@@ -374,6 +391,11 @@ int main(int argc, char *argv[]) {
   }
 #endif
 
+#if defined linux
+  /* initialize niit if index */
+  handle_niit_config();
+#endif
+
   /* Init empty TC timer */
   set_empty_tc_timer(GET_TIMESTAMP(0));