Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
DVR: add more fail reasons (user access and user limit)
  • Loading branch information
perexg committed Jun 4, 2015
1 parent f69ebde commit 82214a8
Show file tree
Hide file tree
Showing 5 changed files with 19 additions and 6 deletions.
7 changes: 5 additions & 2 deletions src/dvr/dvr_db.c
Expand Up @@ -1219,6 +1219,7 @@ static void
dvr_timer_start_recording(void *aux)
{
dvr_entry_t *de = aux;
int r;

if (de->de_channel == NULL || !de->de_channel->ch_enabled) {
dvr_entry_set_state(de, DVR_NOSTATE, DVR_RS_PENDING, de->de_last_error);
Expand All @@ -1236,8 +1237,10 @@ dvr_timer_start_recording(void *aux)
tvhlog(LOG_INFO, "dvr", "\"%s\" on \"%s\" recorder starting",
lang_str_get(de->de_title, NULL), DVR_CH_NAME(de));

if (dvr_rec_subscribe(de)) {
dvr_entry_completed(de, SM_CODE_BAD_SOURCE);
if ((r = dvr_rec_subscribe(de)) < 0) {
dvr_entry_completed(de, r == -EPERM ? SM_CODE_USER_ACCESS :
(r == -EOVERFLOW ? SM_CODE_USER_LIMIT :
SM_CODE_BAD_SOURCE));
return;
}

Expand Down
8 changes: 4 additions & 4 deletions src/dvr/dvr_rec.c
Expand Up @@ -89,7 +89,7 @@ dvr_rec_subscribe(dvr_entry_t *de)
else {
tvherror("dvr", "unable to find access (owner '%s', creator '%s')",
de->de_owner, de->de_creator);
return -1;
return -EPERM;
}

if (aa->aa_conn_limit) {
Expand All @@ -100,7 +100,7 @@ dvr_rec_subscribe(dvr_entry_t *de)
"(limit %u, active streaming %u, active DVR %u)",
aa->aa_username ?: "", aa->aa_representative ?: "",
aa->aa_conn_limit, rec_count, net_count);
return -1;
return -EOVERFLOW;
}
}
access_destroy(aa);
Expand All @@ -113,7 +113,7 @@ dvr_rec_subscribe(dvr_entry_t *de)
channel_get_name(de->de_channel));
profile_chain_close(prch);
free(prch);
return -1;
return -EINVAL;
}

de->de_s = subscription_create_from_channel(prch, NULL, weight,
Expand All @@ -124,7 +124,7 @@ dvr_rec_subscribe(dvr_entry_t *de)
channel_get_name(de->de_channel));
profile_chain_close(prch);
free(prch);
return -1;
return -EINVAL;
}

de->de_chain = prch;
Expand Down
4 changes: 4 additions & 0 deletions src/htsp_server.c
Expand Up @@ -3646,6 +3646,10 @@ _htsp_get_subscription_status(int smcode)
return "muxNotEnabled";
case SM_CODE_INVALID_TARGET:
return "invalidTarget";
case SM_CODE_USER_ACCESS:
return "userAccess";
case SM_CODE_USER_LIMIT:
return "userLimit";
default:
return streaming_code2txt(smcode);
}
Expand Down
4 changes: 4 additions & 0 deletions src/streaming.c
Expand Up @@ -414,6 +414,10 @@ streaming_code2txt(int code)
return "Subscription overridden";
case SM_CODE_INVALID_TARGET:
return "Invalid target";
case SM_CODE_USER_ACCESS:
return "User access error";
case SM_CODE_USER_LIMIT:
return "User limit reached";

case SM_CODE_NO_FREE_ADAPTER:
return "No free adapter";
Expand Down
2 changes: 2 additions & 0 deletions src/tvheadend.h
Expand Up @@ -437,6 +437,8 @@ typedef enum {
#define SM_CODE_SOURCE_DELETED 102
#define SM_CODE_SUBSCRIPTION_OVERRIDDEN 103
#define SM_CODE_INVALID_TARGET 104
#define SM_CODE_USER_ACCESS 105
#define SM_CODE_USER_LIMIT 106

#define SM_CODE_NO_FREE_ADAPTER 200
#define SM_CODE_MUX_NOT_ENABLED 201
Expand Down

0 comments on commit 82214a8

Please sign in to comment.