From a5d44a7dae4e9f688daf1ce2cd7e6c6287fdab37 Mon Sep 17 00:00:00 2001 From: Adam Sutton Date: Tue, 26 Jun 2012 13:09:28 +0100 Subject: [PATCH 1/4] Minor mod to wd and hts settings to allow abs paths to be passed to hts_settings_load(). --- src/settings.c | 12 ++++++++---- support/dataroot/wd.c | 12 +++++++++++- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/src/settings.c b/src/settings.c index ca3c7270..c44e09e5 100644 --- a/src/settings.c +++ b/src/settings.c @@ -206,20 +206,24 @@ hts_settings_load_one(const char *filename) static int hts_settings_buildpath(char *dst, size_t dstsize, const char *fmt, va_list ap) { + char tmp[256]; char *n = dst; if(settingspath == NULL) return -1; - - snprintf(dst, dstsize, "%s/", settingspath); - - vsnprintf(dst + strlen(dst), dstsize - strlen(dst), fmt, ap); + + vsnprintf(tmp, sizeof(tmp), fmt, ap); + if (*tmp != '/') + snprintf(dst, dstsize, "%s/%s", settingspath, tmp); + else + strncpy(dst, tmp, dstsize); while(*n) { if(*n == ':' || *n == '?' || *n == '*' || *n > 127 || *n < 32) *n = '_'; n++; } + printf("hts_settings_buildpath(): %s => %s\n", fmt, dst); return 0; } diff --git a/support/dataroot/wd.c b/support/dataroot/wd.c index 9b653eb2..64369580 100644 --- a/support/dataroot/wd.c +++ b/support/dataroot/wd.c @@ -1,4 +1,14 @@ +#include +#include +#include + const char *tvheadend_dataroot(void) { - return "./"; + static char cwd[256] = { 0 }; + if (!*cwd) { + assert(getcwd(cwd, 254)); + strcat(cwd, "/"); + } + printf("cwd = %s\n", cwd); + return cwd; } From bee513604773c5e92635132dca9c2b036ee3900e Mon Sep 17 00:00:00 2001 From: Adam Sutton Date: Mon, 25 Jun 2012 14:20:03 +0100 Subject: [PATCH 2/4] Make it possible to get at underlying dvb filter table definition. --- src/dvb/dvb.h | 3 ++- src/dvb/dvb_tables.c | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/dvb/dvb.h b/src/dvb/dvb.h index 2cb5b943..f0660a93 100644 --- a/src/dvb/dvb.h +++ b/src/dvb/dvb.h @@ -384,7 +384,8 @@ tdt_add(th_dvb_mux_instance_t *tdmi, struct dmx_sct_filter_params *fparams, #define TDT_CRC 0x1 #define TDT_QUICKREQ 0x2 -#define TDT_CA 0x4 +#define TDT_CA 0x4 +#define TDT_TDT 0x8 /** * Satellite configuration diff --git a/src/dvb/dvb_tables.c b/src/dvb/dvb_tables.c index b46d097c..a440d17f 100644 --- a/src/dvb/dvb_tables.c +++ b/src/dvb/dvb_tables.c @@ -168,6 +168,8 @@ dvb_proc_table(th_dvb_mux_instance_t *tdmi, th_dvb_table_t *tdt, uint8_t *sec, if(tdt->tdt_flags & TDT_CA) ret = tdt->tdt_callback((th_dvb_mux_instance_t *)tdt, sec, len + 3, tableid, tdt->tdt_opaque); + else if(tdt->tdt_flags & TDT_TDT) + ret = tdt->tdt_callback(tdmi, ptr, len, tableid, tdt); else ret = tdt->tdt_callback(tdmi, ptr, len, tableid, tdt->tdt_opaque); From cc311e5b2f116c4a19e7922186fc9558105e773d Mon Sep 17 00:00:00 2001 From: Adam Sutton Date: Tue, 26 Jun 2012 14:17:04 +0100 Subject: [PATCH 3/4] Oops, remove printf. --- support/dataroot/wd.c | 1 - 1 file changed, 1 deletion(-) diff --git a/support/dataroot/wd.c b/support/dataroot/wd.c index 64369580..52da7f52 100644 --- a/support/dataroot/wd.c +++ b/support/dataroot/wd.c @@ -9,6 +9,5 @@ const char *tvheadend_dataroot(void) assert(getcwd(cwd, 254)); strcat(cwd, "/"); } - printf("cwd = %s\n", cwd); return cwd; } From 543f8198e4ca287b45bc5137bf48ecb1cc5f53a4 Mon Sep 17 00:00:00 2001 From: Adam Sutton Date: Tue, 26 Jun 2012 14:23:49 +0100 Subject: [PATCH 4/4] Bugger! another printf left in the code. --- src/settings.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/settings.c b/src/settings.c index c44e09e5..e2c54779 100644 --- a/src/settings.c +++ b/src/settings.c @@ -223,7 +223,6 @@ hts_settings_buildpath(char *dst, size_t dstsize, const char *fmt, va_list ap) *n = '_'; n++; } - printf("hts_settings_buildpath(): %s => %s\n", fmt, dst); return 0; }