<%-- - Copyright (C) 2007 Jive Software. All rights reserved. - - This software is published under the terms of the GNU Public License (GPL), - a copy of which is included in this distribution. --%> <%@ page import="org.jivesoftware.util.JiveGlobals" %> <%@ page import="org.jivesoftware.util.ParamUtils" %> <%@ page import="org.jivesoftware.openfire.XMPPServer" %> <%@ page import="org.jivesoftware.openfire.stun.STUNService" %> <%@ page import="org.jivesoftware.openfire.stun.StunServerAddress" %> <%@ page import="java.net.InetAddress" %> <%@ page import="java.util.List" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ taglib uri="http://java.sun.com/jstl/fmt_rt" prefix="fmt" %> <% STUNService stunService = XMPPServer.getInstance().getSTUNService(); boolean save = request.getParameter("save") != null; boolean add = request.getParameter("add") != null; int remove = ParamUtils.getIntParameter(request, "remove", -1); boolean success = false; boolean enabled = true; boolean localEnabled = false; String primaryAddress; String secondaryAddress; int primaryPort = 3478; int secondaryPort = 3479; if (save) { primaryPort = ParamUtils.getIntParameter(request, "primaryPort", primaryPort); JiveGlobals.setProperty("stun.port.primary", String.valueOf(primaryPort)); secondaryPort = ParamUtils.getIntParameter(request, "secondaryPort", secondaryPort); JiveGlobals.setProperty("stun.port.secondary", String.valueOf(secondaryPort)); primaryAddress = ParamUtils.getParameter(request, "primaryAddress", true); JiveGlobals.setProperty("stun.address.primary", primaryAddress); secondaryAddress = ParamUtils.getParameter(request, "secondaryAddress", true); JiveGlobals.setProperty("stun.address.secondary", secondaryAddress); enabled = JiveGlobals.getBooleanProperty("stun.enabled", enabled); localEnabled = ParamUtils.getBooleanParameter(request, "localEnabled", localEnabled); JiveGlobals.setProperty("stun.local.enabled", String.valueOf(localEnabled)); stunService.stop(); stunService.initialize(XMPPServer.getInstance()); if (!enabled) localEnabled = false; stunService.setEnabled(enabled, localEnabled); success = stunService.isEnabled() == enabled && stunService.isLocalEnabled() == localEnabled; } else if (remove > -1) { stunService.removeExternalServer(remove); success = true; } else if (add) { String server = ParamUtils.getParameter(request, "externalServer", true); String port = ParamUtils.getParameter(request, "externalPort", true); if (server != null && port != null) if (!server.equals("") && !port.equals("")) { if (server.indexOf(';') == -1 && server.indexOf(',') == -1 && server.indexOf('@') == -1) { if (port.indexOf(';') == -1 && port.indexOf(',') == -1 && port.indexOf('@') == -1) { stunService.addExternalServer(server, port); success = true; } } } } %> <fmt:message key="stun.settings.title"/>

<% if (success) { %>
Success

<% } else if (save) { %>

<% } else if (add) { %>

<% } %>
align="left">
:
:
:
:
" onclick="checkAndSubmit()">

<% int i = 0; for (StunServerAddress stunServerAddress : stunService.getExternalServers()) { %> <% } %>
<%=stunServerAddress.getServer()%> <%=stunServerAddress.getPort()%> <fmt:message key=">
 
">