test / test (push) Canceled after 0s
The runtime base is debian:trixie-slim, the build stage golang:1.26-trixie:
Postfix 3.10.13 with upstream's 2026 security fixes up to the August
batch, libmilter 8.18.1, OpenSSL 3.5. Every citation of another program in
code, scripts and documents was re-read against the trixie sources
(dev/upstream; bookworm's kept in dev/upstream-bookworm) and updated;
development.md's cited-package table holds the trixie versions.
What the re-reading changed in behaviour:
- logtail: reject lines with sasl_method/sasl_username/sasl_sender
(smtpd_check.c:1019-1026); cleanup's "removed (canceled)" forgets a
port-25 id (cleanup_api.c:363-364).
- internal/postfix/retry.go reads postconf's stdout only: since 3.9 a
deprecated-parameter warning on stderr made one value too many and the
panel fell back to the compiled-in retry policy.
- logrotate-loop.sh: logrotate 3.22 exits 1 when it ignores a config;
the loop refuses on that output whatever the status.
- postfix-config.sh: cyrus_sasl_config_path set explicitly (bookworm's
07_sasl_config.diff is gone); maillog_file_permissions=0640; mynetworks
explicit; Dockerfile: SYNC_CHROOT= in /etc/default/postfix,
opendkim-tools dropped, openssl named, systemd-standalone-sysusers so
cron does not bring the whole of systemd.
- The selfpost group is 10998, outside the system range 100-999: in
trixie a package took 998 and the build failed (owner's decision:
a conflict-free id, the distribution's own ids untouched). The
entrypoint hands /data back by name when the user or the group differs.
Guide, backup refusal text, help (design commit 68ec8b2), e2e.
- smtpd_hide_client_session=yes on smtps and submission (owner's
decision): Received: names no client, TLS, login or protocol; port 25
keeps the full header. e2e checks both.
- test/upstream/opendkim-probe.sh makes keys with openssl genrsa.
Tests: on the server, make e2e exit 0 (674 s, the image built on trixie),
go vet + go test 27 packages ok. CHANGELOG [Unreleased], guide,
architecture.md, security.md, roadmap.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
57 lines
1.4 KiB
C
57 lines
1.4 KiB
C
/*
|
|
* Differential harness for internal/milter/mailparse.go: OpenDKIM's own
|
|
* dkim_mail_parse() (libopendkim/dkim-mailparse.c of the opendkim source the
|
|
* image runs, compiled in by #include), fed one hex-encoded line per input
|
|
* line. Output per line: the error, then the local part and the domain, each
|
|
* "-" when NULL and "=" followed by its bytes in hex otherwise.
|
|
*
|
|
* test/upstream/mailparse-diff.sh <opendkim source dir>
|
|
*
|
|
* builds it in debian:trixie and runs TestMailParseMatchesOpenDKIM with it.
|
|
*/
|
|
#include <sys/types.h>
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
#include "dkim-mailparse.c"
|
|
|
|
static int hexval(int c)
|
|
{
|
|
if (c >= '0' && c <= '9') return c - '0';
|
|
if (c >= 'a' && c <= 'f') return c - 'a' + 10;
|
|
return -1;
|
|
}
|
|
|
|
static void put(const unsigned char *s)
|
|
{
|
|
if (s == NULL) {
|
|
fputs(" -", stdout);
|
|
return;
|
|
}
|
|
fputs(" =", stdout);
|
|
for (; *s != '\0'; s++)
|
|
printf("%02x", *s);
|
|
}
|
|
|
|
int main(void)
|
|
{
|
|
static char hex[1 << 20];
|
|
static unsigned char buf[1 << 19];
|
|
|
|
while (fgets(hex, sizeof hex, stdin) != NULL) {
|
|
size_t n = strcspn(hex, "\r\n"), i;
|
|
unsigned char *user, *domain;
|
|
int err;
|
|
|
|
for (i = 0; i + 1 < n; i += 2)
|
|
buf[i / 2] = (unsigned char) (hexval(hex[i]) << 4 | hexval(hex[i + 1]));
|
|
buf[n / 2] = '\0';
|
|
err = dkim_mail_parse(buf, &user, &domain);
|
|
printf("%d", err);
|
|
put(user);
|
|
put(domain);
|
|
putchar('\n');
|
|
}
|
|
return 0;
|
|
}
|