public void runProcess() { try { try { process().run(); } catch (ExitingException e) { } for (SessionListener listener : listeners) { listener.onSessionExecuted(this); } } catch (FaultException f) { Process p = null; while (hasScope() && (p = getFaultHandler(f.faultName(), true)) == null) { popScope(); } try { if (p == null) { Interpreter.getInstance().logUnhandledFault(f); throw f; } else { Value scopeValue = new VariablePathBuilder(false).add(currentScopeId(), 0).toVariablePath().getValue(); scopeValue.getChildren(f.faultName()).set(0, f.value()); try { p.run(); } catch (ExitingException e) { } } } catch (FaultException fault) { for (SessionListener listener : listeners) { listener.onSessionError(this, fault); } } for (SessionListener listener : listeners) { listener.onSessionExecuted(this); } } }
public Value getNetworkInterfaceNames() throws FaultException { Value response = Value.create(); ValueVector interfaces = response.getChildren("interfaceName"); try { Enumeration<NetworkInterface> list = NetworkInterface.getNetworkInterfaces(); int index = 0; while (list.hasMoreElements()) { NetworkInterface n = list.nextElement(); interfaces.get(index).setValue(n.getName()); if (n.getDisplayName() == null) { interfaces.get(index).getFirstChild("displayName").setValue(""); } else { interfaces.get(index).getFirstChild("displayName").setValue(n.getDisplayName()); } index++; } } catch (SocketException e) { throw new FaultException(e); } return response; }
public Value getIPAddresses(Value request) throws FaultException { Value response = Value.create(); try { Enumeration<NetworkInterface> list = NetworkInterface.getNetworkInterfaces(); boolean found = false; while (list.hasMoreElements()) { NetworkInterface n = list.nextElement(); if (n.getName().equals(request.getFirstChild("interfaceName").strValue())) { found = true; Enumeration<InetAddress> ad = n.getInetAddresses(); while (ad.hasMoreElements()) { InetAddress ia = ad.nextElement(); if (ia.getHostName().contains(".")) { // it is an IP4 address response.getFirstChild("ip4").setValue(ia.getHostName()); } else { // it is an IP6 response.getFirstChild("ip6").setValue(ia.getHostName()); } } } } if (!found) { throw new FaultException("InterfaceNotFound", new Exception()); } } catch (SocketException e) { throw new FaultException(e); } return response; }