diff options
-rw-r--r-- | src/couch_replicator/src/couch_replicator.erl | 15 | ||||
-rw-r--r-- | src/couch_replicator/src/couch_replicator_docs.erl | 4 |
2 files changed, 11 insertions, 8 deletions
diff --git a/src/couch_replicator/src/couch_replicator.erl b/src/couch_replicator/src/couch_replicator.erl index e4fa31cee..9c7e318b6 100644 --- a/src/couch_replicator/src/couch_replicator.erl +++ b/src/couch_replicator/src/couch_replicator.erl @@ -144,11 +144,13 @@ replication_states() -> -spec strip_url_creds(binary() | {[_]}) -> binary(). strip_url_creds(Endpoint) -> - case couch_replicator_docs:parse_rep_db(Endpoint, [], []) of - #httpdb{url=Url} -> - iolist_to_binary(couch_util:url_strip_password(Url)); - LocalDb when is_binary(LocalDb) -> - LocalDb + try + couch_replicator_docs:parse_rep_db(Endpoint, [], []) of + #httpdb{url = Url} -> + iolist_to_binary(couch_util:url_strip_password(Url)) + catch + throw:{error, local_endpoints_not_supported} -> + Endpoint end. @@ -359,7 +361,8 @@ strip_url_creds_test_() -> fun (_) -> meck:unload() end, [ t_strip_http_basic_creds(), - t_strip_http_props_creds() + t_strip_http_props_creds(), + t_strip_local_db_creds() ] }. diff --git a/src/couch_replicator/src/couch_replicator_docs.erl b/src/couch_replicator/src/couch_replicator_docs.erl index c07caa1aa..2d6db1b73 100644 --- a/src/couch_replicator/src/couch_replicator_docs.erl +++ b/src/couch_replicator/src/couch_replicator_docs.erl @@ -424,7 +424,7 @@ parse_rep_db(<<"https://", _/binary>> = Url, Proxy, Options) -> parse_rep_db({[{<<"url">>, Url}]}, Proxy, Options); parse_rep_db(<<_/binary>>, _Proxy, _Options) -> - throw({error, <<"Local endpoints not supported since CouchDB 3.x">>}); + throw({error, local_endpoints_not_supported}); parse_rep_db(undefined, _Proxy, _Options) -> throw({error, <<"Missing replicator database">>}). @@ -843,7 +843,7 @@ t_error_on_local_endpoint() -> {<<"source">>, <<"localdb">>}, {<<"target">>, <<"http://somehost.local/tgt">>} ]}, - Expect = <<"Local endpoints not supported since CouchDB 3.x">>, + Expect = local_endpoints_not_supported, ?assertThrow({bad_rep_doc, Expect}, parse_rep_doc_without_id(RepDoc)) end). |