You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by ma...@apache.org on 2016/04/07 11:34:51 UTC
[2/2] trafficserver git commit: Revert "TS-4313: Fix a bug in MIME
caused by improper type conversion"
Revert "TS-4313: Fix a bug in MIME caused by improper type conversion"
This reverts commit caafcbbe0cad5525b337f99514a4bc0e8c71a7ae.
Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/d1557bf5
Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/d1557bf5
Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/d1557bf5
Branch: refs/heads/master
Commit: d1557bf5222bb6abf6966dacdee889edd15b4fc2
Parents: 2ee4a50
Author: Masakazu Kitajo <mk...@yahoo-corp.jp>
Authored: Thu Apr 7 18:34:07 2016 +0900
Committer: Masakazu Kitajo <mk...@yahoo-corp.jp>
Committed: Thu Apr 7 18:34:07 2016 +0900
----------------------------------------------------------------------
.gitignore | 1 -
lib/ts/TestBox.h | 1 -
proxy/hdrs/MIME.cc | 39 +++++++--------------------
proxy/hdrs/MIME.h | 1 -
proxy/hdrs/Makefile.am | 11 --------
proxy/hdrs/test_mime.cc | 64 --------------------------------------------
6 files changed, 10 insertions(+), 107 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/d1557bf5/.gitignore
----------------------------------------------------------------------
diff --git a/.gitignore b/.gitignore
index ceb32ae..493d95c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -86,7 +86,6 @@ iocore/eventsystem/test_Buffer
iocore/eventsystem/test_Event
proxy/config/records.config.default
proxy/config/storage.config.default
-proxy/hdrs/test_mime
proxy/http2/test_Huffmancode
plugins/header_rewrite/header_rewrite_test
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/d1557bf5/lib/ts/TestBox.h
----------------------------------------------------------------------
diff --git a/lib/ts/TestBox.h b/lib/ts/TestBox.h
index d8140e2..4020fc3 100644
--- a/lib/ts/TestBox.h
+++ b/lib/ts/TestBox.h
@@ -25,7 +25,6 @@
*/
#include <stdarg.h>
-#include "ts/ink_apidefs.h"
#include "ts/Regression.h"
namespace
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/d1557bf5/proxy/hdrs/MIME.cc
----------------------------------------------------------------------
diff --git a/proxy/hdrs/MIME.cc b/proxy/hdrs/MIME.cc
index b0dbc82..2907d35 100644
--- a/proxy/hdrs/MIME.cc
+++ b/proxy/hdrs/MIME.cc
@@ -473,8 +473,7 @@ mime_hdr_set_accelerator_slotnum(MIMEHdrImpl *mh, int32_t slot_id, uint32_t slot
inline void
mime_hdr_set_accelerators_and_presence_bits(MIMEHdrImpl *mh, MIMEField *field)
{
- int slot_id;
- ptrdiff_t slot_num;
+ int slot_id, slot_num;
if (field->m_wks_idx < 0)
return;
@@ -482,20 +481,11 @@ mime_hdr_set_accelerators_and_presence_bits(MIMEHdrImpl *mh, MIMEField *field)
slot_id = hdrtoken_index_to_slotid(field->m_wks_idx);
if (slot_id != MIME_SLOTID_NONE) {
- if (mh->m_first_fblock.contains(field)) {
- slot_num = (field - &(mh->m_first_fblock.m_field_slots[0]));
- // constains() assure that the field is in the block, and the calculated
- // slot_num will be between 0 and 15, which seem valid.
- // However, strangely, this function regards slot number 14 and 15 as
- // unknown for some reason that is not clear. It might be a bug.
- // The block below is left to keep the original behavior. See also TS-4316.
- if (slot_num >= MIME_FIELD_SLOTNUM_UNKNOWN) {
- slot_num = MIME_FIELD_SLOTNUM_UNKNOWN;
- }
- } else {
- slot_num = MIME_FIELD_SLOTNUM_UNKNOWN;
- }
- mime_hdr_set_accelerator_slotnum(mh, slot_id, slot_num);
+ slot_num = (field - &(mh->m_first_fblock.m_field_slots[0]));
+ if ((slot_num >= 0) && (slot_num < MIME_FIELD_SLOTNUM_UNKNOWN))
+ mime_hdr_set_accelerator_slotnum(mh, slot_id, slot_num);
+ else
+ mime_hdr_set_accelerator_slotnum(mh, slot_id, MIME_FIELD_SLOTNUM_UNKNOWN);
}
}
@@ -1650,11 +1640,10 @@ mime_hdr_field_slotnum(MIMEHdrImpl *mh, MIMEField *field)
slots_so_far = 0;
for (fblock = &(mh->m_first_fblock); fblock != NULL; fblock = fblock->m_next) {
- if (fblock->contains(field)) {
- MIMEField *first = &(fblock->m_field_slots[0]);
- ptrdiff_t block_slot = field - first; // in units of MIMEField
- return slots_so_far + block_slot;
- }
+ MIMEField *first = &(fblock->m_field_slots[0]);
+ int block_slot = (int)(field - first); // in units of MIMEField
+ if ((block_slot >= 0) && (block_slot < MIME_FIELD_BLOCK_SLOTS))
+ return (slots_so_far + block_slot);
slots_so_far += MIME_FIELD_BLOCK_SLOTS;
}
return -1;
@@ -3626,14 +3615,6 @@ MIMEFieldBlockImpl::strings_length()
return ret;
}
-bool
-MIMEFieldBlockImpl::contains(const MIMEField *field)
-{
- MIMEField *first = &(m_field_slots[0]);
- MIMEField *last = &(m_field_slots[MIME_FIELD_BLOCK_SLOTS - 1]);
- return (field >= first) && (field <= last);
-}
-
void
MIMEFieldBlockImpl::check_strings(HeapCheck *heaps, int num_heaps)
{
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/d1557bf5/proxy/hdrs/MIME.h
----------------------------------------------------------------------
diff --git a/proxy/hdrs/MIME.h b/proxy/hdrs/MIME.h
index 5e4f4e3..f882df1 100644
--- a/proxy/hdrs/MIME.h
+++ b/proxy/hdrs/MIME.h
@@ -194,7 +194,6 @@ struct MIMEFieldBlockImpl : public HdrHeapObjImpl {
void unmarshal(intptr_t offset);
void move_strings(HdrStrHeap *new_heap);
size_t strings_length();
- bool contains(const MIMEField *field);
// Sanity Check Functions
void check_strings(HeapCheck *heaps, int num_heaps);
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/d1557bf5/proxy/hdrs/Makefile.am
----------------------------------------------------------------------
diff --git a/proxy/hdrs/Makefile.am b/proxy/hdrs/Makefile.am
index 1154aa6..f0a6515 100644
--- a/proxy/hdrs/Makefile.am
+++ b/proxy/hdrs/Makefile.am
@@ -59,17 +59,6 @@ load_http_hdr_LDADD = -L. -lhdrs \
@LIBTCL@
load_http_hdr_LDFLAGS = @EXTRA_CXX_LDFLAGS@ @LIBTOOL_LINK_FLAGS@
-check_PROGRAMS = test_mime
-
-TESTS = test_mime
-
-test_mime_LDADD = -L. -lhdrs \
- $(top_builddir)/lib/ts/libtsutil.la \
- $(top_builddir)/iocore/eventsystem/libinkevent.a
-test_mime_LDFLAGS = @EXTRA_CXX_LDFLAGS@ @LIBTOOL_LINK_FLAGS@
-
-test_mime_SOURCES = test_mime.cc
-
#test_UNUSED_SOURCES = \
# test_header.cc \
# test_urlhash.cc
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/d1557bf5/proxy/hdrs/test_mime.cc
----------------------------------------------------------------------
diff --git a/proxy/hdrs/test_mime.cc b/proxy/hdrs/test_mime.cc
deleted file mode 100644
index c4752ae..0000000
--- a/proxy/hdrs/test_mime.cc
+++ /dev/null
@@ -1,64 +0,0 @@
-/** @file
-
- A brief file description
-
- @section license License
-
- 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 <ts/TestBox.h>
-#include "P_Eventsystem.h"
-#include "MIME.h"
-
-REGRESSION_TEST(MIME)(RegressionTest *t, int /* atype ATS_UNUSED */, int *pstatus)
-{
- TestBox box(t, pstatus);
- box = REGRESSION_TEST_PASSED;
-
- MIMEField *field;
- MIMEHdr hdr;
- hdr.create(NULL);
-
- hdr.field_create("Test1", 5);
- hdr.field_create("Test2", 5);
- hdr.field_create("Test3", 5);
- hdr.field_create("Test4", 5);
- field = hdr.field_create("Test5", 5);
-
- box.check(hdr.m_mime->m_first_fblock.contains(field), "The field block doesn't contain the field but it should");
- box.check(!hdr.m_mime->m_first_fblock.contains(field + (1L << 32)), "The field block contains the field but it shouldn't");
-
- int slot_num = mime_hdr_field_slotnum(hdr.m_mime, field);
- box.check(slot_num == 4, "Slot number is %d but should be 4", slot_num);
-
- slot_num = mime_hdr_field_slotnum(hdr.m_mime, field + (1L << 32));
- box.check(slot_num == -1, "Slot number is %d but should be -1", slot_num);
-
- hdr.destroy();
-}
-
-int
-main(int argc, char *argv[])
-{
- Thread *main_thread = new EThread;
- main_thread->set_specific();
- mime_init();
-
- RegressionTest::run();
- return RegressionTest::final_status == REGRESSION_TEST_PASSED ? 0 : 1;
-}