From a3062dd8c2f9b6e9b2a9b0cef6951d2adfe9cc40 Mon Sep 17 00:00:00 2001
From: DipSwitch <dipswitch@ownage4u.nl>
Date: Tue, 8 Sep 2015 09:20:20 +0200
Subject: [PATCH] rpl: RPL Instance ID 0 must be allowed

---
 sys/shell/commands/sc_gnrc_rpl.c | 42 +++++---------------------------
 1 file changed, 6 insertions(+), 36 deletions(-)

diff --git a/sys/shell/commands/sc_gnrc_rpl.c b/sys/shell/commands/sc_gnrc_rpl.c
index d77d250718..85674fefd3 100644
--- a/sys/shell/commands/sc_gnrc_rpl.c
+++ b/sys/shell/commands/sc_gnrc_rpl.c
@@ -46,7 +46,7 @@ int _gnrc_rpl_dodag_root(char *arg1, char *arg2)
     ipv6_addr_t dodag_id;
 
     if (ipv6_addr_from_str(&dodag_id, arg2) == NULL) {
-        puts("<dodag_id> must be a valid IPv6 address");
+        puts("error: <dodag_id> must be a valid IPv6 address");
         return 1;
     }
 
@@ -65,15 +65,9 @@ int _gnrc_rpl_dodag_root(char *arg1, char *arg2)
 
 int _gnrc_rpl_instance_remove(char *arg1)
 {
-    uint8_t instance_id = 0;
+    uint8_t instance_id = (uint8_t) atoi(arg1);
     gnrc_rpl_instance_t *inst;
 
-    instance_id = (uint8_t) atoi(arg1);
-    if (instance_id == 0) {
-        puts("error: <instance_id> must be a positive number greater than zero");
-        return 1;
-    }
-
     if ((inst = gnrc_rpl_instance_get(instance_id)) == NULL) {
         printf("error: could not find the instance (%d)\n", instance_id);
         return 1;
@@ -90,18 +84,12 @@ int _gnrc_rpl_instance_remove(char *arg1)
 
 int _gnrc_rpl_dodag_remove(char *arg1, char *arg2)
 {
-    uint8_t instance_id = 0;
+    uint8_t instance_id = (uint8_t) atoi(arg1);
     ipv6_addr_t dodag_id;
     gnrc_rpl_instance_t *inst;
     gnrc_rpl_dodag_t *dodag = NULL;
     char addr_str[IPV6_ADDR_MAX_STR_LEN];
 
-    instance_id = (uint8_t) atoi(arg1);
-    if (instance_id == 0) {
-        puts("error: <instance_id> must be a positive number greater than zero");
-        return 1;
-    }
-
     if (ipv6_addr_from_str(&dodag_id, arg2) == NULL) {
         puts("error: <dodag_id> must be a valid IPv6 address");
         return 1;
@@ -132,18 +120,12 @@ int _gnrc_rpl_dodag_remove(char *arg1, char *arg2)
 
 int _gnrc_rpl_trickle_reset(char *arg1, char *arg2)
 {
-    uint8_t instance_id = 0;
+    uint8_t instance_id = (uint8_t) atoi(arg1);
     ipv6_addr_t dodag_id;
     gnrc_rpl_instance_t *inst;
     gnrc_rpl_dodag_t *dodag = NULL;
     char addr_str[IPV6_ADDR_MAX_STR_LEN];
 
-    instance_id = (uint8_t) atoi(arg1);
-    if (instance_id == 0) {
-        puts("error: <instance_id> must be a positive number greater than zero");
-        return 1;
-    }
-
     if (ipv6_addr_from_str(&dodag_id, arg2) == NULL) {
         puts("error: <dodag_id> must be a valid IPv6 address");
         return 1;
@@ -169,18 +151,12 @@ int _gnrc_rpl_trickle_reset(char *arg1, char *arg2)
 
 int _gnrc_rpl_trickle_stop(char *arg1, char *arg2)
 {
-    uint8_t instance_id = 0;
+    uint8_t instance_id = (uint8_t) atoi(arg1);
     ipv6_addr_t dodag_id;
     gnrc_rpl_instance_t *inst;
     gnrc_rpl_dodag_t *dodag = NULL;
     char addr_str[IPV6_ADDR_MAX_STR_LEN];
 
-    instance_id = (uint8_t) atoi(arg1);
-    if (instance_id == 0) {
-        puts("error: <instance_id> must be a positive number greater than zero");
-        return 1;
-    }
-
     if (ipv6_addr_from_str(&dodag_id, arg2) == NULL) {
         puts("error: <dodag_id> must be a valid IPv6 address");
         return 1;
@@ -206,18 +182,12 @@ int _gnrc_rpl_trickle_stop(char *arg1, char *arg2)
 
 int _gnrc_rpl_trickle_start(char *arg1, char *arg2)
 {
-    uint8_t instance_id = 0;
+    uint8_t instance_id = (uint8_t) atoi(arg1);
     ipv6_addr_t dodag_id;
     gnrc_rpl_instance_t *inst;
     gnrc_rpl_dodag_t *dodag = NULL;
     char addr_str[IPV6_ADDR_MAX_STR_LEN];
 
-    instance_id = (uint8_t) atoi(arg1);
-    if (instance_id == 0) {
-        puts("error: <instance_id> must be a positive number greater than zero");
-        return 1;
-    }
-
     if (ipv6_addr_from_str(&dodag_id, arg2) == NULL) {
         puts("error: <dodag_id> must be a valid IPv6 address");
         return 1;
-- 
GitLab