Is possible that i speak bad English.

but iRcvBufSize/iSndBufSize are imperatively needed without it
we will need to call every transfer to getsockopt to know the system buffer Snd 
and Rcv
to know his size.

If we use 1400 hard coded then the code can produce GPF. (now it is removed)

Now we remove this unneeded fragmentation increasing buffer as possible, using 
system default values
saved at iRcvBufSize/iSndBufSize.

Now you can too try to increase this values to to make packets bigger or lower. 
But never use
hard coded 1400 because the system can put a minor default buffer size. Or 
system can works
too slow to works with full buffer.

Now is corrected and we now use the correct buffer size.

You prefer to call every time to getsockopt to known the buffer size
or you prefer to use iRcvBufSize/iSndBufSize, technically is the same.

We need to know it to protect the transfer.

we now use this values (iRcvBufSize/iSndBufSize) to establish the buffer 
transfer
at the different protocols, than always will be lower than 
iRcvBufSize/iSndBufSize.

but you can't use another buffer size without a risk of GPF.

Actually code is tested at the last 4 months without GPF or other problems.

Of course, it can be better if at the future we can use MT to make asynchronous 
transfers
or use too multi socket transfers to accelerate it.

We had serious problems of transfer speed, and now is solved and without GPF or 
lost data.


Best regards,
Miguel Angel Marchuet


_______________________________________________
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour

Reply via email to