Hello community,

here is the log from the commit of package librelp for openSUSE:Factory checked 
in at 2014-01-15 16:25:21
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/librelp (Old)
 and      /work/SRC/openSUSE:Factory/.librelp.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "librelp"

Changes:
--------
--- /work/SRC/openSUSE:Factory/librelp/librelp.changes  2013-07-16 
16:42:51.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.librelp.new/librelp.changes     2014-01-15 
16:25:22.000000000 +0100
@@ -1,0 +2,9 @@
+Tue Jan 14 20:53:10 UTC 2014 - [email protected]
+
+- update to 1.2.2:
+  - add capability to enable tcp KEEPALIVE
+  - introduced new API relpSrvSetKeepAlive() to support KEEPALIVE
+  - errors binding listener port are now reported via error message
+    callback
+
+-------------------------------------------------------------------

Old:
----
  librelp-1.2.0.tar.gz

New:
----
  librelp-1.2.2.tar.gz

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

Other differences:
------------------
++++++ librelp.spec ++++++
--- /var/tmp/diff_new_pack.wPKPGG/_old  2014-01-15 16:25:23.000000000 +0100
+++ /var/tmp/diff_new_pack.wPKPGG/_new  2014-01-15 16:25:23.000000000 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package librelp
 #
-# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -18,7 +18,7 @@
 
 Name:           librelp
 %define library_name librelp0
-Version:        1.2.0
+Version:        1.2.2
 Release:        0
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 Url:            http://www.librelp.com/

++++++ librelp-1.2.0.tar.gz -> librelp-1.2.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/librelp-1.2.0/ChangeLog new/librelp-1.2.2/ChangeLog
--- old/librelp-1.2.0/ChangeLog 2013-07-14 16:53:38.000000000 +0200
+++ new/librelp-1.2.2/ChangeLog 2014-01-07 13:07:36.000000000 +0100
@@ -1,4 +1,12 @@
 ----------------------------------------------------------------------
+Version 1.2.2 - 2014-01-07
+- add capability to enable tcp KEEPALIVE
+- introduced new API relpSrvSetKeepAlive() to support KEEPALIVE
+----------------------------------------------------------------------
+Version 1.2.1 - 2013-09-26
+- errors binding listener port are now reported via error message
+  callback
+----------------------------------------------------------------------
 Version 1.2.0 - 2013-07-15
 - support for epoll() added
   platforms that do not support it fall back to select()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/librelp-1.2.0/configure new/librelp-1.2.2/configure
--- old/librelp-1.2.0/configure 2013-07-08 18:25:51.000000000 +0200
+++ new/librelp-1.2.2/configure 2013-12-10 15:36:55.000000000 +0100
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.68 for librelp 1.2.0.
+# Generated by GNU Autoconf 2.68 for librelp 1.2.2.
 #
 # Report bugs to <[email protected]>.
 #
@@ -570,8 +570,8 @@
 # Identity of this package.
 PACKAGE_NAME='librelp'
 PACKAGE_TARNAME='librelp'
-PACKAGE_VERSION='1.2.0'
-PACKAGE_STRING='librelp 1.2.0'
+PACKAGE_VERSION='1.2.2'
+PACKAGE_STRING='librelp 1.2.2'
 PACKAGE_BUGREPORT='[email protected]'
 PACKAGE_URL=''
 
