diff --git a/RF24Gateway.cpp b/RF24Gateway.cpp index fd8aedf..34bde60 100644 --- a/RF24Gateway.cpp +++ b/RF24Gateway.cpp @@ -209,7 +209,12 @@ int ESBGateway::allocateTunDevice(char* dev, int fla // close(fd); //#if (RF24GATEWAY_DEBUG_LEVEL >= 1) std::cerr << "RF24Gw: Error: enabling TUNSETIFF" << std::endl; - std::cerr << "RF24Gw: If changing from TAP/TUN, run 'sudo ip link delete tun_nrf24' to remove the interface" << std::endl; + uint32_t UID = getuid(); + if (UID) { + std::cout << "Not running as root, preconfigure the interface as follows" << std::endl; + std::cout << "sudo ip tuntap add dev tun_nrf24 mode tun user " << getlogin() << " multi_queue" << std::endl; + std::cout << "sudo ifconfig tun_nrf24 10.10.2.2/24" << std::endl; + } return -1; //#endif } diff --git a/examples/ncurses/RF24Gateway_ncurses.cpp b/examples/ncurses/RF24Gateway_ncurses.cpp index 7cff9e9..e11e53f 100644 --- a/examples/ncurses/RF24Gateway_ncurses.cpp +++ b/examples/ncurses/RF24Gateway_ncurses.cpp @@ -525,7 +525,8 @@ void drawCfg(bool isConf) sleep(1); wattron(win, COLOR_PAIR(1)); - mvwprintw(win, 5, 1, isConf ? "IP Configuration\n" : "**Interface Not Configured:**\n"); + mvwprintw(win, 4, 1, isConf ? "IP Configuration\n" : "**Interface Not Configured:**\n"); + mvwprintw(win, 5, 1, "IP 10.10.2.2 and Subnet Mask 255.255.255.0 is default\n"); wattroff(win, COLOR_PAIR(1)); mvwprintw(win, 6, 1, "Enter IP Address: \n"); refresh(); @@ -540,7 +541,17 @@ void drawCfg(bool isConf) if (strlen(ip) >= 6 && strlen(mask) >= 7) { - gw.setIP(ip, mask); + if (gw.setIP(ip, mask) < 0) { + mvwprintw(win, 8, 1, "Unable to set IP/Subnet \n"); + uint32_t UID = getuid(); + if (UID) { + mvwprintw(win, 9, 1, "Not running as root, configure as follows:\n"); + mvwprintw(win, 10, 1, "sudo ip tuntap add dev tun_nrf24 mode tun user %s multi_queue\n", getlogin()); + mvwprintw(win, 11, 1, "sudo ifconfig tun_nrf24 10.10.2.2/24\n"); + } + refresh(); + sleep(10); + } } else { diff --git a/examples/ncursesInt/RF24Gateway_ncursesInt.cpp b/examples/ncursesInt/RF24Gateway_ncursesInt.cpp index fb450d5..b10df3b 100644 --- a/examples/ncursesInt/RF24Gateway_ncursesInt.cpp +++ b/examples/ncursesInt/RF24Gateway_ncursesInt.cpp @@ -552,7 +552,8 @@ void drawCfg(bool isConf) sleep(1); wattron(win, COLOR_PAIR(1)); - mvwprintw(win, 5, 1, isConf ? "IP Configuration\n" : "**Interface Not Configured:**\n"); + mvwprintw(win, 4, 1, isConf ? "IP Configuration\n" : "**Interface Not Configured:**\n"); + mvwprintw(win, 5, 1, "IP 10.10.2.2 and Subnet Mask 255.255.255.0 is default\n"); wattroff(win, COLOR_PAIR(1)); mvwprintw(win, 6, 1, "Enter IP Address: \n"); refresh(); @@ -567,7 +568,17 @@ void drawCfg(bool isConf) if (strlen(ip) >= 6 && strlen(mask) >= 7) { - gw.setIP(ip, mask); + if (gw.setIP(ip, mask) < 0) { + mvwprintw(win, 8, 1, "Unable to set IP/Subnet \n"); + uint32_t UID = getuid(); + if (UID) { + mvwprintw(win, 9, 1, "Not running as root, configure as follows:\n"); + mvwprintw(win, 10, 1, "sudo ip tuntap add dev tun_nrf24 mode tun user %s multi_queue\n", getlogin()); + mvwprintw(win, 11, 1, "sudo ifconfig tun_nrf24 10.10.2.2/24\n"); + } + refresh(); + sleep(10); + } } else {