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_message_service *service,
|
2020-09-21 11:07:21 -05:00
|
|
|
uint32_t flags) {
|
2020-09-21 15:14:50 -05:00
|
|
|
skipstone_link *link = skipstone_message_service_link(service);
|
|
|
|
|
2020-09-21 11:07:21 -05:00
|
|
|
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:
|
2020-09-21 11:07:21 -05:00
|
|
|
error_message_pack:
|
2017-11-26 16:22:00 -06:00
|
|
|
return -1;
|
|
|
|
}
|