mod_echo.c 841 B

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