[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-commits] [COMMIT 2af2bf6] sockets: add unix_connect_opts
From: |
Anthony Liguori |
Subject: |
[Qemu-commits] [COMMIT 2af2bf6] sockets: add unix_connect_opts |
Date: |
Fri, 11 Sep 2009 18:31:43 -0000 |
From: Gerd Hoffmann <address@hidden>
Add unix_connect_opts(). Does the same as unix_connect(), but uses
QemuOpts. unix_connect() is a compatibility wrapper for
unix_connect_opts() now and should go away some day.
Signed-off-by: Gerd Hoffmann <address@hidden>
Signed-off-by: Anthony Liguori <address@hidden>
diff --git a/qemu-sockets.c b/qemu-sockets.c
index bd49d29..732d3e0 100644
--- a/qemu-sockets.c
+++ b/qemu-sockets.c
@@ -29,6 +29,19 @@
static int sockets_debug = 0;
static const int on=1, off=0;
+/* used temporarely until all users are converted to QemuOpts */
+QemuOptsList dummy_opts = {
+ .name = "dummy",
+ .head = TAILQ_HEAD_INITIALIZER(dummy_opts.head),
+ .desc = {
+ {
+ .name = "path",
+ .type = QEMU_OPT_STRING,
+ },
+ { /* end if list */ }
+ },
+};
+
static int inet_getport(struct addrinfo *e)
{
struct sockaddr_in *i4;
@@ -376,11 +389,17 @@ err:
return -1;
}
-int unix_connect(const char *path)
+int unix_connect_opts(QemuOpts *opts)
{
struct sockaddr_un un;
+ const char *path = qemu_opt_get(opts, "path");
int sock;
+ if (NULL == path) {
+ fprintf(stderr, "unix connect: no path specified\n");
+ return -1;
+ }
+
sock = socket(PF_UNIX, SOCK_STREAM, 0);
if (sock < 0) {
perror("socket(unix)");
@@ -400,6 +419,19 @@ int unix_connect(const char *path)
return sock;
}
+/* compatibility wrapper */
+int unix_connect(const char *path)
+{
+ QemuOpts *opts;
+ int sock;
+
+ opts = qemu_opts_create(&dummy_opts, NULL, 0);
+ qemu_opt_set(opts, "path", path);
+ sock = unix_connect_opts(opts);
+ qemu_opts_del(opts);
+ return sock;
+}
+
#else
int unix_listen(const char *path, char *ostr, int olen)
diff --git a/qemu_socket.h b/qemu_socket.h
index fc5b588..7ca4af7 100644
--- a/qemu_socket.h
+++ b/qemu_socket.h
@@ -29,6 +29,8 @@ int inet_aton(const char *cp, struct in_addr *ia);
#endif /* !_WIN32 */
+#include "qemu-option.h"
+
/* misc helpers */
void socket_set_nonblock(int fd);
int send_all(int fd, const void *buf, int len1);
@@ -39,6 +41,7 @@ int inet_listen(const char *str, char *ostr, int olen,
int inet_connect(const char *str, int socktype);
int unix_listen(const char *path, char *ostr, int olen);
+int unix_connect_opts(QemuOpts *opts);
int unix_connect(const char *path);
/* Old, ipv4 only bits. Don't use for new code. */
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Qemu-commits] [COMMIT 2af2bf6] sockets: add unix_connect_opts,
Anthony Liguori <=