changeset 2247:0f16ef9a8dbe

Created "nginx objects" section in reference.xml.
author Yaroslav Zhuravlev <yar@nginx.com>
date Mon, 24 Sep 2018 19:24:12 +0300
parents 32ba43abf9cd
children bc22b979e989
files xml/en/docs/njs/reference.xml
diffstat 1 files changed, 430 insertions(+), 426 deletions(-) [+]
line wrap: on
line diff
--- a/xml/en/docs/njs/reference.xml
+++ b/xml/en/docs/njs/reference.xml
@@ -9,7 +9,7 @@
 <article name="Reference"
         link="/en/docs/njs/reference.html"
         lang="en"
-        rev="9">
+        rev="10">
 
 <section id="summary">
 
@@ -21,6 +21,435 @@ for extending nginx functionality.
 </section>
 
 
+<section id="http_stream" name="nginx objects">
+
+
+<section id="http" name="HTTP Request">
+
+<para>
+The HTTP request object is available only in the
+<link doc="../http/ngx_http_js_module.xml">ngx_http_js_module</link> module.
+All string properties of the object are <link id="string">byte strings</link>.
+
+<list type="tag">
+
+<tag-name><literal>r.args{}</literal></tag-name>
+<tag-desc>
+request arguments object, read-only
+</tag-desc>
+
+<tag-name><literal>r.error(<value>string</value>)</literal></tag-name>
+<tag-desc>
+writes a <literal>string</literal> to the error log
+on the <literal>error</literal> level of logging
+</tag-desc>
+
+<tag-name><literal>r.finish()</literal></tag-name>
+<tag-desc>
+finishes sending a response to the client
+</tag-desc>
+
+<tag-name><literal>r.headersIn{}</literal></tag-name>
+<tag-desc>
+incoming headers object, read-only.
+<para>
+For example, the <literal>Foo</literal> header
+can be accessed with the syntax <literal>headersIn.foo</literal>
+or <literal>headersIn['Foo']</literal>
+</para>
+</tag-desc>
+
+<tag-name><literal>r.headersOut{}</literal></tag-name>
+<tag-desc>
+outgoing headers object, writable.
+<para>
+For example, the <literal>Foo</literal> header
+can be accessed with the syntax <literal>headersOut.foo</literal>
+or <literal>headersOut['Foo']</literal>
+</para>
+</tag-desc>
+
+<tag-name><literal>r.httpVersion</literal></tag-name>
+<tag-desc>
+HTTP version, read-only
+</tag-desc>
+
+<tag-name><literal>r.log(<value>string</value>)</literal></tag-name>
+<tag-desc>
+writes a <literal>string</literal> to the error log
+on the <literal>info</literal> level of logging
+</tag-desc>
+
+<tag-name id="r_internal_redirect"><literal>r.internalRedirect(<value>uri</value>)</literal></tag-name>
+<tag-desc>
+performs an internal redirect to the specified <literal>uri</literal>.
+If the uri starts with the “<literal>@</literal>” prefix,
+it is considered a named location.
+</tag-desc>
+
+<tag-name><literal>r.method</literal></tag-name>
+<tag-desc>
+HTTP method, read-only
+</tag-desc>
+
+<tag-name><literal>r.parent</literal></tag-name>
+<tag-desc>
+references the parent request object
+</tag-desc>
+
+<tag-name><literal>r.remoteAddress</literal></tag-name>
+<tag-desc>
+client address, read-only
+</tag-desc>
+
+<tag-name><literal>r.requestBody</literal></tag-name>
+<tag-desc>
+holds the request body, read-only
+</tag-desc>
+
+<tag-name><literal>r.responseBody</literal></tag-name>
+<tag-desc>
+holds the <link id="subrequest">subrequest</link> response body, read-only.
+The size of <literal>r.responseBody</literal> is limited by the
+<link doc="../http/ngx_http_core_module.xml" id="subrequest_output_buffer_size"/>
+directive.
+</tag-desc>
+
+<tag-name><literal>r.return(status[, string])</literal></tag-name>
+<tag-desc>
+sends the entire response
+with the specified <literal>status</literal> to the client
+<para>
+It is possible to specify either a redirect URL
+(for codes 301, 302, 303, 307, and 308)
+or the response body text (for other codes) as the second argument
+</para>
+</tag-desc>
+
+<tag-name><literal>r.send(<value>string</value>)</literal></tag-name>
+<tag-desc>
+sends a part of the response body to the client
+</tag-desc>
+
+<tag-name><literal>r.sendHeader()</literal></tag-name>
+<tag-desc>
+sends the HTTP headers to the client
+</tag-desc>
+
+<tag-name><literal>r.status</literal></tag-name>
+<tag-desc>
+status, writable
+</tag-desc>
+
+<tag-name><literal>r.variables{}</literal></tag-name>
+<tag-desc>
+nginx variables object, read-only
+</tag-desc>
+
+<tag-name><literal>r.warn(<value>string</value>)</literal></tag-name>
+<tag-desc>
+writes a <literal>string</literal> to the error log
+on the <literal>warning</literal> level of logging
+</tag-desc>
+
+<tag-name><literal>r.uri</literal></tag-name>
+<tag-desc>
+current URI, read-only
+</tag-desc>
+
+<tag-name id="subrequest"><literal>r.subrequest(<value>uri</value>[,
+<value>options</value>[, <value>callback</value>]])</literal></tag-name>
+<tag-desc>
+creates a subrequest with the given <literal>uri</literal> and
+<literal>options</literal>, and installs
+an optional completion <literal>callback</literal>.
+
+<para>
+If <literal>options</literal> is a string, then it
+holds the subrequest arguments string.
+Otherwise, <literal>options</literal> is expected to be
+an object with the following keys:
+<list type="tag">
+<tag-name><literal>args</literal></tag-name>
+<tag-desc>
+arguments string
+</tag-desc>
+<tag-name><literal>body</literal></tag-name>
+<tag-desc>
+request body
+</tag-desc>
+
+<tag-name><literal>method</literal></tag-name>
+<tag-desc>
+HTTP method
+</tag-desc>
+
+</list>
+</para>
+
+<para>
+The completion <literal>callback</literal> receives
+a subrequest response object with methods and properties
+identical to the parent request object.
+</para>
+</tag-desc>
+
+</list>
+</para>
+
+</section>
+
+
+<section id="stream" name="Stream Session">
+
+<para>
+The stream session object is available only in the
+<link doc="../stream/ngx_stream_js_module.xml">ngx_stream_js_module</link>
+module.
+All string properties of the object are <link id="string">byte strings</link>.
+</para>
+
+<para>
+<note>
+Prior to njs <link doc="../njs/changes.xml" id="njs0.2.4">0.2.4</link>,
+the stream session object had some properties which are currently
+<link id="stream_obsolete">removed</link>.
+</note>
+</para>
+
+<para>
+<list type="tag">
+
+<tag-name id="s_allow"><literal>s.allow()</literal></tag-name>
+<tag-desc>
+successfully finalizes the phase handler
+(<link doc="../njs/changes.xml" id="njs0.2.4">0.2.4</link>)
+</tag-desc>
+
+<tag-name id="s_decline"><literal>s.decline()</literal></tag-name>
+<tag-desc>
+finalizes the phase handler and passes control to the next handler
+(<link doc="../njs/changes.xml" id="njs0.2.4">0.2.4</link>)
+</tag-desc>
+
+<tag-name id="s_deny"><literal>s.deny()</literal></tag-name>
+<tag-desc>
+finalizes the phase handler with the access error code
+(<link doc="../njs/changes.xml" id="njs0.2.4">0.2.4</link>)
+</tag-desc>
+
+<tag-name id="s_done"><literal>s.done</literal>(<value>[code]</value>)</tag-name>
+<tag-desc>
+successfully finalizes the current phase handler
+or finalizes it with the specified numeric code
+(<link doc="../njs/changes.xml" id="njs0.2.4">0.2.4</link>).
+</tag-desc>
+
+<tag-name><literal>s.error(<value>string</value>)</literal></tag-name>
+<tag-desc>
+writes a sent <literal>string</literal> to the error log
+on the <literal>error</literal> level of logging
+</tag-desc>
+
+<tag-name><literal>s.log(<value>string</value>)</literal></tag-name>
+<tag-desc>
+writes a sent <value>string</value> to the error log
+on the <literal>info</literal> level of logging
+</tag-desc>
+
+<tag-name id="s_off"><literal>s.off(<value>eventName</value>)</literal></tag-name>
+<tag-desc>
+unregisters the callback set by the <link id="s_on">s.on()</link> method
+(<link doc="../njs/changes.xml" id="njs0.2.4">0.2.4</link>)
+</tag-desc>
+
+<tag-name id="s_on"><literal>s.on(<value>event</value>,
+<value>callback</value>)</literal></tag-name>
+<tag-desc>
+registers a <literal>callback</literal> for the specified <literal>event</literal>
+(<link doc="../njs/changes.xml" id="njs0.2.4">0.2.4</link>).
+
+<para>
+An <literal>event</literal> may be one of the following strings:
+<list type="tag">
+<tag-name><literal>upload</literal></tag-name>
+<tag-desc>
+new data from a client
+</tag-desc>
+
+<tag-name><literal>download</literal></tag-name>
+<tag-desc>
+new data to a client
+</tag-desc>
+
+</list>
+</para>
+
+<para>
+The completion callback has the following prototype:
+<literal>callback(data, flags)</literal>, where
+<literal>data</literal> is string,
+<literal>flags</literal> is an object
+with the following properties:
+<list type="tag">
+<tag-name id="s_on_callback_last"><literal>last</literal></tag-name>
+<tag-desc>
+a boolean value, true if data is a last buffer.
+</tag-desc>
+
+</list>
+</para>
+</tag-desc>
+
+<tag-name><literal>s.remoteAddress</literal></tag-name>
+<tag-desc>
+client address, read-only
+</tag-desc>
+
+<tag-name id="s_send"><literal>s.send(<value>data</value>[,
+<value>options</value>])</literal></tag-name>
+<tag-desc>
+sends the data to the client
+(<link doc="../njs/changes.xml" id="njs0.2.4">0.2.4</link>).
+The <literal>options</literal> is an object used
+to override nginx buffer flags derived from an incoming data chunk buffer.
+The flags can be overriden with the following flags:
+<para>
+<list type="tag">
+
+<tag-name><literal>last</literal></tag-name>
+<tag-desc>
+boolean, true if the buffer is the last buffer
+</tag-desc>
+
+<tag-name><literal>flush</literal></tag-name>
+<tag-desc>
+boolean, true if the buffer should have the <literal>flush</literal> flag
+</tag-desc>
+</list>
+</para>
+The method can be called multiple times per callback invocation.
+</tag-desc>
+
+<tag-name><literal>s.variables{}</literal></tag-name>
+<tag-desc>
+nginx variables object, read-only
+</tag-desc>
+
+<tag-name><literal>s.warn(<value>string</value>)</literal></tag-name>
+<tag-desc>
+writes a sent <literal>string</literal> to the error log
+on the <literal>warning</literal> level of logging
+</tag-desc>
+
+</list>
+</para>
+
+
+<section id="stream_obsolete" name="Obsolete properties">
+
+<para>
+These properties have been removed
+in njs <link doc="../njs/changes.xml" id="njs0.2.4">0.2.4</link>
+and are not backward compatible with the existing njs code.
+</para>
+
+<para>
+<list type="tag">
+
+<tag-name id="s_abort"><literal>s.ABORT</literal></tag-name>
+<tag-desc>
+the <literal>ABORT</literal> return code
+<note>
+Starting from njs <link doc="../njs/changes.xml" id="njs0.2.4">0.2.4</link>,
+the <link id="s_deny">s.deny()</link> method should be used instead.
+</note>
+</tag-desc>
+
+<tag-name><literal>s.AGAIN</literal></tag-name>
+<tag-desc>
+the <literal>AGAIN</literal> return code
+<note>
+Starting from njs <link doc="../njs/changes.xml" id="njs0.2.4">0.2.4</link>,
+the corresponding behavior is achieved if no
+<link id="s_allow">s.allow()</link>,
+<link id="s_deny">s.deny()</link>,
+<link id="s_decline">s.decline()</link>,
+<link id="s_done">s.done()</link>
+is invoked and a callback is registered.
+</note>
+</tag-desc>
+
+<tag-name id="s_buffer"><literal>s.buffer</literal></tag-name>
+<tag-desc>
+the current buffer, writable
+<note>
+Starting from <link doc="../njs/changes.xml" id="njs0.2.4">0.2.4</link>,
+the <link id="s_send">s.send()</link> method should be used for writing.
+For reading, the current buffer is available as the first argument of the
+<literal>event</literal> callback.
+</note>
+</tag-desc>
+
+<tag-name><literal>s.DECLINED</literal></tag-name>
+<tag-desc>
+the <literal>DECLINED</literal> return code
+<note>
+Starting from njs <link doc="../njs/changes.xml" id="njs0.2.4">0.2.4</link>,
+the <link id="s_decline">s.decline()</link> method should be used instead.
+</note>
+</tag-desc>
+
+<tag-name><literal>s.eof</literal></tag-name>
+<tag-desc>
+a boolean read-only property, true if the current buffer is the last buffer
+<note>
+Starting from <link doc="../njs/changes.xml" id="njs0.2.4">0.2.4</link>,
+the <link id="s_on_callback_last">flags.last</link> property
+should be used instead.
+</note>
+</tag-desc>
+
+<tag-name><literal>s.ERROR</literal></tag-name>
+<tag-desc>
+the <literal>ERROR</literal> return code
+<note>
+Starting from njs <link doc="../njs/changes.xml" id="njs0.2.4">0.2.4</link>,
+an appropriate exception can be thrown to report an error.
+</note>
+</tag-desc>
+
+<tag-name><literal>s.fromUpstream</literal></tag-name>
+<tag-desc>
+a boolean read-only property,
+true if the current buffer is from the upstream server to the client
+<note>
+Starting from <link doc="../njs/changes.xml" id="njs0.2.4">0.2.4</link>,
+a corresponding <link id="s_on">event</link>
+(<literal>upload</literal> or <literal>download</literal>)
+should be used to handle data to or from client.
+</note>
+</tag-desc>
+
+<tag-name id="s_ok"><literal>s.OK</literal></tag-name>
+<tag-desc>
+the <literal>OK</literal> return code
+<note>
+Starting from njs <link doc="../njs/changes.xml" id="njs0.2.4">0.2.4</link>,
+the <link id="s_allow">s.allow()</link> method should be used instead.
+</note>
+</tag-desc>
+
+</list>
+</para>
+
+</section>
+
+</section>
+
+</section>
+
+
 <section id="core" name="Core">
 
 
