1 /*
2  * mod_echo.c
3  *
4  * Copyright (c) 2001 Dug Song <dugsong@monkey.org>
5  *
6  * $Id: mod_echo.c,v 1.4 2002/04/07 22:55:20 dugsong Exp $
7  */
8 
9 #include "config.h"
10 
11 #include <sys/types.h>
12 
13 #include <stdio.h>
14 #include <stdlib.h>
15 #include <string.h>
16 
17 #include "argv.h"
18 #include "mod.h"
19 
20 void *
echo_open(int argc,char * argv[])21 echo_open(int argc, char *argv[])
22 {
23 	char *p;
24 
25 	if (argc < 2)
26 		return (NULL);
27 
28 	if ((p = argv_copy(argv + 1)) == NULL)
29 		return (NULL);
30 
31 	return (p);
32 }
33 
34 int
echo_apply(void * d,struct pktq * pktq)35 echo_apply(void *d, struct pktq *pktq)
36 {
37 	char *p = (char *)d;
38 
39 	printf("%s\n", p);
40 	return (0);
41 }
42 
43 void *
echo_close(void * d)44 echo_close(void *d)
45 {
46 	if (d != NULL)
47 		free(d);
48 	return (NULL);
49 }
50 
51 struct mod mod_echo = {
52 	"echo",				/* name */
53 	"echo <string> ...",		/* usage */
54 	echo_open,			/* open */
55 	echo_apply,			/* apply */
56 	echo_close			/* close */
57 };
58