1 #include <u.h>
2 #include <libc.h>
3 #include <bio.h>
4
5 #include "modem.h"
6
7 static Modem modems[1];
8
9 static char *spool = "/mail/faxqueue";
10 static char *type = "default";
11 static char *receiverc = "/sys/lib/fax/receiverc";
12
13 static void
receivedone(Modem * m,int ok)14 receivedone(Modem *m, int ok)
15 {
16 char *argv[10], *p, time[16], pages[16];
17 int argc;
18
19 faxrlog(m, ok);
20 if(ok != Eok)
21 return;
22
23 argc = 0;
24 if(p = strrchr(receiverc, '/'))
25 argv[argc++] = p+1;
26 else
27 argv[argc++] = receiverc;
28 sprint(time, "%lud.%d", m->time, m->pid);
29 argv[argc++] = time;
30 argv[argc++] = "Y";
31 sprint(pages, "%d", m->pageno-1);
32 argv[argc++] = pages;
33 if(m->valid & Vftsi)
34 argv[argc++] = m->ftsi;
35 argv[argc] = 0;
36 exec(receiverc, argv);
37 exits("can't exec");
38 }
39
40 static void
usage(void)41 usage(void)
42 {
43 fprint(2, "%s: usage: %s [-v] [-s dir]\n", argv0, argv0);
44 exits("usage");
45 }
46
47 void
main(int argc,char * argv[])48 main(int argc, char *argv[])
49 {
50 Modem *m;
51
52 m = &modems[0];
53
54 ARGBEGIN{
55 case 'v':
56 vflag = 1;
57 break;
58
59 case 's':
60 spool = ARGF();
61 break;
62
63 default:
64 usage();
65 break;
66
67 }ARGEND
68
69 initmodem(m, 0, -1, type, 0);
70 receivedone(m, faxreceive(m, spool));
71
72 exits(0);
73 }
74