Date: Wed, 11 Jan 2012 21:09:52 +0300 From: Sergey Kandaurov <pluknet@freebsd.org> To: Adrian Chadd <adrian@freebsd.org> Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r229972 - in head/tools/tools/wtap: . wtap Message-ID: <CAE-mSOJwre0aqC%2B=uyXX_AO=KW9VxWRUi_B2kQVK37AxcX5qVA@mail.gmail.com> In-Reply-To: <201201111751.q0BHpuNF070157@svn.freebsd.org> References: <201201111751.q0BHpuNF070157@svn.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On 11 January 2012 21:51, Adrian Chadd <adrian@freebsd.org> wrote: > Author: adrian > Date: Wed Jan 11 17:51:56 2012 > New Revision: 229972 > URL: http://svn.freebsd.org/changeset/base/229972 > > Log: > =A0Bring over a tool to create and destroy wtap instances. > > =A0Submitted by: Monthadar Al Jaberi <monthadar@gmail.com> > > Added: > =A0head/tools/tools/wtap/ > =A0head/tools/tools/wtap/wtap/ > =A0head/tools/tools/wtap/wtap/Makefile =A0 (contents, props changed) > =A0head/tools/tools/wtap/wtap/wtap.c =A0 (contents, props changed) > > Added: head/tools/tools/wtap/wtap/Makefile > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- /dev/null =A0 00:00:00 1970 =A0 (empty, because file is newly added) > +++ head/tools/tools/wtap/wtap/Makefile Wed Jan 11 17:51:56 2012 =A0 =A0 = =A0 =A0(r229972) > @@ -0,0 +1,9 @@ > +# $FreeBSD$ > + > +PROG=3D =A0wtap > +SRC=3D =A0 wtap.c > +NO_MAN=3D =A0 =A0 =A0 =A01 > + > +CFLAGS+=3D =A0 =A0 =A0 -I${.CURDIR}/../../../../sys/dev/wtap/ [nitpicking] I assume this is to properly build with if_wtapioctl.h. Maybe better install this header to /usr/include/sys then? > + > +.include <bsd.prog.mk> > > Added: head/tools/tools/wtap/wtap/wtap.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- /dev/null =A0 00:00:00 1970 =A0 (empty, because file is newly added) > +++ head/tools/tools/wtap/wtap/wtap.c =A0 Wed Jan 11 17:51:56 2012 =A0 = =A0 =A0 =A0(r229972) > @@ -0,0 +1,82 @@ > +/*- > + * Copyright (c) 2010-2011 Monthadar Al Jaberi, TerraNet AB > + * All rights reserved. > + * > + * Redistribution and use in source and binary forms, with or without > + * modification, are permitted provided that the following conditions > + * are met: > + * 1. Redistributions of source code must retain the above copyright > + * =A0 =A0notice, this list of conditions and the following disclaimer, > + * =A0 =A0without modification. > + * 2. Redistributions in binary form must reproduce at minimum a disclai= mer > + * =A0 =A0similar to the "NO WARRANTY" disclaimer below ("Disclaimer") a= nd any > + * =A0 =A0redistribution must be conditioned upon including a substantia= lly > + * =A0 =A0similar Disclaimer requirement for further binary redistributi= on. > + * > + * NO WARRANTY > + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS > + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT > + * LIMITED TO, THE IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTIBILIT= Y > + * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHAL= L > + * THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLAR= Y, > + * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT = OF > + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSIN= ESS > + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER > + * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHER= WISE) > + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED O= F > + * THE POSSIBILITY OF SUCH DAMAGES. > + * > + * $FreeBSD$ > + */ > +#include <stdio.h> > +#include <stdlib.h> > +#include <fcntl.h> > +#include <sys/ioctl.h> > + > +#include "if_wtapioctl.h" .. to use rather <net/if_wtapioctl.h> > + > +static int dev =3D -1; > + > +static void create(int id) > +{ > + =A0 =A0if(ioctl(dev, WTAPIOCTLCRT, &id) < 0){ > + =A0 =A0 =A0 printf("error creating wtap with id=3D%d\n", id); > + =A0 =A0} > +} > + > +static void delete(int id) > +{ > + =A0 =A0if(ioctl(dev, WTAPIOCTLDEL, &id) < 0){ > + =A0 =A0 =A0 printf("error deleting wtap with id=3D%d\n", id); > + =A0 =A0} > +} > + > +int main( int argc, const char* argv[]) > +{ > + =A0 =A0if(argc !=3D 3){ > + =A0 =A0 =A0printf("usage: %s [c | d] wtap_id\n", argv[0]); > + =A0 =A0 =A0return -1; > + =A0 =A0} > + =A0 =A0int id =3D atoi(argv[2]); > + =A0 =A0if(!(id >=3D 0 && id < 64)){ > + =A0 =A0 =A0 printf("wtap_id must be between 0 and 7\n"); > + =A0 =A0 =A0 return -1; > + =A0 =A0} This checks to be not larger than 64, but prints a warning to be not larger than 7. > + =A0 =A0dev =3D open("/dev/wtapctl", O_RDONLY); > + =A0 =A0if(dev < 0){ > + =A0 =A0 =A0printf("error opening wtapctl cdev\n"); > + =A0 =A0 =A0return -1; > + =A0 =A0} Perhaps, it makes sense to print errno. > + =A0 =A0switch((char)*argv[1]){ > + =A0 =A0 =A0case 'c': > + =A0 =A0 =A0 create(id); > + =A0 =A0 =A0 break; > + =A0 =A0 =A0case 'd': > + =A0 =A0 =A0 delete(id); > + =A0 =A0 =A0 break; > + =A0 =A0 =A0default: > + =A0 =A0 =A0 printf("wtap ioctl: unkown command '%c'\n", *argv[1]); a typo there > + =A0 =A0 =A0 return -1; > + =A0 =A0} > + =A0 =A0return 0; > +} The code could be better styled. Thanks for your work! --=20 wbr, pluknet
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAE-mSOJwre0aqC%2B=uyXX_AO=KW9VxWRUi_B2kQVK37AxcX5qVA>