/* ** Copyright (c) 2007 Sendmail, Inc. and its suppliers. ** All rights reserved. ** ** $Id: dkim-testssp.c,v 1.5 2007/10/22 01:28:46 msk Exp $ */ #ifndef lint static char dkim_testssp_c[] = "@(#)$Id: dkim-testssp.c,v 1.5 2007/10/22 01:28:46 msk Exp $"; #endif /* !lint */ /* system includes */ #include #include #include #include #include #include #include /* libsm includes */ #include /* libdkim includes */ #include /* macros */ #define CMDLINEOPTS "d:" #define STRORNULL(x) ((x) == NULL ? "(null)" : (x)) /* globals */ char *progname; /* ** USAGE -- print a usage message ** ** Parameters: ** None. ** ** Return value: ** EX_CONFIG */ int usage(void) { fprintf(stderr, "%s: usage: %s domain [...]\n", progname, progname); return EX_CONFIG; } /* ** MAIN -- program mainline ** ** Parameters: ** argc, argv -- the usual ** ** Return value: ** Exit status. */ int main(int argc, char **argv) { DKIM_STAT status; int i; dkim_policy_t pcode; dkim_handling_t hcode; int presult; DKIM_LIB *lib; char *p; const char *domain = NULL; char err[BUFRSZ]; progname = (p = strrchr(argv[0], '/')) == NULL ? argv[0] : p + 1; lib = dkim_init(NULL, NULL); if (lib == NULL) { fprintf(stderr, "%s: dkim_init() failed\n", progname); return EX_OSERR; } for (i = 1; i < argc; i++) { domain = argv[i]; status = dkim_test_ssp(lib, domain, &pcode, &hcode, &presult, err, sizeof err); if (status != DKIM_STAT_OK) { fprintf(stderr, "%s: %s: %s\n", progname, domain, err); } else { fprintf(stdout, "%s: %s:\n\tpolicy is \"%s\"\n\thandling is \"%s\"\n\tpolicy code is \"%s\"\n", progname, domain, STRORNULL(dkim_getpolicystr(pcode)), STRORNULL(dkim_gethandlingstr(hcode)), STRORNULL(dkim_getpresultstr(presult))); } } (void) dkim_close(lib); return EX_OK; }