From c20f62a8c0ad489e8e49abd2b96a99591a5d1edb Mon Sep 17 00:00:00 2001 From: ori agranat Date: Tue, 25 Feb 2020 00:28:14 +0200 Subject: [PATCH] code cleanup --- chameleon-server/chameleon-vision.iml | 1 + .../chameleonvision/network/LinuxNetworking.java | 3 +-- .../chameleonvision/network/NetmaskToCIDR.java | 11 ++++++----- .../chameleonvision/network/NetworkManager.java | 15 +-------------- .../com/chameleonvision/web/RequestHandler.java | 13 ++++++++++--- 5 files changed, 19 insertions(+), 24 deletions(-) diff --git a/chameleon-server/chameleon-vision.iml b/chameleon-server/chameleon-vision.iml index 41084fba0..445efaa82 100644 --- a/chameleon-server/chameleon-vision.iml +++ b/chameleon-server/chameleon-vision.iml @@ -11,6 +11,7 @@ + diff --git a/chameleon-server/src/main/java/com/chameleonvision/network/LinuxNetworking.java b/chameleon-server/src/main/java/com/chameleonvision/network/LinuxNetworking.java index 4c5a8076c..2794f0c9a 100644 --- a/chameleon-server/src/main/java/com/chameleonvision/network/LinuxNetworking.java +++ b/chameleon-server/src/main/java/com/chameleonvision/network/LinuxNetworking.java @@ -64,7 +64,7 @@ public class LinuxNetworking extends SysNetworking { @Override public boolean setStatic(String ipAddress, String netmask, String gateway) { - setDHCP(); + setDHCP(); // clean up old static interface File dhcpConf = new File(PATH); try { List lines = FileUtils.readLines(dhcpConf, StandardCharsets.UTF_8); @@ -89,7 +89,6 @@ public class LinuxNetworking extends SysNetworking { } catch (SocketException e) { return null; } - List goodInterfaces = new ArrayList<>(); for (var netInterface : netInterfaces) { diff --git a/chameleon-server/src/main/java/com/chameleonvision/network/NetmaskToCIDR.java b/chameleon-server/src/main/java/com/chameleonvision/network/NetmaskToCIDR.java index 738e1321a..84673605f 100644 --- a/chameleon-server/src/main/java/com/chameleonvision/network/NetmaskToCIDR.java +++ b/chameleon-server/src/main/java/com/chameleonvision/network/NetmaskToCIDR.java @@ -3,19 +3,20 @@ package com.chameleonvision.network; import java.net.InetAddress; public class NetmaskToCIDR { - public static int convertNetmaskToCIDR(InetAddress netmask){ + //code belongs to https://stackoverflow.com/questions/19531411/calculate-cidr-from-a-given-netmask-java + public static int convertNetmaskToCIDR(InetAddress netmask) { byte[] netmaskBytes = netmask.getAddress(); int cidr = 0; boolean zero = false; - for(byte b : netmaskBytes){ + for (byte b : netmaskBytes) { int mask = 0x80; - for(int i = 0; i < 8; i++){ + for (int i = 0; i < 8; i++) { int result = b & mask; - if(result == 0){ + if (result == 0) { zero = true; - }else if(zero){ + } else if (zero) { throw new IllegalArgumentException("Invalid netmask."); } else { cidr++; diff --git a/chameleon-server/src/main/java/com/chameleonvision/network/NetworkManager.java b/chameleon-server/src/main/java/com/chameleonvision/network/NetworkManager.java index 1b1690882..60a99b8f1 100644 --- a/chameleon-server/src/main/java/com/chameleonvision/network/NetworkManager.java +++ b/chameleon-server/src/main/java/com/chameleonvision/network/NetworkManager.java @@ -68,12 +68,6 @@ public class NetworkManager { } else { isManaged = false; System.err.println("No valid network interfaces found! Staying unmanaged."); - return; - } - - if (!loadFromGeneralSettings()) { - isManaged = false; - System.err.println("Failed to load network settings. Staying unmanaged!"); } } @@ -81,13 +75,6 @@ public class NetworkManager { return new byte[]{(byte) (teamNumber / 100), (byte) (teamNumber % 100)}; } - private static boolean loadFromGeneralSettings() { - if (!isManaged) { - return true; - } - var genSettings = ConfigManager.settings; - return setHostname(genSettings.hostname); - } private static boolean setDHCP() { if (!isManaged) { @@ -103,7 +90,7 @@ public class NetworkManager { return networking.setStatic(ipAddress, netmask, gateway); } - private static boolean setHostname(String hostname) { + public static boolean setHostname(String hostname) { if (!isManaged) { return true; } diff --git a/chameleon-server/src/main/java/com/chameleonvision/web/RequestHandler.java b/chameleon-server/src/main/java/com/chameleonvision/web/RequestHandler.java index 636c7b425..af82b6448 100644 --- a/chameleon-server/src/main/java/com/chameleonvision/web/RequestHandler.java +++ b/chameleon-server/src/main/java/com/chameleonvision/web/RequestHandler.java @@ -53,11 +53,18 @@ public class RequestHandler { ConfigManager.settings.netmask = (String) map.get("netmask"); ConfigManager.settings.gateway = (String) map.get("gateway"); ConfigManager.settings.hostname = (String) map.get("hostname"); - boolean isStatic = ConfigManager.settings.connectionType.equals(NetworkIPMode.STATIC); ConfigManager.saveGeneralSettings(); - NetworkManager.setNetwork(isStatic, ConfigManager.settings.ip, ConfigManager.settings.netmask, ConfigManager.settings.gateway); + // setting up network config after saving + boolean isStatic = ConfigManager.settings.connectionType.equals(NetworkIPMode.STATIC); + + if (NetworkManager.setHostname(ConfigManager.settings.hostname) && + NetworkManager.setNetwork(isStatic, ConfigManager.settings.ip, ConfigManager.settings.netmask, ConfigManager.settings.gateway)) { + ctx.status(200); + } else { + ctx.result("something went wrong while setting network configuration"); + ctx.status(501); + } SocketHandler.sendFullSettings(); - ctx.status(200); } catch (JsonProcessingException e) { ctx.status(500); }