Hello community,

here is the log from the commit of package libtirpc for openSUSE:Factory 
checked in at 2015-07-19 11:44:49
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libtirpc (Old)
 and      /work/SRC/openSUSE:Factory/.libtirpc.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libtirpc"

Changes:
--------
--- /work/SRC/openSUSE:Factory/libtirpc/libtirpc.changes        2015-07-05 
17:53:48.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.libtirpc.new/libtirpc.changes   2015-07-19 
11:44:53.000000000 +0200
@@ -1,0 +2,21 @@
+Thu Jul  9 10:47:08 CEST 2015 - [email protected]
+
+- Add 012-xp_sock.patch: add sunrpc compatibility define
+
+-------------------------------------------------------------------
+Thu Jul  2 15:51:07 CEST 2015 - [email protected]
+
+- Update 009-authdes_pk_create.patch (fix syncaddr handling)
+- Add 011-authdes_create.patch (fix syncaddr handling)
+
+-------------------------------------------------------------------
+Sat Jun 27 06:46:14 UTC 2015 - [email protected]
+
+- Add 010-xdr_sizeof.patch (enable xdr_sizeof)
+
+-------------------------------------------------------------------
+Fri Jun 26 22:15:28 UTC 2015 - [email protected]
+
+- Add 009-authdes_pk_create.patch (missing SunRPC compat function)
+
+-------------------------------------------------------------------

New:
----
  009-authdes_pk_create.patch
  010-xdr_sizeof.patch
  011-authdes_create.patch
  012-xp_sock.patch

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

Other differences:
------------------
++++++ libtirpc.spec ++++++
--- /var/tmp/diff_new_pack.Yxoz82/_old  2015-07-19 11:44:54.000000000 +0200
+++ /var/tmp/diff_new_pack.Yxoz82/_new  2015-07-19 11:44:54.000000000 +0200
@@ -44,6 +44,10 @@
 Patch6:         006-memleak1.patch
 Patch7:         007-memleak2.patch
 Patch8:         008-fix-undef-ref.patch
+Patch9:         009-authdes_pk_create.patch
+Patch10:        010-xdr_sizeof.patch
+Patch11:        011-authdes_create.patch
+Patch12:        012-xp_sock.patch
 Patch25:        patch6_7.diff
 # Patch37 is only needed on openSUSE >= 13.1, SLE >= 12
 Patch37:        libtirpc-new-path-rpcbindsock.patch
@@ -89,6 +93,10 @@
 %patch6 -p1
 %patch7 -p1
 %patch8 -p1
+%patch9 -p1
+%patch10 -p1
+%patch11 -p1
+%patch12 -p1
 %patch25 -p1
 %if 0%{suse_version} >= 1310
 %patch37 -p1

++++++ 009-authdes_pk_create.patch ++++++
diff --git a/src/libtirpc.map b/src/libtirpc.map
index 449b769..13bc20a 100644
--- a/src/libtirpc.map
+++ b/src/libtirpc.map
@@ -321,6 +321,7 @@ TIRPC_0.3.3 {
     __key_decryptsession_pk_LOCAL;
     __key_encryptsession_pk_LOCAL;
     __key_gendes_LOCAL;
+    authdes_pk_create;
 } TIRPC_0.3.2;
 
 TIRPC_PRIVATE {
diff --git a/src/rpc_soc.c b/src/rpc_soc.c
index e146ed4..03bc0d4 100644
--- a/src/rpc_soc.c
+++ b/src/rpc_soc.c
@@ -61,6 +61,7 @@
 #include <string.h>
 #include <unistd.h>
 #include <fcntl.h>
+#include <rpcsvc/nis.h>
 
 #include "rpc_com.h"
 
@@ -553,6 +554,46 @@ fallback:
 }
 
 /*
+ * Create the client des authentication object. Obsoleted by
+ * authdes_pk_seccreate().
+ */
+extern AUTH *authdes_pk_seccreate(const char *, netobj *, u_int, const char *,
+        const des_block *, nis_server *);
+
+AUTH *
+authdes_pk_create(servername, pkey, window, syncaddr, ckey)
+       char *servername;               /* network name of server */
+       netobj *pkey;                   /* public key */
+       u_int window;                   /* time to live */
+       struct sockaddr *syncaddr;      /* optional hostaddr to sync with */
+       des_block *ckey;                /* optional conversation key to use */
+{
+       AUTH *nauth;
+       char hostname[NI_MAXHOST];
+
+       if (syncaddr) {
+               /*
+                * Change addr to hostname, because that is the way
+                * new interface takes it.
+                */
+               switch (syncaddr->sa_family) {
+               case AF_INET:
+                 if (getnameinfo(syncaddr, sizeof(struct sockaddr_in), 
hostname,
+                                 sizeof hostname, NULL, 0, 0) != 0)
+                   goto fallback;
+                 break;
+               default:
+                 goto fallback;
+               }
+               nauth = authdes_pk_seccreate(servername, pkey, window, 
hostname, ckey, NULL);
+               return (nauth);
+       }
+fallback:
+       return authdes_pk_seccreate(servername, pkey, window, NULL, ckey, NULL);
+}
+
+
+/*
  * Create a client handle for a unix connection. Obsoleted by clnt_vc_create()
  */
 CLIENT *
