summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/drb/drb.rb8
-rw-r--r--lib/drb/ssl.rb4
-rw-r--r--lib/drb/unix.rb4
-rw-r--r--test/drb/test_drbunix.rb6
4 files changed, 14 insertions, 8 deletions
diff --git a/lib/drb/drb.rb b/lib/drb/drb.rb
index 6c516f0359..b30f28cc7c 100644
--- a/lib/drb/drb.rb
+++ b/lib/drb/drb.rb
@@ -800,7 +800,7 @@ module DRb
module_function :uri_option
def auto_load(uri) # :nodoc:
- if uri =~ /^drb([a-z0-9]+):/
+ if /\Adrb([a-z0-9]+):/ =~ uri
require("drb/#{$1}") rescue nil
end
end
@@ -816,13 +816,13 @@ module DRb
# :stopdoc:
private
def self.parse_uri(uri)
- if uri =~ /^druby:\/\/(.*?):(\d+)(\?(.*))?$/
+ if /\Adruby:\/\/(.*?):(\d+)(\?(.*))?\z/ =~ uri
host = $1
port = $2.to_i
option = $4
[host, port, option]
else
- raise(DRbBadScheme, uri) unless uri =~ /^druby:/
+ raise(DRbBadScheme, uri) unless uri.start_with?('druby:')
raise(DRbBadURI, 'can\'t parse uri:' + uri)
end
end
@@ -1172,7 +1172,7 @@ module DRb
bt = []
result.backtrace.each do |x|
break if /`__send__'$/ =~ x
- if /^\(druby:\/\// =~ x
+ if /\A\(druby:\/\// =~ x
bt.push(x)
else
bt.push(prefix + x)
diff --git a/lib/drb/ssl.rb b/lib/drb/ssl.rb
index 45fe4f1f74..e2bc247b17 100644
--- a/lib/drb/ssl.rb
+++ b/lib/drb/ssl.rb
@@ -226,13 +226,13 @@ module DRb
#
# Raises DRbBadScheme or DRbBadURI if +uri+ is not matching or malformed
def self.parse_uri(uri) # :nodoc:
- if uri =~ /^drbssl:\/\/(.*?):(\d+)(\?(.*))?$/
+ if /\Adrbssl:\/\/(.*?):(\d+)(\?(.*))?\z/ =~ uri
host = $1
port = $2.to_i
option = $4
[host, port, option]
else
- raise(DRbBadScheme, uri) unless uri =~ /^drbssl:/
+ raise(DRbBadScheme, uri) unless uri.start_with?('drbssl:')
raise(DRbBadURI, 'can\'t parse uri:' + uri)
end
end
diff --git a/lib/drb/unix.rb b/lib/drb/unix.rb
index adacf6df5b..adc38ff591 100644
--- a/lib/drb/unix.rb
+++ b/lib/drb/unix.rb
@@ -15,12 +15,12 @@ module DRb
class DRbUNIXSocket < DRbTCPSocket
# :stopdoc:
def self.parse_uri(uri)
- if /^drbunix:(.*?)(\?(.*))?$/ =~ uri
+ if /\Adrbunix:(.*?)(\?(.*))?\z/ =~ uri
filename = $1
option = $3
[filename, option]
else
- raise(DRbBadScheme, uri) unless uri =~ /^drbunix:/
+ raise(DRbBadScheme, uri) unless uri.start_with?('drbunix:')
raise(DRbBadURI, 'can\'t parse uri:' + uri)
end
end
diff --git a/test/drb/test_drbunix.rb b/test/drb/test_drbunix.rb
index 7ece2453a9..8c9892369d 100644
--- a/test/drb/test_drbunix.rb
+++ b/test/drb/test_drbunix.rb
@@ -40,6 +40,12 @@ class TestDRbUNIXCore < Test::Unit::TestCase
def test_05_eq
end
+
+ def test_bad_uri
+ assert_raise(DRb::DRbBadURI) do
+ DRb::DRbServer.new("badfile\n""drbunix:")
+ end
+ end
end
class TestDRbUNIXAry < Test::Unit::TestCase