summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKlaus Schmidinger <vdr@tvdr.de>2002-02-02 13:44:24 +0100
committerKlaus Schmidinger <vdr@tvdr.de>2002-02-02 13:44:24 +0100
commitddec0a101bfb97caa23ca731b8041547717a5eb3 (patch)
tree10ae250d9740fae442ca54466ca69e175f223ee9
parent2a31a4eca81b75bfab9a9fbbe2aa8f9eeec38f9f (diff)
downloadvdr-ddec0a101bfb97caa23ca731b8041547717a5eb3.tar.gz
vdr-ddec0a101bfb97caa23ca731b8041547717a5eb3.tar.bz2
Changed the [dei]syslog macros to use var args; fixed error handling in establishing an SVDRP connection
-rw-r--r--CONTRIBUTORS3
-rw-r--r--HISTORY4
-rw-r--r--config.c5
-rw-r--r--dvbapi.c17
-rw-r--r--remux.c5
-rw-r--r--svdrp.c4
-rw-r--r--tools.c5
-rw-r--r--tools.h8
8 files changed, 25 insertions, 26 deletions
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index d340d0fa..1703a3c5 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -182,3 +182,6 @@ Sergei Haller <Sergei.Haller@math.uni-giessen.de>
Andreas Gebel <andreas@xcapenet.de>
for his help in keeping 'channels.conf' up to date
+
+Davide Achilli <davide@objsystem.it>
+ for pointing out a bug in error handling while establishing an SVDRP connection
diff --git a/HISTORY b/HISTORY
index 639304fc..98e04e99 100644
--- a/HISTORY
+++ b/HISTORY
@@ -946,3 +946,7 @@ Video Disk Recorder Revision History
data is cleaned up and when VDR is terminated). Maybe somebody in charge of
the EPG data at the listed channels will read this and take the necessary
actions to fix these things...
+- Changed the [dei]syslog macros in tools.h to use a variable number of args,
+ thus making it safe to use them in nested 'if/else' statements.
+- Fixed error handling in establishing an SVDRP connection (thanks to Davide
+ Achilli) for pointing this out).
diff --git a/config.c b/config.c
index e1e9f03d..918ee348 100644
--- a/config.c
+++ b/config.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: config.c 1.78 2002/02/01 15:35:23 kls Exp $
+ * $Id: config.c 1.79 2002/02/02 12:45:30 kls Exp $
*/
#include "config.h"
@@ -296,9 +296,8 @@ bool cChannel::Switch(cDvbApi *DvbApi, bool Log)
if (!DvbApi)
DvbApi = cDvbApi::PrimaryDvbApi;
if (!DvbApi->Recording() && !groupSep) {
- if (Log) {
+ if (Log)
isyslog(LOG_INFO, "switching to channel %d", number);
- }
for (int i = 3; i--;) {
switch (DvbApi->SetChannel(number, frequency, polarization, diseqc, srate, vpid, apid1, apid2, dpid1, dpid2, tpid, ca, pnr)) {
case scrOk: return true;
diff --git a/dvbapi.c b/dvbapi.c
index 048639c6..314d91f6 100644
--- a/dvbapi.c
+++ b/dvbapi.c
@@ -7,7 +7,7 @@
* DVD support initially written by Andreas Schultz <aschultz@warp10.net>
* based on dvdplayer-0.5 by Matjaz Thaler <matjaz.thaler@guest.arnes.si>
*
- * $Id: dvbapi.c 1.146 2002/01/26 15:39:48 kls Exp $
+ * $Id: dvbapi.c 1.147 2002/02/02 13:04:00 kls Exp $
*/
//#define DVDDEBUG 1
@@ -548,9 +548,8 @@ void cRecordBuffer::Input(void)
}
else if (r < 0) {
if (FATALERRNO) {
- if (errno == EBUFFEROVERFLOW) { // this error code is not defined in the library
+ if (errno == EBUFFEROVERFLOW) // this error code is not defined in the library
esyslog(LOG_ERR, "ERROR (%s,%d): DVB driver buffer overflow", __FILE__, __LINE__);
- }
else {
LOG_ERROR;
break;
@@ -1064,9 +1063,8 @@ cReplayBuffer::cReplayBuffer(cDvbApi *DvbApi, int VideoDev, int AudioDev, const
return;
// Create the index file:
index = new cIndexFile(FileName, false);
- if (!index) {
+ if (!index)
esyslog(LOG_ERR, "ERROR: can't allocate index");
- }
else if (!index->Ok()) {
delete index;
index = NULL;
@@ -2251,9 +2249,8 @@ void cTransferBuffer::Input(void)
}
else if (r < 0) {
if (FATALERRNO) {
- if (errno == EBUFFEROVERFLOW) { // this error code is not defined in the library
+ if (errno == EBUFFEROVERFLOW) // this error code is not defined in the library
esyslog(LOG_ERR, "ERROR (%s,%d): DVB driver buffer overflow", __FILE__, __LINE__);
- }
else {
LOG_ERROR;
break;
@@ -2719,12 +2716,10 @@ bool cDvbApi::Init(void)
}
}
PrimaryDvbApi = dvbApi[0];
- if (NumDvbApis > 0) {
+ if (NumDvbApis > 0)
isyslog(LOG_INFO, "found %d video device%s", NumDvbApis, NumDvbApis > 1 ? "s" : "");
- } // need braces because of isyslog-macro
- else {
+ else
esyslog(LOG_ERR, "ERROR: no video device found, giving up!");
- }
return NumDvbApis > 0;
}
diff --git a/remux.c b/remux.c
index f89b897b..2eb97b50 100644
--- a/remux.c
+++ b/remux.c
@@ -8,7 +8,7 @@
* the Linux DVB driver's 'tuxplayer' example and were rewritten to suit
* VDR's needs.
*
- * $Id: remux.c 1.6 2001/08/19 11:52:05 kls Exp $
+ * $Id: remux.c 1.7 2002/02/02 12:54:30 kls Exp $
*/
/* The calling interface of the 'cRemux::Process()' function is defined
@@ -583,9 +583,8 @@ XXX*/
if (l < 0)
return NULL; // no useful data found, wait for more
if (pt != NO_PICTURE) {
- if (pt < I_FRAME || B_FRAME < pt) {
+ if (pt < I_FRAME || B_FRAME < pt)
esyslog(LOG_ERR, "ERROR: unknown picture type '%d'", pt);
- }
else if (!synced) {
if (pt == I_FRAME) {
resultDelivered = i; // will drop everything before this position
diff --git a/svdrp.c b/svdrp.c
index 67de63c3..eba409bb 100644
--- a/svdrp.c
+++ b/svdrp.c
@@ -10,7 +10,7 @@
* and interact with the Video Disk Recorder - or write a full featured
* graphical interface that sits on top of an SVDRP connection.
*
- * $Id: svdrp.c 1.28 2002/01/13 16:07:42 kls Exp $
+ * $Id: svdrp.c 1.29 2002/02/02 13:33:57 kls Exp $
*/
#include "svdrp.h"
@@ -103,7 +103,7 @@ int cSocket::Accept(void)
int newsock = accept(sock, (struct sockaddr *)&clientname, &size);
if (newsock > 0)
isyslog(LOG_INFO, "connect from %s, port %hd", inet_ntoa(clientname.sin_addr), ntohs(clientname.sin_port));
- else if (errno != EINTR)
+ else if (errno != EINTR && errno != EAGAIN)
LOG_ERROR;
return newsock;
}
diff --git a/tools.c b/tools.c
index dc579e55..0aedad8d 100644
--- a/tools.c
+++ b/tools.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: tools.c 1.53 2002/01/27 12:36:23 kls Exp $
+ * $Id: tools.c 1.54 2002/02/02 13:03:40 kls Exp $
*/
#include "tools.h"
@@ -404,9 +404,8 @@ char *ReadLink(const char *FileName)
if (n < 0) {
if (errno == ENOENT || errno == EINVAL) // file doesn't exist or is not a symlink
TargetName = FileName;
- else { // some other error occurred
+ else // some other error occurred
LOG_ERROR_STR(FileName);
- }
}
else if (n < int(sizeof(RealName))) { // got it!
RealName[n] = 0;
diff --git a/tools.h b/tools.h
index f9390185..4a1132ef 100644
--- a/tools.h
+++ b/tools.h
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: tools.h 1.39 2002/01/26 15:38:10 kls Exp $
+ * $Id: tools.h 1.40 2002/02/02 13:16:47 kls Exp $
*/
#ifndef __TOOLS_H
@@ -20,9 +20,9 @@
extern int SysLogLevel;
-#define esyslog if (SysLogLevel > 0) syslog
-#define isyslog if (SysLogLevel > 1) syslog
-#define dsyslog if (SysLogLevel > 2) syslog
+#define esyslog(a...) void( (SysLogLevel > 0) ? syslog(a) : void() )
+#define isyslog(a...) void( (SysLogLevel > 1) ? syslog(a) : void() )
+#define dsyslog(a...) void( (SysLogLevel > 2) ? syslog(a) : void() )
#define LOG_ERROR esyslog(LOG_ERR, "ERROR (%s,%d): %m", __FILE__, __LINE__)
#define LOG_ERROR_STR(s) esyslog(LOG_ERR, "ERROR: %s: %m", s)