Hello Nikos,

On 09-04-12 13:34, Nikos Mavrogiannopoulos wrote:
  By checking your log I believe you are right. I see that you receive
a complete record packet split in many tcp segments and
gnutls_record_check_pending() deceives you by including the incomplete
packets to pending data. Would the attached patch solve the issue you
notice? If it works for you it will be included in the next version.

Yes, this works better:

0x995d30 gnutls_record_recv = -28
0x995d30 gnutls_record_check_pending = 0
2 ASSERT: gnutls_buffers.c:510
2 ASSERT: gnutls_record.c:1000
2 ASSERT: gnutls_record.c:1202
0x995d30 gnutls_record_recv = -28
0x995d30 gnutls_record_check_pending = 0
0x995d30 gnutls_record_recv = 2048
0x995d30 gnutls_record_check_pending = 8770
0x995d30 gnutls_record_recv = 2048
0x995d30 gnutls_record_check_pending = 6722
0x995d30 gnutls_record_recv = 2048

I'm getting my data now, without ending up in an almost infinite loop. Thank you!

Would you be able to tell me which versions of GnuTLS are affected by this by the way? I'm thinking of adding a work-around so BitlBee will still work properly with affected GnuTLS versions.


Cheers,

Wilmer van der Gaast.

--
+-------- .''`.     - -- ---+  +        - -- --- ---- ----- ------+
| wilmer : :'  :  gaast.net |  | OSS Programmer   www.bitlbee.org |
| lintux `. `~'  debian.org |  | Full-time geek  wilmer.gaast.net |
+--- -- -  ` ---------------+  +------ ----- ---- --- -- -        +

_______________________________________________
Help-gnutls mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/help-gnutls

Reply via email to