October 01, 2003
URL Canonicalization Testing
URL Canonicalization Testing
Listing 5 A stripped-down version of GenerateEncodings
// from header:
// typedef std::wstring QuadS;
// const std::wstring quadSeparator(L".");
// const std::wstring hexPrefix(L"0x");
// const std::wstring octalPrefix(L"0");
void CIPEncoder::GenerateEncodings(QuadS quadOne, QuadS quadTwo
, QuadS quadThree, QuadS quadFour
, unsigned long charactersToPrepend, std::wstring dotEncoding)
{
// Raw IP.
AddAddress(GenerateRandomDecimalDigits(charactersToPrepend) + quadOne
+ quadSeparator
+ GenerateRandomDecimalDigits(charactersToPrepend) + quadTwo
+ quadSeparator
+ GenerateRandomDecimalDigits(charactersToPrepend) + quadThree
+ quadSeparator
+ GenerateRandomDecimalDigits(charactersToPrepend) + quadFour);
// Encode as hex.
AddAddress(hexPrefix + GenerateRandomHexDigits(charactersToPrepend)
+ CConverters::DecimalToHex(quadOne)
+ quadSeparator
+ GenerateRandomDecimalDigits(charactersToPrepend) + quadTwo
+ quadSeparator
+ GenerateRandomDecimalDigits(charactersToPrepend) + quadThree
+ quadSeparator
+ GenerateRandomDecimalDigits(charactersToPrepend) + quadFour);
// Collapse the quads.
AddAddress(GenerateRandomDecimalDigits(charactersToPrepend)
+ CollapseQuads(quadOne, quadTwo)
+ quadSeparator
+ GenerateRandomDecimalDigits(charactersToPrepend) + quadThree
+ quadSeparator
+ GenerateRandomDecimalDigits(charactersToPrepend) + quadFour);
AddAddress(GenerateRandomDecimalDigits(charactersToPrepend)
+ CollapseQuads(quadOne, quadTwo, quadThree, quadFour));
// Collapse the quads and encode as hex.
AddAddress(hexPrefix + GenerateRandomHexDigits(charactersToPrepend)
+ CConverters::DecimalToHex(CollapseQuads(quadOne, quadTwo))
+ quadSeparator
+ GenerateRandomDecimalDigits(charactersToPrepend) + quadThree
+ quadSeparator
+ GenerateRandomDecimalDigits(charactersToPrepend) + quadFour);
// Encode the dots.
AddAddress(GenerateRandomDecimalDigits(charactersToPrepend) + quadOne
+ dotEncoding
+ GenerateRandomDecimalDigits(charactersToPrepend) + quadTwo
+ quadSeparator
+ GenerateRandomDecimalDigits(charactersToPrepend) + quadThree
+ quadSeparator
+ GenerateRandomDecimalDigits(charactersToPrepend) + quadFour);
// QUAD_CONVERTED QUAD_SYSTEM QUAD_COLLAPSED EXTRA_CHARS DOTS_ENCODED
// None Decimal None None None
AddAddress(quadOne + quadSeparator + quadTwo + quadSeparator + quadThree
+ quadSeparator + quadFour);
// None Decimal None P2 Second
AddAddress(quadOne + quadSeparator
+ GenerateRandomDecimalDigits(charactersToPrepend) + quadTwo
+ dotEncoding + quadThree + quadSeparator + quadFour);
// Some Decimal P3+P4 P1 First
AddAddress(hexPrefix + GenerateRandomHexDigits(charactersToPrepend)
+ CConverters::DecimalToHex(quadOne)
+ dotEncoding + quadTwo
+ octalPrefix + GenerateRandomOctalDigits(charactersToPrepend)
+ CConverters::DecimalToOctal(CollapseQuads(quadThree, quadFour)));
// All Octal All None Third
AddAddress(octalPrefix + CConverters::DecimalToOctal(
CollapseQuads(quadOne, quadTwo, quadThree, quadFour)));
}
Previous Page |
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
11
|
12
|
13
|
14
|
15
|
16
Next Page