summaryrefslogtreecommitdiff
path: root/src/libclient
diff options
context:
space:
mode:
Diffstat (limited to 'src/libclient')
-rw-r--r--src/libclient/client.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/libclient/client.c b/src/libclient/client.c
index 0b06504..79f9f62 100644
--- a/src/libclient/client.c
+++ b/src/libclient/client.c
@@ -12,7 +12,6 @@ static bool results_callback(void *userdata, struct nn_rpc_connection *conn,
struct nn_packet *packet, struct nn_packet *rpacket)
{
struct camu_client *client = (struct camu_client *)userdata;
- (void)conn;
(void)rpacket;
u8 op = nn_packet_read_u8(packet);
@@ -36,7 +35,6 @@ static bool meta_callback(void *userdata, struct nn_rpc_connection *conn,
struct nn_packet *packet, struct nn_packet *rpacket)
{
struct camu_client *client = (struct camu_client *)userdata;
- (void)conn;
(void)rpacket;
client->callback(client->userdata, CAMU_CLIENT_GOT_META, packet);
@@ -50,7 +48,6 @@ static bool visual_data_callback(void *userdata, struct nn_rpc_connection *conn,
struct nn_packet *packet, struct nn_packet *rpacket)
{
struct camu_client *client = (struct camu_client *)userdata;
- (void)conn;
(void)rpacket;
client->callback(client->userdata, CAMU_CLIENT_GOT_VISUAL_DATA, packet);
@@ -78,6 +75,12 @@ static void connection_callback(void *userdata, struct nn_rpc_connection *conn)
{
struct camu_client *client = (struct camu_client *)userdata;
client->conn = conn;
+}
+
+static void ready_callback(void *userdata, struct nn_rpc_connection *conn)
+{
+ struct camu_client *client = (struct camu_client *)userdata;
+ (void)conn;
struct nn_packet *packet = nn_rpc_get_packet(&client->client, CAMU_SERVER_IDENTIFY);
nn_packet_write_u8(packet, CAMU_CLIENT);
nn_packet_write_str(packet, &client->username);
@@ -87,7 +90,7 @@ static void connection_callback(void *userdata, struct nn_rpc_connection *conn)
static void connection_closed_callback(void *userdata, struct nn_rpc_connection *conn)
{
struct camu_client *client = (struct camu_client *)userdata;
- al_assert(client->conn == NULL || client->conn == conn);
+ al_assert(!client->conn || client->conn == conn);
client->conn = NULL;
}
@@ -97,7 +100,7 @@ bool camu_client_login(struct camu_client *client, str *username,
client->loop = loop;
al_str_clone(&client->username, username);
client->conn = NULL;
- nn_rpc_init(&client->client, client->loop, connection_callback, connection_closed_callback, client);
+ nn_rpc_init(&client->client, client->loop, connection_callback, ready_callback, connection_closed_callback, client);
for (u32 i = 0; i < ARRAY_SIZE(commands); i++) {
commands[i].userdata = client;
nn_rpc_add_command(&client->client, &commands[i]);
@@ -107,8 +110,7 @@ bool camu_client_login(struct camu_client *client, str *username,
(void)type;
(void)addr;
(void)port;
- struct nn_rpc_connection *conn = client->client.conn;
- nn_multiplex_direct_connect(conn->stream, CAMU_MULTIPLEX_RPC);
+ nn_multiplex_direct_connect(client->client.conn->stream, CAMU_MULTIPLEX_RPC);
#else
nn_rpc_connect(&client->client, CAMU_MULTIPLEX_RPC, type, addr, port);
#endif