ssb: Add a command-line action to generate an invite, and verified that Patchwork can accept it.
All checks were successful
Build Tilde Friends / Build-All (push) Successful in 26m50s

This commit is contained in:
2025-01-19 21:00:38 -05:00
parent 97fc22ce57
commit 3f3deb665c
4 changed files with 128 additions and 39 deletions

View File

@ -2612,18 +2612,13 @@ void tf_ssb_destroy(tf_ssb_t* ssb)
while (ssb->broadcast_listener.data || ssb->broadcast_sender.data || ssb->broadcast_timer.data || ssb->broadcast_cleanup_timer.data || ssb->trace_timer.data ||
ssb->server.data || ssb->ref_count || ssb->request_activity_timer.data || ssb->timers_count)
{
tf_printf("bl=%p bs=%p bt=%p bc=%p tt=%p s=%p rc=%d rat=%p tc=%d\n",
ssb->broadcast_listener.data,
ssb->broadcast_sender.data,
ssb->broadcast_timer.data,
ssb->broadcast_cleanup_timer.data,
ssb->trace_timer.data,
ssb->server.data,
ssb->ref_count,
ssb->request_activity_timer.data,
ssb->timers_count);
tf_printf("--\n");
uv_print_all_handles(ssb->loop, stdout);
if (!ssb->quiet)
{
tf_printf("bl=%p bs=%p bt=%p bc=%p tt=%p s=%p rc=%d rat=%p tc=%d\n", ssb->broadcast_listener.data, ssb->broadcast_sender.data, ssb->broadcast_timer.data,
ssb->broadcast_cleanup_timer.data, ssb->trace_timer.data, ssb->server.data, ssb->ref_count, ssb->request_activity_timer.data, ssb->timers_count);
tf_printf("--\n");
uv_print_all_handles(ssb->loop, stdout);
}
uv_run(ssb->loop, UV_RUN_ONCE);
}
@ -3080,7 +3075,8 @@ void tf_ssb_connect(tf_ssb_t* ssb, const char* host, int port, const uint8_t* ke
}
}
static void _tf_ssb_connect_with_invite(tf_ssb_t* ssb, const char* host, int port, const uint8_t* key, const uint8_t* invite, int connect_flags, tf_ssb_connect_callback_t* callback, void* user_data)
static void _tf_ssb_connect_with_invite(
tf_ssb_t* ssb, const char* host, int port, const uint8_t* key, const uint8_t* invite, int connect_flags, tf_ssb_connect_callback_t* callback, void* user_data)
{
if (ssb->shutting_down)
{
@ -3388,8 +3384,7 @@ static bool _tf_ssb_parse_connect_string(const char* in_broadcast, tf_ssb_broadc
{
out_broadcast->addr.sin_family = AF_INET;
out_broadcast->addr.sin_port = htons((uint16_t)port);
return
tf_ssb_id_str_to_bin(out_broadcast->pub, public_key_str) &&
return tf_ssb_id_str_to_bin(out_broadcast->pub, public_key_str) &&
tf_base64_decode(secret_key_str, strlen(secret_key_str), out_broadcast->invite, sizeof(out_broadcast->invite));
}
else if (strncmp(in_broadcast, "ws:", 3) == 0)