please help the pathetic ones ...
Jan Vicherek (honza@ied.com)
Sun, 24 Jan 1999 01:34:58 -0500
This message is in MIME format. The first part should be readable text,
while the remaining parts are likely unreadable without MIME-aware tools.
Send mail to mime@docserver.cac.washington.edu for more info.
---1463806776-820305495-917159698=:13576
Content-Type: TEXT/PLAIN; charset=US-ASCII
hello,
please help our pathetic efforts. We've killed a couple of hour on this
last night, and it will be a breeze for you, tty io gurus. Thanks in
advance.
We are trying to make a "serial port sniffer/dumper/proxy/logger" which
would only pass traffic from one ser.port to the other and vice versa. And
it would write it into a log (possibly with timestamps).
We made a pathetic attempt, but failed somewhat miserably : it seems that
we can send things to the modem, but are getting garbage back from the
modem. Or nothing.
I've both attached and appended the same simple file "buffer.c" which is
all we are trying to do. Any help would be greatly appreciated !
TIA,
Jan "the pathetic ser.port logger programmer" Vicherek
-- Gospel of Jesus is the saving power of God for all who believe --
## To some, nothing is impossible. ##
http://Vicherek.Waterloo.on.ca/
#include <stdio.h>
#include <unistd.h>
//#include <string.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
//#include <sys/ioctl.h>
#define FOPS
#define STDIN 0
#define STDOUT 1
#define STDERR 2
#define Ssend "/dev/ttyS1"
#define Srec "/dev/ttyS0"
#define Lsend "buffer.send"
#define Lrec "buffer.rec"
#define Lall "buffer.all"
int main (int argc, char *argv[]) {
pid_t pid;
char chBuf;
FILE *fsend, *frec, *lsend, *lrec, *lall;
lall = fopen(Lall, "w+");
//Create read tty process and write tty process
pid = fork();
//pid = 1;
//Intercept from term, SEND to modem
if (pid) {
fsend = fopen(Ssend, "r");
frec = fopen(Srec, "w");
lsend = fopen(Lsend, "w+");
while (1) {
chBuf = getc(fsend);
putc(chBuf, frec);
putc(chBuf, lsend);
putc(chBuf, lall);
fflush(lsend);
fflush(lall);
}
} else {
//RECEIVE from modem, pass to term
frec = fopen(Srec, "r");
fsend = fdopen(Ssend, "w");
lrec = fopen(Lrec, "w+");
while (1) {
chBuf = getc(frec);
putc(chBuf, fsend);
putc(chBuf, lrec);
putc(chBuf, lall);
fflush(lrec);
fflush(lall);
}
}
exit(0);
}
---1463806776-820305495-917159698=:13576
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="buffer.c"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.04.9901240134580.13576@ann.ied.com>
Content-Description: buffer.c
Content-Disposition: attachment; filename="buffer.c"
DQojaW5jbHVkZSA8c3RkaW8uaD4NCiNpbmNsdWRlIDx1bmlzdGQuaD4NCi8v
I2luY2x1ZGUgPHN0cmluZy5oPg0KI2luY2x1ZGUgPGZjbnRsLmg+DQojaW5j
bHVkZSA8c3lzL3R5cGVzLmg+DQojaW5jbHVkZSA8c3lzL3N0YXQuaD4NCi8v
I2luY2x1ZGUgPHN5cy9pb2N0bC5oPg0KDQoNCiNkZWZpbmUgRk9QUw0KDQoj
ZGVmaW5lIFNURElOIDANCiNkZWZpbmUgU1RET1VUIDENCiNkZWZpbmUgU1RE
RVJSIDINCg0KI2RlZmluZSBTc2VuZCAiL2Rldi90dHlTMSINCiNkZWZpbmUg
U3JlYyAiL2Rldi90dHlTMCINCg0KI2RlZmluZSBMc2VuZCAiYnVmZmVyLnNl
bmQiDQojZGVmaW5lIExyZWMgICJidWZmZXIucmVjIg0KI2RlZmluZSBMYWxs
ICAiYnVmZmVyLmFsbCINCg0KaW50IG1haW4gKGludCBhcmdjLCBjaGFyICph
cmd2W10pIHsNCg0KcGlkX3QgcGlkOw0KDQoNCmNoYXIgY2hCdWY7DQpGSUxF
ICpmc2VuZCwgKmZyZWMsICpsc2VuZCwgKmxyZWMsICpsYWxsOw0KbGFsbCA9
IGZvcGVuKExhbGwsICJ3KyIpOw0KDQovL0NyZWF0ZSByZWFkIHR0eSBwcm9j
ZXNzIGFuZCB3cml0ZSB0dHkgcHJvY2Vzcw0KcGlkID0gZm9yaygpOw0KDQov
L3BpZCA9IDE7DQoNCi8vSW50ZXJjZXB0IGZyb20gdGVybSwgU0VORCB0byBt
b2RlbQ0KICAgICAgICBpZiAocGlkKSB7DQoNCiAgICAgICAgICAgICAgICBm
c2VuZCA9IGZkb3BlbihTc2VuZCwgInIiKTsNCiAgICAgICAgICAgICAgICBm
cmVjID0gZm9wZW4oU3JlYywgInciKTsNCiAgICAgICAgICAgICAgICBsc2Vu
ZCA9IGZvcGVuKExzZW5kLCAidysiKTsNCg0KICAgICAgICAgICAgICAgIHdo
aWxlICgxKSB7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIGNoQnVmID0g
Z2V0Yyhmc2VuZCk7DQogICAgICAgICAgICAgICAgICAgICAgICBwdXRjKGNo
QnVmLCBmcmVjKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHB1dGMoY2hC
dWYsIGxzZW5kKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHB1dGMoY2hC
dWYsIGxhbGwpOw0KICAgICAgICAgICAgICAgICAgICAgICAgZmZsdXNoKGxz
ZW5kKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGZmbHVzaChsYWxsKTsN
CiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgfSBlbHNlIHsN
Cg0KIC8vUkVDRUlWRSBmcm9tIG1vZGVtLCBwYXNzIHRvIHRlcm0NCg0KICAg
ICAgICAgICAgICAgIGZyZWMgPSBmb3BlbihTcmVjLCAiciIpOw0KICAgICAg
ICAgICAgICAgIGZzZW5kID0gZmRvcGVuKFNzZW5kLCAidyIpOw0KICAgICAg
ICAgICAgICAgIGxyZWMgPSBmb3BlbihMcmVjLCAidysiKTsNCg0KICAgICAg
ICAgICAgICAgIHdoaWxlICgxKSB7DQogICAgICAgICAgICAgICAgICAgICAg
ICBjaEJ1ZiA9IGdldGMoZnJlYyk7DQogICAgICAgICAgICAgICAgICAgICAg
ICBwdXRjKGNoQnVmLCBmc2VuZCk7DQogICAgICAgICAgICAgICAgICAgICAg
ICBwdXRjKGNoQnVmLCBscmVjKTsNCiAgICAgICAgICAgICAgICAgICAgICAg
IHB1dGMoY2hCdWYsIGxhbGwpOw0KICAgICAgICAgICAgICAgICAgICAgICAg
ZmZsdXNoKGxyZWMpOw0KICAgICAgICAgICAgICAgICAgICAgICAgZmZsdXNo
KGxhbGwpOw0KDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCmV4
aXQoMCk7DQp9DQoNCg==
---1463806776-820305495-917159698=:13576--