brintos

brintos / linux-shallow public Read only

0
0
Text · 969 B · bdf5522 Raw
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