skipstone/src/system.c

41 lines
1.3 KiB
C
Raw Normal View History

2017-11-26 16:22:00 -06:00
#include <stdio.h>
#include <skipstone/message.h>
#include <skipstone/system.h>
#include "util.h"
int skipstone_system_send_client_version(skipstone_link *link,
uint32_t flags) {
uint8_t message[25];
ssize_t len;
if ((len = skipstone_message_pack(message,
sizeof(message),
"CLLLCCCCQ",
SKIPSTONE_SYSTEM_VERSION_RESPONSE,
htobe32(SKIPSTONE_SYSTEM_PROTOCOL),
htobe32(SKIPSTONE_SYSTEM_SESSION_GAMMA_RAY),
htobe32(flags),
2,
SKIPSTONE_SYSTEM_CLIENT_MAJOR,
SKIPSTONE_SYSTEM_CLIENT_MINOR,
SKIPSTONE_SYSTEM_CLIENT_BUGFIX,
htobe64(SKIPSTONE_SYSTEM_PROTOCOL_CAPS))) < 0) {
goto error_message_pack;
2017-11-26 16:22:00 -06:00
}
2020-09-21 15:14:50 -05:00
if (skipstone_link_send(link,
message,
SKIPSTONE_SYSTEM_ENDPOINT_PHONE_VERSION,
len) < 0) {
goto error_link_send;
2017-11-26 16:22:00 -06:00
}
return 0;
2020-09-21 15:14:50 -05:00
error_link_send:
error_message_pack:
2017-11-26 16:22:00 -06:00
return -1;
}