diff options
| author | DanConwayDev <DanConwayDev@protonmail.com> | 2026-02-18 10:12:45 +0000 |
|---|---|---|
| committer | DanConwayDev <DanConwayDev@protonmail.com> | 2026-02-18 13:01:01 +0000 |
| commit | eb3860359cfc2f2bab95a546bd6003091584b918 (patch) | |
| tree | 01a2e290ff9d1be3d8811b4337b8dc2fcd913b77 /src/bin/ngit/sub_commands/init.rs | |
| parent | ef53dce22cb363d9b373cae033f4be91f6cfb194 (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.rs | 7 |
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 | } |