@@ -1304,7 +1304,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures librelp 1.2.0 to adapt to many kinds of systems.
+\`configure' configures librelp 1.2.2 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1374,7 +1374,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of librelp 1.2.0:";;
+     short | recursive ) echo "Configuration of librelp 1.2.2:";;
    esac
   cat <<\_ACEOF
 
@@ -1486,7 +1486,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-librelp configure 1.2.0
+librelp configure 1.2.2
 generated by GNU Autoconf 2.68
 
 Copyright (C) 2010 Free Software Foundation, Inc.
@@ -2012,7 +2012,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by librelp $as_me 1.2.0, which was
+It was created by librelp $as_me 1.2.2, which was
 generated by GNU Autoconf 2.68.  Invocation command line was
 
   $ $0 $@
@@ -2827,7 +2827,7 @@
 
 # Define the identity of the package.
  PACKAGE='librelp'
- VERSION='1.2.0'
+ VERSION='1.2.2'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -2889,7 +2889,7 @@
 
 # Define the identity of the package.
  PACKAGE='librelp'
- VERSION='1.2.0'
+ VERSION='1.2.2'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -13171,7 +13171,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by librelp $as_me 1.2.0, which was
+This file was extended by librelp $as_me 1.2.2, which was
 generated by GNU Autoconf 2.68.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -13237,7 +13237,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; 
s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-librelp config.status 1.2.0
+librelp config.status 1.2.2
 configured by $0, generated by GNU Autoconf 2.68,
   with options \\"\$ac_cs_config\\"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/librelp-1.2.0/configure.ac 
new/librelp-1.2.2/configure.ac
--- old/librelp-1.2.0/configure.ac      2013-07-08 12:03:48.000000000 +0200
+++ new/librelp-1.2.2/configure.ac      2013-12-10 15:36:48.000000000 +0100
@@ -2,7 +2,7 @@
 # Process this file with autoconf to produce a configure script.
 
 AC_PREREQ(2.61)
-AC_INIT([librelp], [1.2.0], [[email protected]])
+AC_INIT([librelp], [1.2.2], [[email protected]])
 AM_INIT_AUTOMAKE
 AM_INIT_AUTOMAKE
 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/librelp-1.2.0/src/librelp.h 
new/librelp-1.2.2/src/librelp.h
--- old/librelp-1.2.0/src/librelp.h     2013-07-08 12:03:48.000000000 +0200
+++ new/librelp-1.2.2/src/librelp.h     2013-12-10 15:23:52.000000000 +0100
@@ -151,6 +151,7 @@
 #define RELP_RET_ERR_INVAL     RELPERR_BASE + 41       /**< some parameter is 
invalid (like EINVAL) */
 #define RELP_RET_ERR_EPOLL_CTL RELPERR_BASE + 42       /**< epoll_ctl() failed 
*/
 #define RELP_RET_ERR_INTERNAL  RELPERR_BASE + 43       /**< internal error in 
librelp (bug) */
+#define RELP_RET_WRN_NO_KEEPALIVE      RELPERR_BASE + 44/**< KEEPALIVE cannot 
be enabled */
 
 /* some macros to work with librelp error codes */
 #define CHKRet(code) if((iRet = code) != RELP_RET_OK) goto finalize_it
@@ -191,6 +192,7 @@
 void relpSrvEnableTLS(relpSrv_t *pThis);
 void relpSrvEnableTLSZip(relpSrv_t *pThis);
 void relpSrvSetDHBits(relpSrv_t *pThis, int bits);
+void relpSrvSetKeepAlive(relpSrv_t *pThis, const int bEnabled, const int 
iKeepAliveIntvl, const int iKeepAliveProbes, const int iKeepAliveTime);
 relpRetVal relpSrvSetGnuTLSPriString(relpSrv_t *pThis, char *pristr);
 relpRetVal relpSrvSetCACert(relpSrv_t *pThis, char *cert);
 relpRetVal relpSrvSetOwnCert(relpSrv_t *pThis, char *cert);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/librelp-1.2.0/src/relpsess.c 
new/librelp-1.2.2/src/relpsess.c
--- old/librelp-1.2.0/src/relpsess.c    2013-07-08 12:03:48.000000000 +0200
+++ new/librelp-1.2.2/src/relpsess.c    2013-09-13 12:56:24.000000000 +0200
@@ -223,8 +223,6 @@
        lenBuf = RELP_RCV_BUF_SIZE;
        CHKRet(relpTcpRcv(pThis->pTcp, rcvBuf, &lenBuf));
 
-       rcvBuf[lenBuf] = '\0';
-       pThis->pEngine->dbgprint("relp session read %d octets, buf '%s'\n", 
(int) lenBuf, rcvBuf);
        if(lenBuf == 0) {
                pThis->pEngine->dbgprint("server closed relp session %p, 
session broken\n", pThis);
                /* even though we had a "normal" close, it is unexpected at this
@@ -240,6 +238,10 @@
                        ABORT_FINALIZE(RELP_RET_SESSION_BROKEN);
                }
        } else {
+               /* Terminate buffer and output received data to debug*/
+               rcvBuf[lenBuf] = '\0';
+               pThis->pEngine->dbgprint("relp session read %d octets, buf 
'%s'\n", (int) lenBuf, rcvBuf);
+
                /* we have regular data, which we now can process */
                for(i = 0 ; i < lenBuf ; ++i) {
                        CHKRet(relpFrameProcessOctetRcvd(&pThis->pCurrRcvFrame, 
rcvBuf[i], pThis));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/librelp-1.2.0/src/relpsrv.c 
new/librelp-1.2.2/src/relpsrv.c
--- old/librelp-1.2.0/src/relpsrv.c     2013-07-08 12:03:48.000000000 +0200
+++ new/librelp-1.2.2/src/relpsrv.c     2013-12-10 15:32:45.000000000 +0100
@@ -295,6 +295,18 @@
        pThis->bEnableTLSZip = 1;
 }
 
+void
+relpSrvSetKeepAlive(relpSrv_t *pThis,
+       const int bEnabled,
+       const int iKeepAliveIntvl,
+       const int iKeepAliveProbes,
+       const int iKeepAliveTime)
+{
+       pThis->bKeepAlive = bEnabled;
+       pThis->iKeepAliveIntvl = iKeepAliveIntvl;
+       pThis->iKeepAliveProbes = iKeepAliveProbes;
+       pThis->iKeepAliveTime = iKeepAliveTime;
+}
 
 /* start a relp server - the server object must have all properties set
  * rgerhards, 2008-03-17
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/librelp-1.2.0/src/relpsrv.h 
new/librelp-1.2.2/src/relpsrv.h
--- old/librelp-1.2.0/src/relpsrv.h     2013-07-08 12:03:48.000000000 +0200
+++ new/librelp-1.2.2/src/relpsrv.h     2013-12-10 12:10:23.000000000 +0100
@@ -1,6 +1,6 @@
 /* The RELPSRV object.
  *
- * Copyright 2008 by Rainer Gerhards and Adiscon GmbH.
+ * Copyright 2008-2013 by Rainer Gerhards and Adiscon GmbH.
  *
  * This file is part of librelp.
  *
@@ -47,7 +47,11 @@
        relpTcp_t *pTcp; /**< our tcp support object */
        size_t maxDataSize;  /**< maximum size of a DATA element */
        void *pUsr; /**< user pointer (passed back in to callback) */
-       int bEnableTLS;
+       int bKeepAlive;                 /* support keep-alive packets */
+       int iKeepAliveIntvl;
+       int iKeepAliveProbes;
+       int iKeepAliveTime;
+       int bEnableTLS;                 /* support for TLS */
        int bEnableTLSZip;
        int dhBits;     /**< number of bits for Diffie-Hellman key */
        char *pristring; /**< priority string for GnuTLS */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/librelp-1.2.0/src/tcp.c new/librelp-1.2.2/src/tcp.c
--- old/librelp-1.2.0/src/tcp.c 2013-07-08 12:03:48.000000000 +0200
+++ new/librelp-1.2.2/src/tcp.c 2013-12-10 12:45:17.000000000 +0100
@@ -170,7 +170,9 @@
 
 /* helper to call onErr if set */
 static void
-callOnErr(relpTcp_t *pThis, char *emsg, relpRetVal ecode)
+callOnErr(const relpTcp_t *__restrict__ const pThis,
+       char *__restrict__ const emsg,
+       const relpRetVal ecode)
 {
        char objinfo[1024];
        pThis->pEngine->dbgprint("librelp: generic error: ecode %d, "
@@ -586,6 +588,79 @@
        LEAVE_RELPFUNC;
 }
 
+/* Enable KEEPALIVE handling on the socket.  */
+static void
+EnableKeepAlive(const relpTcp_t *__restrict__ const pThis,
+       const relpSrv_t *__restrict__ const pSrv,
+       const int sock)
+{
+       int ret;
+       int optval;
+       socklen_t optlen;
+
+       optval = 1;
+       optlen = sizeof(optval);
+       ret = setsockopt(sock, SOL_SOCKET, SO_KEEPALIVE, &optval, optlen);
+       if(ret < 0) {
+               pThis->pEngine->dbgprint("librelp: EnableKeepAlive socket call "
+                                       "returns error %d\n", ret);
+               goto done;
+       }
+
+#      if defined(TCP_KEEPCNT)
+       if(pSrv->iKeepAliveProbes > 0) {
+               optval = pSrv->iKeepAliveProbes;
+               optlen = sizeof(optval);
+               ret = setsockopt(sock, SOL_TCP, TCP_KEEPCNT, &optval, optlen);
+       } else {
+               ret = 0;
+       }
+#      else
+       ret = -1;
+#      endif
+       if(ret < 0) {
+               callOnErr(pThis, "librelp cannot set keepalive probes - 
ignored",
+                         RELP_RET_WRN_NO_KEEPALIVE);
+       }
+
+#      if defined(TCP_KEEPCNT)
+       if(pSrv->iKeepAliveTime > 0) {
+               optval = pSrv->iKeepAliveTime;
+               optlen = sizeof(optval);
+               ret = setsockopt(sock, SOL_TCP, TCP_KEEPIDLE, &optval, optlen);
+       } else {
+               ret = 0;
+       }
+#      else
+       ret = -1;
+#      endif
+       if(ret < 0) {
+               callOnErr(pThis, "librelp cannot set keepalive time - ignored",
+                         RELP_RET_WRN_NO_KEEPALIVE);
+       }
+
+#      if defined(TCP_KEEPCNT)
+       if(pSrv->iKeepAliveIntvl > 0) {
+               optval = pSrv->iKeepAliveIntvl;
+               optlen = sizeof(optval);
+               ret = setsockopt(sock, SOL_TCP, TCP_KEEPINTVL, &optval, optlen);
+       } else {
+               ret = 0;
+       }
+#      else
+       ret = -1;
+#      endif
+       if(ret < 0) {
+               callOnErr(pThis, "librelp cannot set keepalive intvl - ignored",
+                         RELP_RET_WRN_NO_KEEPALIVE);
+       }
+
+       pThis->pEngine->dbgprint("KEEPALIVE enabled for socket %d\n", sock);
+
+done:
+       return;
+}
+
 /* accept an incoming connection request, sock provides the socket on which we 
can
  * accept the new session.
  * rgerhards, 2008-03-17
@@ -608,6 +683,9 @@
                ABORT_FINALIZE(RELP_RET_ACCEPT_ERR);
        }
 
+       if(pSrv->bKeepAlive)
+               EnableKeepAlive(pThis, pSrv, iNewSock);
+
        /* construct our object so that we can use it... */
        CHKRet(relpTcpConstruct(&pThis, pEngine, RELP_SRV_CONN, pSrv));
 
@@ -1293,7 +1371,11 @@
                     && (errno != EADDRINUSE)
 #endif
                   ) {
-                        pThis->pEngine->dbgprint("error %d while binding relp 
tcp socket", errno);
+                       char msgbuf[4096];
+                       snprintf(msgbuf, sizeof(msgbuf), "error while binding 
relp tcp socket "
+                                "on port '%s'", pLstnPort);
+                       msgbuf[sizeof(msgbuf)-1] = '\0';
+                       callOnErr(pThis, msgbuf, errno);
                        close(*s);
                        *s = -1;
                         continue;

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to