components/rsyslog/patches/tcp-restart.patch
author Tomas Heran <tomas.heran@oracle.com>
Mon, 22 Dec 2014 13:28:36 +0100
changeset 3738 19e0324097d4
parent 1676 e30942d6f221
permissions -rw-r--r--
PSARC/2014/289 libmicrohttpd 20235905 GNU Libmicrohttpd - C library HTTP server should be added to Userland
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1581
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
     1
# This patch is to fix:
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
     2
# 16134419 rsyslogd forwarding over TCP does not detect server restart
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
     3
# which was fixed in upstream version 6.4.1; this patch is a minor variant
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
     4
# on the upstream patch, adapted for 6.2.0 .  This can go away once we
1676
e30942d6f221 18154717 rsyslog TCP forwarding on SPARC fails randomly after 16134419
John Beck <John.Beck@Oracle.COM>
parents: 1674
diff changeset
     5
# upgrade to 6.4.1 or later, except for the CheckConnection() part in
e30942d6f221 18154717 rsyslog TCP forwarding on SPARC fails randomly after 16134419
John Beck <John.Beck@Oracle.COM>
parents: 1674
diff changeset
     6
# runtime/netstrm.c which needs to make sure to return a value, as there
e30942d6f221 18154717 rsyslog TCP forwarding on SPARC fails randomly after 16134419
John Beck <John.Beck@Oracle.COM>
parents: 1674
diff changeset
     7
# was a bug in the 6.4.1 code that failed to do this:
e30942d6f221 18154717 rsyslog TCP forwarding on SPARC fails randomly after 16134419
John Beck <John.Beck@Oracle.COM>
parents: 1674
diff changeset
     8
# http://bugzilla.adiscon.com/show_bug.cgi?id=511
1581
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
     9
--- rsyslog/runtime/netstrm.c.orig	2012-01-09 06:05:45.000000000 -0800
1676
e30942d6f221 18154717 rsyslog TCP forwarding on SPARC fails randomly after 16134419
John Beck <John.Beck@Oracle.COM>
parents: 1674
diff changeset
    10
+++ rsyslog/runtime/netstrm.c	2014-01-29 10:16:47.131765870 -0800
e30942d6f221 18154717 rsyslog TCP forwarding on SPARC fails randomly after 16134419
John Beck <John.Beck@Oracle.COM>
parents: 1674
diff changeset
    11
@@ -250,11 +250,13 @@
1581
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    12
 
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    13
 
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    14
 /* check connection - slim wrapper for NSD driver function */
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    15
-static void
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    16
+static rsRetVal
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    17
 CheckConnection(netstrm_t *pThis)
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    18
 {
1676
e30942d6f221 18154717 rsyslog TCP forwarding on SPARC fails randomly after 16134419
John Beck <John.Beck@Oracle.COM>
parents: 1674
diff changeset
    19
+	DEFiRet;
1581
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    20
 	ISOBJ_TYPE_assert(pThis, netstrm);
1676
e30942d6f221 18154717 rsyslog TCP forwarding on SPARC fails randomly after 16134419
John Beck <John.Beck@Oracle.COM>
parents: 1674
diff changeset
    21
-	pThis->Drvr.CheckConnection(pThis->pDrvrData);
e30942d6f221 18154717 rsyslog TCP forwarding on SPARC fails randomly after 16134419
John Beck <John.Beck@Oracle.COM>
parents: 1674
diff changeset
    22
+	iRet = pThis->Drvr.CheckConnection(pThis->pDrvrData);
e30942d6f221 18154717 rsyslog TCP forwarding on SPARC fails randomly after 16134419
John Beck <John.Beck@Oracle.COM>
parents: 1674
diff changeset
    23
+	RETiRet;
e30942d6f221 18154717 rsyslog TCP forwarding on SPARC fails randomly after 16134419
John Beck <John.Beck@Oracle.COM>
parents: 1674
diff changeset
    24
 }
e30942d6f221 18154717 rsyslog TCP forwarding on SPARC fails randomly after 16134419
John Beck <John.Beck@Oracle.COM>
parents: 1674
diff changeset
    25
 
e30942d6f221 18154717 rsyslog TCP forwarding on SPARC fails randomly after 16134419
John Beck <John.Beck@Oracle.COM>
parents: 1674
diff changeset
    26
 
