Quote:
Originally Posted by derrell
eb1150 is connecting to 127.0.0.1:9090
I was looking at the code in proxy1150.cpp and this looks like it should prevent any data that is 0 bytes being sent. Once it finds the end of the string it should close the socket, I think. Maybe some of the data coming out of impserve isn't null terminated.
|
I think there is something really weird going on with your if statement above and impserve! It may be that eb1150 is lacking something in this situation.
I tried to debug eb1150 (by placing debug printf's after each
if segment to print the data); this is the code I used:
Code:
if (data.length() > 0) {
// Parse and dispatch to the proxy methods
if (data.find("gethostbyname") != string::npos) {
cout << "1: " << data << " gethostname\n";
gethostbyname(data);
} else if (data.find("socket") != string::npos) {
cout << "2: " << data << " socket\n";
socket(data);
} else if (data.find("connect") != string::npos) {
cout << "3: " << data << " connect\n";
connect(data);
} else if (data.find("send") != string::npos) {
cout << "4: " << data << " send\n";
send(data);
} else if (data.find("recv") != string::npos) {
cout << "5: " << data << " recv\n";
recv(data);
} else if (data.find("close") != string::npos) {
cout << "6: " << data << " close\n";
close(data);
}
}
I don't understand where all those 0 byte(s) items are being sent from. I tried closing the socket once the 0's showed up, but to no avail. Please note that I numerically ordered the printf's and saw that for (some) transfers the order was 2,3,4,5,6,5 with the last 5 after a close (6) and thus would produce a recv errno = 9.
Now where to look further...
BTW, I think I remember seeing all those 0 byte message when first using Linreb with hyperlinks to the internet, so it may very well be a eb1150 (linux usb driver) issue.
Is there a way to use the ETI (windows) usb driver with wine and bypass eb1150?