From owner-svn-src-head@FreeBSD.ORG Wed Jan 11 18:09:53 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 29ECC106566C; Wed, 11 Jan 2012 18:09:53 +0000 (UTC) (envelope-from pluknet@gmail.com) Received: from mail-tul01m020-f182.google.com (mail-tul01m020-f182.google.com [209.85.214.182]) by mx1.freebsd.org (Postfix) with ESMTP id BAF648FC0C; Wed, 11 Jan 2012 18:09:52 +0000 (UTC) Received: by obbwd18 with SMTP id wd18so1874945obb.13 for ; Wed, 11 Jan 2012 10:09:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=kuGHaH5ghvJ8gzoZ45/oHgcyIsra2v3dQXhTZsdYFzU=; b=dq3RzodE2llZ/teRI9RNJjXG2t63rn7dRFagv88cYPxYzHSUoWPQxEUT30FK5r4ASQ /ZhbqdfsODKeCe3ZXgtPDBoM+Iwubw2ocRBQR5LplVsHH2iL0Wpub9KphFELnOBUeUHz z+wLSgcSZV1vtZySdFiOVAgy+OqFcwI6sQXvA= MIME-Version: 1.0 Received: by 10.182.43.10 with SMTP id s10mr193580obl.43.1326305392046; Wed, 11 Jan 2012 10:09:52 -0800 (PST) Sender: pluknet@gmail.com Received: by 10.182.171.67 with HTTP; Wed, 11 Jan 2012 10:09:52 -0800 (PST) In-Reply-To: <201201111751.q0BHpuNF070157@svn.freebsd.org> References: <201201111751.q0BHpuNF070157@svn.freebsd.org> Date: Wed, 11 Jan 2012 21:09:52 +0300 X-Google-Sender-Auth: 3FaMfc5aXYQLRMLXCmnCADN6ANw Message-ID: From: Sergey Kandaurov To: Adrian Chadd Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable 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 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 11 Jan 2012 18:09:53 -0000 On 11 January 2012 21:51, Adrian Chadd 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 > > 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 > > 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 > +#include > +#include > +#include > + > +#include "if_wtapioctl.h" .. to use rather > + > +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