From 5b66e523437cea80f3c63eee9cb4a4920a88932e Mon Sep 17 00:00:00 2001 From: mguessan Date: Tue, 25 Sep 2007 22:30:11 +0000 Subject: [PATCH] Feature request 1783605: allow outside server connections git-svn-id: http://svn.code.sf.net/p/davmail/code/trunk@76 3d1905a2-6b24-0410-a738-b14d5a86fcbd --- src/java/davmail/AbstractServer.java | 3 ++- src/java/davmail/Settings.java | 12 ++++++++++++ src/java/davmail/SettingsFrame.java | 13 ++++++++++--- 3 files changed, 24 insertions(+), 4 deletions(-) diff --git a/src/java/davmail/AbstractServer.java b/src/java/davmail/AbstractServer.java index e20f85f7..2d56d6d8 100644 --- a/src/java/davmail/AbstractServer.java +++ b/src/java/davmail/AbstractServer.java @@ -41,7 +41,8 @@ public abstract class AbstractServer extends Thread { clientSocket = serverSocket.accept(); DavGatewayTray.debug("Connection from " + clientSocket.getInetAddress() + " on port " + port); // only accept localhost connections for security reasons - if (clientSocket.getInetAddress().toString().indexOf("127.0.0.1") > 0) { + if (Settings.getBooleanProperty("davmail.allowRemote") || + clientSocket.getInetAddress().toString().indexOf("127.0.0.1") > 0) { connection = createConnectionHandler(clientSocket); connection.start(); } else { diff --git a/src/java/davmail/Settings.java b/src/java/davmail/Settings.java index a9d86b44..9c0847eb 100644 --- a/src/java/davmail/Settings.java +++ b/src/java/davmail/Settings.java @@ -44,6 +44,7 @@ public class Settings { SETTINGS.put("davmail.popPort", "1110"); SETTINGS.put("davmail.smtpPort", "1025"); SETTINGS.put("davmail.keepDelay", "30"); + SETTINGS.put("davmail.allowRemote", "false"); SETTINGS.put("davmail.enableProxy", "false"); SETTINGS.put("davmail.proxyHost", ""); SETTINGS.put("davmail.proxyPort", ""); @@ -103,4 +104,15 @@ public class Settings { } return value; } + + public static synchronized boolean getBooleanProperty(String property) { + boolean value = false; + try { + String propertyValue = SETTINGS.getProperty(property); + value = "true".equals(propertyValue); + } catch (NumberFormatException e) { + DavGatewayTray.error("Invalid setting value in " + property, e); + } + return value; + } } diff --git a/src/java/davmail/SettingsFrame.java b/src/java/davmail/SettingsFrame.java index 82450861..37391715 100644 --- a/src/java/davmail/SettingsFrame.java +++ b/src/java/davmail/SettingsFrame.java @@ -19,7 +19,7 @@ public class SettingsFrame extends JFrame { public SettingsFrame() { setTitle("DavMail Settings"); - JPanel panel = new JPanel(new GridLayout(4, 2)); + JPanel panel = new JPanel(new GridLayout(5, 2)); panel.setBorder(BorderFactory.createTitledBorder("Gateway settings")); final JTextField urlField = new JTextField(Settings.getProperty("davmail.url"), 15); @@ -29,10 +29,16 @@ public class SettingsFrame extends JFrame { final JTextField keepDelayField = new JTextField(Settings.getProperty("davmail.keepDelay"), 4); keepDelayField.setToolTipText("Number of days to keep messages in trash"); + boolean allowRemote = "true".equals(Settings.getProperty("davmail.allowRemote")); + final JCheckBox allowRemoteField = new JCheckBox(); + allowRemoteField.setSelected(allowRemote); + allowRemoteField.setToolTipText("Allow remote connections to the gateway (server mode)"); + addSettingComponent(panel, "OWA url: ", urlField); addSettingComponent(panel, "Local POP port: ", popPortField); addSettingComponent(panel, "Local SMTP port: ", smtpPortField); addSettingComponent(panel, "Keep Delay: ", keepDelayField); + addSettingComponent(panel, "Allow Remote Connections: ", allowRemoteField); add("North", panel); @@ -45,7 +51,7 @@ public class SettingsFrame extends JFrame { final JTextField httpProxyField = new JTextField(Settings.getProperty("davmail.proxyHost"), 15); final JTextField httpProxyPortField = new JTextField(Settings.getProperty("davmail.proxyPort"), 4); final JTextField httpProxyUserField = new JTextField(Settings.getProperty("davmail.proxyUser"), 4); - final JTextField httpProxyPasswordField = new JPasswordField (Settings.getProperty("davmail.proxyPassword"), 4); + final JTextField httpProxyPasswordField = new JPasswordField(Settings.getProperty("davmail.proxyPassword"), 4); httpProxyField.setEnabled(enableProxy); httpProxyPortField.setEnabled(enableProxy); @@ -76,10 +82,11 @@ public class SettingsFrame extends JFrame { ActionListener save = new ActionListener() { public void actionPerformed(ActionEvent evt) { // save options - Settings.setProperty("davmail.url", urlField.getText()); + Settings.setProperty("davmail.url", urlField.getText()); Settings.setProperty("davmail.popPort", popPortField.getText()); Settings.setProperty("davmail.smtpPort", smtpPortField.getText()); Settings.setProperty("davmail.keepDelay", keepDelayField.getText()); + Settings.setProperty("davmail.allowRemote", String.valueOf(allowRemoteField.isSelected())); Settings.setProperty("davmail.enableProxy", String.valueOf(enableProxyField.isSelected())); Settings.setProperty("davmail.proxyHost", httpProxyField.getText()); Settings.setProperty("davmail.proxyPort", httpProxyPortField.getText());