diff --git a/tivo_commands.c b/tivo_commands.c index 87cd983..a16cb44 100644 --- a/tivo_commands.c +++ b/tivo_commands.c @@ -349,10 +349,11 @@ SendContainer(struct upnphttp * h, const char * objectID, int itemStart, int ite char *sql, *item, *saveptr; char *zErrMsg = NULL; char **result; - char *title; + char *title = NULL; char what[10], order[64]={0}, order2[64]={0}, myfilter[256]={0}; char str_buf[1024]; char *which; + char type[8]; char groupBy[19] = {0}; struct Response args; int totalMatches = 0; @@ -373,6 +374,22 @@ SendContainer(struct upnphttp * h, const char * objectID, int itemStart, int ite args.requested = itemCount * -1; } + switch( *objectID ) + { + case '1': + strcpy(type, "music"); + break; + case '2': + strcpy(type, "videos"); + break; + case '3': + strcpy(type, "photos"); + break; + default: + strcpy(type, "server"); + break; + } + if( strlen(objectID) == 1 ) { switch( *objectID ) @@ -395,7 +412,11 @@ SendContainer(struct upnphttp * h, const char * objectID, int itemStart, int ite { sql = sqlite3_mprintf("SELECT NAME from OBJECTS where OBJECT_ID = '%s'", objectID); if( (sql_get_table(db, sql, &result, &ret, NULL) == SQLITE_OK) && ret ) - title = strdup(result[1]); + { + title = escape_tag(result[1]); + if( !title ) + title = strdup(result[1]); + } else title = strdup("UNKNOWN"); sqlite3_free(sql); @@ -619,8 +640,7 @@ SendContainer(struct upnphttp * h, const char * objectID, int itemStart, int ite "" "%d" "%d", - (objectID[0]=='1' ? "music":"photos"), - totalMatches, title, args.start, args.returned); + type, totalMatches, title, args.start, args.returned); args.resp = resp+1024-ret; memcpy(args.resp, &str_buf, ret); ret = sprintf(str_buf, "");