X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fjournal%2Fjournal-send.c;h=ddf503b18d72663c30de53e6dcb98ac620fa8139;hb=e6520a0fcebb4d5e07f4c81a51382501b0beb22f;hp=176aac2792d4b77b0d49091e7ee76ce518aa7d26;hpb=259d2e762041d8d50c2a17bfea90b1a96f6b880b;p=elogind.git diff --git a/src/journal/journal-send.c b/src/journal/journal-send.c index 176aac279..ddf503b18 100644 --- a/src/journal/journal-send.c +++ b/src/journal/journal-send.c @@ -209,7 +209,7 @@ _public_ int sd_journal_sendv(const struct iovec *iov, int n) { 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; @@ -233,17 +233,22 @@ _public_ int sd_journal_stream_fd(const char *tag, int priority, int priority_pr return -errno; } - if (!tag) - tag = ""; + if (shutdown(fd, SHUT_RD) < 0) { + close_nointr_nofail(fd); + return -errno; + } + + if (!identifier) + identifier = ""; - l = strlen(tag); + 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++] = '0' + !!priority_prefix; + header[l++] = '0' + !!level_prefix; header[l++] = '\n'; header[l++] = '0'; header[l++] = '\n';