/*
* Copyright (c) 2005 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-greyrm.c,v 1.2 2006/11/30 04:32:59 ca Exp $")
#include "sm/assert.h"
#include "sm/error.h"
#include "sm/types.h"
#include "sm/net.h"
#include "sm/greyctl.h"
#include "sm/greycnf.h"
#include "sm/io.h"
#include "sm/test.h"
#include "greyctl.h"
static int Verbose = 0;
static void
greyrm(int argc, char **argv)
{
sm_ret_T ret;
int i;
ipv4_T addr;
greyctx_P greyctx;
ret = sm_greyctl_crt(&greyctx);
SM_TEST(ret == SM_SUCCESS);
if (ret != SM_SUCCESS)
return;
ret = sm_greyctl_open(greyctx, NULL);
SM_TEST(ret == SM_SUCCESS);
if (ret != SM_SUCCESS)
return;
for (i = 0; i < argc; i++)
{
ret = sm_inet_a2ipv4(argv[i], NULL, &addr);
if (sm_is_success(ret))
{
ret = sm_grey_rm(greyctx->greyc_grey_db, (uchar *)&addr, sizeof(addr));
if (Verbose)
sm_io_fprintf(smioerr, "ip=%A, rm=%r\n",
addr, ret);
}
}
ret = sm_greyctl_free(greyctx);
SM_TEST(ret == SM_SUCCESS);
}
int
main(int argc, char *argv[])
{
int c;
while ((c = getopt(argc, argv, "V")) != -1)
{
switch (c)
{
case 'V':
++Verbose;
break;
default:
return(1);
}
}
argc -= optind;
argv += optind;
greyrm(argc, argv);
return 0;
}
syntax highlighted by Code2HTML, v. 0.9.1