1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
|
/*!
* \file mg_tools.c
* \brief A few util functions for standalone and plugin messaging for the vdr muggle plugindatabase
*
* \version $Revision: 1.4 $
* \date $Date$
* \author Ralf Klueber, Lars von Wedel, Andreas Kellner
* \author file owner: $Author$
*/
#include "mg_tools.h"
/*extern "C"
{*/
#include <stdarg.h>
#include <stdio.h>
/*}
*/
#include <stdlib.h>
#define MAX_BUFLEN 2048
#define MAX_QUERY_BUFLEN 2048
static char buffer[MAX_BUFLEN];
static char querybuf[MAX_QUERY_BUFLEN];
static int DEBUG_LEVEL=3;
void mgSetDebugLevel(int new_level)
{
DEBUG_LEVEL = new_level;
}
void mgDebug(int level, const char *fmt, ...)
{
va_list ap;
if(level <= DEBUG_LEVEL)
{
va_start(ap, fmt);
vsnprintf(buffer, MAX_BUFLEN-1, fmt, ap);
if(STANDALONE)
{
fprintf(stderr, "dbg %d: %s\n", level, buffer);
}
else
{
#if !STANDALONE
isyslog( "%s\n", buffer);
#endif
}
}
va_end(ap);
}
void mgDebug( const char *fmt, ... )
{
va_list ap;
va_start( ap, fmt );
mgDebug( 1, fmt, ap );
}
void mgWarning(const char *fmt, ...)
{
va_list ap;
va_start(ap, fmt);
vsnprintf(buffer, MAX_BUFLEN-1, fmt, ap);
if(STANDALONE)
{
fprintf(stderr, "warning: %s\n", buffer);
}
else
{
#if !STANDALONE
isyslog( "Warning: %s\n", buffer);
#endif
}
va_end(ap);
}
void mgError(const char *fmt, ...)
{
va_list ap;
va_start(ap, fmt);
vsnprintf(buffer, MAX_BUFLEN-1, fmt, ap);
if(STANDALONE)
{
fprintf(stderr, "Error: %s\n", buffer);
exit(1);
}
else
{
#if !STANDALONE
isyslog( "Error in Muggle: %s\n", buffer);
#endif
}
va_end(ap);
}
MYSQL_RES* mgSqlReadQuery(MYSQL *db, const char *fmt, ...)
{
va_list ap;
va_start( ap, fmt );
vsnprintf( querybuf, MAX_QUERY_BUFLEN-1, fmt, ap );
if( mysql_query(db, querybuf) )
{
mgError( "SQL error in MUGGLE:\n%s\n", querybuf );
}
MYSQL_RES *result = mysql_store_result(db);
va_end(ap);
return result;
}
void mgSqlWriteQuery(MYSQL *db, const char *fmt, ...)
{
va_list ap;
va_start(ap, fmt);
vsnprintf(querybuf, MAX_QUERY_BUFLEN-1, fmt, ap);
if( mysql_query(db, querybuf) )
{
mgError( "SQL error in MUGGLE:\n%s\n", querybuf );
}
va_end(ap);
}
|