unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: claudio.bley@gmail.com (Claudio Bley)
Cc: emacs-devel@gnu.org
Subject: Re: [PATCH] GnuTLS support on Woe32
Date: Sat, 12 Mar 2011 14:48:35 +0200	[thread overview]
Message-ID: <83oc5gsdwc.fsf@gnu.org> (raw)
In-Reply-To: <87hbbc0zi6.wl%claudio.bley@gmail.com>

> From: claudio.bley@gmail.com (Claudio Bley)
> Date: Wed, 09 Mar 2011 22:12:33 +0100
> 
> > > > +static int
> > > > +wsaerror_to_errno(int err)
> > > > +{
> > > > +  switch (err)
> > > > +    {
> > > > +    case WSAEWOULDBLOCK:
> > > > +      return EAGAIN;
> > > > +    case WSAEINTR:
> > > > +      return EINTR;
> > > > +    default:
> > > > +      return err;
> > > > +    }
> > > > +}
> > > 
> > > Why is this function needed?  Can you extend w32.c:set_errno instead
> > > (if it doesn't already support all the values of WSA* errors that you
> > > need)?
> > 
> > Yes, I could extend w32.c:set_errno, if I move the Windows-specific
> > function to w32.c proper...
> 
> I just had a look at this again. It's not so easy.
> 
> For GnuTLS, I have to map WSAEWOULDBLOCK to EAGAIN. This is set in
> stone.

