/* * Copyright (c) 2004 Sendmail, Inc. and its suppliers. * All rights reserved. * * By using this file, you agree to the terms and conditions set * forth in the LICENSE file which can be found at the top level of * the sendmail distribution. */ #include "sm/generic.h" SM_RCSID("@(#)$Id: t-smtpsid.c,v 1.3 2007/05/05 02:28:47 ca Exp $") #include "sm/assert.h" #include "sm/error.h" #include "sm/sysexits.h" #include "sm/mta.h" #include "sm/limits.h" #include "sm/io.h" #include "sm/test.h" void test(int pid) { sm_ret_T ret; id_count_T idc, idr, step; sessta_id_T sessid; step = UINT64_MAX / (uint64_t) 64; for (idc = 65535; idc < UINT64_MAX; idc += step) { sm_snprintf(sessid, sizeof(sessid), SMTPS_STID_FORMAT, idc, pid); ret = sm_id2idc(sessid, &idr); SM_TEST(ret == SM_SUCCESS); SM_TEST(idr == idc); } } int main(int argc, char *argv[]) { int c, pid; pid = 1; while ((c = getopt(argc, argv, "dp:")) != -1) { switch (c) { case 'p': pid = (int) strtol(optarg, NULL, 0); break; default: return EX_USAGE; } } sm_test_begin(argc, argv, "test smtps id"); test(pid); return sm_test_end(); }