Realized that I did need to change the protocol version to make effective use
of this. Not sure if I needed to change the BINARY_VERSION as well, so I
didn't.
Revised patch (only added the change to MYTH_PROTO_VERSION to 16):
Index: libs/libmyth/mythcontext.h
===================================================================
RCS file: /var/lib/mythcvs/mythtv/libs/libmyth/mythcontext.h,v
retrieving revision 1.194
diff -u -r1.194 mythcontext.h
--- libs/libmyth/mythcontext.h 23 Apr 2005 15:56:53 -0000 1.194
+++ libs/libmyth/mythcontext.h 27 Apr 2005 12:06:47 -0000
@@ -163,7 +163,7 @@
};
#define MYTH_BINARY_VERSION "0.18.20050423-1"
-#define MYTH_PROTO_VERSION "15"
+#define MYTH_PROTO_VERSION "16"
extern int print_verbose_messages;
Index: programs/mythbackend/mainserver.cpp
===================================================================
RCS file: /var/lib/mythcvs/mythtv/programs/mythbackend/mainserver.cpp,v
retrieving revision 1.193
diff -u -r1.193 mainserver.cpp
--- programs/mythbackend/mainserver.cpp 13 Apr 2005 21:04:28 -0000 1.193
+++ programs/mythbackend/mainserver.cpp 27 Apr 2005 12:06:49 -0000
@@ -404,7 +404,10 @@
VERBOSE(VB_ALL, "Bad QUERY_IS_ACTIVE_BACKEND");
else
HandleIsActiveBackendQuery(listline, pbs);
-
+ }
+ else if (command == "QUERY_SQL")
+ {
+ HandleSQLQuery(line,pbs);
}
else if (command == "SHUTDOWN_NOW")
{
@@ -2562,6 +2565,41 @@
SendResponse(pbs->getSocket(), retlist);
}
+void MainServer::HandleSQLQuery(QString &str,
+ PlaybackSock *pbs)
+{
+ QStringList retlist;
+
+ if (str.length() < 12)
+ {
+ VERBOSE(VB_ALL,QString("Invalid QUERY_SQL call: %1").arg(str));
+ return;
+ }
+
+ QString qrystr = str.mid(10,str.length());
+ MSqlQuery query(MSqlQuery::InitCon());
+ query.prepare(qrystr);
+ if (query.exec() && query.isActive() && query.numRowsAffected())
+ {
+ while (query.next())
+ {
+ int i = 0;
+ while (query.value(i).isValid())
+ {
+ retlist << query.value(i).toString();
+ i++;
+ }
+ }
+ SendResponse(pbs->getSocket(), retlist);
+ }
+ else
+ {
+ VERBOSE(VB_ALL,QString("QUERY_SQL failed: %1").arg(qrystr));
+ }
+
+}
+
+
void MainServer::HandleFileTransferQuery(QStringList &slist,
QStringList &commands,
PlaybackSock *pbs)
Index: programs/mythbackend/mainserver.h
===================================================================
RCS file: /var/lib/mythcvs/mythtv/programs/mythbackend/mainserver.h,v
retrieving revision 1.57
diff -u -r1.57 mainserver.h
--- programs/mythbackend/mainserver.h 6 Apr 2005 17:15:51 -0000 1.57
+++ programs/mythbackend/mainserver.h 27 Apr 2005 12:06:49 -0000
@@ -101,6 +101,7 @@
PlaybackSock *pbs);
void HandleLockTuner(PlaybackSock *pbs);
void HandleFreeTuner(int cardid, PlaybackSock *pbs);
+ void HandleSQLQuery(QString &str, PlaybackSock *pbs);
void HandleVersion(QSocket *socket, QString version);
void HandleBackendRefresh(QSocket *socket);
void HandleQueryLoad(PlaybackSock *pbs);
_______________________________________________
mythtv-dev mailing list
[email protected]
http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-dev