summaryrefslogtreecommitdiff
path: root/net-mail/qmailanalog/files
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
committerV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
commit4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch)
treeba5f07bf3f9d22d82e54a462313f5d244036c768 /net-mail/qmailanalog/files
reinit the tree, so we can have metadata
Diffstat (limited to 'net-mail/qmailanalog/files')
-rw-r--r--net-mail/qmailanalog/files/0.70-errno.patch11
-rw-r--r--net-mail/qmailanalog/files/tai64nfrac.c66
2 files changed, 77 insertions, 0 deletions
diff --git a/net-mail/qmailanalog/files/0.70-errno.patch b/net-mail/qmailanalog/files/0.70-errno.patch
new file mode 100644
index 000000000000..4aca1b2b4e58
--- /dev/null
+++ b/net-mail/qmailanalog/files/0.70-errno.patch
@@ -0,0 +1,11 @@
+--- error.h.orig 2003-03-05 15:42:51.000000000 -0500
++++ error.h 2003-03-05 15:43:00.000000000 -0500
+@@ -1,7 +1,7 @@
+ #ifndef ERROR_H
+ #define ERROR_H
+
+-extern int errno;
++#include <errno.h>
+
+ extern int error_intr;
+ extern int error_nomem;
diff --git a/net-mail/qmailanalog/files/tai64nfrac.c b/net-mail/qmailanalog/files/tai64nfrac.c
new file mode 100644
index 000000000000..28e6cdbb8754
--- /dev/null
+++ b/net-mail/qmailanalog/files/tai64nfrac.c
@@ -0,0 +1,66 @@
+/*
+ Convert external TAI64N timestamps to fractional seconds since epoch.
+
+ Written by Russ Allbery <rra@stanford.edu>
+ This work is in the public domain.
+
+Usage:
+
+tai64nfrac < input > output
+
+Expects the input stream to be a sequence of lines beginning with @, a
+timestamp in external TAI64N format, and a space. Replaces the @ and the
+timestamp with fractional seconds since epoch (1970-01-01 00:00:00 UTC).
+The input time format is the format written by tai64n and multilog. The
+output time format is expected by qmailanalog. */
+
+#include <stdio.h>
+
+/* Read a TAI64N external format timestamp from stdin and write fractional
+ seconds since epoch (TAI, not UTC) to stdout. Return the character after
+ the timestamp. */
+int decode(void)
+{
+ int c;
+ unsigned long u;
+ unsigned long seconds = 0;
+ unsigned long nanoseconds = 0;
+
+ while ((c = getchar()) != EOF)
+ {
+ u = c - '0';
+ if (u >= 10)
+ {
+ u = c - 'a';
+ if (u >= 6) break;
+ u += 10;
+ }
+ seconds <<= 4;
+ seconds += nanoseconds >> 28;
+ nanoseconds &= 0xfffffff;
+ nanoseconds <<= 4;
+ nanoseconds += u;
+ }
+ seconds -= 4611686018427387914ULL;
+ printf("%lu.%lu ", seconds, nanoseconds);
+ return c;
+}
+
+
+int main(void)
+{
+ int c;
+ unsigned long seconds;
+ unsigned long nanoseconds;
+
+ while ((c = getchar()) != EOF)
+ {
+ if (c == '@') c = decode();
+ while (c != EOF)
+ {
+ putchar(c);
+ if (c == '\n') break;
+ c = getchar();
+ }
+ }
+}