From: leslie Date: Tue, 29 Dec 2009 18:03:21 +0000 (+0100) Subject: trigger caid scan on ignore change X-Git-Tag: upstream/620~120 X-Git-Url: http://www.vanbest.org/gitweb/?a=commitdiff_plain;h=dd25f6c7ea62de4bb1fa8922a2d2dd6c3199d0bf;p=sasc-ng.git trigger caid scan on ignore change --- diff --git a/data.c b/data.c index a24d86b..588b013 100644 --- a/data.c +++ b/data.c @@ -304,6 +304,7 @@ void cStructLoader::Load(bool reload) if(SL_TSTFLAG(SL_DISABLED) || (reload && !SL_TSTFLAG(SL_WATCH))) return; FILE *f=fopen(path,"r"); if(f) { + PreLoad(); int curr_mtime=MTime(true); ListLock(true); bool doload=false; diff --git a/data.h b/data.h index e11b830..c93c9d2 100644 --- a/data.h +++ b/data.h @@ -132,6 +132,7 @@ protected: bool IsModified(void) const { return SL_TSTFLAG(SL_MODIFIED); } void ListLock(bool rw) { lock.Lock(rw); } void ListUnlock(void) { lock.Unlock(); } + virtual void PreLoad(void) {} virtual void PostLoad(void) {} public: cStructLoader(const char *Type, const char *Filename, int Flags); diff --git a/override.c b/override.c index 314035b..d4e8743 100644 --- a/override.c +++ b/override.c @@ -24,6 +24,7 @@ #include #include "override.h" +#include "sc.h" #include "misc.h" #include "log-core.h" @@ -555,6 +556,16 @@ cOverrides::cOverrides(void) :cStructList("overrides","override.conf",SL_MISSINGOK|SL_WATCH|SL_VERBOSE) {} +void cOverrides::PreLoad(void) +{ + caidTrigger=false; +} + +void cOverrides::PostLoad(void) +{ + if(caidTrigger) cSoftCAM::CaidsChanged(); +} + cOverride *cOverrides::ParseLine(char *line) { cOverride *ov=0; @@ -567,7 +578,7 @@ cOverride *cOverrides::ParseLine(char *line) else if(!strncasecmp(line,"ecmtable",8)) ov=new cOverrideEcmTable; else if(!strncasecmp(line,"emmtable",8)) ov=new cOverrideEmmTable; else if(!strncasecmp(line,"tunnel",6)) ov=new cOverrideTunnel; - else if(!strncasecmp(line,"ignore",6)) ov=new cOverrideIgnore; + else if(!strncasecmp(line,"ignore",6)) { ov=new cOverrideIgnore; caidTrigger=true; } else if(!strncasecmp(line,"ecmprio",7)) ov=new cOverrideEcmPrio; if(ov && !ov->Parse(p)) { delete ov; ov=0; } } diff --git a/override.h b/override.h index 316f9cb..484d20c 100644 --- a/override.h +++ b/override.h @@ -83,9 +83,13 @@ public: // ---------------------------------------------------------------- class cOverrides : public cStructList { +private: + bool caidTrigger; protected: cOverride *Find(int type, int caid, int source, int transponder, cOverride *ov=0); virtual cOverride *ParseLine(char *line); + virtual void PreLoad(void); + virtual void PostLoad(void); public: cOverrides(void); int GetCat(int source, int transponder, unsigned char *buff, int len); diff --git a/version.h b/version.h index 9296973..b650687 100644 --- a/version.h +++ b/version.h @@ -25,7 +25,7 @@ extern const char *ScVersion; // SC API version number for loading shared libraries -#define SCAPIVERS 28 +#define SCAPIVERS 29 #ifndef STATICBUILD #define SCAPIVERSTAG() int ScLibApiVersion=SCAPIVERS #else