All checks were successful
Build and Release / build-and-release (push) Successful in 20s
Multi-file transfer fix (matches binkd sent_fls): - After sending all data for a file, close immediately and add to SentFiles tracking list instead of blocking on M_GOT. Next file starts sending right away — no serial waiting. - M_GOT/M_SKIP now match against SentFiles by filename, not the current TxFile (which may already be on the next file). - EOB only sent when send queue empty AND all SentFiles confirmed. - SessionDone checks SentFiles is empty. - Fixes bidirectional multi-file sessions that were losing files because M_FILE for the next file arrived before previous file's data was fully transmitted. M_FILE receive handler (matches Argus bdrxReceData M_FILE): - When new M_FILE arrives while receiving, finalize current file if data is complete (send M_GOT), or skip if incomplete. - Previously always skipped, discarding completed files. Other changes: - Add 'showkey' command: prints public key from configured private key - Update keygen: show PublicKey as config comment (not parsed at system level) - Replace daemon Sleep(100) with select() on listener socket - Strip trailing NUL bytes from BinkP args (Argus FormatBinkPMsg adds #0) Tested: 5-node simultaneous bidirectional (45 files SHA256 verified), Argus/Radius 4.010 interop (48 files inbound + 5 outbound), BinkIT/sbbs, both BinkP CRAM-MD5+CRYPT and Comet ED25519+ChaCha20 protocols.