Skip to content

Commit ae03a53

Browse files
committed
Force URL scheme to use bolt protocol
1 parent 1b92c9b commit ae03a53

1 file changed

Lines changed: 10 additions & 1 deletion

File tree

lib/src/routing/connection_registry.rs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,12 +165,21 @@ async fn refresh_routing_table(
165165
let servers = routing_table.resolve();
166166
let url = NeoUrl::parse(config.uri.as_str())?;
167167

168+
// Convert neo4j scheme to bolt scheme to create connection pools.
169+
// We need to use the bolt scheme since we don't want new connections to be routed.
170+
let scheme = match url.scheme() {
171+
"neo4j" => "bolt",
172+
"neo4j+s" => "bolt+s",
173+
"neo4j+ssc" => "bolt+ssc",
174+
_ => panic!("Unsupported URL scheme: {}", url.scheme()),
175+
};
176+
168177
for server in servers.iter() {
169178
if registry.contains_key(server) {
170179
debug!("Server already exists in the registry: {:?}", server);
171180
continue;
172181
}
173-
let uri = format!("{}://{}:{}", url.scheme(), server.address, server.port);
182+
let uri = format!("{}://{}:{}", scheme, server.address, server.port);
174183
debug!("Creating pool for server: {}", uri);
175184
registry.insert(
176185
server.clone(),

0 commit comments

Comments
 (0)