aboutsummaryrefslogtreecommitdiffstats
path: root/util/scan/scan.c
diff options
context:
space:
mode:
Diffstat (limited to 'util/scan/scan.c')
-rw-r--r--util/scan/scan.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/util/scan/scan.c b/util/scan/scan.c
index 1b7a3e5..3058bdb 100644
--- a/util/scan/scan.c
+++ b/util/scan/scan.c
@@ -236,6 +236,17 @@ static struct transponder *find_transponder(uint32_t frequency)
static void copy_transponder(struct transponder *d, struct transponder *s)
{
+ struct list_head *pos;
+ struct service *service;
+
+ if (d->transport_stream_id != s->transport_stream_id) {
+ /* propagate change to any already allocated services */
+ list_for_each(pos, &d->services) {
+ service = list_entry(pos, struct service, list);
+ service->transport_stream_id = s->transport_stream_id;
+ }
+ }
+
d->network_id = s->network_id;
d->original_network_id = s->original_network_id;
d->transport_stream_id = s->transport_stream_id;