diff --git a/sys/net/gnrc/routing/rpl/gnrc_rpl_auto_init.c b/sys/net/gnrc/routing/rpl/gnrc_rpl_auto_init.c index 0f36971ea9..b641bceaaa 100644 --- a/sys/net/gnrc/routing/rpl/gnrc_rpl_auto_init.c +++ b/sys/net/gnrc/routing/rpl/gnrc_rpl_auto_init.c @@ -28,35 +28,37 @@ void auto_init_gnrc_rpl(void) { -#if (GNRC_NETIF_NUMOF == 1) - gnrc_netif_t *netif = gnrc_netif_iter(NULL); - if (netif == NULL) { - /* XXX this is just a work-around ideally this would happen with - * an `up` event of the interface */ - LOG_INFO("Unable to auto-initialize RPL. No interfaces found.\n"); - return; - } - DEBUG("auto_init_gnrc_rpl: initializing RPL on interface %" PRIkernel_pid "\n", - netif->pid); - gnrc_rpl_init(netif->pid); - return; -#elif defined(GNRC_RPL_DEFAULT_NETIF) - if (gnrc_netif_get_by_pid(GNRC_RPL_DEFAULT_NETIF) != NULL) { + if (GNRC_NETIF_NUMOF == 1) { + gnrc_netif_t *netif = gnrc_netif_iter(NULL); + if (netif == NULL) { + /* XXX this is just a work-around ideally this would happen with + * an `up` event of the interface */ + LOG_INFO("Unable to auto-initialize RPL. No interfaces found.\n"); + return; + } DEBUG("auto_init_gnrc_rpl: initializing RPL on interface %" PRIkernel_pid "\n", - GNRC_RPL_DEFAULT_NETIF); - gnrc_rpl_init(GNRC_RPL_DEFAULT_NETIF); + netif->pid); + gnrc_rpl_init(netif->pid); return; } - /* XXX this is just a work-around ideally this would happen with - * an `up` event of the GNRC_RPL_DEFAULT_NETIF */ - DEBUG("auto_init_gnrc_rpl: could not initialize RPL on interface %" PRIkernel_pid" - " - "interface does not exist\n", GNRC_RPL_DEFAULT_NETIF); - return; -#else - /* XXX this is just a work-around ideally this should be defined in some - * run-time interface configuration */ - DEBUG("auto_init_gnrc_rpl: please specify an interface by setting GNRC_RPL_DEFAULT_NETIF\n"); -#endif + else if (GNRC_RPL_DEFAULT_NETIF != KERNEL_PID_UNDEF) { + if (gnrc_netif_get_by_pid(GNRC_RPL_DEFAULT_NETIF) != NULL) { + DEBUG("auto_init_gnrc_rpl: initializing RPL on interface %" PRIkernel_pid "\n", + (kernel_pid_t) GNRC_RPL_DEFAULT_NETIF); + gnrc_rpl_init(GNRC_RPL_DEFAULT_NETIF); + return; + } + /* XXX this is just a work-around ideally this would happen with + * an `up` event of the GNRC_RPL_DEFAULT_NETIF */ + DEBUG("auto_init_gnrc_rpl: could not initialize RPL on interface %" PRIkernel_pid" - " + "interface does not exist\n", (kernel_pid_t) GNRC_RPL_DEFAULT_NETIF); + return; + } + else { + /* XXX this is just a work-around ideally this should be defined in some + * run-time interface configuration */ + DEBUG("auto_init_gnrc_rpl: please specify an interface by setting GNRC_RPL_DEFAULT_NETIF\n"); + } } #else typedef int dont_be_pedantic;