vsock, move some defines

This commit is contained in:
Jay Sorg 2017-11-06 16:06:36 -08:00 committed by jsorg71
parent 50bd624cc4
commit 26507644e3
5 changed files with 15 additions and 30 deletions

View File

@ -586,17 +586,15 @@ g_sck_local_socket(void)
}
/*****************************************************************************/
#if defined(XRDP_ENABLE_VSOCK)
int
g_sck_vsock_socket(void)
{
#if defined(_WIN32)
return 0;
#else
#if defined(XRDP_ENABLE_VSOCK)
return socket(PF_VSOCK, SOCK_STREAM, 0);
#else
return 0;
#endif
}
#endif
/*****************************************************************************/
/* returns error */
@ -1007,13 +1005,10 @@ g_sck_local_bind(int sck, const char *port)
}
/*****************************************************************************/
#if defined(XRDP_ENABLE_VSOCK)
int
g_sck_vsock_bind(int sck, const char *port)
{
#if defined(_WIN32)
return -1;
#else
#if defined(XRDP_ENABLE_VSOCK)
struct sockaddr_vm s;
memset(&s, 0, sizeof(struct sockaddr_vm));
@ -1022,9 +1017,10 @@ g_sck_vsock_bind(int sck, const char *port)
s.svm_cid = VMADDR_CID_ANY;
return bind(sck, (struct sockaddr *)&s, sizeof(struct sockaddr_vm));
#else
return -1;
#endif
}
#endif
#if defined(XRDP_ENABLE_IPV6)
/*****************************************************************************/

View File

@ -37,11 +37,6 @@
#define g_tcp_select g_sck_select
#define g_close_wait_obj g_delete_wait_obj
#if defined(XRDP_ENABLE_VSOCK)
#define g_vsock_socket g_sck_vsock_socket
#define g_vsock_bind g_sck_vsock_bind
#endif
int g_rm_temp_dir(void);
int g_mk_socket_path(const char* app_name);
void g_init(const char* app_name);
@ -67,9 +62,7 @@ int g_sck_get_send_buffer_bytes(int sck, int *bytes);
int g_sck_set_recv_buffer_bytes(int sck, int bytes);
int g_sck_get_recv_buffer_bytes(int sck, int *bytes);
int g_sck_local_socket(void);
#if defined(XRDP_ENABLE_VSOCK)
int g_sck_vsock_socket(void);
#endif
int g_sck_get_peer_cred(int sck, int *pid, int *uid, int *gid);
void g_sck_close(int sck);
int g_tcp_connect(int sck, const char* address, const char* port);
@ -77,9 +70,7 @@ int g_sck_local_connect(int sck, const char* port);
int g_sck_set_non_blocking(int sck);
int g_tcp_bind(int sck, const char *port);
int g_sck_local_bind(int sck, const char* port);
#if defined(XRDP_ENABLE_VSOCK)
int g_sck_vsock_bind(int sck, const char* port);
#endif
int g_tcp_bind_address(int sck, const char* port, const char* address);
int g_sck_listen(int sck);
int g_tcp_accept(int sck);

View File

@ -831,16 +831,15 @@ trans_listen_address(struct trans *self, char *port, const char *address)
}
}
}
#if defined(XRDP_ENABLE_VSOCK)
else if (self->mode == TRANS_MODE_VSOCK) /* vsock socket */
{
self->sck = g_vsock_socket();
self->sck = g_sck_vsock_socket();
if (self->sck < 0)
return 1;
g_tcp_set_non_blocking(self->sck);
if (g_vsock_bind(self->sck, port) == 0)
if (g_sck_vsock_bind(self->sck, port) == 0)
{
if (g_tcp_listen(self->sck) == 0)
{
@ -850,7 +849,6 @@ trans_listen_address(struct trans *self, char *port, const char *address)
}
}
}
#endif
return 1;
}

View File

@ -26,10 +26,7 @@
#define TRANS_MODE_TCP 1
#define TRANS_MODE_UNIX 2
#if defined(XRDP_ENABLE_VSOCK)
#define TRANS_MODE_VSOCK 3
#endif
#define TRANS_TYPE_LISTENER 1
#define TRANS_TYPE_SERVER 2

View File

@ -206,7 +206,6 @@ xrdp_listen_get_port_address(char *port, int port_bytes,
}
}
}
#if defined(XRDP_ENABLE_VSOCK)
if (g_strcasecmp(val, "use_vsock") == 0)
{
val = (char *)list_get_item(values, index);
@ -215,7 +214,6 @@ xrdp_listen_get_port_address(char *port, int port_bytes,
*mode = TRANS_MODE_VSOCK;
}
}
#endif
if (g_strcasecmp(val, "address") == 0)
{
val = (char *)list_get_item(values, index);
@ -381,13 +379,11 @@ xrdp_listen_main_loop(struct xrdp_listen *self)
/* not valid with UDS */
tcp_nodelay = 0;
}
#if defined(XRDP_ENABLE_VSOCK)
else if (self->listen_trans->mode == TRANS_MODE_VSOCK)
{
/* not valid with VSOCK */
tcp_nodelay = 0;
}
#endif
/* Create socket */
error = trans_listen_address(self->listen_trans, port, address);
@ -568,6 +564,13 @@ xrdp_listen_main_loop(struct xrdp_listen *self)
{
log_message(LOG_LEVEL_ERROR,"xrdp_listen_main_loop: listen error, possible port "
"already in use");
#if !defined(XRDP_ENABLE_VSOCK)
if (self->listen_trans->mode == TRANS_MODE_VSOCK)
{
log_message(LOG_LEVEL_ERROR,"xrdp_listen_main_loop: listen error, "
"vsock support not compiled and config requested");
}
#endif
}
self->status = -1;