summaryrefslogtreecommitdiffstats
path: root/server/reds.c
diff options
context:
space:
mode:
Diffstat (limited to 'server/reds.c')
-rw-r--r--server/reds.c472
1 files changed, 236 insertions, 236 deletions
diff --git a/server/reds.c b/server/reds.c
index fb26901a..bb71ae74 100644
--- a/server/reds.c
+++ b/server/reds.c
@@ -97,7 +97,7 @@ static void openssl_init();
// approximate max recive message size
#define RECIVE_BUF_SIZE \
- (4096 + (REDS_AGENT_WINDOW_SIZE + REDS_NUM_INTERNAL_AGENT_MESSAGES) * RED_AGENT_MAX_DATA_SIZE)
+ (4096 + (REDS_AGENT_WINDOW_SIZE + REDS_NUM_INTERNAL_AGENT_MESSAGES) * SPICE_AGENT_MAX_DATA_SIZE)
#define SEND_BUF_SIZE 4096
@@ -110,7 +110,7 @@ typedef struct IncomingHandler {
int shut;
uint8_t buf[RECIVE_BUF_SIZE];
uint32_t end_pos;
- void (*handle_message)(void *opaque, RedDataHeader *message);
+ void (*handle_message)(void *opaque, SpiceDataHeader *message);
} IncomingHandler;
typedef struct OutgoingHandler {
@@ -123,7 +123,7 @@ typedef struct OutgoingHandler {
} OutgoingHandler;
typedef struct TicketAuthentication {
- char password[RED_MAX_PASSWORD_LENGTH];
+ char password[SPICE_MAX_PASSWORD_LENGTH];
time_t expiration_time;
} TicketAuthentication;
@@ -133,7 +133,7 @@ typedef struct TicketInfo {
RSA *rsa;
int rsa_size;
BIGNUM *bn;
- RedLinkEncryptedTicket encrypted_ticket;
+ SpiceLinkEncryptedTicket encrypted_ticket;
} TicketInfo;
typedef struct MonitorMode {
@@ -151,8 +151,8 @@ struct RedsOutItem {
typedef struct VDIReadBuf {
RedsOutItem out_item;
int len;
- RedDataHeader header;
- uint8_t data[RED_AGENT_MAX_DATA_SIZE];
+ SpiceDataHeader header;
+ uint8_t data[SPICE_AGENT_MAX_DATA_SIZE];
} VDIReadBuf;
enum {
@@ -226,7 +226,7 @@ enum NetTestStage {
#ifdef RED_STATISTICS
#define REDS_MAX_STAT_NODES 100
-#define REDS_STAT_SHM_SIZE (sizeof(RedsStat) + REDS_MAX_STAT_NODES * sizeof(StatNode))
+#define REDS_STAT_SHM_SIZE (sizeof(SpiceStat) + REDS_MAX_STAT_NODES * sizeof(SpiceStatNode))
typedef struct RedsStatValue {
uint32_t value;
@@ -270,7 +270,7 @@ typedef struct RedsState {
#ifdef RED_STATISTICS
char *stat_shm_name;
- RedsStat *stat;
+ SpiceStat *stat;
pthread_mutex_t stat_lock;
RedsStatValue roundtrip_stat;
VDObjectRef ping_timer;
@@ -300,8 +300,8 @@ typedef struct AsyncRead {
typedef struct RedLinkInfo {
RedsStreamContext *peer;
AsyncRead asyc_read;
- RedLinkHeader link_header;
- RedLinkMess *link_mess;
+ SpiceLinkHeader link_header;
+ SpiceLinkMess *link_mess;
int mess_pos;
TicketInfo tiTicketing;
} RedLinkInfo;
@@ -317,7 +317,7 @@ struct __attribute__ ((__packed__)) VDIPortBuf {
typedef struct __attribute__ ((__packed__)) VDAgentExtBuf {
VDIPortBuf base;
- uint8_t buf[RED_AGENT_MAX_DATA_SIZE];
+ uint8_t buf[SPICE_AGENT_MAX_DATA_SIZE];
VDIChunkHeader migrate_overflow;
} VDAgentExtBuf;
@@ -352,8 +352,8 @@ struct ChannelSecurityOptions {
typedef struct PingItem {
RedsOutItem base;
- RedDataHeader header;
- RedPing ping;
+ SpiceDataHeader header;
+ SpiceMsgPing ping;
int size;
} PingItem;
@@ -617,11 +617,11 @@ static struct iovec *reds_iovec_skip(struct iovec vec[], int skip, int *vec_size
static void print_stat_tree(uint32_t node_index, int depth)
{
- StatNode *node = &reds->stat->nodes[node_index];
+ SpiceStatNode *node = &reds->stat->nodes[node_index];
- if ((node->flags & STAT_NODE_MASK_SHOW) == STAT_NODE_MASK_SHOW) {
+ if ((node->flags & SPICE_STAT_NODE_MASK_SHOW) == SPICE_STAT_NODE_MASK_SHOW) {
core->term_printf(core, "%*s%s", depth * STAT_TAB_LEN, "", node->name);
- if (node->flags & STAT_NODE_FLAG_VALUE) {
+ if (node->flags & SPICE_STAT_NODE_FLAG_VALUE) {
core->term_printf(core, ":%*s%llu\n",
(STAT_VALUE_TABS - depth) * STAT_TAB_LEN - strlen(node->name) - 1, "",
node->value);
@@ -645,12 +645,12 @@ static void do_info_statistics()
static void do_reset_statistics()
{
- StatNode *node;
+ SpiceStatNode *node;
int i;
for (i = 0; i <= REDS_MAX_STAT_NODES; i++) {
node = &reds->stat->nodes[i];
- if (node->flags & STAT_NODE_FLAG_VALUE) {
+ if (node->flags & SPICE_STAT_NODE_FLAG_VALUE) {
node->value = 0;
}
}
@@ -668,11 +668,11 @@ static void do_reset_statistics_2(const VDICmdArg* args)
void insert_stat_node(StatNodeRef parent, StatNodeRef ref)
{
- StatNode *node = &reds->stat->nodes[ref];
+ SpiceStatNode *node = &reds->stat->nodes[ref];
uint32_t pos = INVALID_STAT_REF;
uint32_t node_index;
uint32_t *head;
- StatNode *n;
+ SpiceStatNode *n;
node->first_child_index = INVALID_STAT_REF;
head = (parent == INVALID_STAT_REF ? &reds->stat->root_index :
@@ -696,7 +696,7 @@ void insert_stat_node(StatNodeRef parent, StatNodeRef ref)
StatNodeRef stat_add_node(StatNodeRef parent, const char *name, int visible)
{
StatNodeRef ref;
- StatNode *node;
+ SpiceStatNode *node;
ASSERT(name && strlen(name) > 0);
if (strlen(name) >= sizeof(node->name)) {
@@ -722,23 +722,23 @@ StatNodeRef stat_add_node(StatNodeRef parent, const char *name, int visible)
reds->stat->num_of_nodes++;
for (ref = 0; ref <= REDS_MAX_STAT_NODES; ref++) {
node = &reds->stat->nodes[ref];
- if (!(node->flags & STAT_NODE_FLAG_ENABLED)) {
+ if (!(node->flags & SPICE_STAT_NODE_FLAG_ENABLED)) {
break;
}
}
- ASSERT(!(node->flags & STAT_NODE_FLAG_ENABLED));
+ ASSERT(!(node->flags & SPICE_STAT_NODE_FLAG_ENABLED));
node->value = 0;
- node->flags = STAT_NODE_FLAG_ENABLED | (visible ? STAT_NODE_FLAG_VISIBLE : 0);
+ node->flags = SPICE_STAT_NODE_FLAG_ENABLED | (visible ? SPICE_STAT_NODE_FLAG_VISIBLE : 0);
strncpy(node->name, name, sizeof(node->name));
insert_stat_node(parent, ref);
pthread_mutex_unlock(&reds->stat_lock);
return ref;
}
-void stat_remove(StatNode *node)
+void stat_remove(SpiceStatNode *node)
{
pthread_mutex_lock(&reds->stat_lock);
- node->flags &= ~STAT_NODE_FLAG_ENABLED;
+ node->flags &= ~SPICE_STAT_NODE_FLAG_ENABLED;
reds->stat->generation++;
reds->stat->num_of_nodes--;
pthread_mutex_unlock(&reds->stat_lock);
@@ -752,19 +752,19 @@ void stat_remove_node(StatNodeRef ref)
uint64_t *stat_add_counter(StatNodeRef parent, const char *name, int visible)
{
StatNodeRef ref = stat_add_node(parent, name, visible);
- StatNode *node;
+ SpiceStatNode *node;
if (ref == INVALID_STAT_REF) {
return NULL;
}
node = &reds->stat->nodes[ref];
- node->flags |= STAT_NODE_FLAG_VALUE;
+ node->flags |= SPICE_STAT_NODE_FLAG_VALUE;
return &node->value;
}
void stat_remove_counter(uint64_t *counter)
{
- stat_remove((StatNode *)(counter - offsetof(StatNode, value)));
+ stat_remove((SpiceStatNode *)(counter - offsetof(SpiceStatNode, value)));
}
static void reds_update_stat_value(RedsStatValue* stat_value, uint32_t value)
@@ -926,7 +926,7 @@ static int handle_incoming(RedsStreamContext *peer, IncomingHandler *handler)
uint8_t *buf = handler->buf;
uint32_t pos = handler->end_pos;
uint8_t *end = buf + pos;
- RedDataHeader *header;
+ SpiceDataHeader *header;
int n;
n = peer->cb_read(peer->ctx, buf + pos, RECIVE_BUF_SIZE - pos);
if (n <= 0) {
@@ -947,9 +947,9 @@ static int handle_incoming(RedsStreamContext *peer, IncomingHandler *handler)
} else {
pos += n;
end = buf + pos;
- while (buf + sizeof(RedDataHeader) <= end &&
- buf + sizeof(RedDataHeader) + (header = (RedDataHeader *)buf)->size <= end) {
- buf += sizeof(RedDataHeader) + header->size;
+ while (buf + sizeof(SpiceDataHeader) <= end &&
+ buf + sizeof(SpiceDataHeader) + (header = (SpiceDataHeader *)buf)->size <= end) {
+ buf += sizeof(SpiceDataHeader) + header->size;
handler->handle_message(handler->opaque, header);
if (handler->shut) {
@@ -1036,7 +1036,7 @@ static int outgoing_write(RedsStreamContext *peer, OutgoingHandler *handler, voi
typedef struct SimpleOutItem {
RedsOutItem base;
- RedDataHeader header;
+ SpiceDataHeader header;
uint8_t data[0];
} SimpleOutItem;
@@ -1087,19 +1087,19 @@ static void reds_push_pipe_item(RedsOutItem *item)
static void reds_send_channels()
{
- RedChannels* channels_info;
+ SpiceMsgChannels* channels_info;
SimpleOutItem *item;
int message_size;
Channel *channel;
int i;
- message_size = sizeof(RedChannels) + reds->num_of_channels * sizeof(RedChannelInit);
- if (!(item = new_simple_out_item(RED_CHANNELS_LIST, message_size))) {
+ message_size = sizeof(SpiceMsgChannels) + reds->num_of_channels * sizeof(SpiceChannelId);
+ if (!(item = new_simple_out_item(SPICE_MSG_MAIN_CHANNELS_LIST, message_size))) {
red_printf("alloc item failed");
reds_disconnect();
return;
}
- channels_info = (RedChannels *)item->data;
+ channels_info = (SpiceMsgChannels *)item->data;
channels_info->num_of_channels = reds->num_of_channels;
channel = reds->channels;
@@ -1151,7 +1151,7 @@ static int send_ping(int size)
item->base.release = reds_free_ping_item;
item->header.serial = ++reds->serial;
- item->header.type = RED_PING;
+ item->header.type = SPICE_MSG_PING;
item->header.size = sizeof(item->ping) + size;
item->header.sub_list = 0;
@@ -1237,22 +1237,22 @@ static void do_info_rtt_client()
static void reds_send_mouse_mode()
{
- RedMouseMode *mouse_mode;
+ SpiceMsgMainMouseMode *mouse_mode;
SimpleOutItem *item;
if (!reds->peer) {
return;
}
- if (!(item = new_simple_out_item(RED_MOUSE_MODE, sizeof(RedMouseMode)))) {
+ if (!(item = new_simple_out_item(SPICE_MSG_MAIN_MOUSE_MODE, sizeof(SpiceMsgMainMouseMode)))) {
red_printf("alloc item failed");
reds_disconnect();
return;
}
- mouse_mode = (RedMouseMode *)item->data;
- mouse_mode->supported_modes = RED_MOUSE_MODE_SERVER;
+ mouse_mode = (SpiceMsgMainMouseMode *)item->data;
+ mouse_mode->supported_modes = SPICE_MOUSE_MODE_SERVER;
if (reds->is_client_mouse_allowed) {
- mouse_mode->supported_modes |= RED_MOUSE_MODE_CLIENT;
+ mouse_mode->supported_modes |= SPICE_MOUSE_MODE_CLIENT;
}
mouse_mode->current_mode = reds->mouse_mode;
reds_push_pipe_item(&item->base);
@@ -1280,8 +1280,8 @@ static void reds_update_mouse_mode()
return;
}
reds->is_client_mouse_allowed = allowed;
- if (reds->mouse_mode == RED_MOUSE_MODE_CLIENT && !allowed) {
- reds_set_mouse_mode(RED_MOUSE_MODE_SERVER);
+ if (reds->mouse_mode == SPICE_MOUSE_MODE_CLIENT && !allowed) {
+ reds_set_mouse_mode(SPICE_MOUSE_MODE_SERVER);
return;
}
reds_send_mouse_mode();
@@ -1290,7 +1290,7 @@ static void reds_update_mouse_mode()
static void reds_send_agent_connected()
{
SimpleOutItem *item;
- if (!(item = new_simple_out_item(RED_AGENT_CONNECTED, 0))) {
+ if (!(item = new_simple_out_item(SPICE_MSG_MAIN_AGENT_CONNECTED, 0))) {
PANIC("alloc item failed");
}
reds_push_pipe_item(&item->base);
@@ -1298,14 +1298,14 @@ static void reds_send_agent_connected()
static void reds_send_agent_disconnected()
{
- RedAgentDisconnect *disconnect;
+ SpiceMsgMainAgentDisconnect *disconnect;
SimpleOutItem *item;
- if (!(item = new_simple_out_item(RED_AGENT_DISCONNECTED, sizeof(RedAgentDisconnect)))) {
+ if (!(item = new_simple_out_item(SPICE_MSG_MAIN_AGENT_DISCONNECTED, sizeof(SpiceMsgMainAgentDisconnect)))) {
PANIC("alloc item failed");
}
- disconnect = (RedAgentDisconnect *)item->data;
- disconnect->error_code = RED_ERR_OK;
+ disconnect = (SpiceMsgMainAgentDisconnect *)item->data;
+ disconnect->error_code = SPICE_LINK_ERR_OK;
reds_push_pipe_item(&item->base);
}
@@ -1334,19 +1334,19 @@ static void reds_agent_remove()
static void reds_send_tokens()
{
- RedAgentTokens *tokens;
+ SpiceMsgMainAgentTokens *tokens;
SimpleOutItem *item;
if (!reds->peer) {
return;
}
- if (!(item = new_simple_out_item(RED_AGENT_TOKEN, sizeof(RedAgentTokens)))) {
+ if (!(item = new_simple_out_item(SPICE_MSG_MAIN_AGENT_TOKEN, sizeof(SpiceMsgMainAgentTokens)))) {
red_printf("alloc item failed");
reds_disconnect();
return;
}
- tokens = (RedAgentTokens *)item->data;
+ tokens = (SpiceMsgMainAgentTokens *)item->data;
tokens->num_tokens = reds->agent_state.num_tokens;
reds->agent_state.num_client_tokens += tokens->num_tokens;
ASSERT(reds->agent_state.num_client_tokens <= REDS_AGENT_WINDOW_SIZE);
@@ -1545,7 +1545,7 @@ typedef struct WriteQueueInfo {
typedef struct SendMainMigrateItem {
RedsOutItem base;
- RedDataHeader header;
+ SpiceDataHeader header;
MainMigrateData data;
WriteQueueInfo queue_info[REDS_AGENT_WINDOW_SIZE + REDS_NUM_INTERNAL_AGENT_MESSAGES];
} SendMainMigrateItem;
@@ -1562,7 +1562,7 @@ static void main_channel_send_migrate_data_item(RedsOutItem *in_item, struct iov
vec = vec_start;
item->header.serial = ++reds->serial;
- item->header.type = RED_MIGRATE_DATA;
+ item->header.type = SPICE_MSG_MIGRATE_DATA;
item->header.size = sizeof(item->data);
item->header.sub_list = 0;
@@ -1713,7 +1713,7 @@ static int main_channel_restore_vdi_read_state(MainMigrateData *data, uint8_t **
buff = state->current_read_buf = (VDIReadBuf *)ring_item;
buff->len = data->read_buf_len;
n = buff->len - state->recive_len;
- if (buff->len > RED_AGENT_MAX_DATA_SIZE || n > RED_AGENT_MAX_DATA_SIZE) {
+ if (buff->len > SPICE_AGENT_MAX_DATA_SIZE || n > SPICE_AGENT_MAX_DATA_SIZE) {
red_printf("bad read position");
reds_disconnect();
return FALSE;
@@ -1863,23 +1863,23 @@ static void main_channel_recive_migrate_data(MainMigrateData *data, uint8_t *end
ASSERT(state->num_client_tokens + state->num_tokens == REDS_AGENT_WINDOW_SIZE);
}
-static void reds_main_handle_message(void *opaque, RedDataHeader *message)
+static void reds_main_handle_message(void *opaque, SpiceDataHeader *message)
{
switch (message->type) {
- case REDC_AGENT_START: {
- RedcAgentTokens *agent_start;
+ case SPICE_MSGC_MAIN_AGENT_START: {
+ SpiceMsgcMainAgentTokens *agent_start;
red_printf("agent start");
if (!reds->peer) {
return;
}
- agent_start = (RedcAgentTokens *)(message + 1);
+ agent_start = (SpiceMsgcMainAgentTokens *)(message + 1);
reds->agent_state.client_agent_started = TRUE;
reds->agent_state.send_tokens = agent_start->num_tokens;
read_from_vdi_port();
break;
}
- case REDC_AGENT_DATA: {
+ case SPICE_MSGC_MAIN_AGENT_DATA: {
RingItem *ring_item;
VDAgentExtBuf *buf;
@@ -1896,12 +1896,12 @@ static void reds_main_handle_message(void *opaque, RedDataHeader *message)
}
if (!reds->agent_state.client_agent_started) {
- red_printf("REDC_AGENT_DATA race");
+ red_printf("SPICE_MSGC_MAIN_AGENT_DATA race");
add_token();
break;
}
- if (message->size > RED_AGENT_MAX_DATA_SIZE) {
+ if (message->size > SPICE_AGENT_MAX_DATA_SIZE) {
red_printf("invalid agent message");
reds_disconnect();
break;
@@ -1922,53 +1922,53 @@ static void reds_main_handle_message(void *opaque, RedDataHeader *message)
write_to_vdi_port();
break;
}
- case REDC_AGENT_TOKEN: {
- RedcAgentTokens *token;
+ case SPICE_MSGC_MAIN_AGENT_TOKEN: {
+ SpiceMsgcMainAgentTokens *token;
if (!reds->agent_state.client_agent_started) {
- red_printf("REDC_AGENT_TOKEN race");
+ red_printf("SPICE_MSGC_MAIN_AGENT_TOKEN race");
break;
}
- token = (RedcAgentTokens *)(message + 1);
+ token = (SpiceMsgcMainAgentTokens *)(message + 1);
reds->agent_state.send_tokens += token->num_tokens;
read_from_vdi_port();
break;
}
- case REDC_ATTACH_CHANNELS:
+ case SPICE_MSGC_MAIN_ATTACH_CHANNELS:
reds_send_channels();
break;
- case REDC_MIGRATE_CONNECTED:
+ case SPICE_MSGC_MAIN_MIGRATE_CONNECTED:
red_printf("connected");
if (reds->mig_wait_connect) {
reds_mig_cleanup();
}
break;
- case REDC_MIGRATE_CONNECT_ERROR:
+ case SPICE_MSGC_MAIN_MIGRATE_CONNECT_ERROR:
red_printf("mig connect error");
if (reds->mig_wait_connect) {
reds_mig_cleanup();
}
break;
- case REDC_MOUSE_MODE_REQUEST: {
- switch (((RedcMouseModeRequest *)(message + 1))->mode) {
- case RED_MOUSE_MODE_CLIENT:
+ case SPICE_MSGC_MAIN_MOUSE_MODE_REQUEST: {
+ switch (((SpiceMsgcMainMouseModeRequest *)(message + 1))->mode) {
+ case SPICE_MOUSE_MODE_CLIENT:
if (reds->is_client_mouse_allowed) {
- reds_set_mouse_mode(RED_MOUSE_MODE_CLIENT);
+ reds_set_mouse_mode(SPICE_MOUSE_MODE_CLIENT);
} else {
red_printf("client mouse is disabled");
}
break;
- case RED_MOUSE_MODE_SERVER:
- reds_set_mouse_mode(RED_MOUSE_MODE_SERVER);
+ case SPICE_MOUSE_MODE_SERVER:
+ reds_set_mouse_mode(SPICE_MOUSE_MODE_SERVER);
break;
default:
red_printf("unsupported mouse mode");
}
break;
}
- case REDC_PONG: {
- RedPing *ping = (RedPing *)(message + 1);
+ case SPICE_MSGC_PONG: {
+ SpiceMsgPing *ping = (SpiceMsgPing *)(message + 1);
uint64_t roundtrip;
struct timespec ts;
@@ -2017,16 +2017,16 @@ static void reds_main_handle_message(void *opaque, RedDataHeader *message)
#endif
break;
}
- case REDC_MIGRATE_FLUSH_MARK:
+ case SPICE_MSGC_MIGRATE_FLUSH_MARK:
main_channel_push_migrate_data_item();
break;
- case REDC_MIGRATE_DATA:
+ case SPICE_MSGC_MIGRATE_DATA:
main_channel_recive_migrate_data((MainMigrateData *)(message + 1),
(uint8_t *)(message + 1) + message->size);
reds->mig_target = FALSE;
while (write_to_vdi_port() || read_from_vdi_port());
break;
- case REDC_DISCONNECTING:
+ case SPICE_MSGC_DISCONNECTING:
break;
default:
red_printf("unexpected type %d", message->type);
@@ -2126,19 +2126,19 @@ static int sync_write(RedsStreamContext *peer, void *in_buf, size_t n)
static int reds_send_link_ack(RedLinkInfo *link)
{
- RedLinkHeader header;
- RedLinkReply ack;
+ SpiceLinkHeader header;
+ SpiceLinkReply ack;
Channel *channel;
BUF_MEM *bmBuf;
BIO *bio;
int ret;
- header.magic = RED_MAGIC;
+ header.magic = SPICE_MAGIC;
header.size = sizeof(ack);
- header.major_version = RED_VERSION_MAJOR;
- header.minor_version = RED_VERSION_MINOR;
+ header.major_version = SPICE_VERSION_MAJOR;
+ header.minor_version = SPICE_VERSION_MINOR;
- ack.error = RED_ERR_OK;
+ ack.error = SPICE_LINK_ERR_OK;
if ((channel = reds_find_channel(link->link_mess->channel_type, 0))) {
ack.num_common_caps = channel->num_common_caps;
@@ -2148,7 +2148,7 @@ static int reds_send_link_ack(RedLinkInfo *link)
ack.num_common_caps = 0;
ack.num_channel_caps = 0;
}
- ack.caps_offset = sizeof(RedLinkReply);
+ ack.caps_offset = sizeof(SpiceLinkReply);
if (!(link->tiTicketing.rsa = RSA_new())) {
red_printf("RSA nes failed");
@@ -2160,7 +2160,7 @@ static int reds_send_link_ack(RedLinkInfo *link)
return FALSE;
}
- RSA_generate_key_ex(link->tiTicketing.rsa, RED_TICKET_KEY_PAIR_LENGTH, link->tiTicketing.bn,
+ RSA_generate_key_ex(link->tiTicketing.rsa, SPICE_TICKET_KEY_PAIR_LENGTH, link->tiTicketing.bn,
NULL);
link->tiTicketing.rsa_size = RSA_size(link->tiTicketing.rsa);
@@ -2181,13 +2181,13 @@ static int reds_send_link_ack(RedLinkInfo *link)
static int reds_send_link_error(RedLinkInfo *link, uint32_t error)
{
- RedLinkHeader header;
- RedLinkReply reply;
+ SpiceLinkHeader header;
+ SpiceLinkReply reply;
- header.magic = RED_MAGIC;
+ header.magic = SPICE_MAGIC;
header.size = sizeof(reply);
- header.major_version = RED_VERSION_MAJOR;
- header.minor_version = RED_VERSION_MINOR;
+ header.major_version = SPICE_VERSION_MAJOR;
+ header.minor_version = SPICE_VERSION_MINOR;
memset(&reply, 0, sizeof(reply));
reply.error = error;
return sync_write(link->peer, &header, sizeof(header)) && sync_write(link->peer, &reply,
@@ -2228,7 +2228,7 @@ static void reds_handle_main_link(RedLinkInfo *link)
reds_disconnect();
if (!link->link_mess->connection_id) {
- reds_send_link_result(link, RED_ERR_OK);
+ reds_send_link_result(link, SPICE_LINK_ERR_OK);
while((connection_id = rand()) == 0);
reds->agent_state.num_tokens = 0;
reds->agent_state.send_tokens = 0;
@@ -2236,11 +2236,11 @@ static void reds_handle_main_link(RedLinkInfo *link)
reds->mig_target = FALSE;
} else {
if (link->link_mess->connection_id != reds->link_id) {
- reds_send_link_result(link, RED_ERR_BAD_CONNECTION_ID);
+ reds_send_link_result(link, SPICE_LINK_ERR_BAD_CONNECTION_ID);
reds_release_link(link);
return;
}
- reds_send_link_result(link, RED_ERR_OK);
+ reds_send_link_result(link, SPICE_LINK_ERR_OK);
connection_id = link->link_mess->connection_id;
reds->mig_target = TRUE;
}
@@ -2270,20 +2270,20 @@ static void reds_handle_main_link(RedLinkInfo *link)
if (!reds->mig_target) {
SimpleOutItem *item;
- RedInit *init;
+ SpiceMsgMainInit *init;
- if (!(item = new_simple_out_item(RED_INIT, sizeof(RedInit)))) {
+ if (!(item = new_simple_out_item(SPICE_MSG_MAIN_INIT, sizeof(SpiceMsgMainInit)))) {
red_printf("alloc item failed");
reds_disconnect();
return;
}
- init = (RedInit *)item->data;
+ init = (SpiceMsgMainInit *)item->data;
init->session_id = connection_id;
init->display_channels_hint = red_dispatcher_count();
init->current_mouse_mode = reds->mouse_mode;
- init->supported_mouse_modes = RED_MOUSE_MODE_SERVER;
+ init->supported_mouse_modes = SPICE_MOUSE_MODE_SERVER;
if (reds->is_client_mouse_allowed) {
- init->supported_mouse_modes |= RED_MOUSE_MODE_CLIENT;
+ init->supported_mouse_modes |= SPICE_MOUSE_MODE_CLIENT;
}
init->agent_connected = !!vdagent;
init->agent_tokens = REDS_AGENT_WINDOW_SIZE;
@@ -2296,14 +2296,14 @@ static void reds_handle_main_link(RedLinkInfo *link)
}
#define RED_MOUSE_STATE_TO_LOCAL(state) \
- ((state & REDC_LBUTTON_MASK) | \
- ((state & REDC_MBUTTON_MASK) << 1) | \
- ((state & REDC_RBUTTON_MASK) >> 1))
+ ((state & SPICE_MOUSE_BUTTON_MASK_LEFT) | \
+ ((state & SPICE_MOUSE_BUTTON_MASK_MIDDLE) << 1) | \
+ ((state & SPICE_MOUSE_BUTTON_MASK_RIGHT) >> 1))
#define RED_MOUSE_BUTTON_STATE_TO_AGENT(state) \
- (((state & REDC_LBUTTON_MASK) ? VD_AGENT_LBUTTON_MASK : 0) | \
- ((state & REDC_MBUTTON_MASK) ? VD_AGENT_MBUTTON_MASK : 0) | \
- ((state & REDC_RBUTTON_MASK) ? VD_AGENT_RBUTTON_MASK : 0))
+ (((state & SPICE_MOUSE_BUTTON_MASK_LEFT) ? VD_AGENT_LBUTTON_MASK : 0) | \
+ ((state & SPICE_MOUSE_BUTTON_MASK_MIDDLE) ? VD_AGENT_MBUTTON_MASK : 0) | \
+ ((state & SPICE_MOUSE_BUTTON_MASK_RIGHT) ? VD_AGENT_RBUTTON_MASK : 0))
static void activate_modifiers_watch()
{
@@ -2318,21 +2318,21 @@ static void push_key_scan(uint8_t scan)
keyboard->push_scan_freg(keyboard, scan);
}
-static void inputs_handle_input(void *opaque, RedDataHeader *header)
+static void inputs_handle_input(void *opaque, SpiceDataHeader *header)
{
InputsState *state = (InputsState *)opaque;
uint8_t *buf = (uint8_t *)(header + 1);
switch (header->type) {
- case REDC_INPUTS_KEY_DOWN: {
- RedcKeyDown *key_up = (RedcKeyDown *)buf;
+ case SPICE_MSGC_INPUTS_KEY_DOWN: {
+ SpiceMsgcKeyDown *key_up = (SpiceMsgcKeyDown *)buf;
if (key_up->code == CAPS_LOCK_SCAN_CODE || key_up->code == NUM_LOCK_SCAN_CODE ||
key_up->code == SCROLL_LOCK_SCAN_CODE) {
activate_modifiers_watch();
}
}
- case REDC_INPUTS_KEY_UP: {
- RedcKeyDown *key_down = (RedcKeyDown *)buf;
+ case SPICE_MSGC_INPUTS_KEY_UP: {
+ SpiceMsgcKeyDown *key_down = (SpiceMsgcKeyDown *)buf;
uint8_t *now = (uint8_t *)&key_down->code;
uint8_t *end = now + sizeof(key_down->code);
for (; now < end && *now; now++) {
@@ -2340,45 +2340,45 @@ static void inputs_handle_input(void *opaque, RedDataHeader *header)
}
break;
}
- case REDC_INPUTS_MOUSE_MOTION: {
- RedcMouseMotion *mouse_motion = (RedcMouseMotion *)buf;
+ case SPICE_MSGC_INPUTS_MOUSE_MOTION: {
+ SpiceMsgcMouseMotion *mouse_motion = (SpiceMsgcMouseMotion *)buf;
- if (++state->motion_count % RED_MOTION_ACK_BUNCH == 0) {
- RedDataHeader header;
+ if (++state->motion_count % SPICE_INPUT_MOTION_ACK_BUNCH == 0) {
+ SpiceDataHeader header;
header.serial = ++state->serial;
- header.type = RED_INPUTS_MOUSE_MOTION_ACK;
+ header.type = SPICE_MSG_INPUTS_MOUSE_MOTION_ACK;
header.size = 0;
header.sub_list = 0;
- if (outgoing_write(state->peer, &state->out_handler, &header, sizeof(RedDataHeader))
+ if (outgoing_write(state->peer, &state->out_handler, &header, sizeof(SpiceDataHeader))
!= OUTGOING_OK) {
red_printf("motion ack failed");
reds_disconnect();
}
}
- if (mouse && reds->mouse_mode == RED_MOUSE_MODE_SERVER) {
+ if (mouse && reds->mouse_mode == SPICE_MOUSE_MODE_SERVER) {
mouse->moution(mouse, mouse_motion->dx, mouse_motion->dy, 0,
RED_MOUSE_STATE_TO_LOCAL(mouse_motion->buttons_state));
}
break;
}
- case REDC_INPUTS_MOUSE_POSITION: {
- RedcMousePosition *pos = (RedcMousePosition *)buf;
+ case SPICE_MSGC_INPUTS_MOUSE_POSITION: {
+ SpiceMsgcMousePosition *pos = (SpiceMsgcMousePosition *)buf;
- if (++state->motion_count % RED_MOTION_ACK_BUNCH == 0) {
- RedDataHeader header;
+ if (++state->motion_count % SPICE_INPUT_MOTION_ACK_BUNCH == 0) {
+ SpiceDataHeader header;
header.serial = ++state->serial;
- header.type = RED_INPUTS_MOUSE_MOTION_ACK;
+ header.type = SPICE_MSG_INPUTS_MOUSE_MOTION_ACK;
header.size = 0;
header.sub_list = 0;
- if (outgoing_write(state->peer, &state->out_handler, &header, sizeof(RedDataHeader))
+ if (outgoing_write(state->peer, &state->out_handler, &header, sizeof(SpiceDataHeader))
!= OUTGOING_OK) {
red_printf("position ack failed");
reds_disconnect();
}
}
- if (reds->mouse_mode != RED_MOUSE_MODE_CLIENT) {
+ if (reds->mouse_mode != SPICE_MOUSE_MODE_CLIENT) {
break;
}
ASSERT((agent_mouse && vdagent) || tablet);
@@ -2394,15 +2394,15 @@ static void inputs_handle_input(void *opaque, RedDataHeader *header)
reds_handle_agent_mouse_event();
break;
}
- case REDC_INPUTS_MOUSE_PRESS: {
- RedcMousePress *mouse_press = (RedcMousePress *)buf;
+ case SPICE_MSGC_INPUTS_MOUSE_PRESS: {
+ SpiceMsgcMousePress *mouse_press = (SpiceMsgcMousePress *)buf;
int dz = 0;
- if (mouse_press->button == REDC_MOUSE_UBUTTON) {
+ if (mouse_press->button == SPICE_MOUSE_BUTTON_UP) {
dz = -1;
- } else if (mouse_press->button == REDC_MOUSE_DBUTTON) {
+ } else if (mouse_press->button == SPICE_MOUSE_BUTTON_DOWN) {
dz = 1;
}
- if (reds->mouse_mode == RED_MOUSE_MODE_CLIENT) {
+ if (reds->mouse_mode == SPICE_MOUSE_MODE_CLIENT) {
if (agent_mouse && vdagent) {
reds->inputs_state->mouse_state.buttons =
RED_MOUSE_BUTTON_STATE_TO_AGENT(mouse_press->buttons_state) |
@@ -2417,9 +2417,9 @@ static void inputs_handle_input(void *opaque, RedDataHeader *header)
}
break;
}
- case REDC_INPUTS_MOUSE_RELEASE: {
- RedcMouseRelease *mouse_release = (RedcMouseRelease *)buf;
- if (reds->mouse_mode == RED_MOUSE_MODE_CLIENT) {
+ case SPICE_MSGC_INPUTS_MOUSE_RELEASE: {
+ SpiceMsgcMouseRelease *mouse_release = (SpiceMsgcMouseRelease *)buf;
+ if (reds->mouse_mode == SPICE_MOUSE_MODE_CLIENT) {
if (agent_mouse && vdagent) {
reds->inputs_state->mouse_state.buttons =
RED_MOUSE_BUTTON_STATE_TO_AGENT(mouse_release->buttons_state);
@@ -2432,29 +2432,29 @@ static void inputs_handle_input(void *opaque, RedDataHeader *header)
}
break;
}
- case REDC_INPUTS_KEY_MODIFAIERS: {
- RedcKeyModifiers *modifiers = (RedcKeyModifiers *)buf;
+ case SPICE_MSGC_INPUTS_KEY_MODIFIERS: {
+ SpiceMsgcKeyModifiers *modifiers = (SpiceMsgcKeyModifiers *)buf;
if (!keyboard) {
break;
}
uint8_t leds = keyboard->get_leds(keyboard);
- if ((modifiers->modifiers & RED_SCROLL_LOCK_MODIFIER) !=
- (leds & RED_SCROLL_LOCK_MODIFIER)) {
+ if ((modifiers->modifiers & SPICE_SCROLL_LOCK_MODIFIER) !=
+ (leds & SPICE_SCROLL_LOCK_MODIFIER)) {
push_key_scan(SCROLL_LOCK_SCAN_CODE);
push_key_scan(SCROLL_LOCK_SCAN_CODE | 0x80);
}
- if ((modifiers->modifiers & RED_NUM_LOCK_MODIFIER) != (leds & RED_NUM_LOCK_MODIFIER)) {
+ if ((modifiers->modifiers & SPICE_NUM_LOCK_MODIFIER) != (leds & SPICE_NUM_LOCK_MODIFIER)) {
push_key_scan(NUM_LOCK_SCAN_CODE);
push_key_scan(NUM_LOCK_SCAN_CODE | 0x80);
}
- if ((modifiers->modifiers & RED_CAPS_LOCK_MODIFIER) != (leds & RED_CAPS_LOCK_MODIFIER)) {
+ if ((modifiers->modifiers & SPICE_CAPS_LOCK_MODIFIER) != (leds & SPICE_CAPS_LOCK_MODIFIER)) {
push_key_scan(CAPS_LOCK_SCAN_CODE);
push_key_scan(CAPS_LOCK_SCAN_CODE | 0x80);
}
activate_modifiers_watch();
break;
}
- case REDC_DISCONNECTING:
+ case SPICE_MSGC_DISCONNECTING:
break;
default:
red_printf("unexpected type %d", header->type);
@@ -2522,12 +2522,12 @@ static void inputs_shutdown(Channel *channel)
static void inputs_migrate(Channel *channel)
{
InputsState *state = (InputsState *)channel->data;
- RedDataHeader header;
- RedMigrate migrate;
+ SpiceDataHeader header;
+ SpiceMsgMigrate migrate;
red_printf("");
header.serial = ++state->serial;
- header.type = RED_MIGRATE;
+ header.type = SPICE_MSG_MIGRATE;
header.size = sizeof(migrate);
header.sub_list = 0;
migrate.flags = 0;
@@ -2600,17 +2600,17 @@ static void inputs_link(Channel *channel, RedsStreamContext *peer, int migration
reds->inputs_state = inputs_state;
core->set_file_handlers(core, peer->socket, inputs_read, NULL, inputs_state);
- RedDataHeader header;
- RedInputsInit inputs_init;
+ SpiceDataHeader header;
+ SpiceMsgInputsInit inputs_init;
header.serial = ++inputs_state->serial;
- header.type = RED_INPUTS_INIT;
- header.size = sizeof(RedInputsInit);
+ header.type = SPICE_MSG_INPUTS_INIT;
+ header.size = sizeof(SpiceMsgInputsInit);
header.sub_list = 0;
inputs_init.keyboard_modifiers = keyboard ? keyboard->get_leds(keyboard) : 0;
if (outgoing_write(inputs_state->peer, &inputs_state->out_handler, &header,
- sizeof(RedDataHeader)) != OUTGOING_OK ||
+ sizeof(SpiceDataHeader)) != OUTGOING_OK ||
outgoing_write(inputs_state->peer, &inputs_state->out_handler, &inputs_init,
- sizeof(RedInputsInit)) != OUTGOING_OK) {
+ sizeof(SpiceMsgInputsInit)) != OUTGOING_OK) {
red_printf("failed to send modifiers state");
reds_disconnect();
}
@@ -2618,24 +2618,24 @@ static void inputs_link(Channel *channel, RedsStreamContext *peer, int migration
static void reds_send_keyborad_modifiers(uint8_t modifiers)
{
- Channel *channel = reds_find_channel(RED_CHANNEL_INPUTS, 0);
+ Channel *channel = reds_find_channel(SPICE_CHANNEL_INPUTS, 0);
InputsState *state;
if (!channel || !(state = (InputsState *)channel->data)) {
return;
}
ASSERT(state->peer);
- RedDataHeader header;
- RedKeyModifiers key_modifiers;
+ SpiceDataHeader header;
+ SpiceMsgInputsKeyModifiers key_modifiers;
header.serial = ++state->serial;
- header.type = RED_INPUTS_KEY_MODIFAIERS;
- header.size = sizeof(RedKeyModifiers);
+ header.type = SPICE_MSG_INPUTS_KEY_MODIFIERS;
+ header.size = sizeof(SpiceMsgInputsKeyModifiers);
header.sub_list = 0;
key_modifiers.modifiers = modifiers;
- if (outgoing_write(state->peer, &state->out_handler, &header, sizeof(RedDataHeader))
+ if (outgoing_write(state->peer, &state->out_handler, &header, sizeof(SpiceDataHeader))
!= OUTGOING_OK ||
- outgoing_write(state->peer, &state->out_handler, &key_modifiers, sizeof(RedKeyModifiers))
+ outgoing_write(state->peer, &state->out_handler, &key_modifiers, sizeof(SpiceMsgInputsKeyModifiers))
!= OUTGOING_OK) {
red_printf("failed to send modifiers state");
reds_disconnect();
@@ -2666,7 +2666,7 @@ static void inputs_init()
red_error("alloc inputs chanel failed");
}
memset(channel, 0, sizeof(Channel));
- channel->type = RED_CHANNEL_INPUTS;
+ channel->type = SPICE_CHANNEL_INPUTS;
channel->link = inputs_link;
channel->shutdown = inputs_shutdown;
channel->migrate = inputs_migrate;
@@ -2677,45 +2677,45 @@ static void reds_handle_other_links(RedLinkInfo *link)
{
Channel *channel;
RedsStreamContext *peer;
- RedLinkMess *link_mess;
+ SpiceLinkMess *link_mess;
uint32_t *caps;
link_mess = link->link_mess;
if (!reds->link_id || reds->link_id != link_mess->connection_id) {
- reds_send_link_result(link, RED_ERR_BAD_CONNECTION_ID);
+ reds_send_link_result(link, SPICE_LINK_ERR_BAD_CONNECTION_ID);
reds_release_link(link);
return;
}
if (!(channel = reds_find_channel(link_mess->channel_type,
link_mess->channel_id))) {
- reds_send_link_result(link, RED_ERR_CHANNEL_NOT_AVAILABLE);
+ reds_send_link_result(link, SPICE_LINK_ERR_CHANNEL_NOT_AVAILABLE);
reds_release_link(link);
return;
}
- reds_send_link_result(link, RED_ERR_OK);
+ reds_send_link_result(link, SPICE_LINK_ERR_OK);
reds_show_new_channel(link);
- if (link_mess->channel_type == RED_CHANNEL_INPUTS && !link->peer->ssl) {
+ if (link_mess->channel_type == SPICE_CHANNEL_INPUTS && !link->peer->ssl) {
SimpleOutItem *item;
- RedNotify *notify;
+ SpiceMsgNotify *notify;
char *mess = "keybord channel is unsecure";
const int mess_len = strlen(mess);
LOG_MESSAGE(VD_LOG_WARN, "%s", mess);
- if (!(item = new_simple_out_item(RED_NOTIFY, sizeof(RedNotify) + mess_len + 1))) {
+ if (!(item = new_simple_out_item(SPICE_MSG_NOTIFY, sizeof(SpiceMsgNotify) + mess_len + 1))) {
red_printf("alloc item failed");
reds_disconnect();
return;
}
- notify = (RedNotify *)item->data;
+ notify = (SpiceMsgNotify *)item->data;
notify->time_stamp = get_time_stamp();
- notify->severty = RED_NOTIFY_SEVERITY_WARN;
- notify->visibilty = RED_NOTIFY_VISIBILITY_HIGH;
- notify->what = RED_WARN_GENERAL;
+ notify->severty = SPICE_NOTIFY_SEVERITY_WARN;
+ notify->visibilty = SPICE_NOTIFY_VISIBILITY_HIGH;
+ notify->what = SPICE_WARN_GENERAL;
notify->message_len = mess_len;
memcpy(notify->message, mess, mess_len + 1);
reds_push_pipe_item(&item->base);
@@ -2733,7 +2733,7 @@ static void reds_handle_other_links(RedLinkInfo *link)
static void reds_handle_ticket(void *opaque)
{
RedLinkInfo *link = (RedLinkInfo *)opaque;
- char password[RED_MAX_PASSWORD_LENGTH];
+ char password[SPICE_MAX_PASSWORD_LENGTH];
time_t ltime;
//todo: use monotonic time
@@ -2747,21 +2747,21 @@ static void reds_handle_ticket(void *opaque)
char *actual_sever_pass = link->link_mess->connection_id ? reds->taTicket.password :
taTicket.password;
if (strlen(actual_sever_pass) == 0) {
- reds_send_link_result(link, RED_ERR_PERMISSION_DENIED);
+ reds_send_link_result(link, SPICE_LINK_ERR_PERMISSION_DENIED);
red_printf("Ticketing is enabled, but no password is set. "
"please set a ticket first");
reds_release_link(link);
return;
}
- if (expired || strncmp(password, actual_sever_pass, RED_MAX_PASSWORD_LENGTH) != 0) {
- reds_send_link_result(link, RED_ERR_PERMISSION_DENIED);
+ if (expired || strncmp(password, actual_sever_pass, SPICE_MAX_PASSWORD_LENGTH) != 0) {
+ reds_send_link_result(link, SPICE_LINK_ERR_PERMISSION_DENIED);
LOG_MESSAGE(VD_LOG_WARN, "bad connection password or time expired");
reds_release_link(link);
return;
}
}
- if (link->link_mess->channel_type == RED_CHANNEL_MAIN) {
+ if (link->link_mess->channel_type == SPICE_CHANNEL_MAIN) {
reds_handle_main_link(link);
} else {
reds_handle_other_links(link);
@@ -2829,14 +2829,14 @@ static int reds_security_check(RedLinkInfo *link)
static void reds_handle_read_link_done(void *opaque)
{
RedLinkInfo *link = (RedLinkInfo *)opaque;
- RedLinkMess *link_mess = link->link_mess;
+ SpiceLinkMess *link_mess = link->link_mess;
AsyncRead *obj = &link->asyc_read;
uint32_t num_caps = link_mess->num_common_caps + link_mess->num_channel_caps;
if (num_caps && (num_caps * sizeof(uint32_t) + link_mess->caps_offset >
link->link_header.size ||
link_mess->caps_offset < sizeof(*link_mess))) {
- reds_send_link_error(link, RED_ERR_INVALID_DATA);
+ reds_send_link_error(link, SPICE_LINK_ERR_INVALID_DATA);
reds_release_link(link);
return;
}
@@ -2846,12 +2846,12 @@ static void reds_handle_read_link_done(void *opaque)
LOG_MESSAGE(VD_LOG_INFO, "channels of type %d should connect only over "
"a non secure link", link_mess->channel_type);
red_printf("spice channels %d should not be encrypted", link_mess->channel_type);
- reds_send_link_error(link, RED_ERR_NEED_UNSECURED);
+ reds_send_link_error(link, SPICE_LINK_ERR_NEED_UNSECURED);
} else {
LOG_MESSAGE(VD_LOG_INFO, "channels of type %d should connect only over "
"a secure link", link_mess->channel_type);
red_printf("spice channels %d should be encrypted", link_mess->channel_type);
- reds_send_link_error(link, RED_ERR_NEED_SECURED);
+ reds_send_link_error(link, SPICE_LINK_ERR_NEED_SECURED);
}
reds_release_link(link);
return;
@@ -2885,25 +2885,25 @@ static void reds_handle_link_error(void *opaque, int err)
static void reds_handle_read_header_done(void *opaque)
{
RedLinkInfo *link = (RedLinkInfo *)opaque;
- RedLinkHeader *header = &link->link_header;
+ SpiceLinkHeader *header = &link->link_header;
AsyncRead *obj = &link->asyc_read;
- if (header->magic != RED_MAGIC) {
- reds_send_link_error(link, RED_ERR_INVALID_MAGIC);
+ if (header->magic != SPICE_MAGIC) {
+ reds_send_link_error(link, SPICE_LINK_ERR_INVALID_MAGIC);
LOG_MESSAGE(VD_LOG_ERROR, "bad magic %u", header->magic);
reds_release_link(link);
return;
}
- if (header->major_version != RED_VERSION_MAJOR) {
+ if (header->major_version != SPICE_VERSION_MAJOR) {
if (header->major_version > 0) {
- reds_send_link_error(link, RED_ERR_VERSION_MISMATCH);
+ reds_send_link_error(link, SPICE_LINK_ERR_VERSION_MISMATCH);
}
LOG_MESSAGE(VD_LOG_INFO, "version mismatch client %u.%u server %u.%u",
header->major_version,
header->minor_version,
- RED_VERSION_MAJOR,
- RED_VERSION_MINOR);
+ SPICE_VERSION_MAJOR,
+ SPICE_VERSION_MINOR);
red_printf("version mismatch");
reds_release_link(link);
@@ -2912,8 +2912,8 @@ static void reds_handle_read_header_done(void *opaque)
reds->peer_minor_version = header->minor_version;
- if (header->size < sizeof(RedLinkMess)) {
- reds_send_link_error(link, RED_ERR_INVALID_DATA);
+ if (header->size < sizeof(SpiceLinkMess)) {
+ reds_send_link_error(link, SPICE_LINK_ERR_INVALID_DATA);
red_printf("bad size %u", header->size);
reds_release_link(link);
return;
@@ -2937,7 +2937,7 @@ static void reds_handle_new_link(RedLinkInfo *link)
obj->opaque = link;
obj->peer = link->peer;
obj->now = (uint8_t *)&link->link_header;
- obj->end = (uint8_t *)((RedLinkHeader *)&link->link_header + 1);
+ obj->end = (uint8_t *)((SpiceLinkHeader *)&link->link_header + 1);
obj->active_file_handlers = FALSE;
obj->done = reds_handle_read_header_done;
obj->error = reds_handle_link_error;
@@ -3853,27 +3853,27 @@ static int set_channels_security(const char *channels, uint32_t security)
break;
case CHANNEL_NAME_MAIN:
specific++;
- set_one_channel_security(RED_CHANNEL_MAIN, security);
+ set_one_channel_security(SPICE_CHANNEL_MAIN, security);
break;
case CHANNEL_NAME_DISPLAY:
specific++;
- set_one_channel_security(RED_CHANNEL_DISPLAY, security);
+ set_one_channel_security(SPICE_CHANNEL_DISPLAY, security);
break;
case CHANNEL_NAME_INPUTS:
specific++;
- set_one_channel_security(RED_CHANNEL_INPUTS, security);
+ set_one_channel_security(SPICE_CHANNEL_INPUTS, security);
break;
case CHANNEL_NAME_CURSOR:
specific++;
- set_one_channel_security(RED_CHANNEL_CURSOR, security);
+ set_one_channel_security(SPICE_CHANNEL_CURSOR, security);
break;
case CHANNEL_NAME_PLAYBACK:
specific++;
- set_one_channel_security(RED_CHANNEL_PLAYBACK, security);
+ set_one_channel_security(SPICE_CHANNEL_PLAYBACK, security);
break;
case CHANNEL_NAME_RECORD:
specific++;
- set_one_channel_security(RED_CHANNEL_RECORD, security);
+ set_one_channel_security(SPICE_CHANNEL_RECORD, security);
break;
default:
goto error;
@@ -4172,7 +4172,7 @@ typedef struct RedsMigSpice {
RedsMigWrite write;
RedsMigRead read;
- char pub_key[RED_TICKET_PUBKEY_BYTES];
+ char pub_key[SPICE_TICKET_PUBKEY_BYTES];
uint32_t mig_key;
char *local_args;
@@ -4294,27 +4294,27 @@ static void reds_mig_read(void *data)
static void reds_mig_continue(RedsMigSpice *s)
{
- RedMigrationBegin *migrate;
+ SpiceMsgMainMigrationBegin *migrate;
SimpleOutItem *item;
int host_len;
red_printf("");
core->set_file_handlers(core, s->fd, NULL, NULL, NULL);
host_len = strlen(s->host) + 1;
- item = new_simple_out_item(RED_MIGRATE_BEGIN,
- sizeof(RedMigrationBegin) + host_len + s->cert_pub_key_len);
+ item = new_simple_out_item(SPICE_MSG_MAIN_MIGRATE_BEGIN,
+ sizeof(SpiceMsgMainMigrationBegin) + host_len + s->cert_pub_key_len);
if (!(item)) {
red_printf("alloc item failed");
reds_disconnect();
return;
}
- migrate = (RedMigrationBegin *)item->data;
+ migrate = (SpiceMsgMainMigrationBegin *)item->data;
migrate->port = s->port;
migrate->sport = s->sport;
- migrate->host_offset = sizeof(RedMigrationBegin);
+ migrate->host_offset = sizeof(SpiceMsgMainMigrationBegin);
migrate->host_size = host_len;
migrate->pub_key_type = s->cert_pub_key_type;
- migrate->pub_key_offset = sizeof(RedMigrationBegin) + host_len;
+ migrate->pub_key_offset = sizeof(SpiceMsgMainMigrationBegin) + host_len;
migrate->pub_key_size = s->cert_pub_key_len;
memcpy((uint8_t*)(migrate) + migrate->host_offset , s->host, host_len);
memcpy((uint8_t*)(migrate) + migrate->pub_key_offset, s->cert_pub_key, s->cert_pub_key_len);
@@ -4359,7 +4359,7 @@ static void reds_mig_send_ticket(RedsMigSpice *s)
bio_key = BIO_new(BIO_s_mem());
if (bio_key != NULL) {
- BIO_write(bio_key, s->read.buf, RED_TICKET_PUBKEY_BYTES);
+ BIO_write(bio_key, s->read.buf, SPICE_TICKET_PUBKEY_BYTES);
pubkey = d2i_PUBKEY_bio(bio_key, NULL);
rsa = pubkey->pkey.rsa;
rsa_size = RSA_size(rsa);
@@ -4393,7 +4393,7 @@ static void reds_mig_receive_cert_public_key(RedsMigSpice *s)
memcpy(s->cert_pub_key, s->read.buf, s->cert_pub_key_len);
- s->read.size = RED_TICKET_PUBKEY_BYTES;
+ s->read.size = SPICE_TICKET_PUBKEY_BYTES;
s->read.end_pos = 0;
s->read.handle_data = reds_mig_send_ticket;
@@ -4418,7 +4418,7 @@ static void reds_mig_receive_cert_public_key_info(RedsMigSpice *s)
s->read.handle_data = reds_mig_receive_cert_public_key;
} else {
s->cert_pub_key = NULL;
- s->read.size = RED_TICKET_PUBKEY_BYTES;
+ s->read.size = SPICE_TICKET_PUBKEY_BYTES;
s->read.end_pos = 0;
s->read.handle_data = reds_mig_send_ticket;
}
@@ -4514,9 +4514,9 @@ static void reds_mig_started(void *opaque, const char *in_args)
goto error;
}
- if ((RED_VERSION_MAJOR == 1) && (reds->peer_minor_version < 2)) {
+ if ((SPICE_VERSION_MAJOR == 1) && (reds->peer_minor_version < 2)) {
red_printf("minor version mismatch client %u server %u",
- reds->peer_minor_version, RED_VERSION_MINOR);
+ reds->peer_minor_version, SPICE_VERSION_MINOR);
goto error;
}
@@ -4633,18 +4633,18 @@ static void reds_mig_finished(void *opaque, int completed)
if (completed) {
Channel *channel;
- RedMigrate *migrate;
+ SpiceMsgMigrate *migrate;
reds->mig_wait_disconnect = TRUE;
core->arm_timer(core, reds->mig_timer, MIGRATE_TIMEOUT);
- if (!(item = new_simple_out_item(RED_MIGRATE, sizeof(RedMigrate)))) {
+ if (!(item = new_simple_out_item(SPICE_MSG_MIGRATE, sizeof(SpiceMsgMigrate)))) {
red_printf("alloc item failed");
reds_disconnect();
return;
}
- migrate = (RedMigrate *)item->data;
- migrate->flags = RED_MIGRATE_NEED_FLUSH | RED_MIGRATE_NEED_DATA_TRANSFER;
+ migrate = (SpiceMsgMigrate *)item->data;
+ migrate->flags = SPICE_MIGRATE_NEED_FLUSH | SPICE_MIGRATE_NEED_DATA_TRANSFER;
reds_push_pipe_item(&item->base);
channel = reds->channels;
while (channel) {
@@ -4652,7 +4652,7 @@ static void reds_mig_finished(void *opaque, int completed)
channel = channel->next;
}
} else {
- if (!(item = new_simple_out_item(RED_MIGRATE_CANCEL, 0))) {
+ if (!(item = new_simple_out_item(SPICE_MSG_MAIN_MIGRATE_CANCEL, 0))) {
red_printf("alloc item failed");
reds_disconnect();
return;
@@ -4733,7 +4733,7 @@ static void reds_mig_send_cert_public_key(int fd)
RedsMigCertPubKeyInfo pub_key_info_msg;
if (spice_secure_port == -1) {
- pub_key_info_msg.type = RED_PUBKEY_TYPE_INVALID;
+ pub_key_info_msg.type = SPICE_PUBKEY_TYPE_INVALID;
pub_key_info_msg.len = 0;
reds_mig_write_all(fd, &pub_key_info_msg, sizeof(pub_key_info_msg), "cert public key info");
return;
@@ -4762,31 +4762,31 @@ static void reds_mig_send_cert_public_key(int fd)
switch(pub_key->type) {
case EVP_PKEY_RSA:
- pub_key_info_msg.type = RED_PUBKEY_TYPE_RSA;
+ pub_key_info_msg.type = SPICE_PUBKEY_TYPE_RSA;
break;
case EVP_PKEY_RSA2:
- pub_key_info_msg.type = RED_PUBKEY_TYPE_RSA2;
+ pub_key_info_msg.type = SPICE_PUBKEY_TYPE_RSA2;
break;
case EVP_PKEY_DSA:
- pub_key_info_msg.type = RED_PUBKEY_TYPE_DSA;
+ pub_key_info_msg.type = SPICE_PUBKEY_TYPE_DSA;
break;
case EVP_PKEY_DSA1:
- pub_key_info_msg.type = RED_PUBKEY_TYPE_DSA1;
+ pub_key_info_msg.type = SPICE_PUBKEY_TYPE_DSA1;
break;
case EVP_PKEY_DSA2:
- pub_key_info_msg.type = RED_PUBKEY_TYPE_DSA2;
+ pub_key_info_msg.type = SPICE_PUBKEY_TYPE_DSA2;
break;
case EVP_PKEY_DSA3:
- pub_key_info_msg.type = RED_PUBKEY_TYPE_DSA3;
+ pub_key_info_msg.type = SPICE_PUBKEY_TYPE_DSA3;
break;
case EVP_PKEY_DSA4:
- pub_key_info_msg.type = RED_PUBKEY_TYPE_DSA4;
+ pub_key_info_msg.type = SPICE_PUBKEY_TYPE_DSA4;
break;
case EVP_PKEY_DH:
- pub_key_info_msg.type = RED_PUBKEY_TYPE_DH;
+ pub_key_info_msg.type = SPICE_PUBKEY_TYPE_DH;
break;
case EVP_PKEY_EC:
- pub_key_info_msg.type = RED_PUBKEY_TYPE_EC;
+ pub_key_info_msg.type = SPICE_PUBKEY_TYPE_EC;
break;
default:
red_error("invalid public key type");
@@ -4804,7 +4804,7 @@ static void reds_mig_send_cert_public_key(int fd)
static void reds_mig_recv(void *opaque, int fd)
{
uint32_t ack_message = *(uint32_t *)"ack_";
- char password[RED_MAX_PASSWORD_LENGTH];
+ char password[SPICE_MAX_PASSWORD_LENGTH];
RedsMigSpiceMessage mig_message;
unsigned long f4 = RSA_F4;
TicketInfo ticketing_info;
@@ -4856,7 +4856,7 @@ static void reds_mig_recv(void *opaque, int fd)
red_error("OpenSSL RSA alloc failed");
}
- RSA_generate_key_ex(ticketing_info.rsa, RED_TICKET_KEY_PAIR_LENGTH, ticketing_info.bn, NULL);
+ RSA_generate_key_ex(ticketing_info.rsa, SPICE_TICKET_KEY_PAIR_LENGTH, ticketing_info.bn, NULL);
ticketing_info.rsa_size = RSA_size(ticketing_info.rsa);
if (!(bio = BIO_new(BIO_s_mem()))) {
@@ -4866,7 +4866,7 @@ static void reds_mig_recv(void *opaque, int fd)
i2d_RSA_PUBKEY_bio(bio, ticketing_info.rsa);
BIO_get_mem_ptr(bio, &buff);
- reds_mig_write_all(fd, buff->data, RED_TICKET_PUBKEY_BYTES, "publick key");
+ reds_mig_write_all(fd, buff->data, SPICE_TICKET_PUBKEY_BYTES, "publick key");
reds_mig_read_all(fd, ticketing_info.encrypted_ticket.encrypted_data, ticketing_info.rsa_size,
"ticket");
@@ -4910,7 +4910,7 @@ void reds_update_mm_timer(uint32_t mm_time)
void reds_enable_mm_timer()
{
- RedMultiMediaTime *time_mes;
+ SpiceMsgMainMultiMediaTime *time_mes;
SimpleOutItem *item;
core->arm_timer(core, reds->mm_timer, MM_TIMER_GRANULARITY_MS);
@@ -4918,12 +4918,12 @@ void reds_enable_mm_timer()
return;
}
- if (!(item = new_simple_out_item(RED_MULTI_MEDIA_TIME, sizeof(RedMultiMediaTime)))) {
+ if (!(item = new_simple_out_item(SPICE_MSG_MAIN_MULTI_MEDIA_TIME, sizeof(SpiceMsgMainMultiMediaTime)))) {
red_printf("alloc item failed");
reds_disconnect();
return;
}
- time_mes = (RedMultiMediaTime *)item->data;
+ time_mes = (SpiceMsgMainMultiMediaTime *)item->data;
time_mes->time = reds_get_mm_time() - MM_TIME_DELTA;
reds_push_pipe_item(&item->base);
}
@@ -5375,7 +5375,7 @@ static void init_vd_agent_resources()
memset(buf, 0, sizeof(*buf));
buf->out_item.prepare = reds_prepare_read_buf;
buf->out_item.release = reds_release_read_buf;
- buf->header.type = RED_AGENT_DATA;
+ buf->header.type = SPICE_MSG_MAIN_AGENT_DATA;
buf->header.sub_list = 0;
ring_item_init(&buf->out_item.link);
ring_add(&reds->agent_state.read_bufs, &buf->out_item.link);
@@ -5431,13 +5431,13 @@ void __attribute__ ((visibility ("default"))) spice_init(CoreInterface *core_int
core->register_change_notifiers(core, &reds, interface_change_notifier);
#ifdef RED_STATISTICS
- int shm_name_len = strlen(REDS_STAT_SHM_NAME) + 20;
+ int shm_name_len = strlen(SPICE_STAT_SHM_NAME) + 20;
int fd;
if (!(reds->stat_shm_name = (char *)malloc(shm_name_len))) {
red_error("stat_shm_name alloc failed");
}
- snprintf(reds->stat_shm_name, shm_name_len, REDS_STAT_SHM_NAME, getpid());
+ snprintf(reds->stat_shm_name, shm_name_len, SPICE_STAT_SHM_NAME, getpid());
if ((fd = shm_open(reds->stat_shm_name, O_CREAT | O_RDWR, 0444)) == -1) {
red_error("statistics shm_open failed, %s", strerror(errno));
}
@@ -5445,12 +5445,12 @@ void __attribute__ ((visibility ("default"))) spice_init(CoreInterface *core_int
red_error("statistics ftruncate failed, %s", strerror(errno));
}
reds->stat = mmap(NULL, REDS_STAT_SHM_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
- if (reds->stat == (RedsStat *)MAP_FAILED) {
+ if (reds->stat == (SpiceStat *)MAP_FAILED) {
red_error("statistics mmap failed, %s", strerror(errno));
}
memset(reds->stat, 0, REDS_STAT_SHM_SIZE);
- reds->stat->magic = REDS_STAT_MAGIC;
- reds->stat->version = REDS_STAT_VERSION;
+ reds->stat->magic = SPICE_STAT_MAGIC;
+ reds->stat->version = SPICE_STAT_VERSION;
reds->stat->root_index = INVALID_STAT_REF;
if (pthread_mutex_init(&reds->stat_lock, NULL)) {
red_error("mutex init failed");
@@ -5472,7 +5472,7 @@ void __attribute__ ((visibility ("default"))) spice_init(CoreInterface *core_int
}
inputs_init();
- reds->mouse_mode = RED_MOUSE_MODE_SERVER;
+ reds->mouse_mode = SPICE_MOUSE_MODE_SERVER;
atexit(reds_exit);
}