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 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 41 usage(void) 42 { 43 fprint(2, "%s: usage: %s [-v] [-s dir]\n", argv0, argv0); 44 exits("usage"); 45 } 46 47 void 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