From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: claudio.bley@gmail.com (Claudio Bley) Newsgroups: gmane.emacs.devel Subject: Re: [PATCH] GnuTLS support on Woe32 Date: Wed, 09 Mar 2011 22:12:33 +0100 Message-ID: <87hbbc0zi6.wl%claudio.bley@gmail.com> References: <87ipvwl1nx.wl%claudio.bley@gmail.com> <83oc5ogp89.fsf@gnu.org> <87ipvuwslp.wl%claudio.bley@gmail.com> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset=US-ASCII X-Trace: dough.gmane.org 1299705190 23964 80.91.229.12 (9 Mar 2011 21:13:10 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Wed, 9 Mar 2011 21:13:10 +0000 (UTC) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Mar 09 22:13:06 2011 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1PxQgr-0006Eq-6A for ged-emacs-devel@m.gmane.org; Wed, 09 Mar 2011 22:13:05 +0100 Original-Received: from localhost ([127.0.0.1]:45794 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PxQgq-0002Ig-BX for ged-emacs-devel@m.gmane.org; Wed, 09 Mar 2011 16:13:04 -0500 Original-Received: from [140.186.70.92] (port=57909 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PxQgj-0002Hb-Ho for emacs-devel@gnu.org; Wed, 09 Mar 2011 16:12:58 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PxQgi-0008S3-BB for emacs-devel@gnu.org; Wed, 09 Mar 2011 16:12:57 -0500 Original-Received: from lo.gmane.org ([80.91.229.12]:44179) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PxQgh-0008Rx-SJ for emacs-devel@gnu.org; Wed, 09 Mar 2011 16:12:56 -0500 Original-Received: from list by lo.gmane.org with local (Exim 4.69) (envelope-from ) id 1PxQga-00063O-8H for emacs-devel@gnu.org; Wed, 09 Mar 2011 22:12:48 +0100 Original-Received: from dslb-188-106-012-040.pools.arcor-ip.net ([188.106.12.40]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Wed, 09 Mar 2011 22:12:48 +0100 Original-Received: from claudio.bley by dslb-188-106-012-040.pools.arcor-ip.net with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Wed, 09 Mar 2011 22:12:48 +0100 X-Injected-Via-Gmane: http://gmane.org/ Mail-Followup-To: emacs-devel@gnu.org Original-Lines: 63 Original-X-Complaints-To: usenet@dough.gmane.org X-Gmane-NNTP-Posting-Host: dslb-188-106-012-040.pools.arcor-ip.net In-Reply-To: <87ipvuwslp.wl%claudio.bley@gmail.com> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI/1.14.6 (Maruoka) FLIM/1.14.9 (=?UTF-8?B?R29qxY0=?=) APEL/10.8 Emacs/23.1 (i686-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO) Mail-Copies-To: never X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-Received-From: 80.91.229.12 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:137000 Archived-At: At Mon, 07 Mar 2011 22:03:46 +0100, Claudio Bley wrote: > > At Sun, 06 Mar 2011 18:58:46 +0200, > Eli Zaretskii wrote: > > > +#ifdef WINDOWSNT > > > +# include "sys/socket.h" > > > +# include "systime.h" > > > + > > > +/* we need to translate Winsock errors because GnuTLS only checks > > > + * for EAGAIN or EINTR */ > > > +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. 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). 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. > > > +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? Considering that these functions would have to be non-static in this case to be accessible by gnutls.c. - Claudio