annotate lisp/tcp.el @ 18092:8428d56cd207

(smtpmail-via-smtp): Recognize XVRB as a synonym for VERB and XONE as a synonym for ONEX. (smtpmail-read-response): Add "%s" to `message' calls to avoid problems with percent signs in strings. (smtpmail-read-response): Return all lines of the response text as a list of strings. Formerly only the first line was returned. This is insufficient when one wants to parse e.g. an EHLO response. Ignore responses starting with "0". This is necessary to support the VERB SMTP extension. (smtpmail-via-smtp): Try EHLO and find out which SMTP service extensions the receiving mailer supports. Issue the ONEX and XUSR commands if the corresponding extensions are supported. Issue VERB if supported and `smtpmail-debug-info' is non-nil. Add SIZE attribute to MAIL FROM: command if SIZE extension is supported. Add code that could set the BODY= attribute to MAIL FROM: if the receiving mailer supports 8BITMIME. This is currently disabled, since doing it right might involve adding MIME headers to, and in some cases reencoding, the message.
author Richard M. Stallman <rms@gnu.org>
date Sun, 01 Jun 1997 22:24:22 +0000
parents bd56cdc4d07b
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
15261
bd56cdc4d07b Fixed up initial line
Erik Naggum <erik@naggum.no>
parents: 14169
diff changeset
1 ;;; tcp.el --- TCP/IP stream emulation for GNU Emacs
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 2909
diff changeset
2
2908
fea2f9ef375b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3 ;; Copyright (C) 1988, 1989, 1993 Free Software Foundation, Inc.
fea2f9ef375b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 2909
diff changeset
5 ;; Author: Masanobu Umeda
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 2909
diff changeset
6 ;; Maintainer: umerin@mse.kyutech.ac.jp
2908
fea2f9ef375b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7
fea2f9ef375b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8 ;; This file is part of GNU Emacs.
fea2f9ef375b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9
2909
62f6fd783884 entered into RCS
Richard M. Stallman <rms@gnu.org>
parents: 2908
diff changeset
10 ;; GNU Emacs is free software; you can redistribute it and/or modify
62f6fd783884 entered into RCS
Richard M. Stallman <rms@gnu.org>
parents: 2908
diff changeset
11 ;; it under the terms of the GNU General Public License as published by
62f6fd783884 entered into RCS
Richard M. Stallman <rms@gnu.org>
parents: 2908
diff changeset
12 ;; the Free Software Foundation; either version 2, or (at your option)
62f6fd783884 entered into RCS
Richard M. Stallman <rms@gnu.org>
parents: 2908
diff changeset
13 ;; any later version.
2908
fea2f9ef375b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14
2909
62f6fd783884 entered into RCS
Richard M. Stallman <rms@gnu.org>
parents: 2908
diff changeset
15 ;; GNU Emacs is distributed in the hope that it will be useful,
62f6fd783884 entered into RCS
Richard M. Stallman <rms@gnu.org>
parents: 2908
diff changeset
16 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
62f6fd783884 entered into RCS
Richard M. Stallman <rms@gnu.org>
parents: 2908
diff changeset
17 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
62f6fd783884 entered into RCS
Richard M. Stallman <rms@gnu.org>
parents: 2908
diff changeset
18 ;; GNU General Public License for more details.
62f6fd783884 entered into RCS
Richard M. Stallman <rms@gnu.org>
parents: 2908
diff changeset
19
62f6fd783884 entered into RCS
Richard M. Stallman <rms@gnu.org>
parents: 2908
diff changeset
20 ;; You should have received a copy of the GNU General Public License
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 2909
diff changeset
21 ;; along with GNU Emacs; see the file COPYING. If not, write to the
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 2909
diff changeset
22 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 2909
diff changeset
23 ;; Boston, MA 02111-1307, USA.
2909
62f6fd783884 entered into RCS
Richard M. Stallman <rms@gnu.org>
parents: 2908
diff changeset
24
62f6fd783884 entered into RCS
Richard M. Stallman <rms@gnu.org>
parents: 2908
diff changeset
25 ;;; Commentary:
2908
fea2f9ef375b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
26
fea2f9ef375b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
27 ;; Notes on TCP package:
fea2f9ef375b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
28 ;;
fea2f9ef375b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
29 ;; This package provides a TCP/IP stream emulation for GNU Emacs. If
fea2f9ef375b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
30 ;; the function `open-network-stream' is not defined in Emacs, but
fea2f9ef375b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
31 ;; your operating system has a capability of network stream
fea2f9ef375b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
32 ;; connection, this tcp package can be used for communicating with
fea2f9ef375b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
33 ;; NNTP server.
fea2f9ef375b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
34 ;;
fea2f9ef375b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
35 ;; The tcp package runs inferior process which actually does the role
fea2f9ef375b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
36 ;; of `open-network-stream'. The program `tcp' provided with this
fea2f9ef375b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
37 ;; package can be used for such purpose. Before loading the package,
fea2f9ef375b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
38 ;; compile `tcp.c' and install it as `tcp' in a directory in the emacs
fea2f9ef375b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
39 ;; search path. If you modify `tcp.c', please send diffs to the author
fea2f9ef375b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
40 ;; of GNUS. I'll include some of them in the next releases.
fea2f9ef375b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
41
2909
62f6fd783884 entered into RCS
Richard M. Stallman <rms@gnu.org>
parents: 2908
diff changeset
42 ;;; Code:
62f6fd783884 entered into RCS
Richard M. Stallman <rms@gnu.org>
parents: 2908
diff changeset
43
2908
fea2f9ef375b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
44 (provide 'tcp)
fea2f9ef375b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
45
fea2f9ef375b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
46 (defvar tcp-program-name "tcp"
fea2f9ef375b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
47 "*The name of the program emulating open-network-stream function.")
fea2f9ef375b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
48
fea2f9ef375b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
49 (defun open-network-stream (name buffer host service)
fea2f9ef375b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
50 "Open a TCP connection for a service to a host.
fea2f9ef375b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
51 Returns a subprocess-object to represent the connection.
fea2f9ef375b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
52 Input and output work as for subprocesses; `delete-process' closes it.
fea2f9ef375b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
53 Args are NAME BUFFER HOST SERVICE.
fea2f9ef375b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
54 NAME is name for process. It is modified if necessary to make it unique.
fea2f9ef375b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
55 BUFFER is the buffer (or buffer-name) to associate with the process.
fea2f9ef375b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
56 Process output goes at end of that buffer, unless you specify
fea2f9ef375b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
57 an output stream or filter function to handle the output.
fea2f9ef375b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
58 BUFFER may be also nil, meaning that this process is not associated
fea2f9ef375b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
59 with any buffer
fea2f9ef375b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
60 Third arg is name of the host to connect to.
fea2f9ef375b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
61 Fourth arg SERVICE is name of the service desired, or an integer
fea2f9ef375b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
62 specifying a port number to connect to."
fea2f9ef375b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
63 (let ((proc (start-process name buffer
fea2f9ef375b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
64 tcp-program-name
fea2f9ef375b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
65 host
fea2f9ef375b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
66 (if (stringp service)
fea2f9ef375b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
67 service
fea2f9ef375b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
68 (int-to-string service))
fea2f9ef375b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
69 )))
fea2f9ef375b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
70 (process-kill-without-query proc)
fea2f9ef375b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
71 ;; Return process
fea2f9ef375b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
72 proc
fea2f9ef375b Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
73 ))
2909
62f6fd783884 entered into RCS
Richard M. Stallman <rms@gnu.org>
parents: 2908
diff changeset
74
62f6fd783884 entered into RCS
Richard M. Stallman <rms@gnu.org>
parents: 2908
diff changeset
75 ;;; tcp.el ends here