Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
L
lxc
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Chen Yisong
lxc
Commits
a47e327c
Commit
a47e327c
authored
Sep 05, 2016
by
Stéphane Graber
Committed by
GitHub
Sep 05, 2016
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #1169 from brauner/2016-09-04/fix_syslog
syslog tweaks
parents
e3197b0c
83319023
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
64 additions
and
33 deletions
+64
-33
conf.c
src/lxc/conf.c
+1
-0
conf.h
src/lxc/conf.h
+4
-0
confile.c
src/lxc/confile.c
+12
-31
log.c
src/lxc/log.c
+2
-1
log.h
src/lxc/log.h
+36
-1
get_item.c
src/tests/get_item.c
+0
-0
lxctest.h
src/tests/lxctest.h
+9
-0
No files found.
src/lxc/conf.c
View file @
a47e327c
...
@@ -4168,6 +4168,7 @@ void lxc_conf_free(struct lxc_conf *conf)
...
@@ -4168,6 +4168,7 @@ void lxc_conf_free(struct lxc_conf *conf)
free
(
conf
->
init_cmd
);
free
(
conf
->
init_cmd
);
free
(
conf
->
unexpanded_config
);
free
(
conf
->
unexpanded_config
);
free
(
conf
->
pty_names
);
free
(
conf
->
pty_names
);
free
(
conf
->
syslog
);
lxc_clear_config_network
(
conf
);
lxc_clear_config_network
(
conf
);
free
(
conf
->
lsm_aa_profile
);
free
(
conf
->
lsm_aa_profile
);
free
(
conf
->
lsm_se_context
);
free
(
conf
->
lsm_se_context
);
...
...
src/lxc/conf.h
View file @
a47e327c
...
@@ -378,6 +378,10 @@ struct lxc_conf {
...
@@ -378,6 +378,10 @@ struct lxc_conf {
/* indicator if the container will be destroyed on shutdown */
/* indicator if the container will be destroyed on shutdown */
int
ephemeral
;
int
ephemeral
;
/* The facility to pass to syslog. Let's users establish as what type of
* program liblxc is supposed to write to the syslog. */
char
*
syslog
;
};
};
#ifdef HAVE_TLS
#ifdef HAVE_TLS
...
...
src/lxc/confile.c
View file @
a47e327c
...
@@ -273,23 +273,6 @@ static const struct signame signames[] = {
...
@@ -273,23 +273,6 @@ static const struct signame signames[] = {
#endif
#endif
};
};
struct
syslog_facility
{
const
char
*
name
;
int
facility
;
};
static
const
struct
syslog_facility
syslog_facilities
[]
=
{
{
"daemon"
,
LOG_DAEMON
},
{
"local0"
,
LOG_LOCAL0
},
{
"local1"
,
LOG_LOCAL1
},
{
"local2"
,
LOG_LOCAL2
},
{
"local3"
,
LOG_LOCAL3
},
{
"local4"
,
LOG_LOCAL4
},
{
"local5"
,
LOG_LOCAL5
},
{
"local6"
,
LOG_LOCAL6
},
{
"local7"
,
LOG_LOCAL7
},
};
static
const
size_t
config_size
=
sizeof
(
config
)
/
sizeof
(
struct
lxc_config_t
);
static
const
size_t
config_size
=
sizeof
(
config
)
/
sizeof
(
struct
lxc_config_t
);
extern
struct
lxc_config_t
*
lxc_getconfig
(
const
char
*
key
)
extern
struct
lxc_config_t
*
lxc_getconfig
(
const
char
*
key
)
...
@@ -2027,8 +2010,8 @@ int lxc_config_read(const char *file, struct lxc_conf *conf, bool from_include)
...
@@ -2027,8 +2010,8 @@ int lxc_config_read(const char *file, struct lxc_conf *conf, bool from_include)
}
}
/* Catch only the top level config file name in the structure */
/* Catch only the top level config file name in the structure */
if
(
!
conf
->
rcfile
)
if
(
!
conf
->
rcfile
)
conf
->
rcfile
=
strdup
(
file
);
conf
->
rcfile
=
strdup
(
file
);
return
lxc_file_for_each_line
(
file
,
parse_line
,
&
c
);
return
lxc_file_for_each_line
(
file
,
parse_line
,
&
c
);
}
}
...
@@ -2577,6 +2560,8 @@ int lxc_get_config_item(struct lxc_conf *c, const char *key, char *retv,
...
@@ -2577,6 +2560,8 @@ int lxc_get_config_item(struct lxc_conf *c, const char *key, char *retv,
return
lxc_get_conf_int
(
c
,
retv
,
inlen
,
c
->
init_gid
);
return
lxc_get_conf_int
(
c
,
retv
,
inlen
,
c
->
init_gid
);
else
if
(
strcmp
(
key
,
"lxc.ephemeral"
)
==
0
)
else
if
(
strcmp
(
key
,
"lxc.ephemeral"
)
==
0
)
return
lxc_get_conf_int
(
c
,
retv
,
inlen
,
c
->
ephemeral
);
return
lxc_get_conf_int
(
c
,
retv
,
inlen
,
c
->
ephemeral
);
else
if
(
strcmp
(
key
,
"lxc.syslog"
)
==
0
)
v
=
c
->
syslog
;
else
return
-
1
;
else
return
-
1
;
if
(
!
v
)
if
(
!
v
)
...
@@ -2957,19 +2942,15 @@ static int config_ephemeral(const char *key, const char *value,
...
@@ -2957,19 +2942,15 @@ static int config_ephemeral(const char *key, const char *value,
}
}
static
int
config_syslog
(
const
char
*
key
,
const
char
*
value
,
static
int
config_syslog
(
const
char
*
key
,
const
char
*
value
,
struct
lxc_conf
*
lxc_conf
)
struct
lxc_conf
*
lxc_conf
)
{
{
int
n
;
int
facility
;
int
facility
=
-
1
;
facility
=
lxc_syslog_priority_to_int
(
value
);
if
(
facility
==
-
EINVAL
)
{
for
(
n
=
0
;
n
<
sizeof
(
syslog_facilities
)
/
sizeof
((
syslog_facilities
)[
0
]);
n
++
)
{
ERROR
(
"Wrong value for lxc.syslog"
);
if
(
strcasecmp
(
syslog_facilities
[
n
].
name
,
value
)
==
0
)
{
return
-
1
;
facility
=
syslog_facilities
[
n
].
facility
;
lxc_log_syslog
(
facility
);
return
0
;
}
}
}
ERROR
(
"Wrong value for lxc.syslog"
);
lxc_log_syslog
(
facility
);
return
-
1
;
return
config_string_item
(
&
lxc_conf
->
syslog
,
value
)
;
}
}
src/lxc/log.c
View file @
a47e327c
...
@@ -108,8 +108,9 @@ static int log_append_syslog(const struct lxc_log_appender *appender,
...
@@ -108,8 +108,9 @@ static int log_append_syslog(const struct lxc_log_appender *appender,
}
}
syslog
(
lxc_log_priority_to_syslog
(
event
->
priority
),
syslog
(
lxc_log_priority_to_syslog
(
event
->
priority
),
"%s %s - %s:%s:%d - %s"
,
"%s
%s
%s - %s:%s:%d - %s"
,
log_vmname
?
log_vmname
:
""
,
log_vmname
?
log_vmname
:
""
,
log_vmname
?
":"
:
""
,
event
->
category
,
event
->
category
,
event
->
locinfo
->
file
,
event
->
locinfo
->
func
,
event
->
locinfo
->
file
,
event
->
locinfo
->
func
,
event
->
locinfo
->
line
,
event
->
locinfo
->
line
,
...
...
src/lxc/log.h
View file @
a47e327c
...
@@ -26,12 +26,14 @@
...
@@ -26,12 +26,14 @@
#include "config.h"
#include "config.h"
#include <errno.h>
#include <stdarg.h>
#include <stdarg.h>
#include <stdio.h>
#include <stdio.h>
#include <sys/time.h>
#include <sys/time.h>
#include <string.h>
#include <string.h>
#include <strings.h>
#include <strings.h>
#include <stdbool.h>
#include <stdbool.h>
#include <syslog.h>
#include "conf.h"
#include "conf.h"
...
@@ -53,7 +55,7 @@
...
@@ -53,7 +55,7 @@
#define ATTR_UNUSED
#define ATTR_UNUSED
#endif
#endif
/* predefined priorities. */
/* predefined
lxc log
priorities. */
enum
lxc_loglevel
{
enum
lxc_loglevel
{
LXC_LOG_PRIORITY_TRACE
,
LXC_LOG_PRIORITY_TRACE
,
LXC_LOG_PRIORITY_DEBUG
,
LXC_LOG_PRIORITY_DEBUG
,
...
@@ -151,6 +153,24 @@ static inline const char* lxc_log_priority_to_string(int priority)
...
@@ -151,6 +153,24 @@ static inline const char* lxc_log_priority_to_string(int priority)
return
"NOTSET"
;
return
"NOTSET"
;
}
}
}
}
static
inline
const
char
*
lxc_syslog_priority_to_string
(
int
priority
)
{
switch
(
priority
)
{
case
LOG_DAEMON
:
return
"daemon"
;
case
LOG_LOCAL0
:
return
"local0"
;
case
LOG_LOCAL1
:
return
"local1"
;
case
LOG_LOCAL2
:
return
"local2"
;
case
LOG_LOCAL3
:
return
"local3"
;
case
LOG_LOCAL4
:
return
"local4"
;
case
LOG_LOCAL5
:
return
"local5"
;
case
LOG_LOCAL6
:
return
"local6"
;
case
LOG_LOCAL7
:
return
"local7"
;
default:
return
"NOTSET"
;
}
}
/*
/*
* converts a literal priority to an int
* converts a literal priority to an int
*/
*/
...
@@ -169,6 +189,21 @@ static inline int lxc_log_priority_to_int(const char* name)
...
@@ -169,6 +189,21 @@ static inline int lxc_log_priority_to_int(const char* name)
return
LXC_LOG_PRIORITY_NOTSET
;
return
LXC_LOG_PRIORITY_NOTSET
;
}
}
static
inline
int
lxc_syslog_priority_to_int
(
const
char
*
name
)
{
if
(
!
strcasecmp
(
"daemon"
,
name
))
return
LOG_DAEMON
;
if
(
!
strcasecmp
(
"local0"
,
name
))
return
LOG_LOCAL0
;
if
(
!
strcasecmp
(
"local1"
,
name
))
return
LOG_LOCAL1
;
if
(
!
strcasecmp
(
"local2"
,
name
))
return
LOG_LOCAL2
;
if
(
!
strcasecmp
(
"local3"
,
name
))
return
LOG_LOCAL3
;
if
(
!
strcasecmp
(
"local4"
,
name
))
return
LOG_LOCAL4
;
if
(
!
strcasecmp
(
"local5"
,
name
))
return
LOG_LOCAL5
;
if
(
!
strcasecmp
(
"local6"
,
name
))
return
LOG_LOCAL6
;
if
(
!
strcasecmp
(
"local7"
,
name
))
return
LOG_LOCAL7
;
return
-
EINVAL
;
}
static
inline
void
static
inline
void
__lxc_log_append
(
const
struct
lxc_log_appender
*
appender
,
__lxc_log_append
(
const
struct
lxc_log_appender
*
appender
,
struct
lxc_log_event
*
event
)
struct
lxc_log_event
*
event
)
...
...
src/tests/get_item.c
View file @
a47e327c
This diff is collapsed.
Click to expand it.
src/tests/lxctest.h
View file @
a47e327c
...
@@ -28,6 +28,15 @@
...
@@ -28,6 +28,15 @@
#include <stdio.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdlib.h>
#define lxc_debug_stream(stream, format, ...) \
do { \
fprintf(stream, "%s: %d: %s: " format, __FILE__, __LINE__, \
__func__, __VA_ARGS__); \
} while (false)
#define lxc_error(format, ...) lxc_debug_stream(stderr, format, __VA_ARGS__)
#define lxc_debug(format, ...) lxc_debug_stream(stdout, format, __VA_ARGS__)
#define lxc_test_assert_stringify(expression, stringify_expression) \
#define lxc_test_assert_stringify(expression, stringify_expression) \
do { \
do { \
if (!(expression)) { \
if (!(expression)) { \
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment