2001-07-09  Yuuichi Teranishi  <teranisi@gohome.org>

	* remote.el (remote-controller): Use function system-name instead
	of variable.

	* web-custom.el (web-custom): Ditto.

	* elserv.el (elserv-parse-path): New function.
	(elserv-service): Ditto.
	(Pointed out by "OHASHI, Akira" <bg66@koka-in.org>)

	* elserv-mhc.el (elserv-mhc-face-foreground): New function.
	(elserv-mhc-face-background): Ditto.
	(elserv-mhc-string-with-face): Use above functions.
	(elserv-mhc-content): Ditto.
	(elserv-mhc-start): Use function system-name instead of variable.

2001-07-06  Yuuichi Teranishi  <teranisi@gohome.org>

	* elserv-wiki.el (elserv-wiki): Follow changes for path.

	* elserv.el (elserv-define-status-code): Renamed from
	elserv-define-result-code (All other related portions are changed).
	(elserv-moved-permanently): Renamed from elserv-moved/perm.
	(elserv-make-redirect): Follow chage above.
	(elserv-moved-found): Renamed from elserv-moved/temp.
	(elserv-see-other): Added.
	(elserv-not-modified): Ditto.
	(elserv-process-request): Added argument `request'.
	(elserv-process-filter): Follow change above.
	(elserv-call-service-function-maybe): New inline function.
	(elserv-service): Search for all hierarchies of paths.
	(elserv-service-directory): Follow change above.
	(elserv-service-function): Fixed docstring.

	* elserv-mhc.el: New file.

	* remote.el: Ditto.

	* web-custom.el: Ditto.

	* icons/Anniversary.gif: Ditto.

	* icons/Anniversary.png: Ditto.

	* icons/Birthday.gif: Ditto.

	* icons/Birthday.png: Ditto.

	* icons/Business.gif: Ditto.

	* icons/Business.png: Ditto.

	* icons/CheckBox.gif: Ditto.

	* icons/CheckBox.png: Ditto.

	* icons/CheckedBox.gif: Ditto.

	* icons/CheckedBox.png: Ditto.

	* icons/Conflict.gif: Ditto.

	* icons/Conflict.png: Ditto.

	* icons/Date.gif: Ditto.

	* icons/Date.png: Ditto.

	* icons/Holiday.gif: Ditto.

	* icons/Holiday.png: Ditto.

	* icons/Link.gif: Ditto.

	* icons/Link.png: Ditto.

	* icons/Other.gif: Ditto.

	* icons/Other.png: Ditto.

	* icons/Party.gif: Ditto.

	* icons/Party.png: Ditto.

	* icons/Private.gif: Ditto.

	* icons/Private.png: Ditto.

	* icons/Vacation.gif: Ditto.

	* icons/Vacation.png: Ditto.

	* icons/article.png: Ditto.

	* icons/background.gif: Ditto.

	* icons/background.png: Ditto.

2001-05-30  Yuuichi Teranishi  <teranisi@gohome.org>

	* elserv.el (elserv-ok): Set message as "OK".
	(elserv-make-redirect): Set body.
	(elserv-make-header): Use elserv-msg for message.
	(elserv-log): Fixed bug when access-log file does not exist.
	(elserv-parse-accept-language): New function.
	(elserv-find-file): Use it.
	(elserv-service-directory): Fixed.

2001-05-29  Yuuichi Teranishi  <teranisi@gohome.org>

	* elservd: Assume argument number as 5.

	* elserv.el (elserv-bytes): Rewrite.
	(elserv-process-request-internal): Don't count body length if it's nil.
	(elserv-log): Ditto.
	(elserv-make-header): Don't refer body if it is nil.
	(elserv-start): Fixed arguments.
	(elserv-find-file): New function.
	(elserv-service-directory): Fixed problem when the directory is
	published as root content.
	(elserv-access-log-file): New variable.
	(elserv-access-log-max-size): Ditto.
	(elserv-log): Write access log to the elserv-access-log-file if
	specified.

2001-05-28  Yuuichi Teranishi  <teranisi@gohome.org>

	* elservd (ElservClientSession::close): New method.
	(ElservClientSession::read): Ditto.
	(ElservClientSession::read_chunked): Ditto.
	(main-loop): Detect transfer-encoding header and read chunked body if
	it is specified.

	* elserv.el: Fixed "a HTTP server" => "an HTTP server".
	(elserv-bytes): Rewrite.
	(elserv-client-start): Set buffer as unibyte.
	(elserv-process-request-internal): Use elserv-make-header instead of
	elserv-make-response.
	(elserv-parse-request): Set buffer as unibyte.
	(elserv-make-header): Renamed from elserv-make-response;
	Don't include body.
	(elserv-start): Set buffer as unibyte.

	* elserv-demo.el (elserv-demo-upload): Set temp buffer as unibyte.

	* elservd (toplevel): Added 5th argument.
	(main-loop): Check keep_alive_timeout;
	Close session if bogus null request.

	* elserv.el (toplevel): Require 'static.
	(elserv-program-name): New variable.
	(elserv-keep-alive-timeout): Ditto.
	(elserv-http-version): New constant.
	(elserv-bytes): New alias.
	(elserv-method-not-allowed): Changed name.
	(elserv-make-result): Added argument content-length.
	(elserv-result-content-length): New macro.
	(elserv-set-result-content-length): Ditto.
	(elserv-version): Added optional argument.
	(elserv-load): Don't use default-enable-multibyte-characters.
	(elserv-make-response): Added Date, Accept-Range, Keep-Alive fields.
	(elserv-start): Added argument for elserv-keep-alive-timeout.
	(elserv-log): Use elserv-bytes instead of length.
	(elserv-request-handler): Check "Host" field when HTTP/1.1.
	(elserv-request-handler): Return 'Not implemented' response if
	method is not implemented.
	(elserv-handle-head): Set content-length.
	(elserv-publish): Added :host argument.
	(elserv-service): Added virtual host support.

	* elserv-wiki.el (elserv-wiki-publishing-footer): New variable.
	(elserv-wiki-render-page): Rewrite.
	(elserv-wiki-search-page): Added save-window-excursion.
	(elserv-wiki): Use elserv-wiki-publishing-footer;
	Use emacs-wiki-default-page for "/".

	* README.ja: Update.

	* BUGS.ja: Update.

2001-05-26  Yuuichi Teranishi  <teranisi@gohome.org>

	* elservd: Rewrite to have only one persistent connection with emacs.

	* elserv.el (toplevel): Require 'poem.
	(toplevel): checkdoc.
	(elserv-max-keep-alive-requests): New variable.
	(elserv-identity-check): Set default as nil.
	(elserv-garbage-collect-every-request): Abolish.
	(elserv-buffer-client-process): New buffer local variable.
	(elserv-buffer-client-port): Ditto.
	(elserv-url-int-char): Abolish.
	(elserv-url-decode-string): Use int-char.
	(elserv-position): New inline function.
	(elserv-url-decode): Use it.
	(elserv-url-decode): Use substring instead of subseq.
	(elserv-client-start): Changed argument; Don't send response.
	(elserv-process-request-internal): New inline function.
	(elserv-process-request): Call elserv-process-request-internal.
	(elserv-parse-request): Rewrite.
	(elserv-make-response): Added argument connection.
	(elserv-make-response): Don't add last CRLF.
	(elserv-start): Added elserv-max-keep-alive-requests.
	(elserv-find-process): Changed regexp.
	(elserv-stop): kill process buffer.

2001-05-23  Yuuichi Teranishi  <teranisi@gohome.org>

	* elserv-wiki.el: New file.

	* elserv-demo.el (elserv-counter-file-base): New variable.
	(elserv-counter): New function.
	(elserv-demo-counter): Ditto.
	(elserv-demo-start): Added counter.

	* elservd (toplevel): Require "thread", "timeout";
	Changed argument number;
	Check client count;
	Added timeout for emacs client acception.

	* elserv.el (elserv-max-clients): New variable.
	(elserv-garbage-collect-every-request): Ditto.
	(elserv-url-unreserved-chars): Renamed from
	`elserv-cgi-url-unreserved-chars'.
	(elserv-make-unauthorized-basic): Added unauthorized page.
	(elserv-url-int-char): Renamed from elserv-cgi-int-char.
	(elserv-url-hex-char-p): Likewise.
	(elserv-url-decode-string): Likewise.
	(elserv-url-decode): Likewise.
	(elserv-load): New function.
	(elserv-make-directory): Ditto.
	(elserv-save-buffer): Ditto.
	(elserv-save): Ditto.
	(elserv-client-start): Garbage collect every request.
	(elserv-start): Added max client argument.
	(elserv-start): Make process buffer for each port.
	(elserv-process-port): New function.
	(elserv-find-process): Use it.
	(elserv-log): Make log buffer for each port.
	(elserv-log): Fixed problem when user-agent is nil.
	(elserv-request-handler): Don't catch error handler here.
	(elserv-service): Support "/" content.
	(elserv-service-directory): Changed checking order of auth and
	predicate.
	(elserv-service-string): Ditto.
	(elserv-service-function): Ditto.
	(elserv-service-directory): Decode path first.
	(elserv-publish-default): Simplify.
	(elserv-request-handler): Downcase method name.

