help-gnutls
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: gnutls_record_check_pending() issue in GNUTLS 3.0.3 ??


From: frank . krout
Subject: Re: gnutls_record_check_pending() issue in GNUTLS 3.0.3 ??
Date: Wed, 9 Nov 2011 09:30:35 -0500

I'm integrating secure email support into an existing mailer app that functions essentially as a mail client.
So, in sending emails, the processing of SMTP command responses may be delayed while waiting for a particular server.
The legacy code handles this delay using the socket select() call to check for input and timeout if nothing is coming back from a server.

So it is in the client side  that I am using the gnutls_record_check_pending()

Unless I'm missing something, with gnutls I need to emulate socket select() with something like:

                          do { //add sleep function call here
                                  loop++;
                                  sleep( tv.tv_sec );
                                  count_pending = gnutls_record_check_pending( session );
                   }while ( count_pending <= 0 && loop < whatever);

hence, my reasoning for the need to sleep.
In theory if I can't get gnutls_record_check_pending() working, then I'd need to do the sleep unconditionally after every command.

gnutls_record_recv() blocks if it has no data, yes??

Thanks,
Frank

Nikos Mavrogiannopoulos <address@hidden>
Sent by: address@hidden

11/09/2011 06:56 AM

To
address@hidden
cc
GnuTLS mailing list <address@hidden>
Subject
Re: gnutls_record_check_pending() issue in GNUTLS 3.0.3 ??







On Tue, Nov 8, 2011 at 10:16 PM, <address@hidden> wrote:
This is weird, I reduced my receive calls to
peekLen = (long) gnutls_record_recv (esmtpInfo.gnutls.session, esmtpInfo.gnutls.ringBuffer.data, 8);

Yes, 8 bytes at a time ....  
gnutls_record_check_pending()still does not work. It gets called after every complete line of response is received.
Again, runs fine without it.

I would hate to have to put a mandatory sleep after every smtp command, prior to looking for a response.


I don't fully understand your issue. Why do you have to put a sleep? Moreover I don't know your code, thus I cannot understand why you see that behavior. Try doing the following:
client: gnutls_record_send(1024 bytes)

server: gnutls_record_recv(4 bytes)
gnutls_record_check_pending() should return 1020.
 

(please keep the mailing list in CC)

regards,
Nikos


Frank Krout Senior Software Engineer
Office Euro RSCG 4D, 372 Danbury Rd, Wilton, Connecticut 06897
Tel 203.563.3314 Fax 203.563.3434  Web eurorscg.com

 
 Image  Image  Image
____________________________________________________________________________________________________________________

The views and opinions expressed in this e-mail and any accompanying attachment, are those of the author and do not
necessarily represent the views or opinion of Euro RSCG Worldwide, Inc.
To learn more about Euro RSCG, please visit our website at www.eurorscg.com

ImagePlease consider the environment before printing this email.
_____________________________________________________________________________________________________


reply via email to

[Prev in Thread] Current Thread [Next in Thread]