1581
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    27
--- rsyslog/runtime/netstrm.h~	2011-12-01 02:26:19.000000000 -0800
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    28
+++ rsyslog/runtime/netstrm.h	2013-12-02 09:30:45.155766988 -0800
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    29
@@ -53,7 +53,7 @@
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    30
 	rsRetVal (*SetDrvrMode)(netstrm_t *pThis, int iMode);
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    31
 	rsRetVal (*SetDrvrAuthMode)(netstrm_t *pThis, uchar*);
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    32
 	rsRetVal (*SetDrvrPermPeers)(netstrm_t *pThis, permittedPeers_t*);
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    33
-	void     (*CheckConnection)(netstrm_t *pThis);	/* This is a trick mostly for plain tcp syslog */
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    34
+	rsRetVal (*CheckConnection)(netstrm_t *pThis);	/* This is a trick mostly for plain tcp syslog */
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    35
 	/* the GetSock() below is a hack to make imgssapi work. In the long term,
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    36
 	 * we should migrate imgssapi to a stream driver, which will relieve us of
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    37
 	 * this problem. Please note that nobody else should use GetSock(). Using it 
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    38
@@ -72,9 +72,10 @@
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    39
 	/* v4 */
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    40
 	rsRetVal (*EnableKeepAlive)(netstrm_t *pThis);
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    41
 ENDinterface(netstrm)
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    42
-#define netstrmCURR_IF_VERSION 4 /* increment whenever you change the interface structure! */
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    43
+#define netstrmCURR_IF_VERSION 5 /* increment whenever you change the interface structure! */
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    44
 /* interface version 3 added GetRemAddr()
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    45
  * interface version 4 added EnableKeepAlive() -- rgerhards, 2009-06-02
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    46
+ * interface version 5 changed return of CheckConnection from void to rsRetVal -- alorbach, 2012-09-06
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    47
  * */
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    48
 
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    49
 /* prototypes */
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    50
--- rsyslog/runtime/nsd.h.orig	2012-01-09 06:05:45.000000000 -0800
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    51
+++ rsyslog/runtime/nsd.h	2013-12-02 09:21:26.146155301 -0800
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    52
@@ -65,7 +65,7 @@
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    53
 	rsRetVal (*SetMode)(nsd_t *pThis, int mode); /* sets a driver specific mode - see driver doc for details */
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    54
 	rsRetVal (*SetAuthMode)(nsd_t *pThis, uchar*); /* sets a driver specific mode - see driver doc for details */
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    55
 	rsRetVal (*SetPermPeers)(nsd_t *pThis, permittedPeers_t*); /* sets driver permitted peers for auth needs */
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    56
-	void     (*CheckConnection)(nsd_t *pThis);	/* This is a trick mostly for plain tcp syslog */
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    57
+	rsRetVal (*CheckConnection)(nsd_t *pThis);	/* This is a trick mostly for plain tcp syslog */
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    58
 	rsRetVal (*GetSock)(nsd_t *pThis, int *pSock);
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    59
 	rsRetVal (*SetSock)(nsd_t *pThis, int sock);
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    60
 	/* GetSock() and SetSock() return an error if the driver does not use plain
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    61
@@ -82,9 +82,10 @@
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    62
 	/* v5 */
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    63
 	rsRetVal (*EnableKeepAlive)(nsd_t *pThis);
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    64
 ENDinterface(nsd)
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    65
-#define nsdCURR_IF_VERSION 5 /* increment whenever you change the interface structure! */
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    66
+#define nsdCURR_IF_VERSION 6 /* increment whenever you change the interface structure! */
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    67
 /* interface version 4 added GetRemAddr()
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    68
  * interface version 5 added EnableKeepAlive() -- rgerhards, 2009-06-02
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    69
+ * interface version 6 changed return of CheckConnection from void to rsRetVal -- alorbach, 2012-09-06
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    70
  */
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    71
 
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    72
 /* interface  for the select call */
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    73
--- rsyslog/runtime/nsd_gtls.c~	2012-01-09 06:05:45.000000000 -0800
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    74
+++ rsyslog/runtime/nsd_gtls.c	2013-12-02 10:14:55.324156585 -0800
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    75
@@ -1310,13 +1310,16 @@
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    76
  * This is a dummy here. For details, check function common in ptcp driver.
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    77
  * rgerhards, 2008-06-09
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    78
  */
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    79
-static void
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    80
+static rsRetVal
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    81
 CheckConnection(nsd_t __attribute__((unused)) *pNsd)
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    82
 {
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    83
+	DEFiRet;
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    84
 	nsd_gtls_t *pThis = (nsd_gtls_t*) pNsd;
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    85
 	ISOBJ_TYPE_assert(pThis, nsd_gtls);
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    86
 
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    87
-	nsd_ptcp.CheckConnection(pThis->pTcp);
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    88
+	CHKiRet(nsd_ptcp.CheckConnection(pThis->pTcp));
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    89
+finalize_it:
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    90
+	RETiRet;
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    91
 }
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    92
 
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    93
 
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    94
--- rsyslog/runtime/nsd_ptcp.c~	2012-01-09 06:05:17.000000000 -0800
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    95
+++ rsyslog/runtime/nsd_ptcp.c	2013-12-02 10:13:48.561929979 -0800
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    96
@@ -726,9 +726,10 @@
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    97
  * http://blog.gerhards.net/2008/06/getting-bit-more-reliability-from-plain.html
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    98
  * rgerhards, 2008-06-09
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    99
  */
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
   100
