On Sun, 02/09 10:48, Paolo Bonzini wrote: > qemu-nbd is one of the few valid users of qerror_report_err. Move > the error-reporting socket wrappers there. > > Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> > --- > include/block/nbd.h | 4 ---- > nbd.c | 50 -------------------------------------------------- > qemu-nbd.c | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ > 3 files changed, 52 insertions(+), 54 deletions(-) > > diff --git a/include/block/nbd.h b/include/block/nbd.h > index 1b39c06..79502a0 100644 > --- a/include/block/nbd.h > +++ b/include/block/nbd.h > @@ -62,10 +62,6 @@ enum { > #define NBD_MAX_BUFFER_SIZE (32 * 1024 * 1024) > > ssize_t nbd_wr_sync(int fd, void *buffer, size_t size, bool do_read); > -int tcp_socket_incoming(const char *address, uint16_t port); > -int unix_socket_outgoing(const char *path); > -int unix_socket_incoming(const char *path); > - > int nbd_receive_negotiate(int csock, const char *name, uint32_t *flags, > off_t *size, size_t *blocksize); > int nbd_init(int fd, int csock, uint32_t flags, off_t size, size_t > blocksize); > diff --git a/nbd.c b/nbd.c > index 2fc1f1f..e5084b6 100644 > --- a/nbd.c > +++ b/nbd.c > @@ -188,56 +188,6 @@ static ssize_t write_sync(int fd, void *buffer, size_t > size) > return ret; > } > > -static void combine_addr(char *buf, size_t len, const char* address, > - uint16_t port) > -{ > - /* If the address-part contains a colon, it's an IPv6 IP so needs [] */ > - if (strstr(address, ":")) { > - snprintf(buf, len, "[%s]:%u", address, port); > - } else { > - snprintf(buf, len, "%s:%u", address, port); > - } > -} > - > -int tcp_socket_incoming(const char *address, uint16_t port) > -{ > - char address_and_port[128]; > - Error *local_err = NULL; > - > - combine_addr(address_and_port, 128, address, port); > - int fd = inet_listen(address_and_port, NULL, 0, SOCK_STREAM, 0, > &local_err); > - > - if (local_err != NULL) { > - qerror_report_err(local_err); > - error_free(local_err); > - } > - return fd; > -} > - > -int unix_socket_incoming(const char *path) > -{ > - Error *local_err = NULL; > - int fd = unix_listen(path, NULL, 0, &local_err); > - > - if (local_err != NULL) { > - qerror_report_err(local_err); > - error_free(local_err); > - } > - return fd; > -} > - > -int unix_socket_outgoing(const char *path) > -{ > - Error *local_err = NULL; > - int fd = unix_connect(path, &local_err); > - > - if (local_err != NULL) { > - qerror_report_err(local_err); > - error_free(local_err); > - } > - return fd; > -} > - > /* Basic flow for negotiation > > Server Client > diff --git a/qemu-nbd.c b/qemu-nbd.c > index 136e8c9..8138435 100644 > --- a/qemu-nbd.c > +++ b/qemu-nbd.c > @@ -20,6 +20,8 @@ > #include "block/block.h" > #include "block/nbd.h" > #include "qemu/main-loop.h" > +#include "qemu/sockets.h" > +#include "qemu/error-report.h" > #include "block/snapshot.h" > > #include <stdarg.h> > @@ -201,6 +203,56 @@ static void termsig_handler(int signum) > qemu_notify_event(); > } > > +static void combine_addr(char *buf, size_t len, const char* address, > + uint16_t port) > +{ > + /* If the address-part contains a colon, it's an IPv6 IP so needs [] */ > + if (strstr(address, ":")) { > + snprintf(buf, len, "[%s]:%u", address, port); > + } else { > + snprintf(buf, len, "%s:%u", address, port); > + } > +} > + > +static int tcp_socket_incoming(const char *address, uint16_t port) > +{ > + char address_and_port[128]; > + Error *local_err = NULL; > + > + combine_addr(address_and_port, 128, address, port); > + int fd = inet_listen(address_and_port, NULL, 0, SOCK_STREAM, 0, > &local_err); > + > + if (local_err != NULL) { > + qerror_report_err(local_err); > + error_free(local_err); > + } > + return fd; > +} > + > +static int unix_socket_incoming(const char *path) > +{ > + Error *local_err = NULL; > + int fd = unix_listen(path, NULL, 0, &local_err); > + > + if (local_err != NULL) { > + qerror_report_err(local_err); > + error_free(local_err); > + } > + return fd; > +} > + > +static int unix_socket_outgoing(const char *path) > +{ > + Error *local_err = NULL; > + int fd = unix_connect(path, &local_err); > + > + if (local_err != NULL) { > + qerror_report_err(local_err); > + error_free(local_err); > + } > + return fd; > +} > + > static void *show_parts(void *arg) > { > char *device = arg; > -- > 1.8.5.3 > > >
Reviewed-by: Fam Zheng <f...@redhat.com>