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