Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
7
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
steam
systemd
Commits
9726b29e
Commit
9726b29e
authored
May 21, 2010
by
Lennart Poettering
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
log: handle multi-line log messages properly
parent
b6dbbe1c
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
41 additions
and
21 deletions
+41
-21
fixme
fixme
+4
-2
src/log.c
src/log.c
+37
-19
No files found.
fixme
View file @
9726b29e
...
...
@@ -46,8 +46,9 @@
- uuidd DONE
- nscd DONE
- dbus DONE
- rpcbind (/var/run/rpcbind.sock!)
-
dbus
-
avahi-daemon (/var/run/avahi-daemon/socket)
- rsyslog
- cups
- ssh CLASSIC
...
...
@@ -55,7 +56,6 @@
- apache/samba
- libvirtd (/var/run/libvirt/libvirt-sock-ro)
- bluetoothd (/var/run/sdp! @/org/bluez/audio!)
- avahi-daemon (/var/run/avahi-daemon/socket)
- distccd
* teach dbus to talk to systemd when autospawning services
...
...
@@ -63,6 +63,8 @@
* Figure out which signal handlers we actually have to reset in the
forked off child
* loopback-setup is borked for ipv6
Regularly:
* look for close() vs. close_nointr() vs. close_nointr_nofail()
...
...
src/log.c
View file @
9726b29e
...
...
@@ -312,31 +312,49 @@ static int log_dispatch(
const
char
*
file
,
int
line
,
const
char
*
func
,
const
char
*
buffer
)
{
char
*
buffer
)
{
int
r
;
int
r
=
0
;
if
(
log_target
==
LOG_TARGET_SYSLOG_OR_KMSG
||
log_target
==
LOG_TARGET_SYSLOG
)
{
do
{
char
*
e
;
int
k
;
if
((
r
=
write_to_syslog
(
level
,
file
,
line
,
func
,
buffer
))
<
0
)
{
log_close_syslog
();
log_open_kmsg
();
}
else
if
(
r
>
0
)
return
r
;
}
buffer
+=
strspn
(
buffer
,
NEWLINE
);
if
(
log_target
==
LOG_TARGET_SYSLOG_OR_KMSG
||
log_target
==
LOG_TARGET_KMSG
)
{
if
(
buffer
[
0
]
==
0
)
break
;
if
((
r
=
write_to_kmsg
(
level
,
file
,
line
,
func
,
buffer
))
<
0
)
{
log_close_kmsg
();
log_open_console
();
}
else
if
(
r
>
0
)
return
r
;
}
if
((
e
=
strpbrk
(
buffer
,
NEWLINE
)))
*
(
e
++
)
=
0
;
return
write_to_console
(
level
,
file
,
line
,
func
,
buffer
);
if
(
log_target
==
LOG_TARGET_SYSLOG_OR_KMSG
||
log_target
==
LOG_TARGET_SYSLOG
)
{
if
((
r
=
write_to_syslog
(
level
,
file
,
line
,
func
,
buffer
))
<
0
)
{
log_close_syslog
();
log_open_kmsg
();
}
else
if
(
r
>
0
)
r
++
;
}
if
(
log_target
==
LOG_TARGET_SYSLOG_OR_KMSG
||
log_target
==
LOG_TARGET_KMSG
)
{
if
((
r
=
write_to_kmsg
(
level
,
file
,
line
,
func
,
buffer
))
<
0
)
{
log_close_kmsg
();
log_open_console
();
}
else
if
(
r
>
0
)
r
++
;
}
if
((
k
=
write_to_console
(
level
,
file
,
line
,
func
,
buffer
))
<
0
)
return
k
;
buffer
=
e
;
}
while
(
buffer
);
return
r
;
}
int
log_meta
(
...
...
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