Actions
Bug #5743
closedDVR API return code
Status:
Fixed
Priority:
Normal
Assignee:
-
Category:
API
Target version:
-
Start date:
2019-10-09
Due date:
% Done:
0%
Estimated time:
Found in version:
4.3
Affected Versions:
Description
While trying to debug a problem, I noticed all errors returned were "bad request".
Looking at the code I found:
api_dvr.c
static int
api_dvr_entry_file_moved
( access_t *perm, void *opaque, const char *op, htsmsg_t *args, htsmsg_t **resp )
{
const char *src, *dst;
if (!(src = htsmsg_get_str(args, "src")))
return -EINVAL;
if (!(dst = htsmsg_get_str(args, "dst")))
return -EINVAL;
if (dvr_entry_file_moved(src, dst))
return -ENOENT;
return 0;
but in webui_api.c
/* Convert error */
if (r) {
switch (r) {
case EPERM:
case EACCES:
r = http_noaccess_code(hc);
break;
case ENOENT:
case ENOSYS:
r = HTTP_STATUS_NOT_FOUND;
break;
default:
r = HTTP_STATUS_BAD_REQUEST;
break;
}
}
So the negative return codes ("-") is causing the ENOENT error to be reported as "bad request" instead of "not found".
PR created: https://github.com/tvheadend/tvheadend/pull/1307
Updated by Dave Pickles about 6 years ago
Many other api functions also return negative status codes, though I haven't checked if their calling function is expecting them.
Updated by Joe User about 6 years ago
Yes, I saw that but didn't have time (and don't have time now) to check if other calls from webui_api return negative results. Possibly the webui_api needs the change to accept negative results. Will try to look later tonight or tomorrow...
Updated by Jaroslav Kysela about 6 years ago
- Status changed from New to Fixed
Fixed in v4.3-1813-gc67ba3ce1 .
Actions