From: Nicolas Boichat Date: Mon, 25 Apr 2005 15:10:29 +0000 (+0000) Subject: Fix bug #292 (tray-monitor). X-Git-Tag: Release-1.38.0~542 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=3f6a3c153e1644950975ef7b37eb705cb8b266ca;p=bacula%2Fbacula Fix bug #292 (tray-monitor). git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@1956 91ce42f0-d328-0410-95d8-f526ca767f89 --- diff --git a/bacula/patches/1.36.3-tray-monitor-fix-broken-pipe.diff b/bacula/patches/1.36.3-tray-monitor-fix-broken-pipe.diff new file mode 100644 index 0000000000..4725dfa0b3 --- /dev/null +++ b/bacula/patches/1.36.3-tray-monitor-fix-broken-pipe.diff @@ -0,0 +1,22 @@ +Index: src/tray-monitor/tray-monitor.c +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/tray-monitor/tray-monitor.c,v +retrieving revision 1.21 +diff -r1.21 tray-monitor.c +455c455,468 +< writecmd(&items[i], "quit"); +--- +> switch (items[i].type) { +> case R_DIRECTOR: +> trayMessage("Disconnecting from Director %s:%d\n", ((DIRRES*)items[i].resource)->address, ((DIRRES*)items[i].resource)->DIRport); +> break; +> case R_CLIENT: +> trayMessage("Disconnecting from Client %s:%d\n", ((CLIENT*)items[i].resource)->address, ((CLIENT*)items[i].resource)->FDport); +> break; +> case R_STORAGE: +> trayMessage("Disconnecting from Storage %s:%d\n", ((STORE*)items[i].resource)->address, ((STORE*)items[i].resource)->SDport); +> break; +> default: +> break; +> } +> //writecmd(&items[i], "quit"); diff --git a/bacula/patches/patches-1.36.3 b/bacula/patches/patches-1.36.3 index 6d1d507d22..c8c7404dbe 100644 --- a/bacula/patches/patches-1.36.3 +++ b/bacula/patches/patches-1.36.3 @@ -1,3 +1,3 @@ -04Mar05 1.36.3- - This patch should fix a problem ... +25Apr05 1.36.3-tray-monitor-fix-broken-pipe.diff + Fix broken pipe when closing bacula-tray-monitor (bug #292). diff --git a/bacula/src/tray-monitor/tray-monitor.c b/bacula/src/tray-monitor/tray-monitor.c index 2d056a37c6..9abc40098f 100644 --- a/bacula/src/tray-monitor/tray-monitor.c +++ b/bacula/src/tray-monitor/tray-monitor.c @@ -452,7 +452,20 @@ int main(int argc, char *argv[]) for (i = 0; i < nitems; i++) { if (items[i].D_sock) { - writecmd(&items[i], "quit"); + switch (items[i].type) { + case R_DIRECTOR: + trayMessage("Disconnecting from Director %s:%d\n", ((DIRRES*)items[i].resource)->address, ((DIRRES*)items[i].resource)->DIRport); + break; + case R_CLIENT: + trayMessage("Disconnecting from Client %s:%d\n", ((CLIENT*)items[i].resource)->address, ((CLIENT*)items[i].resource)->FDport); + break; + case R_STORAGE: + trayMessage("Disconnecting from Storage %s:%d\n", ((STORE*)items[i].resource)->address, ((STORE*)items[i].resource)->SDport); + break; + default: + break; + } + //writecmd(&items[i], "quit"); bnet_sig(items[i].D_sock, BNET_TERMINATE); /* send EOF */ bnet_close(items[i].D_sock); }