diff --git a/tirpc/rpc/auth.h b/tirpc/rpc/auth.h
index 3e44863..e67779c 100644
--- a/tirpc/rpc/auth.h
+++ b/tirpc/rpc/auth.h
@@ -313,6 +313,8 @@ extern AUTH *authnone_create(void);         /* takes no 
parameters */
 extern "C" {
 #endif
 extern AUTH *authdes_create (char *, u_int, struct sockaddr *, des_block *);
+extern AUTH *authdes_pk_create (char *, netobj *, u_int,
+                               struct sockaddr *, des_block *);
 extern AUTH *authdes_seccreate (const char *, const u_int, const  char *,
     const  des_block *);
 #ifdef __cplusplus
++++++ 010-xdr_sizeof.patch ++++++
diff --git a/src/Makefile.am b/src/Makefile.am
index 18b1cec..a29f607 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -54,7 +54,7 @@ libtirpc_la_SOURCES = auth_none.c auth_unix.c authunix_prot.c 
bindresvport.c cln
         auth_time.c auth_des.c authdes_prot.c debug.c
 
 ## XDR
-libtirpc_la_SOURCES += xdr.c xdr_rec.c xdr_array.c xdr_float.c xdr_mem.c 
xdr_reference.c xdr_stdio.c
+libtirpc_la_SOURCES += xdr.c xdr_rec.c xdr_array.c xdr_float.c xdr_mem.c 
xdr_reference.c xdr_stdio.c xdr_sizeof.c
 
 if SYMVERS
     libtirpc_la_LDFLAGS += -Wl,--version-script=$(srcdir)/libtirpc.map
diff --git a/src/libtirpc.map b/src/libtirpc.map
index 449b769..855d6b3 100644
--- a/src/libtirpc.map
+++ b/src/libtirpc.map
@@ -321,6 +321,7 @@ TIRPC_0.3.3 {
     __key_encryptsession_pk_LOCAL;
     __key_gendes_LOCAL;
     authdes_pk_create;
+    xdr_sizeof;
 } TIRPC_0.3.2;
 
 TIRPC_PRIVATE {
diff --git a/src/xdr_sizeof.c b/src/xdr_sizeof.c
index cc5414b..4ecc977 100644
--- a/src/xdr_sizeof.c
+++ b/src/xdr_sizeof.c
@@ -90,7 +90,7 @@ x_inline(xdrs, len)
        if (xdrs->x_op != XDR_ENCODE) {
                return (NULL);
        }
-       if (len < (u_int)xdrs->x_base) {
+       if (len < (u_int) (long int) xdrs->x_base) {
                /* x_private was already allocated */
                xdrs->x_handy += len;
                return ((int32_t *) xdrs->x_private);
@@ -102,7 +102,7 @@ x_inline(xdrs, len)
                        xdrs->x_base = 0;
                        return (NULL);
                }
-               xdrs->x_base = (caddr_t) len;
+               xdrs->x_base = (void *) (long) len;
                xdrs->x_handy += len;
                return ((int32_t *) xdrs->x_private);
        }
diff --git a/tirpc/rpc/xdr.h b/tirpc/rpc/xdr.h
index 64069ab..904e5bb 100644
--- a/tirpc/rpc/xdr.h
+++ b/tirpc/rpc/xdr.h
@@ -327,6 +327,7 @@ extern bool_t       xdr_hyper(XDR *, quad_t *);
 extern bool_t  xdr_u_hyper(XDR *, u_quad_t *);
 extern bool_t  xdr_longlong_t(XDR *, quad_t *);
 extern bool_t  xdr_u_longlong_t(XDR *, u_quad_t *);
+extern u_long     xdr_sizeof(xdrproc_t, void *);
 #ifdef __cplusplus
 }
 #endif
++++++ 011-authdes_create.patch ++++++
diff --git a/src/rpc_soc.c b/src/rpc_soc.c
index e146ed4..9d555d3 100644
--- a/src/rpc_soc.c
+++ b/src/rpc_soc.c
@@ -531,7 +531,6 @@ authdes_create(servername, window, syncaddr, ckey)
        struct sockaddr *syncaddr;      /* optional hostaddr to sync with */
        des_block *ckey;                /* optional conversation key to use */
 {
-       AUTH *dummy;
        AUTH *nauth;
        char hostname[NI_MAXHOST];
 
@@ -540,16 +539,20 @@ authdes_create(servername, window, syncaddr, ckey)
                 * Change addr to hostname, because that is the way
                 * new interface takes it.
                 */
-               if (getnameinfo(syncaddr, sizeof(syncaddr), hostname,
-                   sizeof hostname, NULL, 0, 0) != 0)
-                       goto fallback;
-
+               switch (syncaddr->sa_family) {
+               case AF_INET:
+                 if (getnameinfo(syncaddr, sizeof(struct sockaddr_in), 
hostname,
+                                 sizeof hostname, NULL, 0, 0) != 0)
+                   goto fallback;
+                 break;
+               default:
+                 goto fallback;
+               }
                nauth = authdes_seccreate(servername, window, hostname, ckey);
                return (nauth);
        }
 fallback:
-       dummy = authdes_seccreate(servername, window, NULL, ckey);
-       return (dummy);
+       return authdes_seccreate(servername, window, NULL, ckey);
 }
 
 /*
++++++ 012-xp_sock.patch ++++++
diff --git a/tirpc/rpc/svc.h b/tirpc/rpc/svc.h
index 8273c95..f647095 100644
--- a/tirpc/rpc/svc.h
+++ b/tirpc/rpc/svc.h
@@ -88,6 +88,7 @@ enum xprt_stat {
  */
 typedef struct __rpc_svcxprt {
        int             xp_fd;
+#define        xp_sock         xp_fd
        u_short         xp_port;         /* associated port number */
        const struct xp_ops {
            /* receive incoming requests */

Reply via email to