FromStringList can return an error code, make sure it is checked and reported.

From: Erik Hovland <erik@hovland.org>


---

 programs/mythbackend/mainserver.cpp   |   16 ++++++++++++----
 programs/mythbackend/playbacksock.cpp |   11 +++++++----
 programs/mythbackend/playbacksock.h   |    2 +-
 3 files changed, 20 insertions(+), 9 deletions(-)

diff --git a/programs/mythbackend/mainserver.cpp b/programs/mythbackend/mainserver.cpp
index af91922..5e73693 100644
--- a/programs/mythbackend/mainserver.cpp
+++ b/programs/mythbackend/mainserver.cpp
@@ -1338,10 +1338,18 @@ void MainServer::HandleQueryRecordings(QString type, PlaybackSock *pbs)
             {
                 if (proginfo->filesize == 0)
                 {
-                    slave->FillProgramInfo(proginfo, playbackhost);
-
-                    if (proginfo->recendts < QDateTime::currentDateTime())
-                        proginfo->SetFilesize(proginfo->filesize);
+                    if (!slave->FillProgramInfo(proginfo, playbackhost))
+                    {
+                        VERBOSE(VB_IMPORTANT,
+                                "MainServer::HandleQueryRecordings()"
+                                "\n\t\t\tCould not fill program info "
+                                "from backend");
+                    }
+                    else
+                    {
+                        if (proginfo->recendts < QDateTime::currentDateTime())
+                            proginfo->SetFilesize(proginfo->filesize);
+                    }
                 }
                 else
                 {
diff --git a/programs/mythbackend/playbacksock.cpp b/programs/mythbackend/playbacksock.cpp
index 941aa3c..b64a616 100644
--- a/programs/mythbackend/playbacksock.cpp
+++ b/programs/mythbackend/playbacksock.cpp
@@ -142,7 +142,7 @@ int PlaybackSock::DeleteRecording(const ProgramInfo *pginfo, bool forceMetadataD
     return strlist[0].toInt();
 }
 
-void PlaybackSock::FillProgramInfo(ProgramInfo *pginfo, QString &playbackhost)
+bool PlaybackSock::FillProgramInfo(ProgramInfo *pginfo, QString &playbackhost)
 {
     QStringList strlist( QString("FILL_PROGRAM_INFO") );
     strlist << playbackhost;
@@ -150,7 +150,7 @@ void PlaybackSock::FillProgramInfo(ProgramInfo *pginfo, QString &playbackhost)
 
     SendReceiveStringList(strlist);
 
-    pginfo->FromStringList(strlist, 0);
+    return pginfo->FromStringList(strlist, 0);
 }
 
 QStringList PlaybackSock::GenPreviewPixmap(const ProgramInfo *pginfo)
@@ -226,7 +226,8 @@ bool PlaybackSock::IsBusy(
     if (busy_input)
     {
         it++;
-        busy_input->FromStringList(it, strlist.end());
+        if (!busy_input->FromStringList(it, strlist.end()))
+            state = false;
     }
 
     return state;
@@ -274,7 +275,9 @@ ProgramInfo *PlaybackSock::GetRecording(int capturecardnum)
     SendReceiveStringList(strlist);
 
     ProgramInfo *info = new ProgramInfo();
-    info->FromStringList(strlist, 0);
+    if (!info->FromStringList(strlist, 0))
+        return NULL;
+
     return info;
 }
 
diff --git a/programs/mythbackend/playbacksock.h b/programs/mythbackend/playbacksock.h
index e395523..f3c7a83 100644
--- a/programs/mythbackend/playbacksock.h
+++ b/programs/mythbackend/playbacksock.h
@@ -46,7 +46,7 @@ class PlaybackSock
     int StopRecording(const ProgramInfo *pginfo);
     int CheckRecordingActive(const ProgramInfo *pginfo);
     int DeleteRecording(const ProgramInfo *pginfo, bool forceMetadataDelete = false);
-    void FillProgramInfo(ProgramInfo *pginfo, QString &playbackhost);
+    bool FillProgramInfo(ProgramInfo *pginfo, QString &playbackhost);
     QStringList GenPreviewPixmap(const ProgramInfo *pginfo);
     QStringList GenPreviewPixmap(const ProgramInfo *pginfo,
                                  bool               time_fmt_sec,