Set in stone where?  I see this in gnutls.c:

  int
  emacs_gnutls_write (int fildes, struct Lisp_Process *proc, char *buf,
		      unsigned int nbyte)
  {
    register int rtnval, bytes_written;
    gnutls_session_t state = proc->gnutls_state;

    if (proc->gnutls_initstage != GNUTLS_STAGE_READY) {
  #ifdef EWOULDBLOCK
      errno = EWOULDBLOCK;
  #endif
  #ifdef EAGAIN
      errno = EAGAIN;
  #endif
      return -1;
    }

So it looks like it already is prepared to deal with EWOULDBLOCK if
EAGAIN is not available.

> Doing this in w32.c:set_errno would break a lot of other stuff that
> checks for EWOULDBLOCK because that happens to be #define'd to
> WSAEWOULDBLOCK in sys/socket.h:129 (which seems reasonable after all).

If all you need is to produce EAGAIN when you have EWOULDBLOCK (the
other mapping is already in set_errno), it hardly justifies a
function.

But I would like to understand better why you must produce EAGAIN in
the first place.

> It works alright when EWOULDBLOCK is #define'd to EAGAIN. In the end
> it doesn't matter what EWOULDBLOCK is defined to because on Windows
> MinGWs GCC doesn't define it at all, MSVC has it, but WinSock uses
> it's own error codes anyway.

Sorry, I don't follow.  What were you trying to say or suggest here?

> > > > +static ssize_t
> > > > +emacs_gnutls_pull(gnutls_transport_ptr_t p, void* buf, size_t sz)
> > > 
> > > Can we move the Windows-specific functions to w32.c, and only call
> > > them from gnutls.c?  I think we want to keep the Windows-related code
> > > outside w32*.c to the bare minimum.
> > 
> > OK.
> 
> Maybe the GnuTLS specific stuff should also be kept to the bare
> minimum outside of gnutls.c?

What stuff did you have in mind?

> Considering that these functions would have to be non-static in this
> case to be accessible by gnutls.c.

Sure, but I see no problem with that.



  reply	other threads:[~2011-03-12 12:48 UTC|newest]

Thread overview: 142+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-03-06 15:16 [PATCH] GnuTLS support on Woe32 Claudio Bley
2011-03-06 16:58 ` Eli Zaretskii
2011-03-07  7:44   ` Robert Pluim
2011-03-07 10:44     ` Robert Pluim
2011-03-07 11:04       ` Ted Zlatanov
2011-03-07 12:03         ` Robert Pluim
2011-03-07 21:03       ` Claudio Bley
2011-03-08  8:29         ` Robert Pluim
2011-03-08  8:59           ` Eli Zaretskii
2011-03-08  9:11             ` Robert Pluim
2011-03-08  9:14             ` Lars Magne Ingebrigtsen
2011-03-08  9:29               ` Eli Zaretskii
2011-03-09 21:12         ` Claudio Bley
2011-03-12 12:48           ` Eli Zaretskii [this message]
2011-03-13 13:53             ` Claudio Bley
2011-03-13 18:41               ` Eli Zaretskii
2011-03-14  7:43                 ` Claudio Bley
2011-03-14 19:16                   ` Ted Zlatanov
2011-03-15  7:57                     ` Claudio Bley
2011-03-15  9:24                       ` Ted Zlatanov
2011-03-20 21:41                         ` Claudio Bley
2011-03-22  3:20                           ` Ted Zlatanov
2011-03-22  5:40                             ` Stefan Monnier
2011-03-22 13:03                               ` Ted Zlatanov
2011-03-22 16:19                                 ` Robert Pluim
2011-03-22 16:50                                   ` Ted Zlatanov
2011-03-22 17:12                                     ` Robert Pluim
2011-03-22 17:57                                       ` Ted Zlatanov
2011-03-22 18:51                                         ` Stefan Monnier
2011-03-22 18:56                                         ` Robert Pluim
2011-03-22 21:18                                           ` Ted Zlatanov
2011-03-23  8:42                                             ` Robert Pluim
2011-03-22 18:50                                 ` Stefan Monnier
2011-03-22 21:14                                   ` Ted Zlatanov
2011-03-23  1:20                                     ` Stefan Monnier
2011-03-23 15:23                                       ` Ted Zlatanov
2011-03-23 17:50                                         ` Stefan Monnier
2011-03-23 20:57                                           ` Claudio Bley
2011-03-24 19:27                                             ` Ted Zlatanov
2011-03-24 20:07                                               ` Robert Pluim
2011-03-24 20:36                                                 ` Ted Zlatanov
2011-03-25 13:46                                                   ` Robert Pluim
2011-03-25 14:09                                                     ` Ted Zlatanov
2011-04-04  9:58                                               ` Ted Zlatanov
2011-04-14  7:34                                                 ` Deniz Dogan
2011-04-14  9:30                                                   ` Ted Zlatanov
2011-04-15 18:14                                                 ` Ted Zlatanov
2011-04-15 18:23                                                   ` Eli Zaretskii
2011-04-15 22:47                                                     ` Ted Zlatanov
2011-04-15 23:58                                                   ` Richard Stallman
2011-04-16  0:46                                                     ` Ted Zlatanov
2011-04-16  1:45                                                       ` Lars Magne Ingebrigtsen
2011-04-18 15:51                                                         ` Ted Zlatanov
2011-04-21 22:55                                                           ` Ted Zlatanov
2011-04-22  7:07                                                             ` Glenn Morris
2011-04-22 13:12                                                               ` Ted Zlatanov
2011-04-25  1:35                                                                 ` Ted Zlatanov
2011-04-25 12:42                                                                   ` Christoph Scholtes
2011-04-25 12:49                                                                     ` Ted Zlatanov
2011-04-27  1:50                                                                   ` Christoph Scholtes
2011-04-27  3:35                                                                     ` Ted Zlatanov
2011-04-27  3:57                                                                       ` Christoph Scholtes
2011-04-27  4:13                                                                         ` open-network-stream problems on W32 (was: [PATCH] GnuTLS support on Woe32) Ted Zlatanov
2011-04-27  4:34                                                                           ` open-network-stream problems on W32 Christoph Scholtes
2011-05-02 18:37                                                                             ` Ted Zlatanov
2011-05-02 19:00                                                                               ` Ted Zlatanov
2011-05-02 19:15                                                                                 ` Lars Magne Ingebrigtsen
2011-05-02 19:22                                                                                   ` Ted Zlatanov
2011-05-05  3:47                                                                               ` Christoph Scholtes
2011-05-05 10:37                                                                                 ` Eli Zaretskii
2011-05-05 12:27                                                                                   ` Christoph Scholtes
2011-05-05 10:40                                                                                 ` Ted Zlatanov
2011-04-27 12:19                                                                       ` [PATCH] GnuTLS support on Woe32 Juanma Barranquero
2011-05-02 16:20                                                                         ` Juanma Barranquero
2011-05-02 18:29                                                                           ` Ted Zlatanov
2011-05-02 19:00                                                                             ` Juanma Barranquero
2011-05-02 19:12                                                                               ` Ted Zlatanov
2011-05-02 19:38                                                                                 ` Juanma Barranquero
2011-05-02 19:39                                                                                   ` Juanma Barranquero
2011-05-02 19:47                                                                                   ` Ted Zlatanov
2011-05-02 19:53                                                                                     ` Juanma Barranquero
2011-05-02 21:16                                                                                       ` Chong Yidong
2011-05-02 22:45                                                                                         ` Lars Magne Ingebrigtsen
2011-05-02 23:05                                                                                         ` Juanma Barranquero
2011-05-02 20:10                                                                                   ` Tom Tromey
2011-05-02 20:14                                                                                     ` Juanma Barranquero
2011-05-02 20:34                                                                                       ` Eli Zaretskii
2011-05-02 22:46                                                                                   ` Lars Magne Ingebrigtsen
2011-05-02 23:06                                                                                     ` Juanma Barranquero
2011-05-02 19:14                                                                               ` Lars Magne Ingebrigtsen
2011-05-03  2:27                                                                             ` Juanma Barranquero
2011-05-03  4:19                                                                               ` Eli Zaretskii
2011-05-03 10:01                                                                                 ` Juanma Barranquero
2011-05-03 16:47                                                                                   ` Eli Zaretskii
2011-05-03 19:22                                                                                     ` Juanma Barranquero
2011-05-03 23:08                                                                                 ` Juanma Barranquero
2011-05-04  3:05                                                                                   ` Eli Zaretskii
2011-05-04  3:26                                                                                     ` Juanma Barranquero
2011-05-03 14:41                                                                               ` Ted Zlatanov
2011-05-03 18:32                                                                                 ` Andreas Schwab
2011-05-03 18:44                                                                                   ` Drew Adams
2011-05-03 21:28                                                                                     ` Andreas Schwab
2011-05-03 19:15                                                                                   ` Juanma Barranquero
2011-05-03 21:26                                                                                     ` Andreas Schwab
2011-05-03 22:27                                                                                       ` Juanma Barranquero
2011-05-04  7:50                                                                                         ` Andreas Schwab
2011-05-04  8:38                                                                                           ` Juanma Barranquero
2011-05-04  9:04                                                                                             ` David Kastrup
2011-05-04 11:31                                                                                               ` Juanma Barranquero
2011-05-04  5:36                                                                                     ` David Kastrup
2011-05-03 19:35                                                                                 ` Juanma Barranquero
2011-05-03 19:49                                                                                   ` Ted Zlatanov
2011-05-03 19:53                                                                                     ` Juanma Barranquero
2011-05-04  1:30                                                                                 ` Juanma Barranquero
2011-05-04  1:56                                                                                   ` Ted Zlatanov
2011-05-04  3:25                                                                                     ` Juanma Barranquero
2011-05-04  9:33                                                                                       ` Ted Zlatanov
2011-05-04 10:00                                                                                       ` Eli Zaretskii
2011-05-04 11:35                                                                                         ` Juanma Barranquero
2011-03-23 12:25                                     ` Ted Zlatanov
2011-03-23 13:14                                       ` Robert Pluim
2011-03-23 14:58                                         ` Ted Zlatanov
2011-03-23 15:10                                           ` Robert Pluim
2011-03-23 15:49                                             ` Ted Zlatanov
2011-03-23 20:50                               ` Claudio Bley
2011-03-23 21:55                                 ` Stefan Monnier
2011-03-24 15:49                                   ` GNU coding standard highlighting rules (was: [PATCH] GnuTLS support on Woe32) Ted Zlatanov
2011-03-27 21:47                                     ` GNU coding standard highlighting rules Stefan Monnier
2011-03-28 19:28                                       ` Ted Zlatanov
2011-03-23 18:05                       ` [PATCH] GnuTLS support on Woe32 Ted Zlatanov
2011-03-07 11:14     ` Eli Zaretskii
2011-03-07 12:00       ` Robert Pluim
2011-03-07 16:34 ` Lars Magne Ingebrigtsen
2011-03-07 21:33   ` Claudio Bley
2011-03-08  9:16     ` Lars Magne Ingebrigtsen
2011-03-09 21:29       ` Claudio Bley
2011-03-09 21:33         ` Lars Magne Ingebrigtsen
2011-03-10  8:54           ` POP3 UIDL - pop3-leave-mail-on-server (was: [PATCH] GnuTLS support on Woe32) Reiner Steib
2011-03-15 16:08             ` POP3 UIDL - pop3-leave-mail-on-server Lars Magne Ingebrigtsen
2011-03-15 17:49               ` chad
2011-03-08  3:26 ` [PATCH] GnuTLS support on Woe32 Ted Zlatanov
2011-03-09 21:26   ` Claudio Bley

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=83oc5gsdwc.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=claudio.bley@gmail.com \
    --cc=emacs-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).