-static void
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
   101
+static rsRetVal
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
   102
 CheckConnection(nsd_t *pNsd)
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
   103
 {
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
   104
+	DEFiRet;
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
   105
 	int rc;
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
   106
 	char msgbuf[1]; /* dummy */
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
   107
 	nsd_ptcp_t *pThis = (nsd_ptcp_t*) pNsd;
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
   108
@@ -741,7 +742,10 @@
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
   109
 		 * need to close our side, too.
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
   110
 		 */
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
   111
 		sockClose(&pThis->sock);
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
   112
+		ABORT_FINALIZE(RS_RET_IO_ERROR);
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
   113
 	}
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
   114
+finalize_it:
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
   115
+	RETiRet;
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
   116
 }
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
   117
 
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
   118
 
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
   119
--- rsyslog/tools/omfwd.c.orig	2012-01-09 06:05:45.000000000 -0800
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
   120
+++ rsyslog/tools/omfwd.c	2013-12-02 09:01:51.293926230 -0800
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
   121
@@ -310,7 +310,7 @@
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
   122
 
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
   123
 	alreadySent = 0;
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
   124
 dbgprintf("omfwd: XXXX: pData %p, pNetStrm %p\n", pData, pData->pNetstrm);
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
   125
-	netstrm.CheckConnection(pData->pNetstrm); /* hack for plain tcp syslog - see ptcp driver for details */
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
   126
+	CHKiRet(netstrm.CheckConnection(pData->pNetstrm)); /* hack for plain tcp syslog - see ptcp driver for details */
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
   127
 	while(alreadySent != len) {
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
   128
 		lenSend = len - alreadySent;
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
   129
 		CHKiRet(netstrm.Send(pData->pNetstrm, buf+alreadySent, &lenSend));
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
   130
@@ -319,6 +319,12 @@
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
   131
 	}
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
   132
 
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
   133
 finalize_it:
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
   134
+	if(iRet != RS_RET_OK) {
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
   135
+		/* error! */
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
   136
+		dbgprintf("TCPSendBuf error %d, destruct TCP Connection!\n", iRet);
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
   137
+		DestructTCPInstanceData(pData);
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
   138
+		iRet = RS_RET_SUSPENDED;
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
   139
+	}
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
   140
 	RETiRet;
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
   141
 }
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
   142
 
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
   143
@@ -363,6 +369,7 @@
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
   144
 {
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
   145
 	DEFiRet;
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
   146
 	instanceData *pData = (instanceData *) pvData;
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
   147
+	dbgprintf("TCPSendPrepRetry performs a DestructTCPInstanceData\n");
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
   148
 
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
   149
 	assert(pData != NULL);
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
   150
 	DestructTCPInstanceData(pData);
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
   151
@@ -380,6 +387,7 @@
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
   152
 
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
   153
 	assert(pData != NULL);
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
   154
 	if(pData->pNetstrm == NULL) {
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
   155
+		dbgprintf("TCPSendInit CREATE\n");
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
   156
 		CHKiRet(netstrms.Construct(&pData->pNS));
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
   157
 		/* the stream driver must be set before the object is finalized! */
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
   158
 		CHKiRet(netstrms.SetDrvrName(pData->pNS, cs.pszStrmDrvr));
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
   159
@@ -403,6 +411,7 @@
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
   160
 
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
   161
 finalize_it:
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
   162
 	if(iRet != RS_RET_OK) {
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
   163
+		dbgprintf("TCPSendInit FAILED with %d.\n", iRet);
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
   164
 		DestructTCPInstanceData(pData);
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
   165
 	}
0d12ca3c361f 16134419 rsyslogd forwarding over TCP does not detect server restart
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
   166