Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 24 Jul 2001 14:37:34 -0700
From:      Brooks Davis <brooks@one-eyed-alien.net>
To:        net@freebsd.org, hackers@freebsd.org
Subject:   review request: ng_split cleanup
Message-ID:  <20010724143734.A1412@Odin.AC.HMC.Edu>

next in thread | raw e-mail | index | archive | help

--FL5UXtIhxfXey3p5
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

Please review the following diff for the ng_split netgraph node.  It
cleans up a number of style issues, removes some functions that just did
that the default functions did, and renames the node to split from
ng_split to follow the normal convention.  In addition to this diff, I
plan to commit a Makefile update to make this part of the modules build
and a sys/conf/options entry to allow static compilation.

Thanks,
Brooks

Index: ng_split.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
RCS file: /home/ncvs/src/sys/netgraph/ng_split.c,v
retrieving revision 1.1
diff -u -r1.1 ng_split.c
--- ng_split.c	2001/02/22 17:14:34	1.1
+++ ng_split.c	2001/07/24 21:37:28
@@ -1,5 +1,4 @@
-/*-
- *
+/*
  * Copyright (c) 1999-2000, Vitaly V Belekhov
  * All rights reserved.
  *
@@ -25,7 +24,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * 	$FreeBSD: src/sys/netgraph/ng_split.c,v 1.1 2001/02/22 17:14:34 julian=
 Exp $
+ * $FreeBSD: src/sys/netgraph/ng_split.c,v 1.1 2001/02/22 17:14:34 julian =
Exp $
  *
  */
=20
@@ -46,11 +45,9 @@
=20
 /* Netgraph methods */
 static ng_constructor_t ng_split_constructor;
-static ng_rcvmsg_t ng_split_rcvmsg;
-static ng_shutdown_t ng_split_rmnode;
+static ng_shutdown_t ng_split_shutdown;
 static ng_newhook_t ng_split_newhook;
 static ng_rcvdata_t ng_split_rcvdata;
-static ng_connect_t ng_split_connect;
 static ng_disconnect_t ng_split_disconnect;
=20
 /* Node type descriptor */
@@ -59,11 +56,11 @@
 	NG_SPLIT_NODE_TYPE,
 	NULL,
 	ng_split_constructor,
-	ng_split_rcvmsg,
-	ng_split_rmnode,
+	NULL,
+	ng_split_shutdown,
 	ng_split_newhook,
+	NULL,
 	NULL,
-	ng_split_connect,
 	ng_split_rcvdata,
 	ng_split_disconnect,
 	NULL
@@ -72,9 +69,9 @@
=20
 /* Node private data */
 struct ng_split_private {
-        hook_p outhook;
-        hook_p inhook;
-        hook_p mixed;
+	hook_p out;
+	hook_p in;
+	hook_p mixed;
 	node_p	node;			/* Our netgraph node */
 };
 typedef struct ng_split_private *priv_p;
