Example #1
0
static char *addr2user(const char *addr) {
	FILE        *list;
	static char buf[128];
	const char  *domain;
	int         len;

	domain = strchr(addr, '@');
	if (!domain) domain = addr;
	list = fopen("/var/qmail/users/spam", "r");
	if (!list) return NULL;
	while ((len = better_fgets(buf, sizeof(buf), list))) {
		char *sep = strchr(buf, ':');
		if (buf[0] == '#' || !sep) continue;
		*sep++ = '\0';
		if (cmpaddr(addr, buf)) {
			fclose(list);
			if (*sep == '*') {
				strlcpy(buf, addr, sizeof(buf));
				sep = strchr(buf, '@');
				if (sep) *sep = '\0';
				sep = strchr(buf, '-');
				if (sep) *sep = '\0';
				return strdup(buf);
			}
			return strdup(sep);
		}
	}
	fclose(list);
	return NULL;
}
Example #2
0
int main(int argc, char *argv[])
{
	struct knet_link *head;
	struct sockaddr_in address;
	struct timespec bench_start, bench_end;
	unsigned long long i, bench_diff;

	head = malloc(sizeof(struct knet_link));

	if (head == NULL) {
		printf("Unable to create knet_link\n");
		exit(EXIT_FAILURE);
	}

	memset(head, 0, sizeof(struct knet_link));

	address.sin_family = AF_INET;
	address.sin_port = htons(KNET_PORT);
	address.sin_addr.s_addr = htonl(INADDR_LOOPBACK);

	memmove(&head->address, &address, sizeof(address));

	clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &bench_start);

	for (i = 0; i < KNET_BENCH_LOOPNUM; i++) {
		cmpaddr((struct sockaddr_storage *) &address, sizeof(address),
			(struct sockaddr_storage *) &head->address,
							sizeof(head->address));
	}

	clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &bench_end);

	printf("start sec: %3lu, nsec: %9lu\n  end sec: %3lu, nsec: %9lu\n",
				bench_start.tv_sec, bench_start.tv_nsec,
				bench_end.tv_sec, bench_end.tv_nsec);

	timespec_diff(bench_start, bench_end, &bench_diff);

	printf("end - start = %llums\n", bench_diff);

	return 0;
}