| 2037 | } |
| 2038 | |
| 2039 | TSReturnCode |
| 2040 | TSMimeHdrFieldNameSet(TSMBuffer bufp, TSMLoc hdr, TSMLoc field, const char *name, int length) |
| 2041 | { |
| 2042 | // Allow to modify the buffer only |
| 2043 | // if bufp is modifiable. If bufp is not modifiable return |
| 2044 | // TS_ERROR. If allowed, return TS_SUCCESS. Changed the |
| 2045 | // return value of function from void to TSReturnCode. |
| 2046 | sdk_assert(sdk_sanity_check_mbuffer(bufp) == TS_SUCCESS); |
| 2047 | sdk_assert((sdk_sanity_check_mime_hdr_handle(hdr) == TS_SUCCESS) || (sdk_sanity_check_http_hdr_handle(hdr) == TS_SUCCESS)); |
| 2048 | sdk_assert(sdk_sanity_check_field_handle(field, hdr) == TS_SUCCESS); |
| 2049 | sdk_assert(sdk_sanity_check_null_ptr((void *)name) == TS_SUCCESS); |
| 2050 | |
| 2051 | if (!isWriteable(bufp)) { |
| 2052 | return TS_ERROR; |
| 2053 | } |
| 2054 | |
| 2055 | if (length == -1) { |
| 2056 | length = strlen(name); |
| 2057 | } |
| 2058 | |
| 2059 | MIMEFieldSDKHandle *handle = reinterpret_cast<MIMEFieldSDKHandle *>(field); |
| 2060 | HdrHeap *heap = (reinterpret_cast<HdrHeapSDKHandle *>(bufp))->m_heap; |
| 2061 | |
| 2062 | int attached = (handle->mh && handle->field_ptr->is_live()); |
| 2063 | |
| 2064 | if (attached) { |
| 2065 | mime_hdr_field_detach(handle->mh, handle->field_ptr, false); |
| 2066 | } |
| 2067 | |
| 2068 | handle->field_ptr->name_set(heap, handle->mh, name, length); |
| 2069 | |
| 2070 | if (attached) { |
| 2071 | mime_hdr_field_attach(handle->mh, handle->field_ptr, 1, nullptr); |
| 2072 | } |
| 2073 | return TS_SUCCESS; |
| 2074 | } |
| 2075 | |
| 2076 | TSReturnCode |
| 2077 | TSMimeHdrFieldValuesClear(TSMBuffer bufp, TSMLoc hdr, TSMLoc field) |