diff --git a/src/net/azib/ipscan/fetchers/HTTPSenderFetcher.java b/src/net/azib/ipscan/fetchers/HTTPSenderFetcher.java index 20cc059f..d137ce84 100644 --- a/src/net/azib/ipscan/fetchers/HTTPSenderFetcher.java +++ b/src/net/azib/ipscan/fetchers/HTTPSenderFetcher.java @@ -16,7 +16,6 @@ import javax.inject.Inject; * @author Anton Keks */ public class HTTPSenderFetcher extends PortTextFetcher { - @Inject public HTTPSenderFetcher(ScannerConfig scannerConfig) { super(scannerConfig, 80, "HEAD / HTTP/1.0\r\n\r\n", "Date: (.*)$"); } @@ -24,5 +23,4 @@ public class HTTPSenderFetcher extends PortTextFetcher { public String getId() { return "fetcher.httpSender"; } - } diff --git a/src/net/azib/ipscan/fetchers/PortTextFetcher.java b/src/net/azib/ipscan/fetchers/PortTextFetcher.java index 1d3e5fd9..23f08983 100644 --- a/src/net/azib/ipscan/fetchers/PortTextFetcher.java +++ b/src/net/azib/ipscan/fetchers/PortTextFetcher.java @@ -43,10 +43,10 @@ public abstract class PortTextFetcher extends AbstractFetcher { protected Pattern matchingRegexp; protected int extractGroup; - public PortTextFetcher(ScannerConfig scannerConfig, int defaultPort, String textToSend, String matchingRegexp) { + public PortTextFetcher(ScannerConfig scannerConfig, int defaultPort, String defaultTextToSend, String matchingRegexp) { this.scannerConfig = scannerConfig; this.defaultPort = defaultPort; - this.textToSend = getPreferences().get("textToSend", textToSend); + this.textToSend = getPreferences().get("textToSend", defaultTextToSend); this.matchingRegexp = Pattern.compile(getPreferences().get("matchingRegexp", matchingRegexp)); this.extractGroup = getPreferences().getInt("extractGroup", 1); } diff --git a/src/net/azib/ipscan/gui/fetchers/PortTextFetcherPrefs.java b/src/net/azib/ipscan/gui/fetchers/PortTextFetcherPrefs.java index 6e452706..5d58875f 100644 --- a/src/net/azib/ipscan/gui/fetchers/PortTextFetcherPrefs.java +++ b/src/net/azib/ipscan/gui/fetchers/PortTextFetcherPrefs.java @@ -28,7 +28,6 @@ import static java.lang.Integer.parseInt; * @author Anton Keks */ public class PortTextFetcherPrefs extends AbstractModalDialog implements FetcherPrefs { - private PortTextFetcher fetcher; private Text textToSend; private Text matchingRegexp; @@ -59,7 +58,7 @@ public class PortTextFetcherPrefs extends AbstractModalDialog implements Fetcher sendLabel.setText(Labels.getLabel("text.fetcher.portText.send")); sendLabel.setLayoutData(LayoutHelper.formData(new FormAttachment(0), null, null, new FormAttachment(predefinedCombo, 0, SWT.BOTTOM))); textToSend = new Text(shell, SWT.BORDER); - textToSend.setText(stringToText(fetcher.getTextToSend())); + textToSend.setText(toEditableText(fetcher.getTextToSend())); textToSend.setLayoutData(LayoutHelper.formData(new FormAttachment(0), new FormAttachment(100), new FormAttachment(sendLabel), null)); Label matchLabel = new Label(shell, SWT.NONE); @@ -102,8 +101,9 @@ public class PortTextFetcherPrefs extends AbstractModalDialog implements Fetcher void savePreferences() { Preferences prefs = fetcher.getPreferences(); - fetcher.setTextToSend(textToSend.getText()); - prefs.put("textToSend", fetcher.getTextToSend()); + String text = toRealText(textToSend.getText()); + fetcher.setTextToSend(text); + prefs.put("textToSend", text); fetcher.setMatchingRegexp(Pattern.compile(matchingRegexp.getText())); prefs.put("matchingRegexp", fetcher.getMatchingRegexp().pattern()); @@ -112,18 +112,11 @@ public class PortTextFetcherPrefs extends AbstractModalDialog implements Fetcher prefs.putInt("extractGroup", fetcher.getExtractGroup()); } - private String stringToText(String s) { - StringBuilder t = new StringBuilder(); - for (char c : s.toCharArray()) { - if (c == '\n') - t.append("\\n"); - else if (c == '\r') - t.append("\\r"); - else if (c == '\t') - t.append("\\t"); - else - t.append(c); - } - return t.toString(); + private String toEditableText(String s) { + return s.replace("\n", "\\n").replace("\r", "\\r").replace("\t", "\\t"); + } + + private String toRealText(String s) { + return s.replace("\\n", "\n").replace("\\r", "\r").replace("\\t", "\t"); } }