summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordelano <delano@solutious.com>2010-01-15 13:32:00 -0500
committerdelano <delano@solutious.com>2010-01-15 13:32:00 -0500
commit17c1ff0afd2fd79dadf58386fde70d4323d47109 (patch)
treecbda81df77730dc56f00902cfa99efbc9a98ca22
parent6fd7dcdcb56a278c11c4065fda183ba5694f4c98 (diff)
downloadnet-ssh-17c1ff0afd2fd79dadf58386fde70d4323d47109.tar.gz
Support plus sign in sshconfig hostname
-rw-r--r--CHANGELOG.rdoc5
-rw-r--r--lib/net/ssh/config.rb1
-rw-r--r--test/configs/host_plus0
3 files changed, 6 insertions, 0 deletions
diff --git a/CHANGELOG.rdoc b/CHANGELOG.rdoc
index caaf07f..1297842 100644
--- a/CHANGELOG.rdoc
+++ b/CHANGELOG.rdoc
@@ -1,3 +1,8 @@
+=== Unreleased
+
+* Support plus sign in sshconfig hostname [Jason Weathered]
+
+
=== 2.0.18 / 15 Jan 2010
* Fix related to #recv(1) to #readpartial change in 2.0.16 [Hans de Graaff, Delano Mandelbaum]
diff --git a/lib/net/ssh/config.rb b/lib/net/ssh/config.rb
index 0c77610..0d764c0 100644
--- a/lib/net/ssh/config.rb
+++ b/lib/net/ssh/config.rb
@@ -170,6 +170,7 @@ module Net; module SSH
def pattern2regex(pattern)
pattern = "^" + pattern.to_s.gsub(/\./, "\\.").
gsub(/\?/, '.').
+ gsub(/([+\/])/, '\\\\\\0').
gsub(/\*/, '.*') + "$"
Regexp.new(pattern, true)
end
diff --git a/test/configs/host_plus b/test/configs/host_plus
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/configs/host_plus