17dd7cddfSDavid du Colombier #include <u.h>
27dd7cddfSDavid du Colombier #include <libc.h>
37dd7cddfSDavid du Colombier #include <ip.h>
47dd7cddfSDavid du Colombier
57dd7cddfSDavid du Colombier void
usage(void)67dd7cddfSDavid du Colombier usage(void)
77dd7cddfSDavid du Colombier {
87dd7cddfSDavid du Colombier fprint(2, "usage: %s [-x netmtpt]\n", argv0);
97dd7cddfSDavid du Colombier exits("usage");
107dd7cddfSDavid du Colombier }
117dd7cddfSDavid du Colombier
127dd7cddfSDavid du Colombier void
main(int argc,char ** argv)137dd7cddfSDavid du Colombier main(int argc, char **argv)
147dd7cddfSDavid du Colombier {
157dd7cddfSDavid du Colombier int fd, cfd, n;
16*f27a9a5aSDavid du Colombier char buf[4096], data[128], devdir[40], net[32];
177dd7cddfSDavid du Colombier
18*f27a9a5aSDavid du Colombier setnetmtpt(net, sizeof net, nil);
197dd7cddfSDavid du Colombier
207dd7cddfSDavid du Colombier ARGBEGIN{
217dd7cddfSDavid du Colombier case 'x':
22*f27a9a5aSDavid du Colombier setnetmtpt(net, sizeof net, EARGF(usage()));
237dd7cddfSDavid du Colombier break;
247dd7cddfSDavid du Colombier }ARGEND;
257dd7cddfSDavid du Colombier
267dd7cddfSDavid du Colombier sprint(data, "%s/udp!*!echo", net);
277dd7cddfSDavid du Colombier cfd = announce(data, devdir);
287dd7cddfSDavid du Colombier if(cfd < 0)
29*f27a9a5aSDavid du Colombier sysfatal("can't announce %s: %r", data);
307dd7cddfSDavid du Colombier if(fprint(cfd, "headers") < 0)
317dd7cddfSDavid du Colombier sysfatal("can't set header mode: %r");
327dd7cddfSDavid du Colombier
337dd7cddfSDavid du Colombier sprint(data, "%s/data", devdir);
347dd7cddfSDavid du Colombier fd = open(data, ORDWR);
357dd7cddfSDavid du Colombier if(fd < 0)
36*f27a9a5aSDavid du Colombier sysfatal("open %s: %r", data);
37*f27a9a5aSDavid du Colombier while ((n = read(fd, buf, sizeof buf)) > 0)
38*f27a9a5aSDavid du Colombier write(fd, buf, n);
397dd7cddfSDavid du Colombier if (n < 0)
407dd7cddfSDavid du Colombier sysfatal("error reading: %r");
41*f27a9a5aSDavid du Colombier exits(0);
427dd7cddfSDavid du Colombier }
43