diff --git a/src/jnet/server/Database.java b/src/jnet/server/Database.java index 53b8ca7..0668352 100644 --- a/src/jnet/server/Database.java +++ b/src/jnet/server/Database.java @@ -768,4 +768,13 @@ public class Database { } } + public static void editConnection(jnet.lib.object.Connection c) { + String sql = "UPDATE objectConnection SET " + + "type='" + c.getType() + "'," + + "readTraffic='" + (c.isReadTraffic() ? 1:0) + "'," + + "sourceTraffic='" + c.getTrafficObject() + "'," + + "sourceInterface='" + c.getTrafficIface() + "' " + + "WHERE id='" + c.getId() + "'"; + update(sql); + } } diff --git a/src/jnet/server/ServerMessageParser.java b/src/jnet/server/ServerMessageParser.java index 67bb314..8616afc 100644 --- a/src/jnet/server/ServerMessageParser.java +++ b/src/jnet/server/ServerMessageParser.java @@ -62,6 +62,7 @@ public class ServerMessageParser { handlers.put(Message.SNMP_TEST, this::handleSnmpTest); handlers.put(Message.SNMP_CONNECTION_INTERFACE, this::handleSnmpConnectionInterface); handlers.put(Message.CONNECTION_NEW, this::handlerConnectionNew); + handlers.put(Message.CONNECTION_UPDATE, this::handlerConnectionUpdate); } public void parse(Message msg) { @@ -400,8 +401,8 @@ public class ServerMessageParser { }; t1.start(); } - - private void handleSnmpTest(Message msg){ + + private void handleSnmpTest(Message msg) { Object[] msg_object = (Object[]) msg.getMsg(); String frameName = (String) msg_object[0]; MapObject obj = (MapObject) msg_object[1]; @@ -416,7 +417,7 @@ public class ServerMessageParser { Object[] o = {frameName, result}; send(Message.SNMP_TEST, o); break; -} + } } } catch (Exception ex) { LogFile.printErr("SNMP error: " + ex.getMessage()); @@ -425,8 +426,8 @@ public class ServerMessageParser { }; t1.start(); } - - private void handleSnmpConnectionInterface(Message msg){ + + private void handleSnmpConnectionInterface(Message msg) { Object[] msg_object = (Object[]) msg.getMsg(); String frameName = (String) msg_object[0]; MapObject obj = (MapObject) msg_object[1]; @@ -450,7 +451,7 @@ public class ServerMessageParser { }; t1.start(); } - + private void handlerConnectionNew(Message msg) { Connection c = Database.addConnection((Connection) msg.getMsg()); for (Map map : Server.maps) { @@ -461,6 +462,23 @@ public class ServerMessageParser { sendAll(Message.CONNECTION_NEW, c); } + private void handlerConnectionUpdate(Message msg) { + Connection c = (Connection) msg.getMsg(); + // upravi v databezi + Database.editConnection(c); + // upravi v seznamu + for (Map map : Server.maps) { + List connections = map.getConnection(); + for (int i = 0; i < connections.size(); i++) { + if (connections.get(i).getId() == c.getId()) { + connections.set(i, c); + } + } + } + // odesle vsem zmenu + sendAll(Message.CONNECTION_UPDATE, c); + } + /** * *