diff --git a/src/main.c b/src/main.c index 9c471bcc..f6d5ee15 100644 --- a/src/main.c +++ b/src/main.c @@ -394,7 +394,7 @@ main(int argc, char **argv) rawts_init(rawts_input); if(join_transport != NULL) - subscription_dummy_join(join_transport); + subscription_dummy_join(join_transport, 1); #ifdef CONFIG_AVAHI avahi_init(); diff --git a/src/subscriptions.c b/src/subscriptions.c index 083958c8..e1261013 100644 --- a/src/subscriptions.c +++ b/src/subscriptions.c @@ -343,7 +343,7 @@ static gtimer_t dummy_sub_timer; static void dummy_retry(void *opaque) { - subscription_dummy_join(opaque); + subscription_dummy_join(opaque, 0); free(opaque); } @@ -351,11 +351,16 @@ dummy_retry(void *opaque) * */ void -subscription_dummy_join(const char *id) +subscription_dummy_join(const char *id, int first) { th_transport_t *t = transport_find_by_identifier(id); streaming_target_t *st; + if(first) { + gtimer_arm(&dummy_sub_timer, dummy_retry, strdup(id), 2); + return; + } + if(t == NULL) { tvhlog(LOG_ERR, "subscription", "Unable to dummy join %s, transport not found, retrying...", id); diff --git a/src/subscriptions.h b/src/subscriptions.h index 6a9bc615..8abf1dce 100644 --- a/src/subscriptions.h +++ b/src/subscriptions.h @@ -70,7 +70,7 @@ void subscription_stop(th_subscription_t *s); void subscription_unlink_transport(th_subscription_t *s); -void subscription_dummy_join(const char *id); +void subscription_dummy_join(const char *id, int first); int subscriptions_active(void);