* Improve TiVo error handling.
This commit is contained in:
parent
ec4998ebde
commit
7068d2fda4
@ -348,21 +348,19 @@ void
|
|||||||
SendContainer(struct upnphttp * h, const char * objectID, int itemStart, int itemCount, char * anchorItem,
|
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)
|
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 *sql, *item, *saveptr;
|
||||||
char *zErrMsg = NULL;
|
char *zErrMsg = NULL;
|
||||||
char **result;
|
char **result;
|
||||||
char *title = NULL;
|
char *title, *which;
|
||||||
char what[10], order[96]={0}, order2[96]={0}, myfilter[256]={0};
|
char what[10], order[96]={0}, order2[96]={0}, myfilter[256]={0};
|
||||||
char str_buf[1024];
|
char str_buf[1024];
|
||||||
char *which;
|
|
||||||
char type[8];
|
char type[8];
|
||||||
char groupBy[19] = {0};
|
char groupBy[19] = {0};
|
||||||
struct Response args;
|
struct Response args;
|
||||||
int totalMatches = 0;
|
int totalMatches = 0;
|
||||||
int i, ret;
|
int i, ret;
|
||||||
memset(&args, 0, sizeof(args));
|
memset(&args, 0, sizeof(args));
|
||||||
memset(resp, 0, sizeof(262144));
|
|
||||||
|
|
||||||
args.resp = resp;
|
args.resp = resp;
|
||||||
args.size = 1024;
|
args.size = 1024;
|
||||||
@ -413,15 +411,14 @@ SendContainer(struct upnphttp * h, const char * objectID, int itemStart, int ite
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
sql = sqlite3_mprintf("SELECT NAME from OBJECTS where OBJECT_ID = '%s'", objectID);
|
item = sql_get_text_field(db, "SELECT NAME from OBJECTS where OBJECT_ID = '%s'", objectID);
|
||||||
if( (sql_get_table(db, sql, &result, &ret, NULL) == SQLITE_OK) && ret )
|
if( item )
|
||||||
{
|
{
|
||||||
title = escape_tag(result[1], 1);
|
title = escape_tag(item, 1);
|
||||||
|
sqlite3_free(item);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
title = strdup("UNKNOWN");
|
title = strdup("UNKNOWN");
|
||||||
sqlite3_free(sql);
|
|
||||||
sqlite3_free_table(result);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if( recurse )
|
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);
|
DPRINTF(E_ERROR, L_HTTP, "SQL error: %s\n", zErrMsg);
|
||||||
sqlite3_free(zErrMsg);
|
sqlite3_free(zErrMsg);
|
||||||
|
Send500(h);
|
||||||
|
free(title);
|
||||||
|
free(which);
|
||||||
|
free(resp);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = sprintf(str_buf, "<?xml version='1.0' encoding='UTF-8' ?>\n"
|
ret = sprintf(str_buf, "<?xml version='1.0' encoding='UTF-8' ?>\n"
|
||||||
|
@ -542,7 +542,7 @@ Send416(struct upnphttp * h)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* very minimalistic 500 error message */
|
/* very minimalistic 500 error message */
|
||||||
static void
|
void
|
||||||
Send500(struct upnphttp * h)
|
Send500(struct upnphttp * h)
|
||||||
{
|
{
|
||||||
static const char body500[] =
|
static const char body500[] =
|
||||||
@ -853,13 +853,14 @@ ProcessHttpQuery_upnphttp(struct upnphttp * h)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
printf("Invalid TiVo request! %s\n", HttpUrl+12);
|
DPRINTF(E_WARN, L_HTTP, "Invalid TiVo request! %s\n", HttpUrl+12);
|
||||||
Send404(h);
|
Send404(h);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
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);
|
Send404(h);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -153,6 +153,8 @@ BuildResp2_upnphttp(struct upnphttp * h, int respcode,
|
|||||||
|
|
||||||
/* Error messages */
|
/* Error messages */
|
||||||
void
|
void
|
||||||
|
Send500(struct upnphttp *);
|
||||||
|
void
|
||||||
Send501(struct upnphttp *);
|
Send501(struct upnphttp *);
|
||||||
|
|
||||||
/* SendResp_upnphttp() */
|
/* SendResp_upnphttp() */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user