diff --git a/src/qt-console/bcomm/dircomm.cpp b/src/qt-console/bcomm/dircomm.cpp index 64cbbf4eb0a..5900b121857 100644 --- a/src/qt-console/bcomm/dircomm.cpp +++ b/src/qt-console/bcomm/dircomm.cpp @@ -62,6 +62,7 @@ void DirComm::terminate() if (mainWin->m_connDebug) Pmsg2(000, "DirComm %i terminating connections %s\n", m_conn, m_console->m_dir->name()); m_sock->close(); + delete m_sock; m_sock = NULL; } } @@ -167,14 +168,16 @@ bool DirComm::connect_dir() heart_beat = 0; } - m_sock = bnet_connect(NULL, 5, 15, heart_beat, - _("Director daemon"), m_console->m_dir->address, - NULL, m_console->m_dir->DIRport, false); - if (m_sock == NULL) { + m_sock = New(BSOCK_TCP); + if (!m_sock->connect(NULL, 5, 15, heart_beat, "Director daemon", + m_console->m_dir->address, NULL, + m_console->m_dir->DIRport, false)) { mainWin->set_status("Connection failed"); if (mainWin->m_connDebug) { Pmsg2(000, "DirComm %i BAILING Connection failed %s\n", m_conn, m_console->m_dir->name()); } + delete m_sock; + m_sock = NULL; goto bail_out; } else { /* Update page selector to green to indicate that Console is connected */ diff --git a/src/qt-tray-monitor/monitoritem.cpp b/src/qt-tray-monitor/monitoritem.cpp index 77b71030dfd..34b5754e9df 100644 --- a/src/qt-tray-monitor/monitoritem.cpp +++ b/src/qt-tray-monitor/monitoritem.cpp @@ -152,25 +152,40 @@ bool MonitorItem::doconnect() dird = static_cast(d->resource); message = QString("Connecting to Director %1:%2").arg(dird->address).arg(dird->DIRport); emit showStatusbarMessage(message); - d->DSock = bnet_connect(NULL, d->connectTimeout, - 0, 0, "Director daemon", dird->address, NULL, dird->DIRport, false); - jcr.dir_bsock = d->DSock; + d->DSock = New(BSOCK_TCP); + if (!d->DSock->connect(NULL, d->connectTimeout, 0, 0, "Director daemon", + dird->address, NULL, dird->DIRport, false)) { + delete d->DSock; + d->DSock = NULL; + } else { + jcr.dir_bsock = d->DSock; + } break; case R_CLIENT: filed = static_cast(d->resource); message = QString("Connecting to Client %1:%2").arg(filed->address).arg(filed->FDport); emit showStatusbarMessage(message); - d->DSock = bnet_connect(NULL, d->connectTimeout, - 0, 0, "File daemon", filed->address, NULL, filed->FDport, false); - jcr.file_bsock = d->DSock; + d->DSock = New(BSOCK_TCP); + if (!d->DSock->connect(NULL, d->connectTimeout, 0, 0, "File daemon", + filed->address, NULL, filed->FDport, false)) { + delete d->DSock; + d->DSock = NULL; + } else { + jcr.file_bsock = d->DSock; + } break; case R_STORAGE: stored = static_cast(d->resource); message = QString("Connecting to Storage %1:%2").arg(stored->address).arg(stored->SDport); emit showStatusbarMessage(message); - d->DSock = bnet_connect(NULL, d->connectTimeout, - 0, 0, "Storage daemon", stored->address, NULL, stored->SDport, false); - jcr.store_bsock = d->DSock; + d->DSock = New(BSOCK_TCP); + if (!d->DSock->connect(NULL, d->connectTimeout, 0, 0, "Storage daemon", + stored->address, NULL, stored->SDport, false)) { + delete d->DSock; + d->DSock = NULL; + } else { + jcr.store_bsock = d->DSock; + } break; default: printf("Error, currentitem is not a Client, a Storage or a Director..\n"); @@ -230,6 +245,7 @@ void MonitorItem::disconnect() writecmd("quit"); d->DSock->signal(BNET_TERMINATE); /* send EOF */ d->DSock->close(); + delete d->DSock; d->DSock = NULL; } }