chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
sd-login: teach sd_pid_get_unit() proper handling of instantiated services
[elogind.git]
/
src
/
journal
/
journal-send.c
diff --git
a/src/journal/journal-send.c
b/src/journal/journal-send.c
index db5dbc0711c7c9a06d0b8f158529064178292ea2..d51aec9690bf48e22988efeceb4bcba8022140bb 100644
(file)
--- a/
src/journal/journal-send.c
+++ b/
src/journal/journal-send.c
@@
-195,7
+195,7
@@
_public_ int sd_journal_sendv(const struct iovec *iov, int n) {
zero(sa);
sa.sun_family = AF_UNIX;
zero(sa);
sa.sun_family = AF_UNIX;
- strncpy(sa.sun_path,
"/run/systemd/journal
", sizeof(sa.sun_path));
+ strncpy(sa.sun_path,
"/run/systemd/journal/socket
", sizeof(sa.sun_path));
zero(mh);
mh.msg_name = &sa;
zero(mh);
mh.msg_name = &sa;
@@
-209,7
+209,7
@@
_public_ int sd_journal_sendv(const struct iovec *iov, int n) {
return 0;
}
return 0;
}
-_public_ int sd_journal_stream_fd(const char *
tag, int priority, int priority
_prefix) {
+_public_ int sd_journal_stream_fd(const char *
identifier, int priority, int level
_prefix) {
union sockaddr_union sa;
int fd;
char *header;
union sockaddr_union sa;
int fd;
char *header;
@@
-225,7
+225,7
@@
_public_ int sd_journal_stream_fd(const char *tag, int priority, int priority_pr
zero(sa);
sa.un.sun_family = AF_UNIX;
zero(sa);
sa.un.sun_family = AF_UNIX;
- strncpy(sa.un.sun_path, "/run/systemd/stdout", sizeof(sa.un.sun_path));
+ strncpy(sa.un.sun_path, "/run/systemd/
journal/
stdout", sizeof(sa.un.sun_path));
r = connect(fd, &sa.sa, offsetof(union sockaddr_union, un.sun_path) + strlen(sa.un.sun_path));
if (r < 0) {
r = connect(fd, &sa.sa, offsetof(union sockaddr_union, un.sun_path) + strlen(sa.un.sun_path));
if (r < 0) {
@@
-233,17
+233,26
@@
_public_ int sd_journal_stream_fd(const char *tag, int priority, int priority_pr
return -errno;
}
return -errno;
}
- if (!tag)
- tag = "";
+ if (shutdown(fd, SHUT_RD) < 0) {
+ close_nointr_nofail(fd);
+ return -errno;
+ }
+
+ if (!identifier)
+ identifier = "";
- l = strlen(
tag
);
- header = alloca(l + 1 + 2 + 2 + 2);
+ l = strlen(
identifier
);
+ header = alloca(l + 1 + 2 + 2 + 2
+ 2 + 2
);
- memcpy(header,
tag
, l);
+ memcpy(header,
identifier
, l);
header[l++] = '\n';
header[l++] = '0' + priority;
header[l++] = '\n';
header[l++] = '\n';
header[l++] = '0' + priority;
header[l++] = '\n';
- header[l++] = '0' + !!priority_prefix;
+ header[l++] = '0' + !!level_prefix;
+ header[l++] = '\n';
+ header[l++] = '0';
+ header[l++] = '\n';
+ header[l++] = '0';
header[l++] = '\n';
header[l++] = '0';
header[l++] = '\n';
header[l++] = '\n';
header[l++] = '0';
header[l++] = '\n';