2001-05-18  Yuuichi Teranishi  <teranisi@gohome.org>

	* elserv-demo.el (elserv-demo-buffers): Replace " " as "+".

	* elserv.el (elserv-cgi-url-unreserved-chars): New constant.
	(elserv-make-predicate-from-plist): Append 'list for host-regexp list.
	(elserv-make-unauthorized-basic): Fixed.
	(elserv-cgi-int-char): New function.
	(elserv-cgi-hex-char-p): Ditto.
	(elserv-cgi-decode-string): Ditto.
	(elserv-cgi-decode): Ditto.
	(elserv-make-response): Added "\r\n" after Content-Length: field.
	(elserv-client-start): Display response on debug buffer;
	Don't send last "\r\n".
	(elserv-service-function): Call `elserv-cgi-decode-string' to decode
	path.

	* elserv-demo.el (elserv-demo-start): Don't quote as list.

2001-05-17  Yuuichi Teranishi  <teranisi@gohome.org>

	* elservd (keep_alive): Abolish.
	(toplevel): Added identity check, added argument;
	Use pack('m') to encode body;
	Added decimal client address information to the header.

	* elserv-demo.el (elserv-demo-calendar): Added argument result,
	removed argument header-only, follow other API changes.
	(elserv-demo-buffers): Ditto.
	(elserv-demo-post-apropos): Ditto.
	(elserv-demo-function): Ditto.
	(elserv-demo-start): Added buffers-local, upload demo.

	* elserv.el (elserv-directory-index-file): New variable.
	(elserv-keep-alive): Ditto.
	(elserv-identity-check): Ditto.
	(elserv-define-result-code): Renamed from elserv-define-exception.
	(All other related portions are changed.)
	(elserv-make-result): New macro.
	(elserv-result-code): Ditto.
	(elserv-set-result-code): Ditto.
	(elserv-result-header): Ditto.
	(elserv-set-result-header): Ditto.
	(elserv-result-body): Ditto.
	(elserv-set-result-body): Ditto.
	(elserv-result-user): Ditto.
	(elserv-set-result-user): Ditto.
	(elserv-error): Changed argument.
	(with-elserv-error-handler): Follow changes above.
	(elserv-make-unauthorized-basic): Ditto.
	(elserv-make-redirect): Ditto.
	(elserv-parse-request): Get client's decimal address.
	(elserv-parse-request): Get content-type, ident.
	(elserv-parse-request): Decode body as base64 encoded string.
	(elserv-make-response): New function.
	(elserv-start): Add argument if elserv-identity-check is non-nil.
	(elserv-stop): Changed message.
	(elserv-log): Print logname and username.
	(elserv-request-handler): Call elserv-make-response.
	(elserv-handle-HEAD): Set body as nil.
	(elserv-authenticate-basic): Added argument result.
	(elserv-authenticate): Ditto.
	(elserv-check-predicate): New function.
	(elserv-publish): Call elserv-make-predicate-from-plist to make
	predicate for each service function.
	(elserv-service): Removed argument header-only.
	(elserv-make-header): Abolish.
	(elserv-service-directory): Added argument predicate,
	remove argument header-only, and check predicate.
	(elserv-service-string): Ditto.
	(elserv-service-function): Ditto, added content-type argument.

2001-05-15  Yuuichi Teranishi  <teranisi@gohome.org>

	* elserv-demo.el (toplevel): Require w3m.
	(elserv-demo-start): Added authentication example.
	(elserv-demo-buffers): Display buffer content
	(According to Akihiro Arisawa san's diary.)

	* elserv.el (elserv-make-redirect): Abolished argument req.
	(elserv-service): Pass published path to each service function.
	(elserv-authenticate): New function.
	(elserv-authenticate-basic): Ditto.
	(toplevel): Added comment.
	(toplevel): Require 'cl when compile.
	(elserv-debug): New variable.
	(elserv-make-unauthorized-basic): New function.
	(elserv-make-redirect): Change return value.
	(elserv-debug): Output to debug buffer only when elserv-debug is
	non-nil.
	(elserv-parse-request): Get authorization header.
	(elserv-handle-GET): Changed return value.
	(elserv-handle-HEAD): Ditto.
	(elserv-handle-POST): Ditto.
	(elserv-publish): Process authentication setting.
	(elserv-publish): Changed function processing.
	(elserv-service-directory): Added argument auth.

2001-05-13  Yuuichi Teranishi  <teranisi@gohome.org>

	* elserv.el: Checkdoc.

2001-05-12  Yuuichi Teranishi  <teranisi@gohome.org>

	* elserv-demo.el: New file.

	* README.ja, BUGS.ja, ChangeLog, elservd, elserv.el: New file.

