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