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