qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH] net: fix check for number of parameters to -netdev socket
@ 2017-09-22  8:04 Jens Freimann
  2017-09-22  8:32 ` Jason Wang
  0 siblings, 1 reply; 6+ messages in thread
From: Jens Freimann @ 2017-09-22  8:04 UTC (permalink / raw)
  To: qemu-devel; +Cc: jasowang, maozy.fnst

Since commit 0f8c289ad "net: fix -netdev socket,fd= for UDP sockets"
we allow more than one parameter for -netdev socket. But now
we run into an assert when no parameter at all is specified

> qemu-system-x86_64 -netdev socket
socket.c:729: net_init_socket: Assertion `sock->has_udp' failed.

Change the check and error message to reflect that at least
one of the options has to be specified. An example for when we need
more than on is when we hand in a UDP socket. Then we have fd= and udp=
as parameters.

Cc: Jason Wang <jasowang@redhat.com>
Fixes: 0f8c289ad539feb5135c545bea947b310a893f4b
Reported-by: Mao Zhongyi <maozy.fnst@cn.fujitsu.com>
Signed-off-by: Jens Freimann <jfreimann@redhat.com>
---
 net/socket.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/net/socket.c b/net/socket.c
index e6b471c63d..0a987bcf4f 100644
--- a/net/socket.c
+++ b/net/socket.c
@@ -695,9 +695,9 @@ int net_init_socket(const Netdev *netdev, const char *name,
     assert(netdev->type == NET_CLIENT_DRIVER_SOCKET);
     sock = &netdev->u.socket;
 
-    if (sock->has_listen + sock->has_connect + sock->has_mcast +
-        sock->has_udp > 1) {
-        error_setg(errp, "exactly one of listen=, connect=, mcast= or udp="
+    if (sock->has_fd + sock->has_listen + sock->has_connect + sock->has_mcast +
+        sock->has_udp == 0) {
+        error_setg(errp, "at least one of fd=, listen=, connect=, mcast= or udp="
                    " is required");
         return -1;
     }
-- 
2.13.5

^ permalink raw reply related	[flat|nested] 6+ messages in thread
* [Qemu-devel] [PATCH] net: fix check for number of parameters to -netdev socket
@ 2017-09-26 12:59 Jens Freimann
  2017-09-26 14:38 ` Mao Zhongyi
  0 siblings, 1 reply; 6+ messages in thread
From: Jens Freimann @ 2017-09-26 12:59 UTC (permalink / raw)
  To: qemu-devel; +Cc: jasowang, maozy.fnst

Since commit 0f8c289ad "net: fix -netdev socket,fd= for UDP sockets"
we allow more than one parameter for -netdev socket. But now
we run into an assert when no parameter at all is specified

> qemu-system-x86_64 -net socket
socket.c:729: net_init_socket: Assertion `sock->has_udp' failed.

Change the check and error message to reflect that at least
one of the options has to be specified. An example for when we need
more than on is when we hand in a UDP socket. Then we have fd= and udp=
as parameters.

Cc: Jason Wang <jasowang@redhat.com>
Fixes: 0f8c289ad539feb5135c545bea947b310a893f4b
Reported-by: Mao Zhongyi <maozy.fnst@cn.fujitsu.com>
Signed-off-by: Jens Freimann <jfreimann@redhat.com>
---
v1->v2:
- add check to prevent listen= and connect= being used at the same time 

 net/socket.c | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/net/socket.c b/net/socket.c
index e6b471c63d..74a2eff2e0 100644
--- a/net/socket.c
+++ b/net/socket.c
@@ -695,13 +695,18 @@ int net_init_socket(const Netdev *netdev, const char *name,
     assert(netdev->type == NET_CLIENT_DRIVER_SOCKET);
     sock = &netdev->u.socket;
 
-    if (sock->has_listen + sock->has_connect + sock->has_mcast +
-        sock->has_udp > 1) {
-        error_setg(errp, "exactly one of listen=, connect=, mcast= or udp="
+    if (sock->has_fd + sock->has_listen + sock->has_connect + sock->has_mcast +
+        sock->has_udp == 0) {
+        error_setg(errp, "at least one of fd=, listen=, connect=, mcast= or udp="
                    " is required");
         return -1;
     }
 
+    if (sock->has_listen && sock->has_connect) {
+        error_setg(errp, "listen= and connect= can't be used together");
+        return -1;
+    }
+
     if (sock->has_localaddr && !sock->has_mcast && !sock->has_udp) {
         error_setg(errp, "localaddr= is only valid with mcast= or udp=");
         return -1;
-- 
2.13.5

^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2017-09-27 15:19 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-09-22  8:04 [Qemu-devel] [PATCH] net: fix check for number of parameters to -netdev socket Jens Freimann
2017-09-22  8:32 ` Jason Wang
2017-09-22 12:23   ` Jens Freimann
  -- strict thread matches above, loose matches on Subject: below --
2017-09-26 12:59 Jens Freimann
2017-09-26 14:38 ` Mao Zhongyi
2017-09-27 15:18   ` Jens Freimann

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).