Hello community,

here is the log from the commit of package qperf for openSUSE:Factory checked 
in at 2020-10-05 19:42:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/qperf (Old)
 and      /work/SRC/openSUSE:Factory/.qperf.new.4249 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "qperf"

Mon Oct  5 19:42:31 2020 rev:4 rq:839584 version:0.4.11

Changes:
--------
--- /work/SRC/openSUSE:Factory/qperf/qperf.changes      2019-06-04 
12:14:12.211785165 +0200
+++ /work/SRC/openSUSE:Factory/.qperf.new.4249/qperf.changes    2020-10-05 
19:43:20.857799398 +0200
@@ -1,0 +2,6 @@
+Mon Oct  5 09:05:43 UTC 2020 - Nicolas Morey-Chaisemartin 
<[email protected]>
+
+- Update to v0.4.11
+  - No changelog available
+
+-------------------------------------------------------------------

Old:
----
  qperf-0.4.10.0.aa644b22fff9.tar.bz2

New:
----
  qperf-0.4.11.0.c706363815a3.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ qperf.spec ++++++
--- /var/tmp/diff_new_pack.ZvCwYA/_old  2020-10-05 19:43:21.337799867 +0200
+++ /var/tmp/diff_new_pack.ZvCwYA/_new  2020-10-05 19:43:21.337799867 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package qperf
 #
-# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2020 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -16,16 +16,16 @@
 #
 
 
-%define git_ver .0.aa644b22fff9
+%define git_ver .0.c706363815a3
 
 Name:           qperf
 Summary:        Tool to measure socket and RDMA performance
 License:        BSD-2-Clause OR GPL-2.0-only
 Group:          Productivity/Networking/Diagnostic
-Version:        0.4.10
+Version:        0.4.11
 Release:        0
 Source:         %{name}-%{version}%{git_ver}.tar.bz2
-Url:            http://github.com/linux-rdma/qperf
+URL:            http://github.com/linux-rdma/qperf
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 BuildRequires:  autoconf
 BuildRequires:  automake

++++++ _service ++++++
--- /var/tmp/diff_new_pack.ZvCwYA/_old  2020-10-05 19:43:21.373799902 +0200
+++ /var/tmp/diff_new_pack.ZvCwYA/_new  2020-10-05 19:43:21.377799906 +0200
@@ -8,7 +8,7 @@
     <param name="versionformat">@PARENT_TAG@.@TAG_OFFSET@.%h</param>
     <param name="versionrewrite-pattern">v(.*)</param>
     <param name="versionrewrite-replacement">\1</param>
-    <param name="revision">aa644b22fff9e939e549a9759629be58b3c5cac2</param>
+    <param name="revision">c706363815a38ff2c5cbc07b73e2cfaaa59bae0f</param>
   </service>
   <service name="recompress" mode="disabled">
     <param name="file">qperf*.tar</param>

++++++ qperf-0.4.10.0.aa644b22fff9.tar.bz2 -> 
qperf-0.4.11.0.c706363815a3.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qperf-0.4.10.0.aa644b22fff9/cleanup 
new/qperf-0.4.11.0.c706363815a3/cleanup
--- old/qperf-0.4.10.0.aa644b22fff9/cleanup     2017-07-19 18:34:25.000000000 
+0200
+++ new/qperf-0.4.11.0.c706363815a3/cleanup     2018-04-03 19:29:49.000000000 
+0200
@@ -22,6 +22,7 @@
     src/help.c
     src/qperf.1
     src/qperf