@@ -89,7 +86,7 @@
 static int
 ng_split_constructor(node_p node)
 {
-	priv_p          priv;
+	priv_p		priv;
=20
 	/* Allocate node */
 	MALLOC(priv, priv_p, sizeof(*priv), M_NETGRAPH, M_ZERO | M_NOWAIT);
@@ -111,42 +108,25 @@
 static int
 ng_split_newhook(node_p node, hook_p hook, const char *name)
 {
-	priv_p          priv =3D NG_NODE_PRIVATE(node);
+	priv_p		priv =3D NG_NODE_PRIVATE(node);
+	hook_p		*localhook;
=20
-	if (strcmp(name, NG_SPLIT_HOOK_MIXED)) {
-		if (strcmp(name, NG_SPLIT_HOOK_INHOOK)) {
-			if (strcmp(name, NG_SPLIT_HOOK_OUTHOOK))
-				return (EPFNOSUPPORT);
-			else {
-				if (priv->outhook !=3D NULL)
-					return (EISCONN);
-				priv->outhook =3D hook;
-				NG_HOOK_SET_PRIVATE(hook, &(priv->outhook));
-			}
-		} else {
-			if (priv->inhook !=3D NULL)
-				return (EISCONN);
-			priv->inhook =3D hook;
-			NG_HOOK_SET_PRIVATE(hook, &(priv->inhook));
-		}
+	if (strcmp(name, NG_SPLIT_HOOK_MIXED) =3D=3D 0) {
+		localhook =3D &priv->mixed;
+	} else if (strcmp(name, NG_SPLIT_HOOK_IN) =3D=3D 0) {
+		localhook =3D &priv->in;
+	} else if (strcmp(name, NG_SPLIT_HOOK_OUT) =3D=3D 0) {
+		localhook =3D &priv->out;
 	} else {
-		if (priv->mixed !=3D NULL)
-			return (EISCONN);
-		priv->mixed =3D hook;
-		NG_HOOK_SET_PRIVATE(hook, &(priv->mixed));
+		return (EPFNOSUPPORT);
 	}
=20
-	return (0);
-}
+	if (*localhook !=3D NULL)
+		return (EISCONN);
+	*localhook =3D hook;
+	NG_HOOK_SET_PRIVATE(hook, localhook);
=20
-/*
- * Receive a control message
- */
-static int
-ng_split_rcvmsg(node_p node, item_p item, hook_p lasthook)
-{
-	NG_FREE_ITEM(item);
-	return (EINVAL);
+	return (0);
 }
=20
 /*
@@ -155,39 +135,26 @@
 static int
 ng_split_rcvdata(hook_p hook, item_p item)
 {
-	meta_p          meta;
-	const priv_p priv =3D NG_NODE_PRIVATE(NG_HOOK_NODE(hook));
-	int             error =3D 0;
+	const priv_p	priv =3D NG_NODE_PRIVATE(NG_HOOK_NODE(hook));
+	int		error =3D 0;
=20
-	if (hook =3D=3D priv->outhook) {
-		printf("ng_split: got packet from outhook!\n");
-		NG_FREE_ITEM(item);
-		return (EINVAL);
-	}
-#if 0 /* should never happen */
-	if (NGI_M(item) =3D=3D NULL) {
-		printf("ng_split: mbuf is null.\n");
+	if (hook =3D=3D priv->out) {
+		printf("ng_split: got packet from out hook!\n");
 		NG_FREE_ITEM(item);
-		return (EINVAL);
-	}
-#endif
-	/*=20
-	 * XXX Really here we should just remove metadata we understand.
-	 */
-	NGI_GET_META(item, meta);
-	NG_FREE_META(meta);
-	if ((hook =3D=3D priv->inhook) && (priv->mixed)) {
+		error =3D EINVAL;
+	} else if ((hook =3D=3D priv->in) && (priv->mixed !=3D NULL)) {
 		NG_FWD_ITEM_HOOK(error, item, priv->mixed);
-	} else if ((hook =3D=3D priv->mixed) && (priv->outhook)) {
-		NG_FWD_ITEM_HOOK(error, item, priv->outhook);
+	} else if ((hook =3D=3D priv->mixed) && (priv->out !=3D NULL)) {
+		NG_FWD_ITEM_HOOK(error, item, priv->out);
 	}
+
 	return (error);
 }
=20
 static int
-ng_split_rmnode(node_p node)
+ng_split_shutdown(node_p node)
 {
-	const priv_p priv =3D NG_NODE_PRIVATE(node);
+	const priv_p	priv =3D NG_NODE_PRIVATE(node);
=20
 	NG_NODE_SET_PRIVATE(node, NULL);
 	NG_NODE_UNREF(node);
@@ -196,31 +163,19 @@
 	return (0);
 }
=20
-
-/*
- * This is called once we've already connected a new hook to the other nod=
e.
- * It gives us a chance to balk at the last minute.
- */
-static int
-ng_split_connect(hook_p hook)
-{
-	/* be really amiable and just say "YUP that's OK by me! " */
-	return (0);
-}
-
 /*
  * Hook disconnection
  */
 static int
 ng_split_disconnect(hook_p hook)
 {
-	if (NG_HOOK_PRIVATE(hook)) {
-		*((hook_p *)NG_HOOK_PRIVATE(hook)) =3D (hook_p)0;
-	}
-
+	hook_p		*localhook =3D NG_HOOK_PRIVATE(hook);
+=09
+	KASSERT(localhook !=3D NULL, ("%s: null info", __FUNCTION__));
+	*localhook =3D NULL;
 	if ((NG_NODE_NUMHOOKS(NG_HOOK_NODE(hook)) =3D=3D 0)
-	&& (NG_NODE_IS_VALID(NG_HOOK_NODE(hook)))) {
-			ng_rmnode_self(NG_HOOK_NODE(hook));
+	    && (NG_NODE_IS_VALID(NG_HOOK_NODE(hook)))) {
+		ng_rmnode_self(NG_HOOK_NODE(hook));
 	}
=20
 	return (0);
Index: ng_split.h
=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
RCS file: /home/ncvs/src/sys/netgraph/ng_split.h,v
retrieving revision 1.1
diff -u -r1.1 ng_split.h
--- ng_split.h	2001/02/22 17:14:34	1.1
+++ ng_split.h	2001/07/24 21:09:57
@@ -25,7 +25,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * 	$FreeBSD: src/sys/netgraph/ng_split.h,v 1.1 2001/02/22 17:14:34 julian=
 Exp $
+ * $FreeBSD: src/sys/netgraph/ng_split.h,v 1.1 2001/02/22 17:14:34 julian =
Exp $
  *
  */
=20
@@ -34,12 +34,12 @@
 #define _NG_SPLIT_H
=20
 /* Node type name and magic cookie */
-#define NG_SPLIT_NODE_TYPE		"ng_split"
-#define NGM_NG_SPLIT_COOKIE		949409402
+#define NG_SPLIT_NODE_TYPE	"split"
+#define NGM_NG_SPLIT_COOKIE	949409402
=20
 /* My hook names */
-#define NG_SPLIT_HOOK_MIXED       	"mixed"		/* Mixed stream (in/out) */
-#define NG_SPLIT_HOOK_OUTHOOK     	"out"		/* Output to outhook (sending ou=
t) */
-#define NG_SPLIT_HOOK_INHOOK	     	"in"		/* Input from inhook (recieving) =
*/
+#define NG_SPLIT_HOOK_MIXED	"mixed"	/* Mixed stream (in/out) */
+#define NG_SPLIT_HOOK_OUT	"out"	/* Output to outhook (sending out) */
+#define NG_SPLIT_HOOK_IN	"in"	/* Input from inhook (recieving) */
=20
 #endif /* _NG_SPLIT_H */

--=20
Any statement of the form "X is the one, true Y" is FALSE.
PGP fingerprint 655D 519C 26A7 82E7 2529  9BF0 5D8E 8BE9 F238 1AD4

--FL5UXtIhxfXey3p5
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: For info see http://www.gnupg.org

iD8DBQE7XeqdXY6L6fI4GtQRAu7xAKDDzx1etCgqGl+gelUPnFebIotBZgCeL3Zf
jduBvdjDp4xCEMPe1Hh8WIQ=
=fQnk
-----END PGP SIGNATURE-----

--FL5UXtIhxfXey3p5--

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010724143734.A1412>