1
1
mirror of https://github.com/systemd/systemd-stable.git synced 2024-12-23 17:34:00 +03:00

Merge pull request #2425 from yuwata/journal-remote-v4

ZJS: remove unnecessary oom check after strdupa().
This commit is contained in:
Zbigniew Jędrzejewski-Szmek 2016-01-24 11:47:19 -05:00
commit ce262e5760
2 changed files with 43 additions and 18 deletions

View File

@ -293,15 +293,24 @@ journalctl -o export | systemd-journal-remote -o /tmp/dir -
</programlisting>
</para>
<para>Retrieve events from a remote
<para>Retrieve all available events from a remote
<citerefentry><refentrytitle>systemd-journal-gatewayd</refentrytitle><manvolnum>8</manvolnum></citerefentry>
instance and store them in
<filename>/var/log/journal/some.host/remote-some~host.journal</filename>:
<filename>/var/log/journal/remote/remote-some.host.journal</filename>:
<programlisting>
systemd-journal-remote --url http://some.host:19531/
</programlisting>
</para>
</refsect1>
<para>Retrieve current boot events and wait for new events from a remote
<citerefentry><refentrytitle>systemd-journal-gatewayd</refentrytitle><manvolnum>8</manvolnum></citerefentry>
instance, and store them in
<filename>/var/log/journal/remote/remote-some.host.journal</filename>:
<programlisting>
systemd-journal-remote --url http://some.host:19531/entries?boot&amp;follow
</programlisting>
</para>
</refsect1>
<refsect1>
<title>See Also</title>

View File

@ -150,7 +150,7 @@ static int spawn_curl(const char* url) {
return r;
}
static int spawn_getter(const char *getter, const char *url) {
static int spawn_getter(const char *getter) {
int r;
_cleanup_strv_free_ char **words = NULL;
@ -159,10 +159,6 @@ static int spawn_getter(const char *getter, const char *url) {
if (r < 0)
return log_error_errno(r, "Failed to split getter option: %m");
r = strv_extend(&words, url);
if (r < 0)
return log_error_errno(r, "Failed to create command line: %m");
r = spawn_child(words[0], words);
if (r < 0)
log_error_errno(r, "Failed to spawn getter %s: %m", getter);
@ -897,18 +893,32 @@ static int remoteserver_init(RemoteServer *s,
fd);
}
if (arg_getter) {
log_info("Spawning getter %s...", arg_getter);
fd = spawn_getter(arg_getter);
if (fd < 0)
return fd;
r = add_source(s, fd, (char*) arg_output, false);
if (r < 0)
return r;
}
if (arg_url) {
const char *url, *hostname;
const char *url;
char *hostname, *p;
url = strjoina(arg_url, "/entries");
if (arg_getter) {
log_info("Spawning getter %s...", url);
fd = spawn_getter(arg_getter, url);
} else {
log_info("Spawning curl %s...", url);
fd = spawn_curl(url);
if (!strstr(arg_url, "/entries")) {
if (endswith(arg_url, "/"))
url = strjoina(arg_url, "entries");
else
url = strjoina(arg_url, "/entries");
}
else
url = strdupa(arg_url);
log_info("Spawning curl %s...", url);
fd = spawn_curl(url);
if (fd < 0)
return fd;
@ -917,7 +927,13 @@ static int remoteserver_init(RemoteServer *s,
startswith(arg_url, "http://") ?:
arg_url;
r = add_source(s, fd, (char*) hostname, false);
hostname = strdupa(hostname);
if ((p = strchr(hostname, '/')))
*p = '\0';
if ((p = strchr(hostname, ':')))
*p = '\0';
r = add_source(s, fd, hostname, false);
if (r < 0)
return r;
}