xref: /plan9-contrib/sys/src/cmd/fax/send.c (revision 219b2ee8daee37f4aad58d63f21287faa8e4ffdc)
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 void
10*219b2ee8SDavid du Colombier usage(void)
11*219b2ee8SDavid du Colombier {
12*219b2ee8SDavid du Colombier 	fprint(2, "%s: usage: %s [-v] number pages\n", argv0, argv0);
13*219b2ee8SDavid du Colombier 	exits("usage");
14*219b2ee8SDavid du Colombier }
15*219b2ee8SDavid du Colombier 
16*219b2ee8SDavid du Colombier void
17*219b2ee8SDavid du Colombier main(int argc, char *argv[])
18*219b2ee8SDavid du Colombier {
19*219b2ee8SDavid du Colombier 	int fd, cfd, r;
20*219b2ee8SDavid du Colombier 	Modem *m;
21*219b2ee8SDavid du Colombier 	char *addr;
22*219b2ee8SDavid du Colombier 
23*219b2ee8SDavid du Colombier 	m = &modems[0];
24*219b2ee8SDavid du Colombier 
25*219b2ee8SDavid du Colombier 	ARGBEGIN{
26*219b2ee8SDavid du Colombier 	case 'v':
27*219b2ee8SDavid du Colombier 		vflag = 1;
28*219b2ee8SDavid du Colombier 		break;
29*219b2ee8SDavid du Colombier 	default:
30*219b2ee8SDavid du Colombier 		usage();
31*219b2ee8SDavid du Colombier 		break;
32*219b2ee8SDavid du Colombier 
33*219b2ee8SDavid du Colombier 	}ARGEND
34*219b2ee8SDavid du Colombier 
35*219b2ee8SDavid du Colombier 	if(argc <= 1)
36*219b2ee8SDavid du Colombier 		usage();
37*219b2ee8SDavid du Colombier 	verbose("send: %s %s...", argv[0], argv[1]);
38*219b2ee8SDavid du Colombier 
39*219b2ee8SDavid du Colombier 	addr = netmkaddr(*argv, "telco", "fax!19200");
40*219b2ee8SDavid du Colombier 	fd = dial(addr, 0, 0, &cfd);
41*219b2ee8SDavid du Colombier 	if(fd < 0){
42*219b2ee8SDavid du Colombier 		fprint(2, "faxsend: can't dial %s: %r\n", addr);
43*219b2ee8SDavid du Colombier 		exits("Retry, can't dial");
44*219b2ee8SDavid du Colombier 	}
45*219b2ee8SDavid du Colombier 	initmodem(m, fd, cfd, 0, 0);
46*219b2ee8SDavid du Colombier 	argc--; argv++;
47*219b2ee8SDavid du Colombier 	xonoff(m, 1);
48*219b2ee8SDavid du Colombier 	r = faxsend(m, argc, argv);
49*219b2ee8SDavid du Colombier 	xonoff(m, 0);
50*219b2ee8SDavid du Colombier 	if(r != Eok){
51*219b2ee8SDavid du Colombier 		fprint(2, "faxsend: %s\n", m->error);
52*219b2ee8SDavid du Colombier 		syslog(0, "fax", "failed %s %s: %s", argv[0], argv[1], m->error);
53*219b2ee8SDavid du Colombier 		exits(m->error);
54*219b2ee8SDavid du Colombier 	}
55*219b2ee8SDavid du Colombier 	syslog(0, "fax", "success %s %s", argv[0], argv[1]);
56*219b2ee8SDavid du Colombier 	exits(0);
57*219b2ee8SDavid du Colombier }
58