This commit is contained in:
nbougalis
2022-07-19 15:12:23 +00:00
parent e7ca908a33
commit 70c2d3809d
2408 changed files with 53648 additions and 52103 deletions

View File

@@ -161,56 +161,63 @@ $(function() {
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">if</span> (!port.<a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string/empty.html">empty</a>())</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; {</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; pUrl.<a class="code" href="structripple_1_1parsedURL.html#ad4ebcb5e1c71d170f8c854a5aec8aeaf">port</a> = beast::lexicalCast&lt;std::uint16_t&gt;(port);</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; }</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; pUrl.<a class="code" href="structripple_1_1parsedURL.html#a4d823c3fa1765f734b684dddc8128b8f">path</a> = smMatch[6];</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; </div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;}</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; </div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a></div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<a class="code" href="namespaceripple.html#a4a0f163a7e357063a6b2993348d60c3c">trim_whitespace</a>(<a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> str)</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;{</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; boost::trim(str);</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">return</span> str;</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; </div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="comment">// For inputs larger than 2^32-1 (65535), lexicalCast returns 0.</span></div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="comment">// parseUrl returns false for such inputs.</span></div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">if</span> (pUrl.<a class="code" href="structripple_1_1parsedURL.html#ad4ebcb5e1c71d170f8c854a5aec8aeaf">port</a> == 0)</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; {</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; }</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; }</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; pUrl.<a class="code" href="structripple_1_1parsedURL.html#a4d823c3fa1765f734b684dddc8128b8f">path</a> = smMatch[6];</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; </div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;}</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; </div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<a class="codeRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional&lt;std::uint64_t&gt;</a></div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<a class="code" href="namespaceripple.html#aafcd8eccce69f1a6acf78dd19a09b3ff">to_uint64</a>(<a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> <span class="keyword">const</span>&amp; s)</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a></div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<a class="code" href="namespaceripple.html#a4a0f163a7e357063a6b2993348d60c3c">trim_whitespace</a>(<a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> str)</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;{</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint64_t</a> result;</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespacebeast.html#aeb241ed2f4422ea57283956ca58c5d42">beast::lexicalCastChecked</a>(result, s))</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordflow">return</span> result;</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordflow">return</span> std::nullopt;</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;}</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; </div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="keywordtype">bool</span></div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<a class="code" href="namespaceripple.html#aab94edddae84fcd70e7261ecc19173b7">isProperlyFormedTomlDomain</a>(<a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> <span class="keyword">const</span>&amp; domain)</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;{</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="comment">// The domain must be between 4 and 128 characters long</span></div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">if</span> (domain.<a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">size</a>() &lt; 4 || domain.<a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">size</a>() &gt; 128)</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; boost::trim(str);</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordflow">return</span> str;</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;}</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; </div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<a class="codeRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional&lt;std::uint64_t&gt;</a></div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<a class="code" href="namespaceripple.html#aafcd8eccce69f1a6acf78dd19a09b3ff">to_uint64</a>(<a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> <span class="keyword">const</span>&amp; s)</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;{</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint64_t</a> result;</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespacebeast.html#aeb241ed2f4422ea57283956ca58c5d42">beast::lexicalCastChecked</a>(result, s))</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">return</span> result;</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">return</span> std::nullopt;</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;}</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; </div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="comment">// This regular expression should do a decent job of weeding out</span></div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="comment">// obviously wrong domain names but it isn&#39;t perfect. It does not</span></div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="comment">// really support IDNs. If this turns out to be an issue, a more</span></div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="comment">// thorough regex can be used or this check can just be removed.</span></div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keyword">static</span> boost::regex <span class="keyword">const</span> re(</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="stringliteral">&quot;^&quot;</span> <span class="comment">// Beginning of line</span></div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="stringliteral">&quot;(&quot;</span> <span class="comment">// Beginning of a segment</span></div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="stringliteral">&quot;(?!-)&quot;</span> <span class="comment">// - must not begin with &#39;-&#39;</span></div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="stringliteral">&quot;[a-zA-Z0-9-]{1,63}&quot;</span> <span class="comment">// - only alphanumeric and &#39;-&#39;</span></div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="stringliteral">&quot;(?&lt;!-)&quot;</span> <span class="comment">// - must not end with &#39;-&#39;</span></div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="stringliteral">&quot;\\.&quot;</span> <span class="comment">// segment separator</span></div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="stringliteral">&quot;)+&quot;</span> <span class="comment">// 1 or more segments</span></div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="stringliteral">&quot;[A-Za-z]{2,63}&quot;</span> <span class="comment">// TLD</span></div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="stringliteral">&quot;$&quot;</span> <span class="comment">// End of line</span></div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; ,</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; boost::regex_constants::optimize);</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; </div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">return</span> boost::regex_match(domain, re);</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;}</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; </div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;} <span class="comment">// namespace ripple</span></div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<span class="keywordtype">bool</span></div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<a class="code" href="namespaceripple.html#aab94edddae84fcd70e7261ecc19173b7">isProperlyFormedTomlDomain</a>(<a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> <span class="keyword">const</span>&amp; domain)</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;{</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="comment">// The domain must be between 4 and 128 characters long</span></div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">if</span> (domain.<a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">size</a>() &lt; 4 || domain.<a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">size</a>() &gt; 128)</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; </div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="comment">// This regular expression should do a decent job of weeding out</span></div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="comment">// obviously wrong domain names but it isn&#39;t perfect. It does not</span></div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="comment">// really support IDNs. If this turns out to be an issue, a more</span></div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="comment">// thorough regex can be used or this check can just be removed.</span></div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keyword">static</span> boost::regex <span class="keyword">const</span> re(</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="stringliteral">&quot;^&quot;</span> <span class="comment">// Beginning of line</span></div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="stringliteral">&quot;(&quot;</span> <span class="comment">// Beginning of a segment</span></div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="stringliteral">&quot;(?!-)&quot;</span> <span class="comment">// - must not begin with &#39;-&#39;</span></div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="stringliteral">&quot;[a-zA-Z0-9-]{1,63}&quot;</span> <span class="comment">// - only alphanumeric and &#39;-&#39;</span></div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="stringliteral">&quot;(?&lt;!-)&quot;</span> <span class="comment">// - must not end with &#39;-&#39;</span></div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="stringliteral">&quot;\\.&quot;</span> <span class="comment">// segment separator</span></div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="stringliteral">&quot;)+&quot;</span> <span class="comment">// 1 or more segments</span></div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="stringliteral">&quot;[A-Za-z]{2,63}&quot;</span> <span class="comment">// TLD</span></div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="stringliteral">&quot;$&quot;</span> <span class="comment">// End of line</span></div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; ,</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; boost::regex_constants::optimize);</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; </div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">return</span> boost::regex_match(domain, re);</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;}</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; </div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;} <span class="comment">// namespace ripple</span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="abasic_string_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a></div><div class="ttdoc">STL class.</div></div>
<div class="ttc" id="astructripple_1_1parsedURL_html"><div class="ttname"><a href="structripple_1_1parsedURL.html">ripple::parsedURL</a></div><div class="ttdef"><b>Definition:</b> <a href="StringUtilities_8h_source.html#l00100">StringUtilities.h:100</a></div></div>