blob: 26563c7edc0f27db88734ce44b1c09caeae6fb40 [file] [log] [blame]
#!/bin/env perl
#
# 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.
use warnings;
use strict;
use Carp;
require 5.006;
#
# Check if the line has an INK* to TS* change requirement
#
# tsapi const struct sockaddr_storage *INKHttpTxnClientSockAddrGet(TSHttpTxn txnp);
my %INK_EXCLUDES = (
"INKSTAT_TYPE_INT64" => 1,
"INKSTAT_TYPE_FLOAT" => 1,
"INKStatTypes" => 1,
"INKStat" => 1,
"INKCoupledStat" => 1,
"INKStatCreate" => 1,
"INKStatIntAddTo" => 1,
"INKStatFloatAddTo" => 1,
"INKStatDecrement" => 1,
"INKStatIncrement" => 1,
"INKStatIntGet" => 1,
"INKStatFloatGet" => 1,
"INKStatIntSet" => 1,
"INKStatFloatSet" => 1,
"INKStatCoupledGlobalCategoryCreate" => 1,
"INKStatCoupledLocalCopyCreate" => 1,
"INKStatCoupledLocalCopyDestroy" => 1,
"INKStatCoupledGlobalAdd" => 1,
"INKStatCoupledLocalAdd" => 1,
"INKStatsCoupledUpdate" => 1,
"INKStatCreateV2" => 1,
"INKStatIncrementV2" => 1,
"INKStatIncrementByNameV2" => 1,
"INKStatDecrementV2" => 1,
"INKStatDecrementByNameV2" => 1,
"INKStatGetCurrentV2" => 1,
"INKStatGetCurrentByNameV2" => 1,
"INKStatGetV2" => 1,
"INKStatGetByNameV2" => 1,
"INKMimeFieldCreate" => 1,
"INKMimeFieldDestroy" => 1,
"INKMimeFieldCopy" => 1,
"INKMimeFieldCopyValues" => 1,
"INKMimeFieldNext" => 1,
"INKMimeFieldLengthGet" => 1,
"INKMimeFieldNameGet" => 1,
"INKMimeFieldNameSet" => 1,
"INKMimeFieldValuesClear" => 1,
"INKMimeFieldValuesCount" => 1,
"INKMimeFieldValueGet" => 1,
"INKMimeFieldValueGetInt" => 1,
"INKMimeFieldValueGetUint" => 1,
"INKMimeFieldValueGetDate" => 1,
"INKMimeFieldValueSet" => 1,
"INKMimeFieldValueSetInt" => 1,
"INKMimeFieldValueSetUint" => 1,
"INKMimeFieldValueSetDate" => 1,
"INKMimeFieldValueAppend" => 1,
"INKMimeFieldValueInsert" => 1,
"INKMimeFieldValueInsertInt" => 1,
"INKMimeFieldValueInsertUint" => 1,
"INKMimeFieldValueInsertDate" => 1,
"INKMimeFieldValueDelete" => 1,
"INKMimeHdrFieldValueSet" => 1,
"INKMimeHdrFieldValueGet" => 1,
"INKMimeHdrFieldInsert" => 1,
"INKMimeHdrFieldDelete" => 1,
"INKMutexTryLock" => 1,
"INKMBufferDataSet" => 1,
"INKMBufferDataGet" => 1,
"INKMBufferLengthGet" => 1,
"INKMBufferRef" => 1,
"INKMBufferUnref" => 1,
"INKMBufferCompress" => 1,
"INKIOBufferDataCreate" => 1,
"INKIOBufferBlockCreate" => 1,
"INKIOBufferAppend" => 1,
"INKCacheHttpInfoCreate" => 1,
"INKCacheHttpInfoReqGet" => 1,
"INKCacheHttpInfoRespGet" => 1,
"INKCacheHttpInfoReqSet" => 1,
"INKCacheHttpInfoRespSet" => 1,
"INKCacheHttpInfoKeySet" => 1,
"INKCacheHttpInfoSizeSet" => 1,
"INKCacheHttpInfoVector" => 1,
);
sub ink2ts {
my $tokens = shift || return 0;
my $line = shift || return;
my $ret = 0;
foreach my $tok (@{$tokens}) {
next if $INK_EXCLUDES{$tok};
if ($tok =~ /^INK/) {
if ($tok eq "INK_ERROR_PTR") {
print "\t--> INK_ERROR_PTR is not used as of v3.0, but should be replaced with TS_ERROR_PTR in v2.1.x\n";
} else {
my $new = $tok;
$new =~ s/INK/TS/;
print "\t--> $tok() has changed to $new()\n";
}
$ret = 1;
}
}
return $ret;
}
# ts/ts.h warnings
my $W_TSRETURNCODE = "returns TSReturnCode, check for == TS_SUCCESS (and not 0|1)";
my $W_RETURN_DIRECT = "returns the value directly, it can not fail (don't check for TS_ERROR)";
my $W_TSPARSERESULT = "returns TSParseResult, do not check for e.g. TS_ERROR";
my $W_OUTPUT = "provides the return value as an output parameter (pass a non-NULL pointer)";
my $W_MLOC_OUTPUT = "provides the return TSMLoc as an output parameter (pass a non-NULL pointer)";
my $W_VOID_RETURN = "returns void, it can never fail";
my $W_VOID_PTR_RETURN = "returns a void pointer directly, it can never fail";
my $W_INT = "returns the integer directly, it should not be compared to TS_ERROR";
my $W_UNSIGNED_INT = "returns the unsigned integer directly, it should not be compared to TS_ERROR";
my $W_CHAR_NULL = "returns the char* pointer directly, it can be NULL";
my $W_CHAR_NOT_NULL = "returns the char* pointer directly, it can never be NULL";
my $W_TIME_T = "returns the time_t directly";
my $W_NOT_NULL_LEN = "the length parameter can no longer be a NULL pointer";
my $W_TSCACHEKEY = "returns a TSCacheKey directly";
my $W_ARG_CHANGES = "the argument list or types have changes";
my $W_TSAIOCALLBACK = "uses the new TSAIOCallback data type";
my $W_DEPRECATED = "is deprecated, do not use (ever!)";
my $W_NO_NULL_LENGTH = "1";
my $W_NO_ERROR_PTR = "2";
my $W_RENAMED = "3";
# ts/remap.h warnings
my $W_IHANDLE = "is deprecated, use a plain void* instead";
my $W_TSREMAPSTATUS = "returns TSRemapStatus, return appropriate message";
my %RENAMED = (
"tsremap_init" => "TSRemapInit",
"tsremap_done" => "TSRemapDone",
"tsremap_new_instance" => "TSRemapNewInstance",
"tsremap_delete_instance" => "TSRemapDeleteInstance",
"tsremap_remap" => "TSRemapDoRemap",
"tsremap_os_response" => "TSRemapOSResponse",
"rhandle" => "TSHttpTxn",
"INKStatCreateV2" => "TSStatCreate",
"INKStatIncrementV2" => "TSStatIntIncrement",
"INKStatIncrementByNameV2" => "TSStatIntIncrement",
"INKStatDecrementV2" => "TSStatIntDecrement",
"INKStatDecrementByNameV2" => "TSStatIntDecrement",
"INKStatGetCurrentV2" => "TSStatIntGet",
"INKStatGetCurrentByNameV2" => "TSStatIntGet",
"INKStatGetV2" => "TSStatIntGet",
"INKStatGetByNameV2" => "TSStatIntGet",
"INKMimeFieldCreate" => "TSMimeHdrFieldCreate",
"INKMimeFieldDestroy" => "TSMimeHdrFieldDestroy",
"INKMimeFieldCopy" => "TSMimeHdrFieldCopy",
"INKMimeFieldCopyValues" => "TSMimeHdrFieldCopyValues",
"INKMimeFieldNext" => "TSMimeHdrFieldNext",
"INKMimeFieldLengthGet" => "TSMimeHdrFieldLengthGet",
"INKMimeFieldNameGet" => "TSMimeHdrFieldNameGet",
"INKMimeFieldNameSet" => "TSMimeHdrFieldNameSet",
"INKMimeFieldValuesClear" => "TSMimeHdrFieldValuesClear",
"INKMimeFieldValuesCount" => "TSMimeHdrFieldValuesCount",
"INKMimeHdrFieldValueGet" => "TSMimeHdrFieldValueStringGet",
"INKMimeFieldValueGet" => "TSMimeHdrFieldValueStringGet",
"INKMimeFieldValueGetInt" => "TSMimeHdrFieldValueIntGet",
"INKMimeFieldValueGetUint" => "TSMimeHdrFieldValueUintGet",
"INKMimeFieldValueGetDate" => "TSMimeHdrFieldValueDateGet",
"INKMimeFieldValueSet" => "TSMimeHdrFieldValueStringSet",
"TSMimeHdrFieldValueSet" => "TSMimeHdrFieldValueStringSet",
"INKMimeFieldValueSetInt" => "TSMimeHdrFieldValueIntSet",
"INKMimeFieldValueSetUint" => "TSMimeHdrFieldValueUintSet",
"INKMimeFieldValueSetDate" => "TSMimeHdrFieldValueDateSet",
"INKMimeFieldValueAppend" => "TSMimeHdrFieldValueAppend",
"INKMimeFieldValueInsert" => "TSMimeHdrFieldValueStringInsert",
"INKMimeFieldValueInsertInt" => "TSMimeHdrFieldValueIntInsert",
"INKMimeFieldValueInsertUint" => "TSMimeHdrFieldValueUintInsert",
"INKMimeFieldValueInsertDate" => "TSMimeHdrFieldValueDateInsert",
"INKMimeFieldValueDelete" => "TSMimeHdrFieldValueDelete",
"INKMimeHdrFieldInsert" => "TSMimeHdrFieldAppend",
"INKMimeHdrFieldDelete" => "TSMimeHdrFieldDestroy",
"INKMutexTryLock" => "TSMutexLockTry",
"INKIOBufferDataCreate" => "TSIOBufferCreate",
"TSIOBufferDataCreate" => "TSIOBufferCreate",
);
my %TWO_2_THREE = (
"TSPluginRegister" => [$W_TSRETURNCODE],
"TSUrlCreate" => [$W_TSRETURNCODE, $W_MLOC_OUTPUT],
"TSUrlClone" => [$W_TSRETURNCODE, $W_MLOC_OUTPUT],
"TSUrlPrint" => [$W_VOID_RETURN],
"TSUrlParse" => [$W_TSPARSERESULT],
"TSMimeParserClear" => [$W_VOID_RETURN],
"TSMimeParserDestroy" => [$W_VOID_RETURN],
"TSMimeHdrCreate" => [$W_TSRETURNCODE, $W_MLOC_OUTPUT],
"TSMimeHdrClone" => [$W_TSRETURNCODE, $W_MLOC_OUTPUT],
"TSMimeHdrPrint" => [$W_VOID_RETURN],
"TSMimeHdrParse" => [$W_TSPARSERESULT],
"TSMimeHdrFieldCreate" => [$W_TSRETURNCODE, $W_MLOC_OUTPUT],
"TSMimeHdrFieldCreateNamed" => [$W_TSRETURNCODE, $W_MLOC_OUTPUT],
"TSMimeHdrFieldClone" => [$W_TSRETURNCODE, $W_MLOC_OUTPUT],
"TSMimeHdrFieldValueStringGet" => [$W_CHAR_NOT_NULL],
"TSMimeHdrFieldValueIntGet" => [$W_INT],
"TSMimeHdrFieldValueUintGet" => [$W_INT],
"TSMimeHdrFieldValueDateGet" => [$W_TIME_T],
"TSHttpParserClear" => [$W_VOID_RETURN],
"TSHttpParserDestroy" => [$W_VOID_RETURN],
"TSHttpHdrDestroy" => [$W_VOID_RETURN],
"TSHttpHdrClone" => [$W_TSRETURNCODE, $W_MLOC_OUTPUT],
"TSHttpHdrPrint" => [$W_VOID_RETURN],
"TSHttpHdrParseReq" => [$W_TSPARSERESULT],
"TSHttpHdrParseResp" => [$W_TSPARSERESULT],
"TSHttpHdrUrlGet" => [$W_TSRETURNCODE, $W_MLOC_OUTPUT],
"TSThreadDestroy" => [$W_VOID_RETURN],
"TSMutexLock" => [$W_VOID_RETURN],
"TSMutexLockTry" => [$W_TSRETURNCODE],
"TSMutexUnlock" => [$W_VOID_RETURN],
"TSCacheKeyCreate" => [$W_TSCACHEKEY],
"TSMgmtIntGet" => [$W_TSRETURNCODE, $W_OUTPUT],
"TSMgmtCounterGet" => [$W_TSRETURNCODE, $W_OUTPUT],
"TSMgmtFloatGet" => [$W_TSRETURNCODE, $W_OUTPUT],
"TSMgmtStringGet" => [$W_TSRETURNCODE, $W_OUTPUT],
"TSContDestroy" => [$W_VOID_RETURN],
"TSContDataSet" => [$W_VOID_RETURN],
"TSContDataSet" => [$W_VOID_RETURN],
"TSHttpHookAdd" => [$W_VOID_RETURN],
"TSHttpSsnHookAdd" => [$W_VOID_RETURN],
"TSHttpSsnReenable" => [$W_VOID_RETURN],
"TSHttpSsnTransactionCount" => [$W_INT],
"TSHttpTxnHookAdd" => [$W_VOID_RETURN],
"TSHttpTxnClientReqGet" => [$W_TSRETURNCODE],
"TSHttpTxnClientRespGet" => [$W_TSRETURNCODE],
"TSHttpTxnServerReqGet" => [$W_TSRETURNCODE],
"TSHttpTxnServerRespGet" => [$W_TSRETURNCODE],
"TSHttpTxnCachedReqGet" => [$W_TSRETURNCODE],
"TSHttpTxnCachedRespGet" => [$W_TSRETURNCODE],
"TSFetchPageRespGet" => [$W_TSRETURNCODE],
"TSHttpTxnTransformRespGet" => [$W_TSRETURNCODE],
"TSHttpTxnClientFdGet" => [$W_TSRETURNCODE, $W_OUTPUT],
"TSHttpTxnErrorBodySet" => [$W_VOID_RETURN],
"TSHttpTxnParentProxySet" => [$W_VOID_RETURN],
"TSHttpTxnUntransformedRespCache" => [$W_VOID_RETURN],
"TSHttpTxnTransformedRespCache" => [$W_VOID_RETURN],
"TSHttpTxnReenable" => [$W_VOID_RETURN],
"TSHttpTxnArgSet" => [$W_VOID_RETURN],
"TSHttpTxnArgGet" => [$W_VOID_PTR_RETURN],
"TSHttpSsnArgSet" => [$W_VOID_RETURN],
"TSHttpSsnArgGet" => [$W_VOID_PTR_RETURN],
"TSHttpTxnSetHttpRetBody" => [$W_DEPRECATED],
"TSHttpTxnSetHttpRetStatus" => [$W_VOID_RETURN],
"TSHttpTxnActiveTimeoutSet" => [$W_VOID_RETURN],
"TSHttpTxnConnectTimeoutSet" => [$W_VOID_RETURN],
"TSHttpTxnDNSTimeoutSet" => [$W_VOID_RETURN],
"TSHttpTxnNoActivityTimeoutSet" => [$W_VOID_RETURN],
"TSHttpTxnIntercept" => [$W_VOID_RETURN],
"TSHttpTxnServerIntercept" => [$W_VOID_RETURN],
"TSHttpConnect" => [$W_RETURN_DIRECT],
"TSFetchUrl" => [$W_VOID_RETURN],
"TSFetchPages" => [$W_VOID_RETURN],
"TSHttpIsInternalRequest" => [$W_TSRETURNCODE],
"TSHttpAltInfoQualitySet" => [$W_VOID_RETURN],
"TSActionCancel" => [$W_VOID_RETURN],
"TSVConnClose" => [$W_VOID_RETURN],
"TSVConnAbort" => [$W_VOID_RETURN],
"TSVConnShutdown" => [$W_VOID_RETURN],
"TSVConnCacheObjectSizeGet" => [$W_RETURN_DIRECT],
"TSVIOReenable" => [$W_VOID_RETURN],
"TSVIONBytesSet" => [$W_VOID_RETURN],
"TSVIONDoneSet" => [$W_VOID_RETURN],
"TSIOBufferWaterMarkGet" => [$W_RETURN_DIRECT],
"TSIOBufferWaterMarkSet" => [$W_VOID_RETURN],
"TSIOBufferDestroy" => [$W_VOID_RETURN],
"TSIOBufferProduce" => [$W_VOID_RETURN],
"TSIOBufferReaderFree" => [$W_VOID_RETURN],
"TSIOBufferReaderConsume" => [$W_VOID_RETURN],
"TSStatIntIncrement" => [$W_VOID_RETURN],
"TSStatIntDecrement" => [$W_VOID_RETURN],
"TSStatIntGet" => [$W_RETURN_DIRECT],
"TSStatIntSet" => [$W_VOID_RETURN],
"TSStatFindName" => [$W_TSRETURNCODE, $W_OUTPUT],
"TSTextLogObjectFlush" => [$W_VOID_RETURN],
"TSTextLogObjectHeaderSet" => [$W_VOID_RETURN],
"TSTextLogObjectRollingEnabledSet" => [$W_VOID_RETURN],
"TSTextLogObjectRollingIntervalSecSet" => [$W_VOID_RETURN],
"TSTextLogObjectRollingOffsetHrSet" => [$W_VOID_RETURN],
"TSHttpTxnAborted" => [$W_TSRETURNCODE],
"TSHttpTxnClientReqHdrBytesGet" => [$W_RETURN_DIRECT],
"TSHttpTxnClientReqBodyBytesGet" => [$W_RETURN_DIRECT],
"TSHttpTxnServerReqHdrBytesGet" => [$W_RETURN_DIRECT],
"TSHttpTxnServerReqBodyBytesGet" => [$W_RETURN_DIRECT],
"TSHttpTxnPushedRespHdrBytesGet" => [$W_RETURN_DIRECT],
"TSHttpTxnPushedRespBodyBytesGet" => [$W_RETURN_DIRECT],
"TSSkipRemappingSet" => [$W_VOID_RETURN],
"TSRedirectUrlSet" => [$W_VOID_RETURN],
"TSHttpCurrentClientConnectionsGet" => [$W_RETURN_DIRECT],
"TSHttpCurrentActiveClientConnectionsGet" => [$W_RETURN_DIRECT],
"TSHttpCurrentIdleClientConnectionsGet" => [$W_RETURN_DIRECT],
"TSHttpCurrentCacheConnectionsGet" => [$W_RETURN_DIRECT],
"TSHttpCurrentServerConnectionsGet" => [$W_RETURN_DIRECT],
"TSUrlStringGet" => [$W_NO_NULL_LENGTH],
"TSHttpTxnEffectiveUrlStringGet" => [$W_NO_NULL_LENGTH],
"TSUrlUserGet" => [$W_NO_NULL_LENGTH],
"TSUrlPasswordGet" => [$W_NO_NULL_LENGTH],
"TSUrlHostGet" => [$W_NO_NULL_LENGTH],
"TSUrlPathGet" => [$W_NO_NULL_LENGTH],
"TSUrlHttpParamsGet" => [$W_NO_NULL_LENGTH],
"TSUrlHttpQueryGet" => [$W_NO_NULL_LENGTH],
"TSUrlHttpFragmentGet" => [$W_NO_NULL_LENGTH],
"TSMimeHdrFieldNameGet" => [$W_NO_NULL_LENGTH],
"TSHttpHdrMethodGet" => [$W_NO_NULL_LENGTH],
"TSHttpHdrReasonGet" => [$W_NO_NULL_LENGTH],
"TSFetchRespGet" => [$W_NO_NULL_LENGTH],
"TSHttpTxnConfigStringGet" => [$W_NO_NULL_LENGTH],
"TS_ERROR_PTR" => [$W_NO_ERROR_PTR],
"TSAIOBufGet" => [$W_TSAIOCALLBACK],
"TSAIONBytesGet" => [$W_TSAIOCALLBACK],
# Remap API changes
"TSREMAP_INTERFACE" => [$W_DEPRECATED],
"tsremap_interface" => [$W_DEPRECATED],
"fp_tsremap_interface" => [$W_DEPRECATED],
"TSREMAP_FUNCNAME_INIT" => [$W_DEPRECATED],
"TSREMAP_FUNCNAME_DONE" => [$W_DEPRECATED],
"TSREMAP_FUNCNAME_NEW_INSTANCE" => [$W_DEPRECATED],
"TSREMAP_FUNCNAME_DELETE_INSTANCE" => [$W_DEPRECATED],
"TSREMAP_FUNCNAME_REMAP" => [$W_DEPRECATED],
"TSREMAP_FUNCNAME_OS_RESPONSE" => [$W_DEPRECATED],
"base_handle" => [$W_DEPRECATED],
"ihandle" => [$W_IHANDLE],
"rhandle" => [$W_RENAMED],
"tsremap_init" => [$W_RENAMED, $W_TSRETURNCODE],
"tsremap_done" => [$W_RENAMED],
"tsremap_new_instance" => [$W_RENAMED, $W_TSRETURNCODE],
"tsremap_delete_instance" => [$W_RENAMED],
"tsremap_remap" => [$W_RENAMED, $W_TSREMAPSTATUS],
"tsremap_os_response" => [$W_RENAMED],
"INKStatCreateV2" => [$W_RENAMED],
"INKStatIncrementV2" => [$W_RENAMED],
"INKStatIncrementByNameV2" => [$W_RENAMED],
"INKStatDecrementV2" => [$W_RENAMED],
"INKStatDecrementByNameV2" => [$W_RENAMED],
"INKStatGetCurrentV2" => [$W_RENAMED],
"INKStatGetCurrentByNameV2" => [$W_RENAMED],
"INKStatGetV2" => [$W_RENAMED],
"INKStatGetByNameV2" => [$W_RENAMED],
"orig_url" => [$W_DEPRECATED],
"orig_url_size" => [$W_DEPRECATED],
"request_port" => [$W_DEPRECATED],
"remap_from_port" => [$W_DEPRECATED],
"remap_to_port" => [$W_DEPRECATED],
"request_host" => [$W_DEPRECATED],
"remap_from_host" => [$W_DEPRECATED],
"remap_to_host" => [$W_DEPRECATED],
"request_path" => [$W_DEPRECATED],
"remap_from_path" => [$W_DEPRECATED],
"remap_to_path" => [$W_DEPRECATED],
"request_cookie" => [$W_DEPRECATED],
"request_matrix" => [$W_DEPRECATED],
"from_scheme" => [$W_DEPRECATED],
"to_scheme" => [$W_DEPRECATED],
"request_query" => [$W_DEPRECATED],
"new_host" => [$W_DEPRECATED],
"new_port" => [$W_DEPRECATED],
"new_path" => [$W_DEPRECATED],
"new_query" => [$W_DEPRECATED],
"new_matrix" => [$W_DEPRECATED],
"redirect_url" => [$W_DEPRECATED],
"require_ssl" => [$W_DEPRECATED],
"INKMimeFieldCreate" => [$W_RENAMED],
"INKMimeFieldDestroy" => [$W_RENAMED],
"INKMimeFieldCopy" => [$W_RENAMED],
"INKMimeFieldCopyValues" => [$W_RENAMED],
"INKMimeFieldNext" => [$W_RENAMED],
"INKMimeFieldLengthGet" => [$W_RENAMED],
"INKMimeFieldNameGet" => [$W_RENAMED],
"INKMimeFieldNameSet" => [$W_RENAMED],
"INKMimeFieldValuesClear" => [$W_RENAMED],
"INKMimeFieldValuesCount" => [$W_RENAMED],
"INKMimeFieldValueGet" => [$W_RENAMED],
"INKMimeFieldValueGetInt" => [$W_RENAMED],
"INKMimeFieldValueGetUint" => [$W_RENAMED],
"INKMimeFieldValueGetDate" => [$W_RENAMED],
"INKMimeFieldValueSet" => [$W_RENAMED],
"INKMimeFieldValueSetInt" => [$W_RENAMED],
"INKMimeFieldValueSetUint" => [$W_RENAMED],
"INKMimeFieldValueSetDate" => [$W_RENAMED],
"INKMimeFieldValueAppend" => [$W_RENAMED],
"INKMimeFieldValueInsert" => [$W_RENAMED],
"INKMimeFieldValueInsertInt" => [$W_RENAMED],
"INKMimeFieldValueInsertUint" => [$W_RENAMED],
"INKMimeFieldValueInsertDate" => [$W_RENAMED],
"INKMimeFieldValueDelete" => [$W_RENAMED],
"INKMimeHdrFieldValueGet" => [$W_RENAMED],
"INKMimeHdrFieldValueSet" => [$W_RENAMED],
"INKMimeHdrFieldInsert" => [$W_RENAMED],
"INKMimeHdrFieldDelete" => [$W_RENAMED],
"INKMutexTryLock" => [$W_RENAMED],
"INKMBufferDataSet" => [$W_DEPRECATED],
"INKMBufferDataGet" => [$W_DEPRECATED],
"INKMBufferLengthGet" => [$W_DEPRECATED],
"INKMBufferRef" => [$W_DEPRECATED],
"INKMBufferUnref" => [$W_DEPRECATED],
"INKMBufferCompress" => [$W_DEPRECATED],
"INKIOBufferDataCreate" => [$W_RENAMED],
"TSIOBufferDataCreate" => [$W_RENAMED],
"INKIOBufferBlockCreate" => [$W_DEPRECATED],
"TSIOBufferBlockCreate" => [$W_DEPRECATED],
"INKIOBufferAppend" => [$W_DEPRECATED],
"TSIOBufferAppend" => [$W_DEPRECATED],
"INKCacheHttpInfoCreate" => [$W_DEPRECATED],
"INKCacheHttpInfoReqGet" => [$W_DEPRECATED],
"INKCacheHttpInfoRespGet" => [$W_DEPRECATED],
"INKCacheHttpInfoReqSet" => [$W_DEPRECATED],
"INKCacheHttpInfoRespSet" => [$W_DEPRECATED],
"INKCacheHttpInfoKeySet" => [$W_DEPRECATED],
"INKCacheHttpInfoSizeSet" => [$W_DEPRECATED],
"INKCacheHttpInfoVector" => [$W_DEPRECATED],
);
#
# Warning messages related to SDK v2 to v3 migration
#
sub header_write {
my $do_it = shift;
my $tok = shift;
print "--> $tok <--\n" if $do_it;
return 0;
}
sub two2three {
my $tokens = shift || return;
my $line = shift || return;
my $ret = 0;
return 0 if $line =~ /TSDebug/;
foreach my $tok (@{$tokens}) {
my $hdr_write = 1;
my $warns = $TWO_2_THREE{$tok};
next unless $warns;
foreach my $w (@{$warns}) {
if ($w eq $W_NO_NULL_LENGTH) {
if ($line =~ /NULL/) {
print " + The length output parameter can not be NULL\n";
$hdr_write = header_write($hdr_write, $tok);
$ret = 1;
}
} elsif ($w eq $W_NO_ERROR_PTR) {
$hdr_write = header_write($hdr_write, "TS_ERROR_PTR");
print " + no APIs can return TS_ERROR_PTR, you should not compare it\n";
$ret = 1;
} elsif ($w eq $W_RENAMED) {
$hdr_write = header_write($hdr_write, $tok);
print " + is renamed to $RENAMED{$tok}\n";
$ret = 1;
} else {
$hdr_write = header_write($hdr_write, $tok);
print " + $w\n";
$ret = 1;
}
}
}
return $ret;
}
#
# Main processor of the source code
#
sub process {
my $file = shift || return;
my $line = 1;
if (!open(FILE, "<$file")) {
carp "Can't open file $file";
return;
}
while (<FILE>) {
my @tokens = split(/[^a-zA-Z0-9_\.]/);
if (ink2ts(\@tokens, $_)) {
print "$file:$line:$_\n";
}
if (two2three(\@tokens, $_)) {
print "$file:$line:$_\n";
}
++$line;
}
close(FILE);
}
#
# Loop over all files provided
#
foreach my $file (@ARGV) {
process($file);
}