1
0
mirror of https://github.com/rofafor/vdr-plugin-satip.git synced 2023-10-10 11:37:42 +00:00

Fixed keepalive heartbeat again.

This commit is contained in:
Rolf Ahrenberg 2014-03-31 22:07:15 +03:00
parent 88b2ad9244
commit 5e8b7b7c5e
5 changed files with 13 additions and 18 deletions

View File

@ -26,9 +26,10 @@ VDR Plugin 'satip' Revision History
- Fixed pid leaking while disabling section filters. - Fixed pid leaking while disabling section filters.
- Fixed keepalive heartbeat. - Fixed keepalive heartbeat.
2014-03-30: Version 0.2.1 2014-04-01: Version 0.2.1
- Changed implementation to report about RTP packet - Changed implementation to report about RTP packet
errors on 5 minutes interval only. errors on 5 minutes interval only.
- Added a check to write new sections only if there - Added a check to write new sections only if there
is no data in the read socket. is no data in the read socket.
- Fixed keepalive heartbeat again.

View File

@ -7,8 +7,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: vdr-satip 0.2.1\n" "Project-Id-Version: vdr-satip 0.2.1\n"
"Report-Msgid-Bugs-To: <see README>\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2014-03-30 03:30+0200\n" "POT-Creation-Date: 2014-04-01 04:01+0200\n"
"PO-Revision-Date: 2014-03-30 03:30+0200\n" "PO-Revision-Date: 2014-04-01 04:01+0200\n"
"Last-Translator: Frank Neumann <fnu@yavdr.org>\n" "Last-Translator: Frank Neumann <fnu@yavdr.org>\n"
"Language-Team: German <vdr@linuxtv.org>\n" "Language-Team: German <vdr@linuxtv.org>\n"
"Language: de\n" "Language: de\n"

View File

@ -7,8 +7,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: vdr-satip 0.2.1\n" "Project-Id-Version: vdr-satip 0.2.1\n"
"Report-Msgid-Bugs-To: <see README>\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2014-03-30 03:30+0200\n" "POT-Creation-Date: 2014-04-01 04:01+0200\n"
"PO-Revision-Date: 2014-03-30 03:30+0200\n" "PO-Revision-Date: 2014-04-01 04:01+0200\n"
"Last-Translator: Rolf Ahrenberg\n" "Last-Translator: Rolf Ahrenberg\n"
"Language-Team: Finnish <vdr@linuxtv.org>\n" "Language-Team: Finnish <vdr@linuxtv.org>\n"
"Language: fi\n" "Language: fi\n"

15
tuner.c
View File

@ -27,7 +27,7 @@ cSatipTuner::cSatipTuner(cSatipDeviceIf &deviceP, unsigned int packetLenP)
keepAliveM(), keepAliveM(),
pidUpdateCacheM(), pidUpdateCacheM(),
sessionM(), sessionM(),
timeoutM(eDefKeepAliveIntervalMs), timeoutM(eMinKeepAliveIntervalMs),
openedM(false), openedM(false),
tunedM(false), tunedM(false),
hasLockM(false), hasLockM(false),
@ -83,9 +83,9 @@ size_t cSatipTuner::HeaderCallback(void *ptrP, size_t sizeP, size_t nmembP, void
int timeout = -1; int timeout = -1;
char *session = NULL; char *session = NULL;
if (sscanf(r, "Session:%m[^;];timeout=%11d", &session, &timeout) == 2) if (sscanf(r, "Session:%m[^;];timeout=%11d", &session, &timeout) == 2)
obj->SetSessionTimeout(skipspace(session), timeout); obj->SetSessionTimeout(skipspace(session), (timeout - 1) * 1000);
else if (sscanf(r, "Session:%m[^;]", &session) == 1) else if (sscanf(r, "Session:%m[^;]", &session) == 1)
obj->SetSessionTimeout(skipspace(session), -1); obj->SetSessionTimeout(skipspace(session));
FREE_POINTER(session); FREE_POINTER(session);
} }
r = strtok_r(NULL, "\r\n", &s); r = strtok_r(NULL, "\r\n", &s);
@ -304,7 +304,7 @@ bool cSatipTuner::Disconnect(void)
if (currentServerM) if (currentServerM)
cSatipDiscover::GetInstance()->UseServer(currentServerM, false); cSatipDiscover::GetInstance()->UseServer(currentServerM, false);
tunedM = false; tunedM = false;
timeoutM = eDefKeepAliveIntervalMs; timeoutM = eMinKeepAliveIntervalMs;
return true; return true;
} }
@ -383,12 +383,7 @@ void cSatipTuner::SetSessionTimeout(const char *sessionP, int timeoutP)
cMutexLock MutexLock(&mutexM); cMutexLock MutexLock(&mutexM);
debug("cSatipTuner::%s(%s, %d)", __FUNCTION__, sessionP, timeoutP); debug("cSatipTuner::%s(%s, %d)", __FUNCTION__, sessionP, timeoutP);
sessionM = sessionP; sessionM = sessionP;
if (timeoutP > 30) timeoutM = (timeoutP > eMinKeepAliveIntervalMs) ? timeoutP : eMinKeepAliveIntervalMs;
timeoutM = timeoutP * 1000L;
else if (timeoutP > 0)
timeoutM = eMinKeepAliveIntervalMs;
else
timeoutM = eDefKeepAliveIntervalMs;
} }
bool cSatipTuner::SetSource(cSatipServer *serverP, const char *parameterP, const int indexP) bool cSatipTuner::SetSource(cSatipServer *serverP, const char *parameterP, const int indexP)

View File

@ -29,8 +29,7 @@ private:
eConnectTimeoutMs = 1500, // in milliseconds eConnectTimeoutMs = 1500, // in milliseconds
ePidUpdateIntervalMs = 100, // in milliseconds ePidUpdateIntervalMs = 100, // in milliseconds
eReConnectTimeoutMs = 5000, // in milliseconds eReConnectTimeoutMs = 5000, // in milliseconds
eMinKeepAliveIntervalMs = 300000, // in milliseconds eMinKeepAliveIntervalMs = 300000 // in milliseconds
eDefKeepAliveIntervalMs = 600000 // in milliseconds
}; };
static size_t HeaderCallback(void *ptrP, size_t sizeP, size_t nmembP, void *dataP); static size_t HeaderCallback(void *ptrP, size_t sizeP, size_t nmembP, void *dataP);
@ -67,7 +66,7 @@ private:
bool ValidateLatestResponse(void); bool ValidateLatestResponse(void);
void ParseReceptionParameters(const char *paramP); void ParseReceptionParameters(const char *paramP);
void SetStreamId(int streamIdP); void SetStreamId(int streamIdP);
void SetSessionTimeout(const char *sessionP, int timeoutP); void SetSessionTimeout(const char *sessionP, int timeoutP = 0);
bool KeepAlive(void); bool KeepAlive(void);
bool UpdateSignalInfoCache(void); bool UpdateSignalInfoCache(void);
bool UpdatePids(void); bool UpdatePids(void);