@@ -853,429 +1282,4 @@ but fails if the file already exists
 
 </section>
 
-
-<section id="http" name="HTTP Request">
-
-<para>
-The HTTP request object is available only in the
-<link doc="../http/ngx_http_js_module.xml">ngx_http_js_module</link> module.
-All string properties of the object are <link id="string">byte strings</link>.
-
-<list type="tag">
-
-<tag-name><literal>r.args{}</literal></tag-name>
-<tag-desc>
-request arguments object, read-only
-</tag-desc>
-
-<tag-name><literal>r.error(<value>string</value>)</literal></tag-name>
-<tag-desc>
-writes a <literal>string</literal> to the error log
-on the <literal>error</literal> level of logging
-</tag-desc>
-
-<tag-name><literal>r.finish()</literal></tag-name>
-<tag-desc>
-finishes sending a response to the client
-</tag-desc>
-
-<tag-name><literal>r.headersIn{}</literal></tag-name>
-<tag-desc>
-incoming headers object, read-only.
-<para>
-For example, the <literal>Foo</literal> header
-can be accessed with the syntax <literal>headersIn.foo</literal>
-or <literal>headersIn['Foo']</literal>
-</para>
-</tag-desc>
-
-<tag-name><literal>r.headersOut{}</literal></tag-name>
-<tag-desc>
-outgoing headers object, writable.
-<para>
-For example, the <literal>Foo</literal> header
-can be accessed with the syntax <literal>headersOut.foo</literal>
-or <literal>headersOut['Foo']</literal>
-</para>
-</tag-desc>
-
-<tag-name><literal>r.httpVersion</literal></tag-name>
-<tag-desc>
-HTTP version, read-only
-</tag-desc>
-
-<tag-name><literal>r.log(<value>string</value>)</literal></tag-name>
-<tag-desc>
-writes a <literal>string</literal> to the error log
-on the <literal>info</literal> level of logging
-</tag-desc>
-
-<tag-name id="r_internal_redirect"><literal>r.internalRedirect(<value>uri</value>)</literal></tag-name>
-<tag-desc>
-performs an internal redirect to the specified <literal>uri</literal>.
-If the uri starts with the “<literal>@</literal>” prefix,
-it is considered a named location.
-</tag-desc>
-
-<tag-name><literal>r.method</literal></tag-name>
-<tag-desc>
-HTTP method, read-only
-</tag-desc>
-
-<tag-name><literal>r.parent</literal></tag-name>
-<tag-desc>
-references the parent request object
-</tag-desc>
-
-<tag-name><literal>r.remoteAddress</literal></tag-name>
-<tag-desc>
-client address, read-only
-</tag-desc>
-
-<tag-name><literal>r.requestBody</literal></tag-name>
-<tag-desc>
-holds the request body, read-only
-</tag-desc>
-
-<tag-name><literal>r.responseBody</literal></tag-name>
-<tag-desc>
-holds the <link id="subrequest">subrequest</link> response body, read-only.
-The size of <literal>r.responseBody</literal> is limited by the
-<link doc="../http/ngx_http_core_module.xml" id="subrequest_output_buffer_size"/>
-directive.
-</tag-desc>
-
-<tag-name><literal>r.return(status[, string])</literal></tag-name>
-<tag-desc>
-sends the entire response
-with the specified <literal>status</literal> to the client
-<para>
-It is possible to specify either a redirect URL
-(for codes 301, 302, 303, 307, and 308)
-or the response body text (for other codes) as the second argument
-</para>
-</tag-desc>
-
-<tag-name><literal>r.send(<value>string</value>)</literal></tag-name>
-<tag-desc>
-sends a part of the response body to the client
-</tag-desc>
-
-<tag-name><literal>r.sendHeader()</literal></tag-name>
-<tag-desc>
-sends the HTTP headers to the client
-</tag-desc>
-
-<tag-name><literal>r.status</literal></tag-name>
-<tag-desc>
-status, writable
-</tag-desc>
-
-<tag-name><literal>r.variables{}</literal></tag-name>
-<tag-desc>
-nginx variables object, read-only
-</tag-desc>
-
-<tag-name><literal>r.warn(<value>string</value>)</literal></tag-name>
-<tag-desc>
-writes a <literal>string</literal> to the error log
-on the <literal>warning</literal> level of logging
-</tag-desc>
-
-<tag-name><literal>r.uri</literal></tag-name>
-<tag-desc>
-current URI, read-only
-</tag-desc>
-
-<tag-name id="subrequest"><literal>r.subrequest(<value>uri</value>[,
-<value>options</value>[, <value>callback</value>]])</literal></tag-name>
-<tag-desc>
-creates a subrequest with the given <literal>uri</literal> and
-<literal>options</literal>, and installs
-an optional completion <literal>callback</literal>.
-
-<para>
-If <literal>options</literal> is a string, then it
-holds the subrequest arguments string.
-Otherwise, <literal>options</literal> is expected to be
-an object with the following keys:
-<list type="tag">
-<tag-name><literal>args</literal></tag-name>
-<tag-desc>
-arguments string
-</tag-desc>
-<tag-name><literal>body</literal></tag-name>
-<tag-desc>
-request body
-</tag-desc>
-
-<tag-name><literal>method</literal></tag-name>
-<tag-desc>
-HTTP method
-</tag-desc>
-
-</list>
-</para>
-
-<para>
-The completion <literal>callback</literal> receives
-a subrequest response object with methods and properties
-identical to the parent request object.
-</para>
-</tag-desc>
-
-</list>
-</para>
-
-</section>
-
-
-<section id="stream" name="Stream Session">
-
-<para>
-The stream session object is available only in the
-<link doc="../stream/ngx_stream_js_module.xml">ngx_stream_js_module</link>
-module.
-All string properties of the object are <link id="string">byte strings</link>.
-</para>
-
-<para>
-<note>
-Prior to njs <link doc="../njs/changes.xml" id="njs0.2.4">0.2.4</link>,
-the stream session object had some properties which are currently
-<link id="stream_obsolete">removed</link>.
-</note>
-</para>
-
-<para>
-<list type="tag">
-
-<tag-name id="s_allow"><literal>s.allow()</literal></tag-name>
-<tag-desc>
-successfully finalizes the phase handler
-(<link doc="../njs/changes.xml" id="njs0.2.4">0.2.4</link>)
-</tag-desc>
-
-<tag-name id="s_decline"><literal>s.decline()</literal></tag-name>
-<tag-desc>
-finalizes the phase handler and passes control to the next handler
-(<link doc="../njs/changes.xml" id="njs0.2.4">0.2.4</link>)
-</tag-desc>
-
-<tag-name id="s_deny"><literal>s.deny()</literal></tag-name>
-<tag-desc>
-finalizes the phase handler with the access error code
-(<link doc="../njs/changes.xml" id="njs0.2.4">0.2.4</link>)
-</tag-desc>
-
-<tag-name id="s_done"><literal>s.done</literal>(<value>[code]</value>)</tag-name>
-<tag-desc>
-successfully finalizes the current phase handler
-or finalizes it with the specified numeric code
-(<link doc="../njs/changes.xml" id="njs0.2.4">0.2.4</link>).
-</tag-desc>
-
-<tag-name><literal>s.error(<value>string</value>)</literal></tag-name>
-<tag-desc>
-writes a sent <literal>string</literal> to the error log
-on the <literal>error</literal> level of logging
-</tag-desc>
-
-<tag-name><literal>s.log(<value>string</value>)</literal></tag-name>
-<tag-desc>
-writes a sent <value>string</value> to the error log
-on the <literal>info</literal> level of logging
-</tag-desc>
-
-<tag-name id="s_off"><literal>s.off(<value>eventName</value>)</literal></tag-name>
-<tag-desc>
-unregisters the callback set by the <link id="s_on">s.on()</link> method
-(<link doc="../njs/changes.xml" id="njs0.2.4">0.2.4</link>)
-</tag-desc>
-
-<tag-name id="s_on"><literal>s.on(<value>event</value>,
-<value>callback</value>)</literal></tag-name>
-<tag-desc>
-registers a <literal>callback</literal> for the specified <literal>event</literal>
-(<link doc="../njs/changes.xml" id="njs0.2.4">0.2.4</link>).
-
-<para>
-An <literal>event</literal> may be one of the following strings:
-<list type="tag">
-<tag-name><literal>upload</literal></tag-name>
-<tag-desc>
-new data from a client
-</tag-desc>
-
-<tag-name><literal>download</literal></tag-name>
-<tag-desc>
-new data to a client
-</tag-desc>
-
-</list>
-</para>
-
-<para>
-The completion callback has the following prototype:
-<literal>callback(data, flags)</literal>, where
-<literal>data</literal> is string,
-<literal>flags</literal> is an object
-with the following properties:
-<list type="tag">
-<tag-name id="s_on_callback_last"><literal>last</literal></tag-name>
-<tag-desc>
-a boolean value, true if data is a last buffer.
-</tag-desc>
-
-</list>
-</para>
-</tag-desc>
-
-<tag-name><literal>s.remoteAddress</literal></tag-name>
-<tag-desc>
-client address, read-only
-</tag-desc>
-
-<tag-name id="s_send"><literal>s.send(<value>data</value>[,
-<value>options</value>])</literal></tag-name>
-<tag-desc>
-sends the data to the client
-(<link doc="../njs/changes.xml" id="njs0.2.4">0.2.4</link>).
-The <literal>options</literal> is an object used
-to override nginx buffer flags derived from an incoming data chunk buffer.
-The flags can be overriden with the following flags:
-<para>
-<list type="tag">
-
-<tag-name><literal>last</literal></tag-name>
-<tag-desc>
-boolean, true if the buffer is the last buffer
-</tag-desc>
-
-<tag-name><literal>flush</literal></tag-name>
-<tag-desc>
-boolean, true if the buffer should have the <literal>flush</literal> flag
-</tag-desc>
-</list>
-</para>
-The method can be called multiple times per callback invocation.
-</tag-desc>
-
-<tag-name><literal>s.variables{}</literal></tag-name>
-<tag-desc>
-nginx variables object, read-only
-</tag-desc>
-
-<tag-name><literal>s.warn(<value>string</value>)</literal></tag-name>
-<tag-desc>
-writes a sent <literal>string</literal> to the error log
-on the <literal>warning</literal> level of logging
-</tag-desc>
-
-</list>
-</para>
-
-
-<section id="stream_obsolete" name="Obsolete properties">
-
-<para>
-These properties have been removed
-in njs <link doc="../njs/changes.xml" id="njs0.2.4">0.2.4</link>
-and are not backward compatible with the existing njs code.
-</para>
-
-<para>
-<list type="tag">
-
-<tag-name id="s_abort"><literal>s.ABORT</literal></tag-name>
-<tag-desc>
-the <literal>ABORT</literal> return code
-<note>
-Starting from njs <link doc="../njs/changes.xml" id="njs0.2.4">0.2.4</link>,
-the <link id="s_deny">s.deny()</link> method should be used instead.
-</note>
-</tag-desc>
-
-<tag-name><literal>s.AGAIN</literal></tag-name>
-<tag-desc>
-the <literal>AGAIN</literal> return code
-<note>
-Starting from njs <link doc="../njs/changes.xml" id="njs0.2.4">0.2.4</link>,
-the corresponding behavior is achieved if no
-<link id="s_allow">s.allow()</link>,
-<link id="s_deny">s.deny()</link>,
-<link id="s_decline">s.decline()</link>,
-<link id="s_done">s.done()</link>
-is invoked and a callback is registered.
-</note>
-</tag-desc>
-
-<tag-name id="s_buffer"><literal>s.buffer</literal></tag-name>
-<tag-desc>
-the current buffer, writable
-<note>
-Starting from <link doc="../njs/changes.xml" id="njs0.2.4">0.2.4</link>,
-the <link id="s_send">s.send()</link> method should be used for writing.
-For reading, the current buffer is available as the first argument of the
-<literal>event</literal> callback.
-</note>
-</tag-desc>
-
-<tag-name><literal>s.DECLINED</literal></tag-name>
-<tag-desc>
-the <literal>DECLINED</literal> return code
-<note>
-Starting from njs <link doc="../njs/changes.xml" id="njs0.2.4">0.2.4</link>,
-the <link id="s_decline">s.decline()</link> method should be used instead.
-</note>
-</tag-desc>
-
-<tag-name><literal>s.eof</literal></tag-name>
-<tag-desc>
-a boolean read-only property, true if the current buffer is the last buffer
-<note>
-Starting from <link doc="../njs/changes.xml" id="njs0.2.4">0.2.4</link>,
-the <link id="s_on_callback_last">flags.last</link> property
-should be used instead.
-</note>
-</tag-desc>
-
-<tag-name><literal>s.ERROR</literal></tag-name>
-<tag-desc>
-the <literal>ERROR</literal> return code
-<note>
-Starting from njs <link doc="../njs/changes.xml" id="njs0.2.4">0.2.4</link>,
-an appropriate exception can be thrown to report an error.
-</note>
-</tag-desc>
-
-<tag-name><literal>s.fromUpstream</literal></tag-name>
-<tag-desc>
-a boolean read-only property,
-true if the current buffer is from the upstream server to the client
-<note>
-Starting from <link doc="../njs/changes.xml" id="njs0.2.4">0.2.4</link>,
-a corresponding <link id="s_on">event</link>
-(<literal>upload</literal> or <literal>download</literal>)
-should be used to handle data to or from client.
-</note>
-</tag-desc>
-
-<tag-name id="s_ok"><literal>s.OK</literal></tag-name>
-<tag-desc>
-the <literal>OK</literal> return code
-<note>
-Starting from njs <link doc="../njs/changes.xml" id="njs0.2.4">0.2.4</link>,
-the <link id="s_allow">s.allow()</link> method should be used instead.
-</note>
-</tag-desc>
-
-</list>
-</para>
-
-</section>
-
-</section>
-
-
 </article>