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
This commit is contained in:
mguessan 2007-09-25 22:30:11 +00:00
parent 5fea29a973
commit 5b66e52343
3 changed files with 24 additions and 4 deletions

View File

@ -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 {

View File

@ -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;
}
}

View File

@ -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());