Re: [Spice-devel] [PATCH spice-common] proto: Remove obsolete TunnelChannel

2019-02-22 Thread Marc-André Lureau
Hi

On Fri, Feb 22, 2019 at 10:54 AM Frediano Ziglio  wrote:
>
> No reason to keep it, spice-gtk and spice-server don't
> implement it and was removed for security reasons.
>
> Signed-off-by: Frediano Ziglio 

ack

(I think this could eventually be hacked together again when slirp is
made a standalone project. Without modifying much of qemu or
spice-gtk, you could let a guest access the client network.. that
could be fun, not sure if it should become a real solution ;).

> ---
>  common/messages.h |  99 
>  spice.proto   | 113 +-
>  2 files changed, 2 insertions(+), 210 deletions(-)
>
> diff --git a/common/messages.h b/common/messages.h
> index 3e37235..43d3602 100644
> --- a/common/messages.h
> +++ b/common/messages.h
> @@ -489,105 +489,6 @@ typedef struct SpiceMsgcRecordStartMark {
>  uint32_t time;
>  } SpiceMsgcRecordStartMark;
>
> -typedef struct SpiceMsgTunnelInit {
> -uint16_t max_num_of_sockets;
> -uint32_t max_socket_data_size;
> -} SpiceMsgTunnelInit;
> -
> -typedef uint8_t SpiceTunnelIPv4[4];
> -
> -typedef struct SpiceMsgTunnelIpInfo {
> -uint16_t type;
> -union {
> -  SpiceTunnelIPv4 ipv4;
> -} u;
> -uint8_t data[0];
> -} SpiceMsgTunnelIpInfo;
> -
> -typedef struct SpiceMsgTunnelServiceIpMap {
> -uint32_t service_id;
> -SpiceMsgTunnelIpInfo virtual_ip;
> -} SpiceMsgTunnelServiceIpMap;
> -
> -typedef struct SpiceMsgTunnelSocketOpen {
> -uint16_t connection_id;
> -uint32_t service_id;
> -uint32_t tokens;
> -} SpiceMsgTunnelSocketOpen;
> -
> -/* connection id must be the first field in msgs directed to a specific 
> connection */
> -
> -typedef struct SpiceMsgTunnelSocketFin {
> -uint16_t connection_id;
> -} SpiceMsgTunnelSocketFin;
> -
> -typedef struct SpiceMsgTunnelSocketClose {
> -uint16_t connection_id;
> -} SpiceMsgTunnelSocketClose;
> -
> -typedef struct SpiceMsgTunnelSocketData {
> -uint16_t connection_id;
> -uint8_t data[0];
> -} SpiceMsgTunnelSocketData;
> -
> -typedef struct SpiceMsgTunnelSocketTokens {
> -uint16_t connection_id;
> -uint32_t num_tokens;
> -} SpiceMsgTunnelSocketTokens;
> -
> -typedef struct SpiceMsgTunnelSocketClosedAck {
> -uint16_t connection_id;
> -} SpiceMsgTunnelSocketClosedAck;
> -
> -typedef struct SpiceMsgcTunnelAddGenericService {
> -uint32_t type;
> -uint32_t id;
> -uint32_t group;
> -uint32_t port;
> -uint64_t name;
> -uint64_t description;
> -union {
> -SpiceMsgTunnelIpInfo ip;
> -} u;
> -} SpiceMsgcTunnelAddGenericService;
> -
> -typedef struct SpiceMsgcTunnelRemoveService {
> -uint32_t id;
> -} SpiceMsgcTunnelRemoveService;
> -
> -/* connection id must be the first field in msgs directed to a specific 
> connection */
> -
> -typedef struct SpiceMsgcTunnelSocketOpenAck {
> -uint16_t connection_id;
> -uint32_t tokens;
> -} SpiceMsgcTunnelSocketOpenAck;
> -
> -typedef struct SpiceMsgcTunnelSocketOpenNack {
> -uint16_t connection_id;
> -} SpiceMsgcTunnelSocketOpenNack;
> -
> -typedef struct SpiceMsgcTunnelSocketData {
> -uint16_t connection_id;
> -uint8_t data[0];
> -} SpiceMsgcTunnelSocketData;
> -
> -typedef struct SpiceMsgcTunnelSocketFin {
> -uint16_t connection_id;
> -} SpiceMsgcTunnelSocketFin;
> -
> -typedef struct SpiceMsgcTunnelSocketClosed {
> -uint16_t connection_id;
> -} SpiceMsgcTunnelSocketClosed;
> -
> -typedef struct SpiceMsgcTunnelSocketClosedAck {
> -uint16_t connection_id;
> -} SpiceMsgcTunnelSocketClosedAck;
> -
> -typedef struct SpiceMsgcTunnelSocketTokens {
> -uint16_t connection_id;
> -uint32_t num_tokens;
> -} SpiceMsgcTunnelSocketTokens;
> -
>  #ifdef USE_SMARTCARD
>  typedef struct SpiceMsgSmartcard {
>  VSCMsgType type;
> diff --git a/spice.proto b/spice.proto
> index 02ab4df..51ce3ca 100644
> --- a/spice.proto
> +++ b/spice.proto
> @@ -1235,115 +1235,6 @@ channel RecordChannel : BaseChannel {
>  } start_mark;
>  };
>
> -enum16 tunnel_service_type {
> -INVALID,
> -GENERIC,
> -IPP,
> -};
> -
> -enum16 tunnel_ip_type {
> -INVALID,
> -IPv4,
> -};
> -
> -struct TunnelIpInfo {
> -tunnel_ip_type type;
> -switch (type) {
> -case IPv4:
> -uint8 ipv4[4];
> -} u;
> -} @ctype(SpiceMsgTunnelIpInfo);
> -
> -channel TunnelChannel : BaseChannel {
> - server:
> -message {
> -uint16 max_num_of_sockets;
> -uint32 max_socket_data_size;
> -} init = 101;
> -
> -message {
> -uint32 service_id;
> -TunnelIpInfo virtual_ip;
> -} service_ip_map;
> -
> -message {
> -uint16 connection_id;
> -uint32 service_id;
> -uint32 tokens;
> -} socket_open;
> -
> -message {
> -uint16 connection_id;
> -} socket_fin;
> -
> -message {
> -uint16 connection_id;
> -} socket_close;
> -
> -message {
> -uint16 connection_id;
> -uint8 data[] @end;
> -   

[Spice-devel] [PATCH spice-common] proto: Remove obsolete TunnelChannel

2019-02-22 Thread Frediano Ziglio
No reason to keep it, spice-gtk and spice-server don't
implement it and was removed for security reasons.

Signed-off-by: Frediano Ziglio 
---
 common/messages.h |  99 
 spice.proto   | 113 +-
 2 files changed, 2 insertions(+), 210 deletions(-)

diff --git a/common/messages.h b/common/messages.h
index 3e37235..43d3602 100644
--- a/common/messages.h
+++ b/common/messages.h
@@ -489,105 +489,6 @@ typedef struct SpiceMsgcRecordStartMark {
 uint32_t time;
 } SpiceMsgcRecordStartMark;
 
-typedef struct SpiceMsgTunnelInit {
-uint16_t max_num_of_sockets;
-uint32_t max_socket_data_size;
-} SpiceMsgTunnelInit;
-
-typedef uint8_t SpiceTunnelIPv4[4];
-
-typedef struct SpiceMsgTunnelIpInfo {
-uint16_t type;
-union {
-  SpiceTunnelIPv4 ipv4;
-} u;
-uint8_t data[0];
-} SpiceMsgTunnelIpInfo;
-
-typedef struct SpiceMsgTunnelServiceIpMap {
-uint32_t service_id;
-SpiceMsgTunnelIpInfo virtual_ip;
-} SpiceMsgTunnelServiceIpMap;
-
-typedef struct SpiceMsgTunnelSocketOpen {
-uint16_t connection_id;
-uint32_t service_id;
-uint32_t tokens;
-} SpiceMsgTunnelSocketOpen;
-
-/* connection id must be the first field in msgs directed to a specific 
connection */
-
-typedef struct SpiceMsgTunnelSocketFin {
-uint16_t connection_id;
-} SpiceMsgTunnelSocketFin;
-
-typedef struct SpiceMsgTunnelSocketClose {
-uint16_t connection_id;
-} SpiceMsgTunnelSocketClose;
-
-typedef struct SpiceMsgTunnelSocketData {
-uint16_t connection_id;
-uint8_t data[0];
-} SpiceMsgTunnelSocketData;
-
-typedef struct SpiceMsgTunnelSocketTokens {
-uint16_t connection_id;
-uint32_t num_tokens;
-} SpiceMsgTunnelSocketTokens;
-
-typedef struct SpiceMsgTunnelSocketClosedAck {
-uint16_t connection_id;
-} SpiceMsgTunnelSocketClosedAck;
-
-typedef struct SpiceMsgcTunnelAddGenericService {
-uint32_t type;
-uint32_t id;
-uint32_t group;
-uint32_t port;
-uint64_t name;
-uint64_t description;
-union {
-SpiceMsgTunnelIpInfo ip;
-} u;
-} SpiceMsgcTunnelAddGenericService;
-
-typedef struct SpiceMsgcTunnelRemoveService {
-uint32_t id;
-} SpiceMsgcTunnelRemoveService;
-
-/* connection id must be the first field in msgs directed to a specific 
connection */
-
-typedef struct SpiceMsgcTunnelSocketOpenAck {
-uint16_t connection_id;
-uint32_t tokens;
-} SpiceMsgcTunnelSocketOpenAck;
-
-typedef struct SpiceMsgcTunnelSocketOpenNack {
-uint16_t connection_id;
-} SpiceMsgcTunnelSocketOpenNack;
-
-typedef struct SpiceMsgcTunnelSocketData {
-uint16_t connection_id;
-uint8_t data[0];
-} SpiceMsgcTunnelSocketData;
-
-typedef struct SpiceMsgcTunnelSocketFin {
-uint16_t connection_id;
-} SpiceMsgcTunnelSocketFin;
-
-typedef struct SpiceMsgcTunnelSocketClosed {
-uint16_t connection_id;
-} SpiceMsgcTunnelSocketClosed;
-
-typedef struct SpiceMsgcTunnelSocketClosedAck {
-uint16_t connection_id;
-} SpiceMsgcTunnelSocketClosedAck;
-
-typedef struct SpiceMsgcTunnelSocketTokens {
-uint16_t connection_id;
-uint32_t num_tokens;
-} SpiceMsgcTunnelSocketTokens;
-
 #ifdef USE_SMARTCARD
 typedef struct SpiceMsgSmartcard {
 VSCMsgType type;
diff --git a/spice.proto b/spice.proto
index 02ab4df..51ce3ca 100644
--- a/spice.proto
+++ b/spice.proto
@@ -1235,115 +1235,6 @@ channel RecordChannel : BaseChannel {
 } start_mark;
 };
 
-enum16 tunnel_service_type {
-INVALID,
-GENERIC,
-IPP,
-};
-
-enum16 tunnel_ip_type {
-INVALID,
-IPv4,
-};
-
-struct TunnelIpInfo {
-tunnel_ip_type type;
-switch (type) {
-case IPv4:
-uint8 ipv4[4];
-} u;
-} @ctype(SpiceMsgTunnelIpInfo);
-
-channel TunnelChannel : BaseChannel {
- server:
-message {
-uint16 max_num_of_sockets;
-uint32 max_socket_data_size;
-} init = 101;
-
-message {
-uint32 service_id;
-TunnelIpInfo virtual_ip;
-} service_ip_map;
-
-message {
-uint16 connection_id;
-uint32 service_id;
-uint32 tokens;
-} socket_open;
-
-message {
-uint16 connection_id;
-} socket_fin;
-
-message {
-uint16 connection_id;
-} socket_close;
-
-message {
-uint16 connection_id;
-uint8 data[] @end;
-} socket_data;
-
-message {
-uint16 connection_id;
-} socket_closed_ack;
-
-message {
-uint16 connection_id;
-uint32 num_tokens;
-} @ctype(SpiceMsgTunnelSocketTokens) socket_token;
-
- client:
-message {
-tunnel_service_type type;
-uint32 id;
-uint32 group;
-uint32 port;
-uint8 *name[cstring()] @nocopy;
-uint8 *description[cstring()] @nocopy;
-switch (type) {
-case IPP:
-TunnelIpInfo ip @ctype(SpiceMsgTunnelIpInfo);
-} u;
-} @ctype(SpiceMsgcTunnelAddGenericService) service_add = 101;
-
-message {
-uint32 id;
-} @ctype(SpiceMs