diff --git a/tivo_commands.c b/tivo_commands.c index 47a63cc..450ebea 100644 --- a/tivo_commands.c +++ b/tivo_commands.c @@ -348,21 +348,19 @@ void SendContainer(struct upnphttp * h, const char * objectID, int itemStart, int itemCount, char * anchorItem, int anchorOffset, int recurse, char * sortOrder, char * filter, unsigned long int randomSeed) { - char * resp = malloc(262144); + char *resp = malloc(262144); char *sql, *item, *saveptr; char *zErrMsg = NULL; char **result; - char *title = NULL; + char *title, *which; char what[10], order[96]={0}, order2[96]={0}, myfilter[256]={0}; char str_buf[1024]; - char *which; char type[8]; char groupBy[19] = {0}; struct Response args; int totalMatches = 0; int i, ret; memset(&args, 0, sizeof(args)); - memset(resp, 0, sizeof(262144)); args.resp = resp; args.size = 1024; @@ -413,15 +411,14 @@ SendContainer(struct upnphttp * h, const char * objectID, int itemStart, int ite } else { - sql = sqlite3_mprintf("SELECT NAME from OBJECTS where OBJECT_ID = '%s'", objectID); - if( (sql_get_table(db, sql, &result, &ret, NULL) == SQLITE_OK) && ret ) + item = sql_get_text_field(db, "SELECT NAME from OBJECTS where OBJECT_ID = '%s'", objectID); + if( item ) { - title = escape_tag(result[1], 1); + title = escape_tag(item, 1); + sqlite3_free(item); } else title = strdup("UNKNOWN"); - sqlite3_free(sql); - sqlite3_free_table(result); } if( recurse ) @@ -650,6 +647,11 @@ SendContainer(struct upnphttp * h, const char * objectID, int itemStart, int ite { DPRINTF(E_ERROR, L_HTTP, "SQL error: %s\n", zErrMsg); sqlite3_free(zErrMsg); + Send500(h); + free(title); + free(which); + free(resp); + return; } ret = sprintf(str_buf, "\n" diff --git a/upnphttp.c b/upnphttp.c index 029041c..21a42d8 100644 --- a/upnphttp.c +++ b/upnphttp.c @@ -542,7 +542,7 @@ Send416(struct upnphttp * h) } /* very minimalistic 500 error message */ -static void +void Send500(struct upnphttp * h) { static const char body500[] = @@ -853,13 +853,14 @@ ProcessHttpQuery_upnphttp(struct upnphttp * h) } else { - printf("Invalid TiVo request! %s\n", HttpUrl+12); + DPRINTF(E_WARN, L_HTTP, "Invalid TiVo request! %s\n", HttpUrl+12); Send404(h); } } else { - printf("TiVo request with out TiVo support enabled! %s\n", HttpUrl+12); + DPRINTF(E_WARN, L_HTTP, "TiVo request with out TiVo support enabled! %s\n", + HttpUrl+12); Send404(h); } } diff --git a/upnphttp.h b/upnphttp.h index 64108e6..74134f7 100644 --- a/upnphttp.h +++ b/upnphttp.h @@ -153,6 +153,8 @@ BuildResp2_upnphttp(struct upnphttp * h, int respcode, /* Error messages */ void +Send500(struct upnphttp *); +void Send501(struct upnphttp *); /* SendResp_upnphttp() */