Kern Sibbald wrote:
> OK, comment out line 578 of <bacula-source>/src/lib/tls.c that reads:
> 
>    bnet_restore_blocking(bsock, flags);

I tried this, and it didn't seem to make any difference - TCP streams still
closed out with RST.  I noticed the commends in tls_bsock_shutdown about
calling SSL_shutdown twice.  I searched around a bit, and found this:

http://www.openssl.org/docs/ssl/SSL_shutdown.html

"It is therefore recommended, to check the return value of SSL_shutdown() and
call SSL_shutdown() again, if the bidirectional shutdown is not yet complete
(return value of the first call is 0)."

So I tried doing this (see attached patch), and the RST was gone!  All TCP
streams closed out nicely with FIN/ACK.  I've put this fix on the systems that
have been failing, and will report back after tonight's backup run.

-- 
Frank Sweetser fs at wpi.edu  |  For every problem, there is a solution that
WPI Network Engineer          |  is simple, elegant, and wrong. - HL Mencken
    GPG fingerprint = 6174 1257 129E 0D21 D8D4  E8A3 8E39 29E3 E2E8 8CEC
--- bacula-2.0.3/src/lib/tls.c  2007-01-23 20:59:13.000000000 -0500
+++ bacula-2.0.3-ssl-double-shutdown/src/lib/tls.c      2007-06-24 
18:02:15.000000000 -0400
@@ -561,6 +561,10 @@
 
    err = SSL_shutdown(bsock->tls->openssl);
 
+   if(err == 0){
+      err = SSL_shutdown(bsock->tls->openssl);
+   }
+
    switch (SSL_get_error(bsock->tls->openssl, err)) {
       case SSL_ERROR_NONE:
          break;
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Bacula-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bacula-devel

Reply via email to