Ticket #11238: Added-SafeConnectToMasterServer2.diff

File Added-SafeConnectToMasterServer2.diff, 2.2 KB (added by peper03@…, 11 years ago)

Fixed patch to actually return a value and use it correctly!

  • mythtv/libs/libmythbase/mythcorecontext.cpp

    diff --git a/mythtv/libs/libmythbase/mythcorecontext.cpp b/mythtv/libs/libmythbase/mythcorecontext.cpp
    index bb2cf66..423f8a2 100644
    a b bool MythCoreContext::SetupCommandSocket(MythSocket *serverSock, 
    293293    return true;
    294294}
    295295
     296// Connects to master server safely (i.e. by taking m_sockLock)
     297bool MythCoreContext::SafeConnectToMasterServer(bool openEventSocket)
     298{
     299    QMutexLocker locker(&d->m_sockLock);
     300    bool success = true;
     301
     302    if (!d->m_serverSock)
     303    {
     304        bool blockingClient = GetNumSetting("idleTimeoutSecs",0) > 0;
     305        success = ConnectToMasterServer(blockingClient, openEventSocket);
     306    }
     307
     308    return success;
     309}
     310
    296311// Assumes that either m_sockLock is held, or the app is still single
    297312// threaded (i.e. during startup).
    298313bool MythCoreContext::ConnectToMasterServer(bool blockingClient,
  • mythtv/libs/libmythbase/mythcorecontext.h

    diff --git a/mythtv/libs/libmythbase/mythcorecontext.h b/mythtv/libs/libmythbase/mythcorecontext.h
    index 76e8eeb..7317783 100644
    a b class MBASE_PUBLIC MythCoreContext : public QObject, public MythObservable, publ 
    6060    void SetEventSocket(MythSocket *eventSock);
    6161    void SetScheduler(MythScheduler *sched);
    6262
     63    bool SafeConnectToMasterServer(bool openEventSocket = true);
    6364    bool ConnectToMasterServer(bool blockingClient = true,
    6465                               bool openEventSocket = true);
    6566
  • mythtv/programs/mythfrontend/backendconnectionmanager.cpp

    diff --git a/mythtv/programs/mythfrontend/backendconnectionmanager.cpp b/mythtv/programs/mythfrontend/backendconnectionmanager.cpp
    index 17f908a..957dc86 100644
    a b class Reconnect : public QRunnable 
    2525
    2626    virtual void run(void)
    2727    {
    28         // Note: GetMasterHostPrefix() implicitly reconnects the sockets
    29         if (gCoreContext->GetMasterHostPrefix().isEmpty())
     28        if (!gCoreContext->SafeConnectToMasterServer())
    3029            gCoreContext->dispatch(MythEvent(QString("RECONNECT_FAILURE")));
    3130        else
    3231            gCoreContext->dispatch(MythEvent(QString("RECONNECT_SUCCESS")));