Skip to content

Commit 9d0f8cf

Browse files
authored
Merge pull request #113 from MillionIntegrals/master
Add back original query options for srv links. Thank you!
2 parents 28273e2 + fcf1aac commit 9d0f8cf

File tree

2 files changed

+16
-2
lines changed

2 files changed

+16
-2
lines changed

lib/mongo/url_parser.ex

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ defmodule Mongo.UrlParser do
128128

129129
defp parse_seeds(opts, _frags), do: opts
130130

131-
defp resolve_srv_url(%{"seeds" => url, "srv" => srv} = frags)
131+
defp resolve_srv_url(%{"seeds" => url, "srv" => srv, "options" => orig_options} = frags)
132132
when is_bitstring(url) and srv == "+srv" do
133133
# Fix for windows only
134134
with {:win32, _} <- :os.type() do
@@ -140,7 +140,7 @@ defmodule Mongo.UrlParser do
140140
:inet_res.getbyname('_mongodb._tcp.' ++ url_char, :srv),
141141
{:ok, host} <- get_host_srv(srv_record),
142142
{:ok, {_, _, _, _, _, txt_record}} <- :inet_res.getbyname(url_char, :txt),
143-
txt <- "#{txt_record}&ssl=true" do
143+
txt <- "#{orig_options}&#{txt_record}&ssl=true" do
144144
frags
145145
|> Map.put("seeds", host)
146146
|> Map.put("options", txt)

test/mongo/url_parser_test.exs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,20 @@ defmodule Mongo.UrlParserTest do
6666
]
6767
end
6868

69+
test "url srv with auth source" do
70+
assert UrlParser.parse_url(url: "mongodb+srv://test10.test.build.10gen.cc/db?replicaSet=r1&authSource=admin") ==
71+
[
72+
database: "db",
73+
ssl: true,
74+
socket_timeout_ms: 500,
75+
auth_source: "admin",
76+
set_name: "r1",
77+
seeds: [
78+
"localhost.test.build.10gen.cc:27017"
79+
]
80+
]
81+
end
82+
6983
test "url srv with user" do
7084
assert UrlParser.parse_url(url: "mongodb+srv://user:[email protected]") |> Keyword.drop([:pw_safe]) ==
7185
[

0 commit comments

Comments
 (0)