<commit_before>#include <config.h>

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <libgen.h>

#include <mopher.h>

#undef BINNAME
#define BINNAME "moco"

#define ACTION_BUCKETS 16
#define BUFLEN 2048


static void
moco_usage(void)
{
	log_error("Usage: %s ACTION OPTIONS", BINNAME);
	log_error("Mopher control client.");
	log_error("");
	log_error("ACTIONS:");
	log_error("  greylist   Manipulate Greylist Database");
	log_error("");
	log_error("GREYLIST OPTIONS:");
	log_error("  -D         Dump mopher greylist database");
	log_error("  -p         Pass greylisting (requires -s, -f and -r )");
	log_error("  -m source  MTA source address or domain");
	log_error("  -f from    Envelope sender address");
	log_error("  -r rcpt    Envelope recipient address");
	log_error("");
	log_error("GENERAL OPTIONS:");
	log_error("  -d level   Debug level 0-7");
	log_error("  -c file    Use configuration file");
	log_error("  -s server  Connect to server");
	log_error("  -?         Show this message");
	log_error("");
	log_error("EXAMPLES:");
	log_error("");
	log_error("  Dump greylist:");
	log_error("  %s greylist -D", BINNAME);
	log_error("");
	log_error("  Pass greylisting:");
	log_error("  %s greylist -p -s example.com -f <EMAIL> -r <EMAIL>", BINNAME);
	log_error("");
	exit(EX_USAGE);
}


static int
moco_greylist_dump(int sock)
{
	char *dump;
	<commit_msg>Fixed another typo in moco usage<commit_after>#include <config.h>

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <libgen.h>

#include <mopher.h>

#undef BINNAME
#define BINNAME "moco"

#define ACTION_BUCKETS 16
#define BUFLEN 2048


static void
moco_usage(void)
{
	log_error("Usage: %s ACTION OPTIONS", BINNAME);
	log_error("Mopher control client.");
	log_error("");
	log_error("ACTIONS:");
	log_error("  greylist   Manipulate Greylist Database");
	log_error("");
	log_error("GREYLIST OPTIONS:");
	log_error("  -D         Dump mopher greylist database");
	log_error("  -p         Pass greylisting (requires -s, -f and -r )");
	log_error("  -m source  MTA source address or domain");
	log_error("  -f from    Envelope sender address");
	log_error("  -r rcpt    Envelope recipient address");
	log_error("");
	log_error("GENERAL OPTIONS:");
	log_error("  -d level   Debug level 0-7");
	log_error("  -c file    Use configuration file");
	log_error("  -s server  Connect to server");
	log_error("  -?         Show this message");
	log_error("");
	log_error("EXAMPLES:");
	log_error("");
	log_error("  Dump greylist:");
	log_error("  %s greylist -D", BINNAME);
	log_error("");
	log_error("  Pass greylisting:");
	log_error("  %s greylist -p -m example.com -f <EMAIL> -r <EMAIL>", BINNAME);
	log_error("");
	exit(EX_USAGE);
}


static int
moco_greylist_dump(int sock)
{
	char *dump;
	
{'fraction_non_alphanumeric': 0.15963107484923733, 'fraction_numerical': 0.005675771550195104, 'mean_word_length': 4.3007518796992485, 'pattern_counts': {'":': 0, '<': 21, '<?xml version=': 0, '>': 21, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1136867', 'n_tokens_mistral': 1086, 'n_tokens_neox': 1082, 'n_words': 285}