emacs-devel
[Top][All Lists]
Advanced

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

Re: open-{gnutls,network}-stream backwards compatibility


From: Eli Zaretskii
Subject: Re: open-{gnutls,network}-stream backwards compatibility
Date: Wed, 02 Jan 2019 20:07:47 +0200

> From: Robert Pluim <address@hidden>
> Cc: address@hidden
> Date: Wed, 02 Jan 2019 18:47:55 +0100
> 
> So nil/t would mean :nowait nil/t, and anything else would be a
> plist.

Not exactly.  What I meant is if that arg is _any_ symbol, it is
interpreted as the old NOWAIT argument; otherwise, it has to be a
plist (if not, we signal an error).

> Itʼs not perfect, but I guess backwards compatibility is important.

It is IMO.

> >>     Again Iʼm tempted to change open-network-stream such that not
> >>     specifying :client-certificate is the same as specifying t, so
> >>     that all Emacs core and external packages can take advantage of
> >>     the feature just by adjusting their .authinfo entries, similarly
> >>     to how password lookup automatically works today. However, this
> >>     would be a change in default behaviour, plus I know some people
> >>     are very sensitive to changes in this particular area, so I
> >>     thought Iʼd ask here before doing anything.
> >
> > IMO, we should resist the temptation of making backward-incompatible
> > changes.  From bitter experience, even obscure internal functions are
> > sometimes used, and their users don't expect us to break the APIs.
> 
> That applies to open-gnutls-stream, but I was asking about
> open-network-stream. For people who have no client certificate entries
> in their auth-source, there would be zero difference.

Then perhaps I misunderstand your suggestion.  Please tell more.  (And
I'm talking about those for whom this change _will_ mean some
difference, not those who don't use :client-certificate.)

I guess the part which is confusing me is this:

  change open-network-stream such that not specifying
  :client-certificate is the same as specifying t

Doesn't this mean an incompatible change in behavior?

> If we donʼt change open-network-stream, then I was planning on
> changing all callers in Emacs to use :client-certificate t in any
> case, so only external users of open-network-stream would need to
> update their code to enable automatic use of client certificates. Itʼs
> those external updates I was hoping to avoid.

Now I'm even more confused.



reply via email to

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