Run inbound peer handling on its own thread so outbound dials cannot starve :9100. Failed peers cool down exponentially. Also land --join (member seat) and realm/peers.json seed discovery for Tailscale meshes. Co-authored-by: Cursor <cursoragent@cursor.com>
38 lines
1.7 KiB
C
38 lines
1.7 KiB
C
#ifndef CST_PARLIAMENT_CLI_H
|
|
#define CST_PARLIAMENT_CLI_H
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/* Standalone parliament/Realm ops for Docker and unattended smoke tests.
|
|
* Returns a process exit code (0 = success). */
|
|
int cst_parliament_cli_realm_new(void);
|
|
int cst_parliament_cli_realm_password_init(const char *password);
|
|
int cst_parliament_cli_login(const char *password, const char *instance_id,
|
|
const char *device_label, int peer_port);
|
|
/* Login then ensure background parliament service (discover + sync). */
|
|
int cst_parliament_cli_login_and_serve(const char *password,
|
|
const char *instance_id,
|
|
const char *device_label, int peer_port);
|
|
/* Join as member seat (no chair steal) then start background service. */
|
|
int cst_parliament_cli_join_and_serve(const char *password,
|
|
const char *instance_id,
|
|
const char *device_label, int peer_port);
|
|
int cst_parliament_cli_service(const char *password, const char *instance_id,
|
|
int peer_port, int foreground);
|
|
int cst_parliament_cli_service_stop(void);
|
|
int cst_parliament_cli_new_project(const char *project_id);
|
|
int cst_parliament_cli_realm_enroll(const char *instance_id, const char *label);
|
|
int cst_parliament_cli_peer_listen(int port, const char *instance_id);
|
|
int cst_parliament_cli_peer_dial(const char *host, int port,
|
|
const char *instance_id);
|
|
int cst_parliament_cli_discover(const char *instance_id, int peer_port,
|
|
int wait_ms);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|