aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb
diff options
context:
space:
mode:
authorDavid Heinemeier Hansson <david@loudthinking.com>2005-02-20 21:47:09 +0000
committerDavid Heinemeier Hansson <david@loudthinking.com>2005-02-20 21:47:09 +0000
commitba309a3e38297dfb79fa574555a1b8a003b04d1a (patch)
treebd821c2b5b0fd07a31fbe619dd80f89a2ef37242 /activerecord/lib/active_record/connection_adapters/mysql_adapter.rb
parent101968f3674dfedb0549a54bf6407c287d357f0a (diff)
downloadrails-ba309a3e38297dfb79fa574555a1b8a003b04d1a.tar.gz
rails-ba309a3e38297dfb79fa574555a1b8a003b04d1a.tar.bz2
rails-ba309a3e38297dfb79fa574555a1b8a003b04d1a.zip
Added options to specify an SSL connection for MySQL. Define the following attributes in the connection config (config/database.yml in Rails) to use it: sslkey, sslcert, sslca, sslcapath, sslcipher. To use SSL with no client certs, just set :sslca = /dev/null. http://dev.mysql.com/doc/mysql/en/secure-connections.html #604 [daniel@nightrunner.com]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@720 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'activerecord/lib/active_record/connection_adapters/mysql_adapter.rb')
-rwxr-xr-xactiverecord/lib/active_record/connection_adapters/mysql_adapter.rb10
1 files changed, 6 insertions, 4 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb b/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb
index c637a50c5a..ff71acffbd 100755
--- a/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb
+++ b/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb
@@ -3,7 +3,7 @@ require 'parsedate'
module ActiveRecord
class Base
- # Establishes a connection to the database that's used by all Active Record objects
+ # Establishes a connection to the database that's used by all Active Record objects.
def self.mysql_connection(config) # :nodoc:
unless self.class.const_defined?(:Mysql)
begin
@@ -19,7 +19,9 @@ module ActiveRecord
end
end
end
+
symbolize_strings_in_hash(config)
+
host = config[:host]
port = config[:port]
socket = config[:socket]
@@ -32,9 +34,9 @@ module ActiveRecord
raise ArgumentError, "No database specified. Missing argument: database."
end
- ConnectionAdapters::MysqlAdapter.new(
- Mysql::real_connect(host, username, password, database, port, socket), logger
- )
+ mysql = Mysql.init
+ mysql.ssl_set(config[:sslkey], config[:sslcert], config[:sslca], config[:sslcapath], config[:sslcipher]) if config[:sslkey]
+ ConnectionAdapters::MysqlAdapter.new(mysql.real_connect(host, username, password, database, port, socket), logger)
end
end