Version 1.0
_____ From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Jonathan Dumaresq Sent: Wednesday, December 13, 2006 11:59 AM To: uip-users@sics.se Subject: Re: [uip-users] establishing and recognizing a proper TCP connection What version of uip you use ? Jonathan ----- Original Message ----- From: Eric Shufro <mailto:[EMAIL PROTECTED]> To: uip-users@sics.se Sent: Wednesday, December 13, 2006 11:22 AM Subject: RE: [uip-users] establishing and recognizing a proper TCP connection Jonathan, Besides, I am interested in SENDING data after the device has ACKed the last part of the 3-way handshake, not after receiving an ACK. Active Open: Device: SYN Remote: SYN + ACK Device: ACK - handshake complete. Device: PUSH As opposed to: Active Open Device: SYN Remote: SYN + ACK Device: ACK + PUSH --Eric _____ From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Jonathan Dumaresq Sent: Wednesday, December 13, 2006 9:38 AM To: uip-users@sics.se Subject: Re: [uip-users] establishing and recognizing a proper TCP connection have you try to test the uip_acked() in the appcall ? this is fire when you receive a ack. regards Jonathan ----- Original Message ----- From: Eric Shufro <mailto:[EMAIL PROTECTED]> To: uip-users@sics.se Sent: Wednesday, December 13, 2006 2:03 AM Subject: [uip-users] establishing and recognizing a proper TCP connection Does uip_connected() return > 0 (or does the appcall function get called) after the device sends a SYN, and receives a SYN+ACK for an active outgoing connection, or does it return > 0 after the device sends a SYN, receives a SYN+ACK, and then sends an ACK back to the remote host (end of 3 way handshake) ? I am trying to send stock quote requests to yahoo via http and yahoo doesn't reply in the same manner when the device, vs my pc send the same request. What happens is that the application gets called via the appcall function after I call uip_connect(). From this point, I assume we are fully connected and check this using the following condition: if (uip_connected() || uip_rexmit()) to determine if I should call uip_send(). After calling uip_send(), the device sends an ACK+PUSH (with the request) to yahoo. This is fine. However, this is where the difference is. When the PC does this, it is after a FULL 3 way handshake (SYN, SYN+ACK, ACK). Yahoo then pushes the data back and closes the connection. The device however sends the ACK+PUSH after SYN, SYN+ACK, where the next packet is ACK+PUSH. Yahoo doesn't seem to like this without the final ACK in the handshake and they don't close the connection, they do however send some data back (and repeat it many times since we don't ack back properly) but uIP doesn't seem to detect the received data when the appcall function runs again and I check for uip_newdata(). Any ideas? Should I be waiting a bit longer before calling uip_send() to ensure a full connection is made and all 3 steps of the handshake are complete? Thanks, --Eric