mirror of
https://github.com/XRPLF/rippled.git
synced 2025-11-22 03:55:53 +00:00
deploy: 83faf43140
This commit is contained in:
@@ -161,56 +161,63 @@ $(function() {
|
||||
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <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>  {</div>
|
||||
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  pUrl.<a class="code" href="structripple_1_1parsedURL.html#ad4ebcb5e1c71d170f8c854a5aec8aeaf">port</a> = beast::lexicalCast<std::uint16_t>(port);</div>
|
||||
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  }</div>
|
||||
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  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>  </div>
|
||||
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> }</div>
|
||||
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  </div>
|
||||
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <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> <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> {</div>
|
||||
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  boost::trim(str);</div>
|
||||
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="keywordflow">return</span> str;</div>
|
||||
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  </div>
|
||||
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <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>  <span class="comment">// parseUrl returns false for such inputs.</span></div>
|
||||
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <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>  {</div>
|
||||
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
||||
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  }</div>
|
||||
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  }</div>
|
||||
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  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>  </div>
|
||||
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> }</div>
|
||||
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  </div>
|
||||
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <a class="codeRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional<std::uint64_t></a></div>
|
||||
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <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>& s)</div>
|
||||
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <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> <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> {</div>
|
||||
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <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>  <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>  <span class="keywordflow">return</span> result;</div>
|
||||
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="keywordflow">return</span> std::nullopt;</div>
|
||||
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> }</div>
|
||||
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  </div>
|
||||
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="keywordtype">bool</span></div>
|
||||
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <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>& domain)</div>
|
||||
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> {</div>
|
||||
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <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>  <span class="keywordflow">if</span> (domain.<a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">size</a>() < 4 || domain.<a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">size</a>() > 128)</div>
|
||||
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
||||
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  boost::trim(str);</div>
|
||||
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="keywordflow">return</span> str;</div>
|
||||
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> }</div>
|
||||
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  </div>
|
||||
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <a class="codeRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional<std::uint64_t></a></div>
|
||||
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <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>& s)</div>
|
||||
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> {</div>
|
||||
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <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>  <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>  <span class="keywordflow">return</span> result;</div>
|
||||
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="keywordflow">return</span> std::nullopt;</div>
|
||||
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> }</div>
|
||||
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  </div>
|
||||
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <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>  <span class="comment">// obviously wrong domain names but it isn't perfect. It does not</span></div>
|
||||
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <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>  <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>  <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>  <span class="stringliteral">"^"</span> <span class="comment">// Beginning of line</span></div>
|
||||
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="stringliteral">"("</span> <span class="comment">// Beginning of a segment</span></div>
|
||||
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="stringliteral">"(?!-)"</span> <span class="comment">// - must not begin with '-'</span></div>
|
||||
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="stringliteral">"[a-zA-Z0-9-]{1,63}"</span> <span class="comment">// - only alphanumeric and '-'</span></div>
|
||||
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <span class="stringliteral">"(?<!-)"</span> <span class="comment">// - must not end with '-'</span></div>
|
||||
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="stringliteral">"\\."</span> <span class="comment">// segment separator</span></div>
|
||||
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <span class="stringliteral">")+"</span> <span class="comment">// 1 or more segments</span></div>
|
||||
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="stringliteral">"[A-Za-z]{2,63}"</span> <span class="comment">// TLD</span></div>
|
||||
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="stringliteral">"$"</span> <span class="comment">// End of line</span></div>
|
||||
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  ,</div>
|
||||
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  boost::regex_constants::optimize);</div>
|
||||
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  </div>
|
||||
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <span class="keywordflow">return</span> boost::regex_match(domain, re);</div>
|
||||
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> }</div>
|
||||
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  </div>
|
||||
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> } <span class="comment">// namespace ripple</span></div>
|
||||
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="keywordtype">bool</span></div>
|
||||
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <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>& domain)</div>
|
||||
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> {</div>
|
||||
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <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>  <span class="keywordflow">if</span> (domain.<a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">size</a>() < 4 || domain.<a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">size</a>() > 128)</div>
|
||||
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
||||
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  </div>
|
||||
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <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>  <span class="comment">// obviously wrong domain names but it isn't perfect. It does not</span></div>
|
||||
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <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>  <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>  <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>  <span class="stringliteral">"^"</span> <span class="comment">// Beginning of line</span></div>
|
||||
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="stringliteral">"("</span> <span class="comment">// Beginning of a segment</span></div>
|
||||
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <span class="stringliteral">"(?!-)"</span> <span class="comment">// - must not begin with '-'</span></div>
|
||||
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <span class="stringliteral">"[a-zA-Z0-9-]{1,63}"</span> <span class="comment">// - only alphanumeric and '-'</span></div>
|
||||
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <span class="stringliteral">"(?<!-)"</span> <span class="comment">// - must not end with '-'</span></div>
|
||||
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <span class="stringliteral">"\\."</span> <span class="comment">// segment separator</span></div>
|
||||
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <span class="stringliteral">")+"</span> <span class="comment">// 1 or more segments</span></div>
|
||||
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="stringliteral">"[A-Za-z]{2,63}"</span> <span class="comment">// TLD</span></div>
|
||||
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="stringliteral">"$"</span> <span class="comment">// End of line</span></div>
|
||||
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  ,</div>
|
||||
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  boost::regex_constants::optimize);</div>
|
||||
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  </div>
|
||||
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <span class="keywordflow">return</span> boost::regex_match(domain, re);</div>
|
||||
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> }</div>
|
||||
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  </div>
|
||||
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> } <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>
|
||||
|
||||
Reference in New Issue
Block a user