57 lines · c
1// SPDX-License-Identifier: GPL-2.02#include "aolib.h"3#include <string.h>4 5void randomize_buffer(void *buf, size_t buflen)6{7 int *p = (int *)buf;8 size_t words = buflen / sizeof(int);9 size_t leftover = buflen % sizeof(int);10 11 if (!buflen)12 return;13 14 while (words--)15 *p++ = rand();16 17 if (leftover) {18 int tmp = rand();19 20 memcpy(buf + buflen - leftover, &tmp, leftover);21 }22}23 24__printf(3, 4) int test_echo(const char *fname, bool append,25 const char *fmt, ...)26{27 size_t len, written;28 va_list vargs;29 char *msg;30 FILE *f;31 32 f = fopen(fname, append ? "a" : "w");33 if (!f)34 return -errno;35 36 va_start(vargs, fmt);37 msg = test_snprintf(fmt, vargs);38 va_end(vargs);39 if (!msg) {40 fclose(f);41 return -1;42 }43 len = strlen(msg);44 written = fwrite(msg, 1, len, f);45 fclose(f);46 free(msg);47 return written == len ? 0 : -1;48}49 50const struct sockaddr_in6 addr_any6 = {51 .sin6_family = AF_INET6,52};53 54const struct sockaddr_in addr_any4 = {55 .sin_family = AF_INET,56};57