trafficserver-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jpe...@apache.org
Subject [25/51] trafficserver git commit: Documentation reorganization
Date Tue, 03 Nov 2015 06:10:01 GMT
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/ce162a6d/doc/developer-guide/api/functions/TSHttpTxnServerIntercept.en.rst
----------------------------------------------------------------------
diff --git a/doc/developer-guide/api/functions/TSHttpTxnServerIntercept.en.rst b/doc/developer-guide/api/functions/TSHttpTxnServerIntercept.en.rst
new file mode 100644
index 0000000..63f907c
--- /dev/null
+++ b/doc/developer-guide/api/functions/TSHttpTxnServerIntercept.en.rst
@@ -0,0 +1,70 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements.  See the NOTICE file
+   distributed with this work for additional information
+   regarding copyright ownership.  The ASF licenses this file
+   to you under the Apache License, Version 2.0 (the
+   "License"); you may not use this file except in compliance
+   with the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing,
+   software distributed under the License is distributed on an
+   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+   KIND, either express or implied.  See the License for the
+   specific language governing permissions and limitations
+   under the License.
+
+.. include:: ../../../common.defs
+
+.. default-domain:: c
+
+TSHttpTxnServerIntercept
+************************
+
+Intercept origin server requests.
+
+Synopsis
+========
+
+`#include <ts/ts.h>`
+
+.. function:: void TSHttpTxnServerIntercept(TSCont contp, TSHttpTxn txnp)
+
+Description
+===========
+
+:func:`TSHttpTxnServerIntercept` allows a plugin take over the
+servicing of the request as though it was the origin server. In the
+event a request needs to be made to the server for transaction
+:arg:`txnp`, :arg:`contp` will be sent a :data:`TS_EVENT_NET_ACCEPT`
+event. The :arg:`edata` passed with :data:`TS_NET_EVENT_ACCEPT` is
+an :type:`TSVConn` just as it would be for a normal accept. The
+plugin must act as if it is an HTTP server and read the HTTP request
+and body from the :type:`TSVConn` and send an HTTP response header
+and body.
+
+:func:`TSHttpTxnServerIntercept` must be not be called after the
+connection to the server has taken place. This means that the last
+hook that it can be called from is
+:data:`TS_HTTP_READ_CACHE_HDR_HOOK`. If a connection to the server
+is not necessary, the continuation :arg:`contp` will be sent a
+:data:`TS_EVENT_NET_ACCEPT_FAILED` event when the transaction
+completes.
+
+The response from the plugin is cached subject to standard and
+configured HTTP caching rules. Should the plugin wish the response
+not be cached, the plugin must use appropriate HTTP response headers
+to prevent caching. The primary purpose of :func:`TSHttpTxnServerIntercept`
+is allow plugins to provide gateways to other protocols or to allow
+to plugin to its own transport for the next hop to the server.
+:func:`TSHttpTxnServerIntercept` overrides parent cache configuration.
+
+:func:`TSHttpTxnServerIntercept` must only be called once per
+transaction. The continuation :arg:`contp` must have been created
+with a valid :type:`TSMutex`.
+
+See Also
+========
+
+:manpage:`TSAPI(3ts)`

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/ce162a6d/doc/developer-guide/api/functions/TSHttpTxnServerPacketDscpSet.en.rst
----------------------------------------------------------------------
diff --git a/doc/developer-guide/api/functions/TSHttpTxnServerPacketDscpSet.en.rst b/doc/developer-guide/api/functions/TSHttpTxnServerPacketDscpSet.en.rst
new file mode 100644
index 0000000..1fc1008
--- /dev/null
+++ b/doc/developer-guide/api/functions/TSHttpTxnServerPacketDscpSet.en.rst
@@ -0,0 +1,50 @@
+.. Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to you under the Apache License, Version
+   2.0 (the "License"); you may not use this file except in compliance
+   with the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+   implied.  See the License for the specific language governing
+   permissions and limitations under the License.
+
+.. include:: ../../../common.defs
+
+.. default-domain:: c
+
+TSHttpTxnServerPacketDscpSet
+****************************
+
+Change packet DSCP for the server side connection.
+
+Synopsis
+========
+
+`#include <ts/ts.h>`
+
+.. function:: TSReturnCode TSHttpTxnServerPacketDscpSet(TSHttpTxn txnp, int dscp)
+
+Description
+===========
+
+.. note::
+
+   The change takes effect immediately. If no OS connection has been
+   made, then this sets the mark that will be used. If an OS connection
+   is established
+
+.. XXX Third sentence above needs to be completed to indicate what happens
+       when the OS connection has already been made.
+
+See Also
+========
+
+`Traffic Shaping`_
+
+.. _Traffic Shaping:
+                 https://cwiki.apache.org/confluence/display/TS/Traffic+Shaping

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/ce162a6d/doc/developer-guide/api/functions/TSHttpTxnServerPacketMarkSet.en.rst
----------------------------------------------------------------------
diff --git a/doc/developer-guide/api/functions/TSHttpTxnServerPacketMarkSet.en.rst b/doc/developer-guide/api/functions/TSHttpTxnServerPacketMarkSet.en.rst
new file mode 100644
index 0000000..af31dd8
--- /dev/null
+++ b/doc/developer-guide/api/functions/TSHttpTxnServerPacketMarkSet.en.rst
@@ -0,0 +1,48 @@
+.. Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to you under the Apache License, Version
+   2.0 (the "License"); you may not use this file except in compliance
+   with the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+   implied.  See the License for the specific language governing
+   permissions and limitations under the License.
+
+.. include:: ../../../common.defs
+
+.. default-domain:: c
+
+TSHttpTxnServerPacketMarkSet
+****************************
+
+Change packet firewall mark for the server side connection.
+
+Synopsis
+========
+
+`#include <ts/ts.h>`
+
+.. function:: TSReturnCode TSHttpTxnServerPacketMarkSet(TSHttpTxn txnp, int mark)
+
+Description
+===========
+
+.. note::
+
+   The change takes effect immediately. If no OS connection has been
+   made, then this sets the mark that will be used. If an OS connection
+   is established
+
+.. XXX Third sentence above needs to be completed.
+
+See Also
+========
+
+.. _Traffic Shaping:
+                 https://cwiki.apache.org/confluence/display/TS/Traffic+Shaping
+   :ts:cv:`proxy.config.net.sock_packet_mark_out` and TS-1090

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/ce162a6d/doc/developer-guide/api/functions/TSHttpTxnServerPacketTosSet.en.rst
----------------------------------------------------------------------
diff --git a/doc/developer-guide/api/functions/TSHttpTxnServerPacketTosSet.en.rst b/doc/developer-guide/api/functions/TSHttpTxnServerPacketTosSet.en.rst
new file mode 100644
index 0000000..c412be1
--- /dev/null
+++ b/doc/developer-guide/api/functions/TSHttpTxnServerPacketTosSet.en.rst
@@ -0,0 +1,52 @@
+.. Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to you under the Apache License, Version
+   2.0 (the "License"); you may not use this file except in compliance
+   with the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+   implied.  See the License for the specific language governing
+   permissions and limitations under the License.
+
+.. include:: ../../../common.defs
+
+.. default-domain:: c
+
+TSHttpTxnServerPacketTosSet
+***************************
+
+Change packet TOS for the server side connection.
+
+Synopsis
+========
+
+`#include <ts/ts.h>`
+
+.. function:: TSReturnCode TSHttpTxnServerPacketTosSet(TSHttpTxn txnp, int tos)
+
+Description
+===========
+
+.. note::
+
+   The change takes effect immediately. If no OS connection has been
+   made, then this sets the mark that will be used. If an OS connection
+   is established
+
+   TOS is deprecated and replaced by DSCP. This is still used to set
+   DSCP, however the first 2 bits of this value will be ignored as they
+   now belong to the ECN field.
+
+.. XXX Third sentence in the first paragraph above needs to be completed.
+
+See Also
+========
+
+.. _Traffic Shaping:
+                 https://cwiki.apache.org/confluence/display/TS/Traffic+Shaping
+   :ts:cv:`proxy.config.net.sock_packet_tos_out` and TS-1090

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/ce162a6d/doc/developer-guide/api/functions/TSHttpTxnServerReqGet.en.rst
----------------------------------------------------------------------
diff --git a/doc/developer-guide/api/functions/TSHttpTxnServerReqGet.en.rst b/doc/developer-guide/api/functions/TSHttpTxnServerReqGet.en.rst
new file mode 100644
index 0000000..ad22251
--- /dev/null
+++ b/doc/developer-guide/api/functions/TSHttpTxnServerReqGet.en.rst
@@ -0,0 +1,32 @@
+.. Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed
+   with this work for additional information regarding copyright
+   ownership.  The ASF licenses this file to you under the Apache
+   License, Version 2.0 (the "License"); you may not use this file
+   except in compliance with the License.  You may obtain a copy of
+   the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+   implied.  See the License for the specific language governing
+   permissions and limitations under the License.
+
+.. include:: ../../../common.defs
+
+.. default-domain:: c
+
+TSHttpTxnServerReqGet
+*********************
+
+Synopsis
+========
+
+`#include <ts/ts.h>`
+
+.. function:: TSReturnCode TSHttpTxnServerReqGet(TSHttpTxn txnp, TSMBuffer * bufp, TSMLoc * offset)
+
+Description
+===========

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/ce162a6d/doc/developer-guide/api/functions/TSHttpTxnServerRespGet.en.rst
----------------------------------------------------------------------
diff --git a/doc/developer-guide/api/functions/TSHttpTxnServerRespGet.en.rst b/doc/developer-guide/api/functions/TSHttpTxnServerRespGet.en.rst
new file mode 100644
index 0000000..9150f1d
--- /dev/null
+++ b/doc/developer-guide/api/functions/TSHttpTxnServerRespGet.en.rst
@@ -0,0 +1,32 @@
+.. Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed
+   with this work for additional information regarding copyright
+   ownership.  The ASF licenses this file to you under the Apache
+   License, Version 2.0 (the "License"); you may not use this file
+   except in compliance with the License.  You may obtain a copy of
+   the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+   implied.  See the License for the specific language governing
+   permissions and limitations under the License.
+
+.. include:: ../../../common.defs
+
+.. default-domain:: c
+
+TSHttpTxnServerRespGet
+**********************
+
+Synopsis
+========
+
+`#include <ts/ts.h>`
+
+.. function:: TSReturnCode TSHttpTxnServerRespGet(TSHttpTxn txnp, TSMBuffer * bufp, TSMLoc * offset)
+
+Description
+===========

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/ce162a6d/doc/developer-guide/api/functions/TSHttpTxnSsnGet.en.rst
----------------------------------------------------------------------
diff --git a/doc/developer-guide/api/functions/TSHttpTxnSsnGet.en.rst b/doc/developer-guide/api/functions/TSHttpTxnSsnGet.en.rst
new file mode 100644
index 0000000..9c0b8ea
--- /dev/null
+++ b/doc/developer-guide/api/functions/TSHttpTxnSsnGet.en.rst
@@ -0,0 +1,32 @@
+.. Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed
+   with this work for additional information regarding copyright
+   ownership.  The ASF licenses this file to you under the Apache
+   License, Version 2.0 (the "License"); you may not use this file
+   except in compliance with the License.  You may obtain a copy of
+   the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+   implied.  See the License for the specific language governing
+   permissions and limitations under the License.
+
+.. include:: ../../../common.defs
+
+.. default-domain:: c
+
+TSHttpTxnSsnGet
+***************
+
+Synopsis
+========
+
+`#include <ts/ts.h>`
+
+.. function:: TSHttpSsn TSHttpTxnSsnGet(TSHttpTxn txnp)
+
+Description
+===========

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/ce162a6d/doc/developer-guide/api/functions/TSHttpTxnTransformRespGet.en.rst
----------------------------------------------------------------------
diff --git a/doc/developer-guide/api/functions/TSHttpTxnTransformRespGet.en.rst b/doc/developer-guide/api/functions/TSHttpTxnTransformRespGet.en.rst
new file mode 100644
index 0000000..f27fc1e
--- /dev/null
+++ b/doc/developer-guide/api/functions/TSHttpTxnTransformRespGet.en.rst
@@ -0,0 +1,32 @@
+.. Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed
+   with this work for additional information regarding copyright
+   ownership.  The ASF licenses this file to you under the Apache
+   License, Version 2.0 (the "License"); you may not use this file
+   except in compliance with the License.  You may obtain a copy of
+   the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+   implied.  See the License for the specific language governing
+   permissions and limitations under the License.
+
+.. include:: ../../../common.defs
+
+.. default-domain:: c
+
+TSHttpTxnTransformRespGet
+*************************
+
+Synopsis
+========
+
+`#include <ts/ts.h>`
+
+.. function:: TSReturnCode TSHttpTxnTransformRespGet(TSHttpTxn txnp, TSMBuffer * bufp, TSMLoc * offset)
+
+Description
+===========

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/ce162a6d/doc/developer-guide/api/functions/TSHttpTxnTransformedRespCache.en.rst
----------------------------------------------------------------------
diff --git a/doc/developer-guide/api/functions/TSHttpTxnTransformedRespCache.en.rst b/doc/developer-guide/api/functions/TSHttpTxnTransformedRespCache.en.rst
new file mode 100644
index 0000000..a84077f
--- /dev/null
+++ b/doc/developer-guide/api/functions/TSHttpTxnTransformedRespCache.en.rst
@@ -0,0 +1,32 @@
+.. Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed
+   with this work for additional information regarding copyright
+   ownership.  The ASF licenses this file to you under the Apache
+   License, Version 2.0 (the "License"); you may not use this file
+   except in compliance with the License.  You may obtain a copy of
+   the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+   implied.  See the License for the specific language governing
+   permissions and limitations under the License.
+
+.. include:: ../../../common.defs
+
+.. default-domain:: c
+
+TSHttpTxnTransformedRespCache
+*****************************
+
+Synopsis
+========
+
+`#include <ts/ts.h>`
+
+.. function:: void TSHttpTxnTransformedRespCache(TSHttpTxn txnp, int on)
+
+Description
+===========

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/ce162a6d/doc/developer-guide/api/functions/TSHttpTxnUntransformedRespCache.en.rst
----------------------------------------------------------------------
diff --git a/doc/developer-guide/api/functions/TSHttpTxnUntransformedRespCache.en.rst b/doc/developer-guide/api/functions/TSHttpTxnUntransformedRespCache.en.rst
new file mode 100644
index 0000000..33e77db
--- /dev/null
+++ b/doc/developer-guide/api/functions/TSHttpTxnUntransformedRespCache.en.rst
@@ -0,0 +1,32 @@
+.. Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed
+   with this work for additional information regarding copyright
+   ownership.  The ASF licenses this file to you under the Apache
+   License, Version 2.0 (the "License"); you may not use this file
+   except in compliance with the License.  You may obtain a copy of
+   the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+   implied.  See the License for the specific language governing
+   permissions and limitations under the License.
+
+.. include:: ../../../common.defs
+
+.. default-domain:: c
+
+TSHttpTxnUntransformedRespCache
+*******************************
+
+Synopsis
+========
+
+`#include <ts/ts.h>`
+
+.. function:: void TSHttpTxnUntransformedRespCache(TSHttpTxn txnp, int on)
+
+Description
+===========

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/ce162a6d/doc/developer-guide/api/functions/TSIOBufferBlockReadStart.en.rst
----------------------------------------------------------------------
diff --git a/doc/developer-guide/api/functions/TSIOBufferBlockReadStart.en.rst b/doc/developer-guide/api/functions/TSIOBufferBlockReadStart.en.rst
new file mode 100644
index 0000000..1208e4e
--- /dev/null
+++ b/doc/developer-guide/api/functions/TSIOBufferBlockReadStart.en.rst
@@ -0,0 +1,32 @@
+.. Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed
+   with this work for additional information regarding copyright
+   ownership.  The ASF licenses this file to you under the Apache
+   License, Version 2.0 (the "License"); you may not use this file
+   except in compliance with the License.  You may obtain a copy of
+   the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+   implied.  See the License for the specific language governing
+   permissions and limitations under the License.
+
+.. include:: ../../../common.defs
+
+.. default-domain:: c
+
+TSIOBufferBlockReadStart
+************************
+
+Synopsis
+========
+
+`#include <ts/ts.h>`
+
+.. function:: const char * TSIOBufferBlockReadStart(TSIOBufferBlock blockp, TSIOBufferReader readerp, int64_t * avail)
+
+Description
+===========

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/ce162a6d/doc/developer-guide/api/functions/TSIOBufferCopy.en.rst
----------------------------------------------------------------------
diff --git a/doc/developer-guide/api/functions/TSIOBufferCopy.en.rst b/doc/developer-guide/api/functions/TSIOBufferCopy.en.rst
new file mode 100644
index 0000000..81f70a0
--- /dev/null
+++ b/doc/developer-guide/api/functions/TSIOBufferCopy.en.rst
@@ -0,0 +1,32 @@
+.. Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed
+   with this work for additional information regarding copyright
+   ownership.  The ASF licenses this file to you under the Apache
+   License, Version 2.0 (the "License"); you may not use this file
+   except in compliance with the License.  You may obtain a copy of
+   the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+   implied.  See the License for the specific language governing
+   permissions and limitations under the License.
+
+.. include:: ../../../common.defs
+
+.. default-domain:: c
+
+TSIOBufferCopy
+**************
+
+Synopsis
+========
+
+`#include <ts/ts.h>`
+
+.. function:: int64_t TSIOBufferCopy(TSIOBuffer bufp, TSIOBufferReader readerp, int64_t length, int64_t offset)
+
+Description
+===========

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/ce162a6d/doc/developer-guide/api/functions/TSIOBufferCreate.en.rst
----------------------------------------------------------------------
diff --git a/doc/developer-guide/api/functions/TSIOBufferCreate.en.rst b/doc/developer-guide/api/functions/TSIOBufferCreate.en.rst
new file mode 100644
index 0000000..9de8e5b
--- /dev/null
+++ b/doc/developer-guide/api/functions/TSIOBufferCreate.en.rst
@@ -0,0 +1,98 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements.  See the NOTICE file
+   distributed with this work for additional information
+   regarding copyright ownership.  The ASF licenses this file
+   to you under the Apache License, Version 2.0 (the
+   "License"); you may not use this file except in compliance
+   with the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing,
+   software distributed under the License is distributed on an
+   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+   KIND, either express or implied.  See the License for the
+   specific language governing permissions and limitations
+   under the License.
+
+.. include:: ../../../common.defs
+
+.. default-domain:: c
+
+TSIOBufferCreate
+****************
+
+Traffic Server IO buffer API.
+
+Synopsis
+========
+
+`#include <ts/ts.h>`
+
+.. function:: TSIOBuffer TSIOBufferCreate(void)
+.. function:: TSIOBuffer TSIOBufferSizedCreate(TSIOBufferSizeIndex index)
+.. function:: void TSIOBufferDestroy(TSIOBuffer bufp)
+.. function:: int64_t TSIOBufferWrite(TSIOBuffer bufp, const void * buf, int64_t length)
+.. function:: void TSIOBufferProduce(TSIOBuffer bufp, int64_t nbytes)
+.. function:: int64_t TSIOBufferWaterMarkGet(TSIOBuffer bufp)
+.. function:: void TSIOBufferWaterMarkSet(TSIOBuffer bufp, int64_t water_mark)
+
+Description
+===========
+
+The :type:`TSIOBuffer` data structure is the building block of the
+:type:`TSVConn`
+abstraction. An IO buffer is composed of a list of buffer blocks which
+are reference counted so that they can reside in multiple buffers at the
+same time. This makes it extremely efficient to copy data from one IO
+buffer to another using :func:`TSIOBufferCopy` since Traffic Server only needs to
+copy pointers and adjust reference counts appropriately and not actually
+copy any data. However, applications should still strive to ensure data
+blocks are a reasonable size.
+
+The IO buffer abstraction provides for a single writer and multiple
+readers. In order for the readers to have no knowledge of each
+other, they manipulate IO buffers through the :type:`TSIOBufferReader`
+data structure. Since only a single writer is allowed, there is no
+corresponding :type:`TSIOBufferWriter` data structure. The writer
+simply modifies the IO buffer directly.
+
+:func:`TSIOBufferCreate` creates an empty :type:`TSIOBuffer`.
+
+:func:`TSIOBufferSizedCreate` creates an empty :type:`TSIOBuffer`
+with an initial capacity of :arg:`index` bytes.
+
+:func:`TSIOBufferDestroy` destroys the IO buffer :arg:`bufp`. Since multiple IO
+buffers can share data, this does not necessarily free all of the data
+associated with the IO buffer but simply decrements the appropriate reference counts.
+
+:func:`TSIOBufferWrite` appends :arg:`length` bytes from the buffer :arg:`buf` to the IO
+buffer :arg:`bufp` and returns the number of bytes successfully written into the
+IO buffer.
+
+:func:`TSIOBufferProduce` makes :arg:`nbytes` of data available for reading in the IO
+buffer :arg:`bufp`. A common pattern for writing to an IO buffer is to copy
+data into a buffer block and then call INKIOBufferProduce to make the new
+data visible to any readers.
+
+.. XXX The above references an old API function: INKIOBufferProduce and needs to
+       be fixed. I don't see a TSIOBufferProduce function that would be its
+       obvious replacement from the Ink->TS rename.
+
+The watermark of an :type:`TSIOBuffer` is the minimum number of bytes of data
+that have to be in the buffer before calling back any continuation that
+has initiated a read operation on this buffer. As a writer feeds data
+into the :type:`TSIOBuffer`, no readers are called back until the amount of data
+reaches the watermark. Setting a watermark can improve performance
+because it avoids frequent callbacks to read small amounts of data.
+:func:`TSIOBufferWaterMarkGet` gets the current watermark for the IO buffer
+:arg:`bufp`.
+
+:func:`TSIOBufferWaterMarkSet` gets the current watermark for the IO buffer
+:arg:`bufp` to :arg:`water_mark` bytes.
+
+See Also
+========
+
+:manpage:`TSAPI(3ts)`,
+:manpage:`TSIOBufferReaderAlloc(3ts)`

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/ce162a6d/doc/developer-guide/api/functions/TSInstallDirGet.en.rst
----------------------------------------------------------------------
diff --git a/doc/developer-guide/api/functions/TSInstallDirGet.en.rst b/doc/developer-guide/api/functions/TSInstallDirGet.en.rst
new file mode 100644
index 0000000..7f57f06
--- /dev/null
+++ b/doc/developer-guide/api/functions/TSInstallDirGet.en.rst
@@ -0,0 +1,64 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements.  See the NOTICE file
+   distributed with this work for additional information
+   regarding copyright ownership.  The ASF licenses this file
+   to you under the Apache License, Version 2.0 (the
+   "License"); you may not use this file except in compliance
+   with the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing,
+   software distributed under the License is distributed on an
+   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+   KIND, either express or implied.  See the License for the
+   specific language governing permissions and limitations
+   under the License.
+
+.. include:: ../../../common.defs
+
+.. default-domain:: c
+
+TSInstallDirGet
+***************
+
+Return Traffic Server installation directories.
+
+Synopsis
+========
+
+`#include <ts/ts.h>`
+
+.. function:: const char * TSInstallDirGet(void)
+.. function:: const char * TSConfigDirGet(void)
+.. function:: const char * TSPluginDirGet(void)
+
+Description
+===========
+
+:func:`TSInstallDirGet` returns the path to the root of the Traffic
+Server installation. :func:`TSConfigDirGet` and :func:`TSPluginDirGet`
+return the complete, absolute path to the configuration directory
+and the plugin installation directory, respectively.
+
+Return Values
+=============
+
+These functions all return a NUL-terminated string that must not be modified
+or freed.
+
+Examples
+========
+
+To load a file that is located in the Traffic Server configuration directory::
+
+    #include <ts/ts.h>
+    #include <stdio.h>
+
+    char * path;
+    asprintf(&path, "%s/example.conf", TSConfigDirGet());
+
+See Slso
+========
+
+:manpage:`TSAPI(3ts)`

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/ce162a6d/doc/developer-guide/api/functions/TSLifecycleHookAdd.en.rst
----------------------------------------------------------------------
diff --git a/doc/developer-guide/api/functions/TSLifecycleHookAdd.en.rst b/doc/developer-guide/api/functions/TSLifecycleHookAdd.en.rst
new file mode 100644
index 0000000..ae18207
--- /dev/null
+++ b/doc/developer-guide/api/functions/TSLifecycleHookAdd.en.rst
@@ -0,0 +1,112 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements.  See the NOTICE file
+   distributed with this work for additional information
+   regarding copyright ownership.  The ASF licenses this file
+   to you under the Apache License, Version 2.0 (the
+   "License"); you may not use this file except in compliance
+   with the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing,
+   software distributed under the License is distributed on an
+   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+   KIND, either express or implied.  See the License for the
+   specific language governing permissions and limitations
+   under the License.
+
+.. default-domain:: c
+
+.. _ts-lifecycle-hook-add:
+
+==================
+TSLifecycleHookAdd
+==================
+
+Synopsis
+========
+`#include <ts/ts.h>`
+
+.. function:: void TSLifecycleHookAdd(TSLifecycleHookID id, TSCont contp)
+
+Description
+===========
+
+:func:`TSLifecycleHookAdd` adds :arg:`contp` to the list of lifecycle hooks specified by :arg:`id`. Lifecycle hooks are
+based on the Traffic Server process, not on any specific transaction or session. These will typically be called only
+once during the execution of the Traffic Server process and therefore should be added in :func:`TSPluginInit` (which could itself be considered a lifecyle hook). Unlike other hooks, lifecycle hooks may not have a well defined ordering and use of them should not assume that one of the hooks is always called before another unless specifically mentioned.
+
+.. c:var:: TS_LIFECYCLE_PORTS_INITIALIZED_HOOK
+
+   Called after the :ts:cv:`proxy server port <proxy.config.http.server_ports>` data structures have been initialized
+   but before connections are accepted on those ports. The sockets corresponding to the ports may or may not be open
+   depending on how the :program:`traffic_server` process was invoked. Other API functions that depend on server ports should be
+   called from this hook and not :func:`TSPluginInit`.
+
+   Invoked with the event :c:data:`TS_EVENT_LIFECYCLE_PORTS_INITIALIZED` and :c:data:`NULL` data.
+
+.. c:var:: TS_LIFECYCLE_PORTS_READY_HOOK
+
+   Called after enabling connections on the proxy server ports. Because Traffic Server is threaded this may or may not
+   be called before any connections are accepted. The hook code may assume that any connection to Traffic Server started
+   after this hook is called will be accepted by Traffic Server, making this a convenient place to signal external
+   processes of that.
+
+   Invoked with the event :c:data:`TS_EVENT_LIFECYCLE_PORTS_READY` and :c:data:`NULL` data.
+
+.. c:var:: TS_LIFECYCLE_CACHE_READY_HOOK
+
+   Called after Traffic Server cache initialization has finished.
+
+   Invoked with the event :c:data:`TS_EVENT_LIFECYCLE_CACHE_READY` and :c:data:`NULL` data.
+
+Ordering
+========
+
+:c:data:`TS_LIFECYCLE_PORTS_INITIALIZED_HOOK` will always be called before :c:data:`TS_LIFECYCLE_PORTS_READY_HOOK`.
+
+Examples
+========
+
+The following example demonstrates how to correctly use :func:`TSNetAcceptNamedProtocol`, which requires the proxy ports
+to be initialized and therefore does not work if called from :func:`TSPluginInit` directly. ::
+
+   #include <ts/ts.h>
+
+   #define SSL_PROTOCOL_NAME "whatever"
+
+   static int
+   ssl_proto_handler(TSCont contp, TSEvent event, void* data)
+   {
+      /// Do named protocol handling.
+   }
+
+   static int
+   local_ssl_init(TSCont contp, TSEvent event, void *edata)
+   {
+      if (TS_EVENT_LIFECYCLE_PORTS_INITIALIZED == event) { // just to be safe.
+         TSNetAcceptNamedProtocol(
+            TSContCreate(ssl_proto_handler, TSMutexCreate()),
+            SSL_PROTOCOL_NAME
+         );
+      }
+      return 0;
+   }
+
+   void
+   TSPluginInit (int argc, const char *argv[])
+   {
+      TSLifecycleHookAdd(TS_LIFECYCLE_PORTS_INITIALIZED_HOOK, TSContCreate(local_ssl_init, NULL));
+   }
+
+History
+=======
+
+Lifecycle hooks were introduced to solve process initialization ordering issues (TS-1487). Different API calls required
+different modules of Traffic Server to be initialized for the call to work, but others did not work that late in initialization, which was problematic because all of them could effectively only be called from :func:`TSPluginInit` . The
+solution was to move :func:`TSPluginInit` as early as possible in the process initialization and provide hooks for API
+calls that needed to be invoked later which served essentially as additional pluging initialization points.
+
+See also
+========
+:manpage:`TSAPI(3ts)`, :manpage:`TSContCreate(3ts)`

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/ce162a6d/doc/developer-guide/api/functions/TSMBufferCreate.en.rst
----------------------------------------------------------------------
diff --git a/doc/developer-guide/api/functions/TSMBufferCreate.en.rst b/doc/developer-guide/api/functions/TSMBufferCreate.en.rst
new file mode 100644
index 0000000..5277a05
--- /dev/null
+++ b/doc/developer-guide/api/functions/TSMBufferCreate.en.rst
@@ -0,0 +1,97 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements.  See the NOTICE file
+   distributed with this work for additional information
+   regarding copyright ownership.  The ASF licenses this file
+   to you under the Apache License, Version 2.0 (the
+   "License"); you may not use this file except in compliance
+   with the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+.. default-domain:: c
+
+===============
+TSMBufferCreate
+===============
+
+Traffic Server marshall buffer API.
+
+Synopsis
+========
+
+`#include <ts/ts.h>`
+
+.. function:: TSMBuffer TSMBufferCreate(void)
+.. function:: TSReturnCode TSMBufferDestroy(TSMBuffer bufp)
+.. function:: TSReturnCode TSHandleMLocRelease(TSMBuffer bufp, TSMLoc parent, TSMLoc mloc)
+
+Description
+===========
+
+The marshal buffer or :type:`TSMBuffer` is a heap data structure that stores
+parsed URLs, MIME headers and HTTP headers. You can allocate new objects
+out of marshal buffers, and change the values within the marshal buffer.
+Whenever you manipulate an object, you require the handle to the object
+(:type:`TSMLoc`) and the marshal buffer containing the object (:type:`TSMBuffer`).
+
+Any marshal buffer fetched by :func:`TSHttpTxn*Get` will be used by other parts
+of the system. Be careful not to destroy these shared, transaction marshal buffers.
+
+:func:`TSMBufferCreate` creates a new marshal buffer and initializes
+the reference count. :func:`TSMBufferDestroy` Ignores the reference
+count and destroys the marshal buffer bufp. The internal data buffer
+associated with the marshal buffer is also destroyed if the marshal
+buffer allocated it.
+
+:func:`TSHandleMLocRelease` Releases the :type:`TSMLoc` mloc created
+from the :type:`TSMLoc` parent. If a :type:`TSMLoc` is obtained from
+a transaction, it does not have a parent :type:`TSMLoc`. Use the
+the constant :data:`TS_NULL_MLOC` as its parent.
+
+Return values
+=============
+
+:func:`TSMBufferDestroy` and :func:`TSHandleMLocRelease` return
+:data:`TS_SUCCESS` on success, or :data:`TS_ERROR` on failure.
+:func:`TSMBufferCreate` returns the new :type:`TSMBuffer`.
+
+Examples
+========
+
+::
+
+    #include <ts/ts.h>
+
+    static void
+    copyResponseMimeHdr (TSCont pCont, TSHttpTxn pTxn)
+    {
+        TSMBuffer respHdrBuf, tmpBuf;
+        TSMLoc respHttpHdrLoc, tmpMimeHdrLoc;
+
+        if (!TSHttpTxnClientRespGet(pTxn, &respHdrBuf, &respHttpHdrLoc)) {
+            TSError("couldn't retrieve client response header0);
+            TSHandleMLocRelease(respHdrBuf, TS_NULL_MLOC, respHttpHdrLoc);
+            goto done;
+        }
+
+        tmpBuf = TSMBufferCreate();
+        tmpMimeHdrLoc = TSMimeHdrCreate(tmpBuf);
+        TSMimeHdrCopy(tmpBuf, tmpMimeHdrLoc, respHdrBuf, respHttpHdrLoc);
+        TSHandleMLocRelease(tmpBuf, TS_NULL_MLOC, tmpMimeHdrLoc);
+        TSHandleMLocRelease(respHdrBuf, TS_NULL_MLOC, respHttpHdrLoc);
+        TSMBufferDestroy(tmpBuf);
+
+    done:
+        TSHttpTxnReenable(pTxn, TS_EVENT_HTTP_CONTINUE);
+    }
+
+See also
+========
+
+:manpage:`TSAPI(3ts)`

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/ce162a6d/doc/developer-guide/api/functions/TSMgmtCounterGet.en.rst
----------------------------------------------------------------------
diff --git a/doc/developer-guide/api/functions/TSMgmtCounterGet.en.rst b/doc/developer-guide/api/functions/TSMgmtCounterGet.en.rst
new file mode 100644
index 0000000..860a603
--- /dev/null
+++ b/doc/developer-guide/api/functions/TSMgmtCounterGet.en.rst
@@ -0,0 +1,32 @@
+.. Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed
+   with this work for additional information regarding copyright
+   ownership.  The ASF licenses this file to you under the Apache
+   License, Version 2.0 (the "License"); you may not use this file
+   except in compliance with the License.  You may obtain a copy of
+   the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+   implied.  See the License for the specific language governing
+   permissions and limitations under the License.
+
+.. include:: ../../../common.defs
+
+.. default-domain:: c
+
+TSMgmtCounterGet
+****************
+
+Synopsis
+========
+
+`#include <ts/ts.h>`
+
+.. function:: TSReturnCode TSMgmtCounterGet(const char * var_name, TSMgmtCounter * result)
+
+Description
+===========

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/ce162a6d/doc/developer-guide/api/functions/TSMgmtFloatGet.en.rst
----------------------------------------------------------------------
diff --git a/doc/developer-guide/api/functions/TSMgmtFloatGet.en.rst b/doc/developer-guide/api/functions/TSMgmtFloatGet.en.rst
new file mode 100644
index 0000000..651f16e
--- /dev/null
+++ b/doc/developer-guide/api/functions/TSMgmtFloatGet.en.rst
@@ -0,0 +1,32 @@
+.. Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed
+   with this work for additional information regarding copyright
+   ownership.  The ASF licenses this file to you under the Apache
+   License, Version 2.0 (the "License"); you may not use this file
+   except in compliance with the License.  You may obtain a copy of
+   the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+   implied.  See the License for the specific language governing
+   permissions and limitations under the License.
+
+.. include:: ../../../common.defs
+
+.. default-domain:: c
+
+TSMgmtFloatGet
+**************
+
+Synopsis
+========
+
+`#include <ts/ts.h>`
+
+.. function:: TSReturnCode TSMgmtFloatGet(const char * var_name, TSMgmtFloat * result)
+
+Description
+===========

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/ce162a6d/doc/developer-guide/api/functions/TSMgmtIntGet.en.rst
----------------------------------------------------------------------
diff --git a/doc/developer-guide/api/functions/TSMgmtIntGet.en.rst b/doc/developer-guide/api/functions/TSMgmtIntGet.en.rst
new file mode 100644
index 0000000..e7f6c08
--- /dev/null
+++ b/doc/developer-guide/api/functions/TSMgmtIntGet.en.rst
@@ -0,0 +1,32 @@
+.. Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed
+   with this work for additional information regarding copyright
+   ownership.  The ASF licenses this file to you under the Apache
+   License, Version 2.0 (the "License"); you may not use this file
+   except in compliance with the License.  You may obtain a copy of
+   the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+   implied.  See the License for the specific language governing
+   permissions and limitations under the License.
+
+.. include:: ../../../common.defs
+
+.. default-domain:: c
+
+TSMgmtIntGet
+************
+
+Synopsis
+========
+
+`#include <ts/ts.h>`
+
+.. function:: TSReturnCode TSMgmtIntGet(const char * var_name, TSMgmtInt * result)
+
+Description
+===========

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/ce162a6d/doc/developer-guide/api/functions/TSMgmtStringGet.en.rst
----------------------------------------------------------------------
diff --git a/doc/developer-guide/api/functions/TSMgmtStringGet.en.rst b/doc/developer-guide/api/functions/TSMgmtStringGet.en.rst
new file mode 100644
index 0000000..0fe3e08
--- /dev/null
+++ b/doc/developer-guide/api/functions/TSMgmtStringGet.en.rst
@@ -0,0 +1,32 @@
+.. Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed
+   with this work for additional information regarding copyright
+   ownership.  The ASF licenses this file to you under the Apache
+   License, Version 2.0 (the "License"); you may not use this file
+   except in compliance with the License.  You may obtain a copy of
+   the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+   implied.  See the License for the specific language governing
+   permissions and limitations under the License.
+
+.. include:: ../../../common.defs
+
+.. default-domain:: c
+
+TSMgmtStringGet
+***************
+
+Synopsis
+========
+
+`#include <ts/ts.h>`
+
+.. function:: TSReturnCode TSMgmtStringGet(const char * var_name, TSMgmtString * result)
+
+Description
+===========

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/ce162a6d/doc/developer-guide/api/functions/TSMgmtUpdateRegister.en.rst
----------------------------------------------------------------------
diff --git a/doc/developer-guide/api/functions/TSMgmtUpdateRegister.en.rst b/doc/developer-guide/api/functions/TSMgmtUpdateRegister.en.rst
new file mode 100644
index 0000000..d9f2f9d
--- /dev/null
+++ b/doc/developer-guide/api/functions/TSMgmtUpdateRegister.en.rst
@@ -0,0 +1,32 @@
+.. Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed
+   with this work for additional information regarding copyright
+   ownership.  The ASF licenses this file to you under the Apache
+   License, Version 2.0 (the "License"); you may not use this file
+   except in compliance with the License.  You may obtain a copy of
+   the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+   implied.  See the License for the specific language governing
+   permissions and limitations under the License.
+
+.. include:: ../../../common.defs
+
+.. default-domain:: c
+
+TSMgmtUpdateRegister
+********************
+
+Synopsis
+========
+
+`#include <ts/ts.h>`
+
+.. function:: void TSMgmtUpdateRegister(TSCont contp, const char * plugin_name)
+
+Description
+===========

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/ce162a6d/doc/developer-guide/api/functions/TSMimeHdrClone.en.rst
----------------------------------------------------------------------
diff --git a/doc/developer-guide/api/functions/TSMimeHdrClone.en.rst b/doc/developer-guide/api/functions/TSMimeHdrClone.en.rst
new file mode 100644
index 0000000..b7cc1ad
--- /dev/null
+++ b/doc/developer-guide/api/functions/TSMimeHdrClone.en.rst
@@ -0,0 +1,42 @@
+.. Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed
+   with this work for additional information regarding copyright
+   ownership.  The ASF licenses this file to you under the Apache
+   License, Version 2.0 (the "License"); you may not use this file
+   except in compliance with the License.  You may obtain a copy of
+   the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+   implied.  See the License for the specific language governing
+   permissions and limitations under the License.
+
+.. include:: ../../../common.defs
+
+.. default-domain:: c
+
+TSMimeHdrClone
+**************
+
+Synopsis
+========
+
+`#include <ts/ts.h>`
+
+.. function:: TSReturnCode TSMimeHdrClone(TSMBuffer dest_bufp, TSMBuffer src_bufp, TSMLoc src_hdr, TSMLoc * locp)
+
+Description
+===========
+
+Copies a specified MIME header to a specified marshal buffer, and
+returns the location of the copied MIME header within the destination
+marshal buffer.
+
+.. XXX The original paragraph above does not match the function prototype.
+
+Unlike :c:func:`TSMimeHdrCopy`, you do not have to create the
+destination MIME header before cloning.  Release the returned
+:c:type:`TSMLoc` handle with a call to :c:func:`TSHandleMLocRelease`.

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/ce162a6d/doc/developer-guide/api/functions/TSMimeHdrCopy.en.rst
----------------------------------------------------------------------
diff --git a/doc/developer-guide/api/functions/TSMimeHdrCopy.en.rst b/doc/developer-guide/api/functions/TSMimeHdrCopy.en.rst
new file mode 100644
index 0000000..ea43b68
--- /dev/null
+++ b/doc/developer-guide/api/functions/TSMimeHdrCopy.en.rst
@@ -0,0 +1,44 @@
+.. Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed
+   with this work for additional information regarding copyright
+   ownership.  The ASF licenses this file to you under the Apache
+   License, Version 2.0 (the "License"); you may not use this file
+   except in compliance with the License.  You may obtain a copy of
+   the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+   implied.  See the License for the specific language governing
+   permissions and limitations under the License.
+
+.. include:: ../../../common.defs
+
+.. default-domain:: c
+
+TSMimeHdrCopy
+*************
+
+Synopsis
+========
+
+`#include <ts/ts.h>`
+
+.. function:: TSReturnCode TSMimeHdrCopy(TSMBuffer dest_bufp, TSMLoc dest_offset, TSMBuffer src_bufp, TSMLoc src_offset)
+
+Description
+===========
+
+Copies the contents of the MIME header located at :arg:`src_loc` within
+:arg:`src_bufp` to the MIME header located at :arg:`dest_loc` within
+:arg:`dest_bufp`.
+
+:c:func:`TSMimeHdrCopy` works correctly even if :arg:`src_bufp` and
+:arg:`dest_bufp` point to different marshal buffers.
+
+.. important::
+
+   You must create the destination MIME header before copying into
+   it, using :c:func:`TSMimeHdrCreate`.

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/ce162a6d/doc/developer-guide/api/functions/TSMimeHdrCreate.en.rst
----------------------------------------------------------------------
diff --git a/doc/developer-guide/api/functions/TSMimeHdrCreate.en.rst b/doc/developer-guide/api/functions/TSMimeHdrCreate.en.rst
new file mode 100644
index 0000000..d8a7c08
--- /dev/null
+++ b/doc/developer-guide/api/functions/TSMimeHdrCreate.en.rst
@@ -0,0 +1,36 @@
+.. Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed
+   with this work for additional information regarding copyright
+   ownership.  The ASF licenses this file to you under the Apache
+   License, Version 2.0 (the "License"); you may not use this file
+   except in compliance with the License.  You may obtain a copy of
+   the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+   implied.  See the License for the specific language governing
+   permissions and limitations under the License.
+
+.. include:: ../../../common.defs
+
+.. default-domain:: c
+
+TSMimeHdrCreate
+***************
+
+Synopsis
+========
+
+`#include <ts/ts.h>`
+
+.. function:: TSReturnCode TSMimeHdrCreate(TSMBuffer bufp, TSMLoc * locp)
+
+Description
+===========
+
+Creates a new MIME header within :arg:`bufp`.
+
+Release with a call to :c:func:`TSHandleMLocRelease`.

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/ce162a6d/doc/developer-guide/api/functions/TSMimeHdrDestroy.en.rst
----------------------------------------------------------------------
diff --git a/doc/developer-guide/api/functions/TSMimeHdrDestroy.en.rst b/doc/developer-guide/api/functions/TSMimeHdrDestroy.en.rst
new file mode 100644
index 0000000..532c27f
--- /dev/null
+++ b/doc/developer-guide/api/functions/TSMimeHdrDestroy.en.rst
@@ -0,0 +1,34 @@
+.. Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed
+   with this work for additional information regarding copyright
+   ownership.  The ASF licenses this file to you under the Apache
+   License, Version 2.0 (the "License"); you may not use this file
+   except in compliance with the License.  You may obtain a copy of
+   the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+   implied.  See the License for the specific language governing
+   permissions and limitations under the License.
+
+.. include:: ../../../common.defs
+
+.. default-domain:: c
+
+TSMimeHdrDestroy
+****************
+
+Synopsis
+========
+
+`#include <ts/ts.h>`
+
+.. function:: TSReturnCode TSMimeHdrDestroy(TSMBuffer bufp, TSMLoc offset)
+
+Description
+===========
+
+Destroys the MIME header located at :arg:`hdr_loc` within :arg:`bufp`.

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/ce162a6d/doc/developer-guide/api/functions/TSMimeHdrFieldAppend.en.rst
----------------------------------------------------------------------
diff --git a/doc/developer-guide/api/functions/TSMimeHdrFieldAppend.en.rst b/doc/developer-guide/api/functions/TSMimeHdrFieldAppend.en.rst
new file mode 100644
index 0000000..bbe32dd
--- /dev/null
+++ b/doc/developer-guide/api/functions/TSMimeHdrFieldAppend.en.rst
@@ -0,0 +1,47 @@
+.. Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed
+   with this work for additional information regarding copyright
+   ownership.  The ASF licenses this file to you under the Apache
+   License, Version 2.0 (the "License"); you may not use this file
+   except in compliance with the License.  You may obtain a copy of
+   the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+   implied.  See the License for the specific language governing
+   permissions and limitations under the License.
+
+.. include:: ../../../common.defs
+
+.. default-domain:: c
+
+TSMimeHdrFieldAppend
+********************
+
+Synopsis
+========
+
+`#include <ts/ts.h>`
+
+.. function:: TSReturnCode TSMimeHdrFieldAppend(TSMBuffer bufp, TSMLoc hdr, TSMLoc field)
+
+Description
+===========
+
+Returns the :c:type:`TSMLoc` location of a specified MIME field from
+within the MIME header located at :arg:`hdr`.
+
+The retrieved_str parameter specifies which field to retrieve.  For
+each MIME field in the MIME header, a pointer comparison is done
+between the field name and retrieved_str.  This is a much quicker
+retrieval function than :c:func:`TSMimeHdrFieldFind` since it obviates
+the need for a string comparison.  However, retrieved_str must be one
+of the predefined field names of the form :c:data:`TS_MIME_FIELD_XXX`
+for the call to succeed.  Release the returned :c:type:`TSMLoc` handle
+with a call to :c:func:`TSHandleMLocRelease`.
+
+.. XXX The above is surely from the documentation of another function. Confirm
+       and remove from here (or relocate to the appropriate function's doc).

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/ce162a6d/doc/developer-guide/api/functions/TSMimeHdrFieldClone.en.rst
----------------------------------------------------------------------
diff --git a/doc/developer-guide/api/functions/TSMimeHdrFieldClone.en.rst b/doc/developer-guide/api/functions/TSMimeHdrFieldClone.en.rst
new file mode 100644
index 0000000..5f712cd
--- /dev/null
+++ b/doc/developer-guide/api/functions/TSMimeHdrFieldClone.en.rst
@@ -0,0 +1,32 @@
+.. Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed
+   with this work for additional information regarding copyright
+   ownership.  The ASF licenses this file to you under the Apache
+   License, Version 2.0 (the "License"); you may not use this file
+   except in compliance with the License.  You may obtain a copy of
+   the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+   implied.  See the License for the specific language governing
+   permissions and limitations under the License.
+
+.. include:: ../../../common.defs
+
+.. default-domain:: c
+
+TSMimeHdrFieldClone
+*******************
+
+Synopsis
+========
+
+`#include <ts/ts.h>`
+
+.. function:: TSReturnCode TSMimeHdrFieldClone(TSMBuffer dest_bufp, TSMLoc dest_hdr, TSMBuffer src_bufp, TSMLoc src_hdr, TSMLoc src_field, TSMLoc * locp)
+
+Description
+===========

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/ce162a6d/doc/developer-guide/api/functions/TSMimeHdrFieldCopy.en.rst
----------------------------------------------------------------------
diff --git a/doc/developer-guide/api/functions/TSMimeHdrFieldCopy.en.rst b/doc/developer-guide/api/functions/TSMimeHdrFieldCopy.en.rst
new file mode 100644
index 0000000..8f7390e
--- /dev/null
+++ b/doc/developer-guide/api/functions/TSMimeHdrFieldCopy.en.rst
@@ -0,0 +1,32 @@
+.. Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed
+   with this work for additional information regarding copyright
+   ownership.  The ASF licenses this file to you under the Apache
+   License, Version 2.0 (the "License"); you may not use this file
+   except in compliance with the License.  You may obtain a copy of
+   the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+   implied.  See the License for the specific language governing
+   permissions and limitations under the License.
+
+.. include:: ../../../common.defs
+
+.. default-domain:: c
+
+TSMimeHdrFieldCopy
+******************
+
+Synopsis
+========
+
+`#include <ts/ts.h>`
+
+.. function:: TSReturnCode TSMimeHdrFieldCopy(TSMBuffer dest_bufp, TSMLoc dest_hdr, TSMLoc dest_field, TSMBuffer src_bufp, TSMLoc src_hdr, TSMLoc src_field)
+
+Description
+===========

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/ce162a6d/doc/developer-guide/api/functions/TSMimeHdrFieldCopyValues.en.rst
----------------------------------------------------------------------
diff --git a/doc/developer-guide/api/functions/TSMimeHdrFieldCopyValues.en.rst b/doc/developer-guide/api/functions/TSMimeHdrFieldCopyValues.en.rst
new file mode 100644
index 0000000..a7e6ef6
--- /dev/null
+++ b/doc/developer-guide/api/functions/TSMimeHdrFieldCopyValues.en.rst
@@ -0,0 +1,32 @@
+.. Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed
+   with this work for additional information regarding copyright
+   ownership.  The ASF licenses this file to you under the Apache
+   License, Version 2.0 (the "License"); you may not use this file
+   except in compliance with the License.  You may obtain a copy of
+   the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+   implied.  See the License for the specific language governing
+   permissions and limitations under the License.
+
+.. include:: ../../../common.defs
+
+.. default-domain:: c
+
+TSMimeHdrFieldCopyValues
+************************
+
+Synopsis
+========
+
+`#include <ts/ts.h>`
+
+.. function:: TSReturnCode TSMimeHdrFieldCopyValues(TSMBuffer dest_bufp, TSMLoc dest_hdr, TSMLoc dest_field, TSMBuffer src_bufp, TSMLoc src_hdr, TSMLoc src_field)
+
+Description
+===========

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/ce162a6d/doc/developer-guide/api/functions/TSMimeHdrFieldCreate.en.rst
----------------------------------------------------------------------
diff --git a/doc/developer-guide/api/functions/TSMimeHdrFieldCreate.en.rst b/doc/developer-guide/api/functions/TSMimeHdrFieldCreate.en.rst
new file mode 100644
index 0000000..de5c74a
--- /dev/null
+++ b/doc/developer-guide/api/functions/TSMimeHdrFieldCreate.en.rst
@@ -0,0 +1,32 @@
+.. Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed
+   with this work for additional information regarding copyright
+   ownership.  The ASF licenses this file to you under the Apache
+   License, Version 2.0 (the "License"); you may not use this file
+   except in compliance with the License.  You may obtain a copy of
+   the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+   implied.  See the License for the specific language governing
+   permissions and limitations under the License.
+
+.. include:: ../../../common.defs
+
+.. default-domain:: c
+
+TSMimeHdrFieldCreate
+********************
+
+Synopsis
+========
+
+`#include <ts/ts.h>`
+
+.. function:: TSReturnCode TSMimeHdrFieldCreate(TSMBuffer bufp, TSMLoc hdr, TSMLoc * locp)
+
+Description
+===========

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/ce162a6d/doc/developer-guide/api/functions/TSMimeHdrFieldDestroy.en.rst
----------------------------------------------------------------------
diff --git a/doc/developer-guide/api/functions/TSMimeHdrFieldDestroy.en.rst b/doc/developer-guide/api/functions/TSMimeHdrFieldDestroy.en.rst
new file mode 100644
index 0000000..f14d01d
--- /dev/null
+++ b/doc/developer-guide/api/functions/TSMimeHdrFieldDestroy.en.rst
@@ -0,0 +1,37 @@
+.. Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed
+   with this work for additional information regarding copyright
+   ownership.  The ASF licenses this file to you under the Apache
+   License, Version 2.0 (the "License"); you may not use this file
+   except in compliance with the License.  You may obtain a copy of
+   the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+   implied.  See the License for the specific language governing
+   permissions and limitations under the License.
+
+.. include:: ../../../common.defs
+
+.. default-domain:: c
+
+TSMimeHdrFieldDestroy
+*********************
+
+Synopsis
+========
+
+`#include <ts/ts.h>`
+
+.. function:: TSReturnCode TSMimeHdrFieldDestroy(TSMBuffer bufp, TSMLoc hdr, TSMLoc field)
+
+Description
+===========
+
+Destroys the MIME :arg:`field` located at :arg:`field` within :arg:`bufp`.
+
+You must release the :c:type:`TSMLoc` field with a call to
+:c:func:`TSHandleMLocRelease`.

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/ce162a6d/doc/developer-guide/api/functions/TSMimeHdrFieldFind.en.rst
----------------------------------------------------------------------
diff --git a/doc/developer-guide/api/functions/TSMimeHdrFieldFind.en.rst b/doc/developer-guide/api/functions/TSMimeHdrFieldFind.en.rst
new file mode 100644
index 0000000..3e26efb
--- /dev/null
+++ b/doc/developer-guide/api/functions/TSMimeHdrFieldFind.en.rst
@@ -0,0 +1,42 @@
+.. Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed
+   with this work for additional information regarding copyright
+   ownership.  The ASF licenses this file to you under the Apache
+   License, Version 2.0 (the "License"); you may not use this file
+   except in compliance with the License.  You may obtain a copy of
+   the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+   implied.  See the License for the specific language governing
+   permissions and limitations under the License.
+
+.. include:: ../../../common.defs
+
+.. default-domain:: c
+
+TSMimeHdrFieldFind
+******************
+
+Synopsis
+========
+
+`#include <ts/ts.h>`
+
+.. function:: TSMLoc TSMimeHdrFieldFind(TSMBuffer bufp, TSMLoc hdr, const char * name, int length)
+
+Description
+===========
+
+Retrieves the :c:type:`TSMLoc` location of a specified MIME field from
+within the MIME header located at :arg:`hdr`.
+
+The :arg:`name` and :arg:`length` parameters specify which field to retrieve.
+For each MIME field in the MIME header, a case insensitive string
+comparison is done between the field name and :arg:`name`. If
+:c:func:`TSMimeHdrFieldFind` cannot find the requested field, it
+returns :c:data:`TS_NULL_MLOC`.  Release the returned :c:type:`TSMLoc`
+handle with a call to :c:func:`TSHandleMLocRelease`.

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/ce162a6d/doc/developer-guide/api/functions/TSMimeHdrFieldGet.en.rst
----------------------------------------------------------------------
diff --git a/doc/developer-guide/api/functions/TSMimeHdrFieldGet.en.rst b/doc/developer-guide/api/functions/TSMimeHdrFieldGet.en.rst
new file mode 100644
index 0000000..6e16e7a
--- /dev/null
+++ b/doc/developer-guide/api/functions/TSMimeHdrFieldGet.en.rst
@@ -0,0 +1,41 @@
+.. Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed
+   with this work for additional information regarding copyright
+   ownership.  The ASF licenses this file to you under the Apache
+   License, Version 2.0 (the "License"); you may not use this file
+   except in compliance with the License.  You may obtain a copy of
+   the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+   implied.  See the License for the specific language governing
+   permissions and limitations under the License.
+
+.. include:: ../../../common.defs
+
+.. default-domain:: c
+
+TSMimeHdrFieldGet
+*****************
+
+Synopsis
+========
+
+`#include <ts/ts.h>`
+
+.. function:: TSMLoc TSMimeHdrFieldGet(TSMBuffer bufp, TSMLoc hdr, int idx)
+
+Description
+===========
+
+Retrieves the location of a specified MIME field within the MIME
+header located at :arg:`hdr_loc` within :arg:`bufp`.
+
+The :arg:`idx` parameter specifies which field to retrieve.  The fields are
+numbered from :literal:`0` to ``TSMimeHdrFieldsCount(bufp, hdr_loc)`` - 1.  If
+:arg:`idx` does not lie within that range then :c:type:`TSMimeHdrFieldGet`
+returns :literal:`0`.  Release the returned handle with a call to
+:c:type:`TSHandleMLocRelease`.

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/ce162a6d/doc/developer-guide/api/functions/TSMimeHdrFieldLengthGet.en.rst
----------------------------------------------------------------------
diff --git a/doc/developer-guide/api/functions/TSMimeHdrFieldLengthGet.en.rst b/doc/developer-guide/api/functions/TSMimeHdrFieldLengthGet.en.rst
new file mode 100644
index 0000000..0b066f9
--- /dev/null
+++ b/doc/developer-guide/api/functions/TSMimeHdrFieldLengthGet.en.rst
@@ -0,0 +1,32 @@
+.. Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed
+   with this work for additional information regarding copyright
+   ownership.  The ASF licenses this file to you under the Apache
+   License, Version 2.0 (the "License"); you may not use this file
+   except in compliance with the License.  You may obtain a copy of
+   the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+   implied.  See the License for the specific language governing
+   permissions and limitations under the License.
+
+.. include:: ../../../common.defs
+
+.. default-domain:: c
+
+TSMimeHdrFieldLengthGet
+***********************
+
+Synopsis
+========
+
+`#include <ts/ts.h>`
+
+.. function:: int TSMimeHdrFieldLengthGet(TSMBuffer bufp, TSMLoc hdr, TSMLoc field)
+
+Description
+===========

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/ce162a6d/doc/developer-guide/api/functions/TSMimeHdrFieldNameGet.en.rst
----------------------------------------------------------------------
diff --git a/doc/developer-guide/api/functions/TSMimeHdrFieldNameGet.en.rst b/doc/developer-guide/api/functions/TSMimeHdrFieldNameGet.en.rst
new file mode 100644
index 0000000..20a370b
--- /dev/null
+++ b/doc/developer-guide/api/functions/TSMimeHdrFieldNameGet.en.rst
@@ -0,0 +1,32 @@
+.. Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed
+   with this work for additional information regarding copyright
+   ownership.  The ASF licenses this file to you under the Apache
+   License, Version 2.0 (the "License"); you may not use this file
+   except in compliance with the License.  You may obtain a copy of
+   the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+   implied.  See the License for the specific language governing
+   permissions and limitations under the License.
+
+.. include:: ../../../common.defs
+
+.. default-domain:: c
+
+TSMimeHdrFieldNameGet
+*********************
+
+Synopsis
+========
+
+`#include <ts/ts.h>`
+
+.. function:: const char * TSMimeHdrFieldNameGet(TSMBuffer bufp, TSMLoc hdr, TSMLoc field, int * length)
+
+Description
+===========

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/ce162a6d/doc/developer-guide/api/functions/TSMimeHdrFieldNameSet.en.rst
----------------------------------------------------------------------
diff --git a/doc/developer-guide/api/functions/TSMimeHdrFieldNameSet.en.rst b/doc/developer-guide/api/functions/TSMimeHdrFieldNameSet.en.rst
new file mode 100644
index 0000000..d013f3e
--- /dev/null
+++ b/doc/developer-guide/api/functions/TSMimeHdrFieldNameSet.en.rst
@@ -0,0 +1,32 @@
+.. Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed
+   with this work for additional information regarding copyright
+   ownership.  The ASF licenses this file to you under the Apache
+   License, Version 2.0 (the "License"); you may not use this file
+   except in compliance with the License.  You may obtain a copy of
+   the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+   implied.  See the License for the specific language governing
+   permissions and limitations under the License.
+
+.. include:: ../../../common.defs
+
+.. default-domain:: c
+
+TSMimeHdrFieldNameSet
+*********************
+
+Synopsis
+========
+
+`#include <ts/ts.h>`
+
+.. function:: TSReturnCode TSMimeHdrFieldNameSet(TSMBuffer bufp, TSMLoc hdr, TSMLoc field, const char * name, int length)
+
+Description
+===========

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/ce162a6d/doc/developer-guide/api/functions/TSMimeHdrFieldNext.en.rst
----------------------------------------------------------------------
diff --git a/doc/developer-guide/api/functions/TSMimeHdrFieldNext.en.rst b/doc/developer-guide/api/functions/TSMimeHdrFieldNext.en.rst
new file mode 100644
index 0000000..83e535f
--- /dev/null
+++ b/doc/developer-guide/api/functions/TSMimeHdrFieldNext.en.rst
@@ -0,0 +1,32 @@
+.. Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed
+   with this work for additional information regarding copyright
+   ownership.  The ASF licenses this file to you under the Apache
+   License, Version 2.0 (the "License"); you may not use this file
+   except in compliance with the License.  You may obtain a copy of
+   the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+   implied.  See the License for the specific language governing
+   permissions and limitations under the License.
+
+.. include:: ../../../common.defs
+
+.. default-domain:: c
+
+TSMimeHdrFieldNext
+******************
+
+Synopsis
+========
+
+`#include <ts/ts.h>`
+
+.. function:: TSMLoc TSMimeHdrFieldNext(TSMBuffer bufp, TSMLoc hdr, TSMLoc field)
+
+Description
+===========

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/ce162a6d/doc/developer-guide/api/functions/TSMimeHdrFieldNextDup.en.rst
----------------------------------------------------------------------
diff --git a/doc/developer-guide/api/functions/TSMimeHdrFieldNextDup.en.rst b/doc/developer-guide/api/functions/TSMimeHdrFieldNextDup.en.rst
new file mode 100644
index 0000000..099bf16
--- /dev/null
+++ b/doc/developer-guide/api/functions/TSMimeHdrFieldNextDup.en.rst
@@ -0,0 +1,32 @@
+.. Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed
+   with this work for additional information regarding copyright
+   ownership.  The ASF licenses this file to you under the Apache
+   License, Version 2.0 (the "License"); you may not use this file
+   except in compliance with the License.  You may obtain a copy of
+   the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+   implied.  See the License for the specific language governing
+   permissions and limitations under the License.
+
+.. include:: ../../../common.defs
+
+.. default-domain:: c
+
+TSMimeHdrFieldNextDup
+*********************
+
+Synopsis
+========
+
+`#include <ts/ts.h>`
+
+.. function:: TSMLoc TSMimeHdrFieldNextDup(TSMBuffer bufp, TSMLoc hdr, TSMLoc field)
+
+Description
+===========

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/ce162a6d/doc/developer-guide/api/functions/TSMimeHdrFieldRemove.en.rst
----------------------------------------------------------------------
diff --git a/doc/developer-guide/api/functions/TSMimeHdrFieldRemove.en.rst b/doc/developer-guide/api/functions/TSMimeHdrFieldRemove.en.rst
new file mode 100644
index 0000000..b35741e
--- /dev/null
+++ b/doc/developer-guide/api/functions/TSMimeHdrFieldRemove.en.rst
@@ -0,0 +1,47 @@
+.. Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed
+   with this work for additional information regarding copyright
+   ownership.  The ASF licenses this file to you under the Apache
+   License, Version 2.0 (the "License"); you may not use this file
+   except in compliance with the License.  You may obtain a copy of
+   the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+   implied.  See the License for the specific language governing
+   permissions and limitations under the License.
+
+.. include:: ../../../common.defs
+
+.. default-domain:: c
+
+TSMimeHdrFieldRemove
+********************
+
+Synopsis
+========
+
+`#include <ts/ts.h>`
+
+.. function:: TSReturnCode TSMimeHdrFieldRemove(TSMBuffer bufp, TSMLoc hdr, TSMLoc field)
+
+Description
+===========
+
+Removes the MIME field located at :arg:`field` within :arg:`bufp` from the
+header located at :arg:`hdr` within :arg:`bufp`.
+
+If the specified field cannot be found in the list of fields associated with
+the header then nothing is done.
+
+.. note::
+
+   Removing the field does not destroy the field. It only detaches the
+   field, hiding it from the printed output. The field can be
+   reattached with a call to :c:func:`TSMimeHdrFieldAppend`.  If you
+   do not use the detached field you should destroy it with a call to
+   :c:func:`TSMimeHdrFieldDestroy` and release the handle field with a
+   call to :c:func:`TSHandleMLocRelease`.

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/ce162a6d/doc/developer-guide/api/functions/TSMimeHdrFieldValueAppend.en.rst
----------------------------------------------------------------------
diff --git a/doc/developer-guide/api/functions/TSMimeHdrFieldValueAppend.en.rst b/doc/developer-guide/api/functions/TSMimeHdrFieldValueAppend.en.rst
new file mode 100644
index 0000000..21b5edf
--- /dev/null
+++ b/doc/developer-guide/api/functions/TSMimeHdrFieldValueAppend.en.rst
@@ -0,0 +1,32 @@
+.. Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed
+   with this work for additional information regarding copyright
+   ownership.  The ASF licenses this file to you under the Apache
+   License, Version 2.0 (the "License"); you may not use this file
+   except in compliance with the License.  You may obtain a copy of
+   the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+   implied.  See the License for the specific language governing
+   permissions and limitations under the License.
+
+.. include:: ../../../common.defs
+
+.. default-domain:: c
+
+TSMimeHdrFieldValueAppend
+*************************
+
+Synopsis
+========
+
+`#include <ts/ts.h>`
+
+.. function:: TSReturnCode TSMimeHdrFieldValueAppend(TSMBuffer bufp, TSMLoc hdr, TSMLoc field, int idx, const char * value, int length)
+
+Description
+===========

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/ce162a6d/doc/developer-guide/api/functions/TSMimeHdrFieldValueDateInsert.en.rst
----------------------------------------------------------------------
diff --git a/doc/developer-guide/api/functions/TSMimeHdrFieldValueDateInsert.en.rst b/doc/developer-guide/api/functions/TSMimeHdrFieldValueDateInsert.en.rst
new file mode 100644
index 0000000..f80d621
--- /dev/null
+++ b/doc/developer-guide/api/functions/TSMimeHdrFieldValueDateInsert.en.rst
@@ -0,0 +1,32 @@
+.. Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed
+   with this work for additional information regarding copyright
+   ownership.  The ASF licenses this file to you under the Apache
+   License, Version 2.0 (the "License"); you may not use this file
+   except in compliance with the License.  You may obtain a copy of
+   the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+   implied.  See the License for the specific language governing
+   permissions and limitations under the License.
+
+.. include:: ../../../common.defs
+
+.. default-domain:: c
+
+TSMimeHdrFieldValueDateInsert
+*****************************
+
+Synopsis
+========
+
+`#include <ts/ts.h>`
+
+.. function:: TSReturnCode TSMimeHdrFieldValueDateInsert(TSMBuffer bufp, TSMLoc hdr, TSMLoc field, time_t value)
+
+Description
+===========

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/ce162a6d/doc/developer-guide/api/functions/TSMimeHdrFieldValueDateSet.en.rst
----------------------------------------------------------------------
diff --git a/doc/developer-guide/api/functions/TSMimeHdrFieldValueDateSet.en.rst b/doc/developer-guide/api/functions/TSMimeHdrFieldValueDateSet.en.rst
new file mode 100644
index 0000000..c8efee4
--- /dev/null
+++ b/doc/developer-guide/api/functions/TSMimeHdrFieldValueDateSet.en.rst
@@ -0,0 +1,32 @@
+.. Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed
+   with this work for additional information regarding copyright
+   ownership.  The ASF licenses this file to you under the Apache
+   License, Version 2.0 (the "License"); you may not use this file
+   except in compliance with the License.  You may obtain a copy of
+   the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+   implied.  See the License for the specific language governing
+   permissions and limitations under the License.
+
+.. include:: ../../../common.defs
+
+.. default-domain:: c
+
+TSMimeHdrFieldValueDateSet
+**************************
+
+Synopsis
+========
+
+`#include <ts/ts.h>`
+
+.. function:: TSReturnCode TSMimeHdrFieldValueDateSet(TSMBuffer bufp, TSMLoc hdr, TSMLoc field, time_t value)
+
+Description
+===========

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/ce162a6d/doc/developer-guide/api/functions/TSMimeHdrFieldValueIntSet.en.rst
----------------------------------------------------------------------
diff --git a/doc/developer-guide/api/functions/TSMimeHdrFieldValueIntSet.en.rst b/doc/developer-guide/api/functions/TSMimeHdrFieldValueIntSet.en.rst
new file mode 100644
index 0000000..3df3fed
--- /dev/null
+++ b/doc/developer-guide/api/functions/TSMimeHdrFieldValueIntSet.en.rst
@@ -0,0 +1,32 @@
+.. Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed
+   with this work for additional information regarding copyright
+   ownership.  The ASF licenses this file to you under the Apache
+   License, Version 2.0 (the "License"); you may not use this file
+   except in compliance with the License.  You may obtain a copy of
+   the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+   implied.  See the License for the specific language governing
+   permissions and limitations under the License.
+
+.. include:: ../../../common.defs
+
+.. default-domain:: c
+
+TSMimeHdrFieldValueIntSet
+*************************
+
+Synopsis
+========
+
+`#include <ts/ts.h>`
+
+.. function:: TSReturnCode TSMimeHdrFieldValueIntSet(TSMBuffer bufp, TSMLoc hdr, TSMLoc field, int idx, int value)
+
+Description
+===========

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/ce162a6d/doc/developer-guide/api/functions/TSMimeHdrFieldValueStringGet.en.rst
----------------------------------------------------------------------
diff --git a/doc/developer-guide/api/functions/TSMimeHdrFieldValueStringGet.en.rst b/doc/developer-guide/api/functions/TSMimeHdrFieldValueStringGet.en.rst
new file mode 100644
index 0000000..b2541ad
--- /dev/null
+++ b/doc/developer-guide/api/functions/TSMimeHdrFieldValueStringGet.en.rst
@@ -0,0 +1,111 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements.  See the NOTICE file
+   distributed with this work for additional information
+   regarding copyright ownership.  The ASF licenses this file
+   to you under the Apache License, Version 2.0 (the
+   "License"); you may not use this file except in compliance
+   with the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+.. include:: ../../../common.defs
+
+.. default-domain:: c
+
+TSMimeHdrFieldValueStringGet
+****************************
+
+Get HTTP MIME header values.
+
+Synopsis
+========
+
+`#include <ts/ts.h>`
+
+.. function::  const char * TSMimeHdrFieldValueStringGet(TSMBuffer bufp, TSMLoc hdr, TSMLoc field, int idx, int * value_len_ptr)
+.. function::  int TSMimeHdrFieldValueIntGet(TSMBuffer bufp, TSMLoc hdr, TSMLoc field, int idx)
+.. function::  int64_t TSMimeHdrFieldValueInt64Get(TSMBuffer bufp, TSMLoc hdr, TSMLoc field, int idx)
+.. function::  unsigned int TSMimeHdrFieldValueUintGet(TSMBuffer bufp, TSMLoc hdr, TSMLoc field, int idx)
+.. function::  time_t TSMimeHdrFieldValueDateGet(TSMBuffer bufp, TSMLoc hdr, TSMLoc field)
+
+Description
+===========
+
+MIME headers and fields can be components of request headers,
+response headers, or standalone headers created within a Traffic
+Server plugin. The functions here are all used to access header
+values of specific types, but it is up to the caller to know if a
+header has appropriate semantics for the API used. For all but
+:func:`TSMimeHdrFieldValueStringGet`, an appropriate data conversion
+algorithm is applied to the header field string.
+
+All the APIs take a :type:`TSMBuffer` marshal buffer argument :arg:`bufp`, and
+a :type:`TSMLoc` argument :arg:`hdr` indicating the location of the HTTP
+headers. The required :arg:`field` argument is the locator of a
+specific header value, as returned by an accessor function such as
+:func:`TSMimeHdrFieldFind`.
+
+Within the header field, comma-separated values can be retrieved with an index
+:arg:`idx` ranging from :literal:`0` to the maximum number of fields for this value; this
+maximum is retrieved using :func:`TSMimeHdrFieldValuesCount`. An :arg:`idx` value of
+:literal:`-1` has the semantics of retrieving the entire header value, regardless of
+how many comma-separated values there are. If a header is not comma-separated,
+an :arg:`idx` of :literal:`0` or :literal:`-1` are the same, but the latter is
+preferred.
+
+:func:`TSMimeHdrFieldValueStringGet` returns a pointer to the header
+value, and populated :arg:`value_len_ptr` with the length of the
+value in bytes. The returned header value is not NUL-terminated.
+
+Return Values
+=============
+
+All functions returns the header value with a type matching the respective
+function name. Using :func:`TSMimeHdrFieldValueDateGet` on a header which
+does not have date-time semantics always returns :literal:`0`.
+
+Examples
+========
+
+This examples show how to retrieve and copy a specific header. ::
+
+    #include <string.h>
+    #include <ts/ts.h>
+
+    int
+    get_content_type(TSHttpTxn txnp, char* buf, size_t buf_size)
+    {
+      TSMBuffer bufp;
+      TSMLoc hdrs;
+      TSMLoc ctype_field;
+      int len = -1;
+
+      if (TS_SUCCESS == TSHttpTxnServerRespGet(txnp, &bufp, &hdrs)) {
+        ctype_field = TSMimeHdrFieldFind(bufp, hdrs, TS_MIME_FIELD_CONTENT_TYPE, TS_MIME_LEN_CONTENT_TYPE);
+
+        if (TS_NULL_MLOC != ctype_field) {
+          const char* str = TSMimeHdrFieldValueStringGet(bufp, hdrs, ctype_field, -1, &len);
+
+          if (len > buf_size)
+            len = buf_size;
+          memcpy(buf, str, len);
+          TSHandleMLocRelease(bufp, hdrs, ctype_field);
+        }
+        TSHandleMLocRelease(bufp, TS_NULL_MLOC, hdrs);
+      }
+
+      return len;
+    }
+
+See Slso
+========
+
+:manpage:`TSAPI(3ts)`,
+:manpage:`TSMBufferCreate(3ts)`,
+:manpage:`TSMimeHdrFieldValuesCount(3ts)`


Mime
View raw message