1 // SPDX-License-Identifier: GPL-2.0
2 #include "aolib.h"
3 #include <string.h>
4
randomize_buffer(void * buf,size_t buflen)5 void 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
test_echo(const char * fname,bool append,const char * fmt,...)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
50 const struct sockaddr_in6 addr_any6 = {
51 .sin6_family = AF_INET6,
52 };
53
54 const struct sockaddr_in addr_any4 = {
55 .sin_family = AF_INET,
56 };
57