minimal port timeout introduced (in case of adapted timeout)

git-svn-id: https://ipscan.svn.sourceforge.net/svnroot/ipscan/trunk@196 375186e5-ef17-0410-b0b6-91563547dcda
This commit is contained in:
angryziber 2007-08-21 19:08:51 +00:00
parent ca2380584d
commit 59d1581c35
5 changed files with 22 additions and 7 deletions

1
TODO
View File

@ -1,7 +1,6 @@
Before 3.0 beta:
* host:port for detection
* min port timeout (for adaptation)
* sorting by columns
* export/import of settings
* disabling of buttons/menus during scanning

View File

@ -96,7 +96,7 @@ text.scan.hosts.total=Hosts scanned:
text.scan.hosts.alive=Hosts alive:
text.scan.hosts.ports=With open ports:
text.version.latest=You are running the latest version
text.version.old=The latest version is %LATEST, but you are running %VERSION
text.version.old=The latest stable version is %LATEST, but you are running %VERSION
text.openers.edit=Below you can edit or add new openers
text.openers.name=Opener name (menu item):
text.openers.string=Execution string:
@ -196,6 +196,7 @@ options.fetchers.info=Here you can change options, specific to fetchers
options.ports.timing=Timing
options.ports.timing.timeout=Default port connect timeout (in ms):
options.ports.timing.adaptTimeout=Adapt timeout to ping roundtrip time (if available)
options.ports.timing.minTimeout=Minimal adapted connect timeout (in ms):
options.ports.ports=Port selection
options.ports.portsDescription=Specify ports to scan here. Ranges are supported.\nExample: 1-3,5,7,10-15,6000-6100\nIf many ports are specified, scanning can take a lot of time.
options.display.list=Display in the results list

View File

@ -27,6 +27,7 @@ public final class GlobalConfig {
public boolean skipBroadcastAddresses;
public int portTimeout;
public boolean adaptPortTimeout;
public int minPortTimeout;
public String portString;
public String notAvailableText;
public String notScannedText;
@ -55,6 +56,7 @@ public final class GlobalConfig {
skipBroadcastAddresses = preferences.getBoolean("skipBroadcastAddresses", true);
portTimeout = preferences.getInt("portTimeout", 3000);
adaptPortTimeout = preferences.getBoolean("adaptPortTimeout", true);
minPortTimeout = preferences.getInt("minPortTimeout", 500);
portString = preferences.get("portString", "");
notAvailableText = preferences.get("notAvailableText", Labels.getLabel("fetcher.value.notAvailable"));
notScannedText = preferences.get("notScannedText", Labels.getLabel("fetcher.value.notScanned"));
@ -78,6 +80,7 @@ public final class GlobalConfig {
preferences.putBoolean("skipBroadcastAddresses", skipBroadcastAddresses);
preferences.putInt("portTimeout", portTimeout);
preferences.putBoolean("adaptPortTimeout", adaptPortTimeout);
preferences.putInt("minPortTimeout", minPortTimeout);
preferences.put("portString", portString);
preferences.put("notAvailableText", notAvailableText);
preferences.put("notScannedText", notScannedText);

View File

@ -67,7 +67,7 @@ public class PortsFetcher implements Fetcher {
// now try to adapt timeout if it is enabled and pinging results are availbale
PingResult pingResult = (PingResult) subject.getParameter(PingFetcher.PARAMETER_PINGER);
if (config.adaptPortTimeout && pingResult.getReplyCount() > 2) {
adaptedTimeout = Math.min(Math.max(pingResult.getLongestTime() * 4, 50), config.portTimeout);
adaptedTimeout = Math.min(Math.max(pingResult.getLongestTime() * 3, config.minPortTimeout), config.portTimeout);
}
Socket socket = null;

View File

@ -63,6 +63,7 @@ public class OptionsDialog extends AbstractModalDialog {
private TabItem portsTabItem;
private Text portTimeoutText;
private Button adaptTimeoutCheckbox;
private Text minPortTimeoutText;
private Text portsText;
private Text notAvailableText;
private Text notScannedText;
@ -316,9 +317,7 @@ public class OptionsDialog extends AbstractModalDialog {
GridData gridData = new GridData();
gridData.widthHint = 50;
Label label;
label = new Label(timingGroup, SWT.NONE);
Label label = new Label(timingGroup, SWT.NONE);
label.setText(Labels.getLabel("options.ports.timing.timeout"));
portTimeoutText = new Text(timingGroup, SWT.BORDER);
portTimeoutText.setLayoutData(gridData);
@ -328,7 +327,17 @@ public class OptionsDialog extends AbstractModalDialog {
adaptTimeoutCheckbox = new Button(timingGroup, SWT.CHECK);
adaptTimeoutCheckbox.setText(Labels.getLabel("options.ports.timing.adaptTimeout"));
adaptTimeoutCheckbox.setLayoutData(gridData1);
adaptTimeoutCheckbox.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event event) {
minPortTimeoutText.setEnabled(adaptTimeoutCheckbox.getSelection());
}
});
label = new Label(timingGroup, SWT.NONE);
label.setText(Labels.getLabel("options.ports.timing.minTimeout"));
minPortTimeoutText = new Text(timingGroup, SWT.BORDER);
minPortTimeoutText.setLayoutData(gridData);
RowLayout portsLayout = new RowLayout(SWT.VERTICAL);
portsLayout.fill = true;
portsLayout.marginHeight = 2;
@ -385,6 +394,8 @@ public class OptionsDialog extends AbstractModalDialog {
skipBroadcastsCheckbox.setSelection(globalConfig.skipBroadcastAddresses);
portTimeoutText.setText(Integer.toString(globalConfig.portTimeout));
adaptTimeoutCheckbox.setSelection(globalConfig.adaptPortTimeout);
minPortTimeoutText.setText(Integer.toString(globalConfig.minPortTimeout));
minPortTimeoutText.setEnabled(globalConfig.adaptPortTimeout);
portsText.setText(globalConfig.portString);
notAvailableText.setText(globalConfig.notAvailableText);
notScannedText.setText(globalConfig.notScannedText);
@ -419,6 +430,7 @@ public class OptionsDialog extends AbstractModalDialog {
globalConfig.skipBroadcastAddresses = skipBroadcastsCheckbox.getSelection();
globalConfig.portTimeout = parseIntValue(portTimeoutText);
globalConfig.adaptPortTimeout = adaptTimeoutCheckbox.getSelection();
globalConfig.minPortTimeout = parseIntValue(minPortTimeoutText);
globalConfig.portString = portsText.getText();
globalConfig.notAvailableText = notAvailableText.getText();
globalConfig.notScannedText = notScannedText.getText();