Skip to content

Commit

Permalink
Warnings if unable to config interface (#39)
Browse files Browse the repository at this point in the history
* Warnings if unable to config interface

* clang format

* Use getlogin() to get user for commands

- Suggestion per @2bndy5
  • Loading branch information
TMRh20 authored Jun 23, 2024
1 parent 1dc0134 commit f3dfd17
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 5 deletions.
7 changes: 6 additions & 1 deletion RF24Gateway.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -209,7 +209,12 @@ int ESBGateway<mesh_t, network_t, radio_t>::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
}
Expand Down
15 changes: 13 additions & 2 deletions examples/ncurses/RF24Gateway_ncurses.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand All @@ -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
{
Expand Down
15 changes: 13 additions & 2 deletions examples/ncursesInt/RF24Gateway_ncursesInt.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand All @@ -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
{
Expand Down

0 comments on commit f3dfd17

Please sign in to comment.