Mathias Dahl <[EMAIL PROTECTED]> writes:

>> Does (make-network-process :name "http" :buffer "http-localhost"
>>                            :host "127.0.0.1" :service 80
>>                            :nowait t)
>> work?
>
> I get no error but it returns `nil'. I guess it should return a
> process object, right?

Yes.  Does it work with hosts other than localhost?

The direct cause of the `nil' return value is this code in process.c:

  if (s < 0)
    {
      /* If non-blocking got this far - and failed - assume non-blocking is
         not supported after all.  This is probably a wrong assumption, but
         the normal blocking calls to open-network-stream handles this error
         better.  */
      if (is_non_blocking_client)
          return Qnil;

This seems to be a bug of some sort.  The documentation doesn't
mention that make-network-process might ever return nil.  I see four
possible solutions; someone who knows Windows should look at this.

1. Make non-blocking connections work on Windows.
2. Make (featurep 'make-network-process '(:nowait t)) return nil on
   Windows.
3. Document that make-network-process returns nil if it fails to
   create a non-blocking socket.
4. Make make-network-socket do a blocking connect if a non-blocking
   connect fails, and document that.

Magnus



_______________________________________________
emacs-pretest-bug mailing list
emacs-pretest-bug@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-pretest-bug

Reply via email to