+    compile
 EOF`
 
 # We need to keep qperf.spec around for the OFED scripts but delete it if we do
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qperf-0.4.10.0.aa644b22fff9/configure.ac 
new/qperf-0.4.11.0.c706363815a3/configure.ac
--- old/qperf-0.4.10.0.aa644b22fff9/configure.ac        1970-01-01 
01:00:00.000000000 +0100
+++ new/qperf-0.4.11.0.c706363815a3/configure.ac        2018-04-03 
19:29:49.000000000 +0200
@@ -0,0 +1,10 @@
+AC_INIT(qperf, 0.4.10, [email protected])
+AM_INIT_AUTOMAKE
+AC_PROG_CC
+AC_CHECK_LIB(ibverbs, ibv_open_device, RDMA=1)
+AC_CHECK_LIB(ibverbs, ibv_open_xrc_domain, HAS_XRC=1)
+AC_CHECK_LIB(rdmacm, rdma_create_id)
+AM_CONDITIONAL(RDMA, test -n "$RDMA")
+AM_CONDITIONAL(HAS_XRC, test -n "$HAS_XRC")
+AC_CONFIG_FILES([qperf.spec])
+AC_OUTPUT(Makefile src/Makefile)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qperf-0.4.10.0.aa644b22fff9/configure.in 
new/qperf-0.4.11.0.c706363815a3/configure.in
--- old/qperf-0.4.10.0.aa644b22fff9/configure.in        2017-07-19 
18:34:25.000000000 +0200
+++ new/qperf-0.4.11.0.c706363815a3/configure.in        1970-01-01 
01:00:00.000000000 +0100
@@ -1,10 +0,0 @@
-AC_INIT(qperf, 0.4.10, [email protected])
-AM_INIT_AUTOMAKE(qperf, 0.4.10)
-AC_PROG_CC
-AC_CHECK_LIB(ibverbs, ibv_open_device, RDMA=1)
-AC_CHECK_LIB(ibverbs, ibv_open_xrc_domain, HAS_XRC=1)
-AC_CHECK_LIB(rdmacm, rdma_create_id)
-AM_CONDITIONAL(RDMA, test -n "$RDMA")
-AM_CONDITIONAL(HAS_XRC, test -n "$HAS_XRC")
-AC_CONFIG_FILES([qperf.spec])
-AC_OUTPUT(Makefile src/Makefile)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qperf-0.4.10.0.aa644b22fff9/src/qperf.c 
new/qperf-0.4.11.0.c706363815a3/src/qperf.c
--- old/qperf-0.4.10.0.aa644b22fff9/src/qperf.c 2017-07-19 18:34:25.000000000 
+0200
+++ new/qperf-0.4.11.0.c706363815a3/src/qperf.c 2018-04-03 19:29:49.000000000 
+0200
@@ -62,7 +62,7 @@
  */
 #define VER_MAJ 0                       /* Major version */
 #define VER_MIN 4                       /* Minor version */
-#define VER_INC 10                      /* Incremental version */
+#define VER_INC 11                       /* Incremental version */
 #define LISTENQ 5                       /* Size of listen queue */
 #define BUFSIZE 1024                    /* Size of buffers */
 
@@ -1418,7 +1418,7 @@
     AI *ai;
     AI hints ={
         .ai_flags    = AI_PASSIVE | AI_NUMERICSERV,
-        .ai_family   = AF_UNSPEC,
+       .ai_family   = AF_INET6,
         .ai_socktype = SOCK_STREAM
     };
     AI *ailist = getaddrinfo_port(0, ListenPort, &hints);
@@ -1450,7 +1450,7 @@
 server_recv_request(void)
 {
     socklen_t clientLen;
-    struct sockaddr_in clientAddr;
+    SS clientAddr;
 
     clientLen = sizeof(clientAddr);
     RemoteFD = accept(ListenFD, (struct sockaddr *)&clientAddr, &clientLen);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qperf-0.4.10.0.aa644b22fff9/src/rds.c 
new/qperf-0.4.11.0.c706363815a3/src/rds.c
--- old/qperf-0.4.10.0.aa644b22fff9/src/rds.c   2017-07-19 18:34:25.000000000 
+0200
+++ new/qperf-0.4.11.0.c706363815a3/src/rds.c   2018-04-03 19:29:49.000000000 
+0200
@@ -43,9 +43,9 @@
 #include <unistd.h>
 #include <arpa/inet.h>
 #include <netinet/in.h>
+#include <stdbool.h>
 #include "qperf.h"
 
-
 /*
  * Parameters.
  */
@@ -107,7 +107,7 @@
 static void     set_parameters(long msgSize);
 static void     server_get_hosts(char *lhost, char *rhost);
 static void     set_socket_buffer_size(int fd);
-
+static inline bool  ipv6_addr_v4mapped(const struct in6_addr *a);
 
 /*
  * Static variables.
@@ -315,6 +315,15 @@
 
 
 /*
+ * Check if it is IPv4-mapped IPv6 address
+ */
+static inline bool ipv6_addr_v4mapped(const struct in6_addr *a)
+{
+  return (a->s6_addr32[0] | a->s6_addr32[1] |
+          (a->s6_addr32[2] ^ htonl(0x0000ffff))) == 0;
+}
+
+/*
  * Have an exchange with the client over TCP/IP and get the IP of our local
  * host.
  */
@@ -323,34 +332,42 @@
 {
     int fd, lfd;
     uint32_t port;
-    struct sockaddr_in laddr, raddr;
     socklen_t rlen;
+    struct sockaddr_in6 v6addr;
+    struct sockaddr_in v4addr;
+    SA *raddr;
 
-    lfd = socket(AF_INET, SOCK_STREAM, 0);
+    lfd = socket(AF_INET6, SOCK_STREAM, 0);
     if (lfd < 0)
         error(SYS, "socket failed");
     setsockopt_one(lfd, SO_REUSEADDR);
-
-    memset(&laddr, 0, sizeof(laddr));
-    laddr.sin_family = AF_INET;
-    laddr.sin_addr.s_addr = INADDR_ANY;
-    laddr.sin_port = htons(0);
-    if (bind(lfd, (SA *)&laddr, sizeof(laddr)) < 0)
-        error(SYS, "bind INET failed");
+    memset(&v6addr, 0, sizeof(v6addr));
+    v6addr.sin6_family = AF_INET6;
+    if (bind(lfd, (SA *)&v6addr, sizeof(v6addr)) < 0)
+          error(SYS, "bind INET6 failed");
 
     port = get_socket_port(lfd);
     encode_uint32(&port, port);
-    send_mesg(&port, sizeof(port), "TCP IPv4 server port");
-
+    send_mesg(&port, sizeof(port), "TCP server port");
     if (listen(lfd, 1) < 0)
         error(SYS, "listen failed");
 
-    rlen = sizeof(raddr);
-    fd = accept(lfd, (SA *)&raddr, &rlen);
+    rlen = sizeof(v6addr);
+    fd = accept(lfd, (SA *)&v6addr, &rlen);
     if (fd < 0)
         error(SYS, "accept failed");
     close(lfd);
-    get_socket_ip((SA *)&raddr, rlen, rhost, NI_MAXHOST);
+
+    if (ipv6_addr_v4mapped(&v6addr.sin6_addr)) {
+      v4addr.sin_family = AF_INET;
+      v4addr.sin_addr.s_addr = v6addr.sin6_addr.s6_addr32[3];
+      v4addr.sin_port = v6addr.sin6_port;
+      raddr = (SA *)&v4addr;
+      rlen = sizeof(v4addr);
+    } else {
+      raddr = (SA *)&v6addr;
+    }
+    get_socket_ip(raddr, rlen, rhost, NI_MAXHOST);
     send_mesg(rhost, NI_MAXHOST, "client IP");
     recv_mesg(lhost, NI_MAXHOST, "server IP");
     close(fd);
@@ -410,13 +427,30 @@
 static void
 rds_makeaddr(SS *addr, socklen_t *len, char *host, int port)
 {
+    int stat;
+    struct addrinfo *ailist;
     struct sockaddr_in *sap = (struct sockaddr_in *)addr;
+    struct sockaddr_in6 *sap6 = (struct sockaddr_in6 *)addr;
 
+    stat = getaddrinfo(host, NULL, NULL, &ailist);
+    if (stat != 0)
+        error(0, "getaddrinfo failed: %s", gai_strerror(stat));
+    switch (ailist->ai_family) {
+    case AF_INET:
     memset(sap, 0, sizeof(*sap));
-    sap->sin_family = AF_INET;
-    inet_pton(AF_INET, host, &sap->sin_addr.s_addr);
+          memcpy(addr, ailist->ai_addr, ailist->ai_addrlen);
     sap->sin_port = htons(port);
     *len = sizeof(struct sockaddr_in);
+          break;
+    case AF_INET6:
+         memset(sap6, 0, sizeof(*sap6));
+         memcpy(sap6, ailist->ai_addr, ailist->ai_addrlen);
+         sap6->sin6_port = htons(port);
+          *len = sizeof(struct sockaddr_in6);
+          break;
+   default:
+         error(0, "Unsupported Address family");
+   }
 }
 
 
@@ -431,7 +465,7 @@
     struct addrinfo *aip, *ailist;
     struct addrinfo hints ={
         .ai_flags    = AI_NUMERICSERV,
-        .ai_family   = AF_INET,
+        .ai_family   = AF_UNSPEC,
         .ai_socktype = SOCK_STREAM
     };
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qperf-0.4.10.0.aa644b22fff9/src/socket.c 
new/qperf-0.4.11.0.c706363815a3/src/socket.c
--- old/qperf-0.4.10.0.aa644b22fff9/src/socket.c        2017-07-19 
18:34:25.000000000 +0200
+++ new/qperf-0.4.11.0.c706363815a3/src/socket.c        2018-04-03 
19:29:49.000000000 +0200
@@ -699,8 +699,10 @@
         .ai_socktype = SOCK_STREAM
     };
 
-    if (serverflag)
+    if (serverflag){
         hints.ai_flags |= AI_PASSIVE;
+        hints.ai_family = AF_INET6;
+    }  
     if (kind == K_UDP)
         hints.ai_socktype = SOCK_DGRAM;
 


Reply via email to