upleb.uk

Public git repos — served from a NIP-34 GRASP relay at git.upleb.uk

summaryrefslogtreecommitdiff
path: root/src/bin/ngit/sub_commands/init.rs
diff options
context:
space:
mode:
authorDanConwayDev <DanConwayDev@protonmail.com>2026-02-18 10:12:45 +0000
committerDanConwayDev <DanConwayDev@protonmail.com>2026-02-18 13:01:01 +0000
commiteb3860359cfc2f2bab95a546bd6003091584b918 (patch)
tree01a2e290ff9d1be3d8811b4337b8dc2fcd913b77 /src/bin/ngit/sub_commands/init.rs
parentef53dce22cb363d9b373cae033f4be91f6cfb194 (diff)
fix: preserve grasp server order in relay hint for nostr url
apply_grasp_infrastructure was inserting each grasp relay at index 0, causing later servers to displace earlier ones. the last server in the list ended up as relays[0] and thus the url relay hint, reversing the intended priority order.
Diffstat (limited to 'src/bin/ngit/sub_commands/init.rs')
-rw-r--r--src/bin/ngit/sub_commands/init.rs7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/bin/ngit/sub_commands/init.rs b/src/bin/ngit/sub_commands/init.rs
index 8513f18..1b577ed 100644
--- a/src/bin/ngit/sub_commands/init.rs
+++ b/src/bin/ngit/sub_commands/init.rs
@@ -274,6 +274,7 @@ fn apply_grasp_infrastructure(
274 public_key: &PublicKey, 274 public_key: &PublicKey,
275 identifier: &str, 275 identifier: &str,
276) -> Result<()> { 276) -> Result<()> {
277 let mut grasp_relay_insert_idx = 0;
277 for grasp_server in grasp_servers { 278 for grasp_server in grasp_servers {
278 // Always add grasp-derived clone URL 279 // Always add grasp-derived clone URL
279 let clone_url = format_grasp_server_url_as_clone_url(grasp_server, public_key, identifier)?; 280 let clone_url = format_grasp_server_url_as_clone_url(grasp_server, public_key, identifier)?;
@@ -305,11 +306,13 @@ fn apply_grasp_infrastructure(
305 } 306 }
306 } 307 }
307 308
308 // Always add grasp-derived relay at the beginning (for relay hint) 309 // Prepend grasp-derived relay in order (for relay hint) so that the
310 // first grasp server in the list ends up at relays[0].
309 let relay_url = format_grasp_server_url_as_relay_url(grasp_server)?; 311 let relay_url = format_grasp_server_url_as_relay_url(grasp_server)?;
310 if !relays.contains(&relay_url) { 312 if !relays.contains(&relay_url) {
311 relays.insert(0, relay_url); 313 relays.insert(grasp_relay_insert_idx, relay_url);
312 } 314 }
315 grasp_relay_insert_idx += 1;
313 } 316 }
314 Ok(()) 317 Ok(())
315} 318}