diff options
author | Taru Karttunen <taruti@taruti.net> | 2011-03-30 15:46:40 +0300 |
---|---|---|
committer | Taru Karttunen <taruti@taruti.net> | 2011-03-30 15:46:40 +0300 |
commit | e5888a1ffdae813d7575f5fb02275c6bb07e5199 (patch) | |
tree | d8d51eac403f07814b9e936eed0c9a79195e2450 /sys/src/cmd/fax/subr.c |
Import sources from 2011-03-30 iso image
Diffstat (limited to 'sys/src/cmd/fax/subr.c')
-rwxr-xr-x | sys/src/cmd/fax/subr.c | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/sys/src/cmd/fax/subr.c b/sys/src/cmd/fax/subr.c new file mode 100755 index 000000000..20248d0a5 --- /dev/null +++ b/sys/src/cmd/fax/subr.c @@ -0,0 +1,71 @@ +#include <u.h> +#include <libc.h> +#include <bio.h> + +#include "modem.h" + +int vflag; + +void +verbose(char *fmt, ...) +{ + va_list arg; + char buf[512]; + + if(vflag){ + va_start(arg, fmt); + vseprint(buf, buf+sizeof(buf), fmt, arg); + va_end(arg); + syslog(0, "fax", buf); + } +} + +void +error(char *fmt, ...) +{ + va_list arg; + char buf[512]; + int n; + + n = sprint(buf, "%s: ", argv0); + va_start(arg, fmt); + vseprint(buf+n, buf+sizeof(buf)-n, fmt, arg); + va_end(arg); + fprint(2, buf); + if(vflag) + print(buf+n); + exits("error"); +} + +static char *errors[] = { + [Eok] "no error", + [Eattn] "can't get modem's attention", + [Enoanswer] "Retry, no answer or busy", + [Enoresponse] "Retry, no response from modem", + [Eincompatible] "Retry, incompatible", + [Esys] "Retry, system call error", + [Eproto] "Retry, fax protocol botch", +}; + +int +seterror(Modem *m, int error) +{ + if(error == Esys) + sprint(m->error, "%s: %r", errors[Esys]); + else + strcpy(m->error, errors[error]); + verbose("seterror: %s", m->error); + return error; +} + +void +faxrlog(Modem *m, int ok) +{ + char buf[1024]; + int n; + + n = sprint(buf, "receive %lud %c %d", m->time, ok == Eok ? 'Y': 'N', m->pageno-1); + if(ok == Eok && (m->valid & Vftsi)) + sprint(buf+n, " %s", m->ftsi); + syslog(0, "fax", buf); +} |