receive.c 1.1 KB

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