Create doxygen
389
doxygen/html/_a_p_i_8cpp_source.html
Normal file
|
@ -0,0 +1,389 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.9.4"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||||
|
<title>ESP32/ESP8266 Firewall: src/API.cpp Source File</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||||
|
<script type="text/javascript" src="search/search.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr id="projectrow">
|
||||||
|
<td id="projectalign">
|
||||||
|
<div id="projectname">ESP32/ESP8266 Firewall<span id="projectnumber"> 1.0.0</span>
|
||||||
|
</div>
|
||||||
|
<div id="projectbrief">a software firewall for ESP23 or ESP8266</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.9.4 -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="menudata.js"></script>
|
||||||
|
<script type="text/javascript" src="menu.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
$(function() {
|
||||||
|
initMenu('',true,false,'search.php','Search');
|
||||||
|
$(document).ready(function() { init_search(); });
|
||||||
|
});
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<div id="main-nav"></div>
|
||||||
|
<!-- window showing the filter options -->
|
||||||
|
<div id="MSearchSelectWindow"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- iframe showing the search results (closed by default) -->
|
||||||
|
<div id="MSearchResultsWindow">
|
||||||
|
<iframe src="javascript:void(0)" frameborder="0"
|
||||||
|
name="MSearchResults" id="MSearchResults">
|
||||||
|
</iframe>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="nav-path" class="navpath">
|
||||||
|
<ul>
|
||||||
|
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li> </ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="header">
|
||||||
|
<div class="headertitle"><div class="title">API.cpp</div></div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#include "API.hpp"</span></div>
|
||||||
|
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span> </div>
|
||||||
|
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="keyword">namespace </span>fw</div>
|
||||||
|
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span>{</div>
|
||||||
|
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"><a class="line" href="classfw_1_1_a_p_i.html#a033d5efd077dfad456cb6e6e7dd2baca"> 5</a></span> <a class="code hl_function" href="classfw_1_1_a_p_i.html#a033d5efd077dfad456cb6e6e7dd2baca">API::API</a>(<a class="code hl_class" href="classfw_1_1_firewall.html">fw::Firewall</a> *firewall, <span class="keyword">const</span> <span class="keywordtype">char</span> *cert, <span class="keyword">const</span> <span class="keywordtype">char</span> *key, <span class="keyword">const</span> <span class="keywordtype">char</span> *username, <span class="keyword">const</span> <span class="keywordtype">char</span> *password, <span class="keyword">const</span> String ip, <span class="keyword">const</span> uint16_t port)</div>
|
||||||
|
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span> {</div>
|
||||||
|
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span> this->firewall = firewall;</div>
|
||||||
|
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span> this->api_ip = ip;</div>
|
||||||
|
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span> this->api_port = port;</div>
|
||||||
|
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span> <span class="keywordflow">if</span> (this->setup_auth(username, password) == ERROR)</div>
|
||||||
|
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span> endless_loop();</div>
|
||||||
|
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#ifdef ESP8266</span></div>
|
||||||
|
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> this->server = <span class="keyword">new</span> ESP8266WebServerSecure(port);</div>
|
||||||
|
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> this->serverCache = <span class="keyword">new</span> ServerSessions(5);</div>
|
||||||
|
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="preprocessor">#else</span></div>
|
||||||
|
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> this->server = <span class="keyword">new</span> WebServer(port);</div>
|
||||||
|
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="preprocessor">#endif</span></div>
|
||||||
|
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> this->setup_routing(cert, key);</div>
|
||||||
|
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> this->server->begin();</div>
|
||||||
|
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> Serial.printf(<span class="stringliteral">"%s endpoints -> %s/api\n"</span>, TAG, this->get_url_base().c_str());</div>
|
||||||
|
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="preprocessor">#if !defined(ESP8266)</span></div>
|
||||||
|
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> <span class="keywordflow">while</span> (<span class="keyword">true</span>)</div>
|
||||||
|
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> {</div>
|
||||||
|
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> this->server->handleClient();</div>
|
||||||
|
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> <span class="comment">// https://docs.espressif.com/projects/arduino-esp32/en/latest/esp-idf_component.html</span></div>
|
||||||
|
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> sleep(1);</div>
|
||||||
|
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> }</div>
|
||||||
|
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="preprocessor">#endif</span></div>
|
||||||
|
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> }</div>
|
||||||
|
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> </div>
|
||||||
|
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"><a class="line" href="classfw_1_1_a_p_i.html#a66ac0bd592bb08d069aea199668670ab"> 31</a></span> <a class="code hl_function" href="classfw_1_1_a_p_i.html#a66ac0bd592bb08d069aea199668670ab">API::~API</a>()</div>
|
||||||
|
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> {</div>
|
||||||
|
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> this->server->stop();</div>
|
||||||
|
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> }</div>
|
||||||
|
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> </div>
|
||||||
|
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span><span class="preprocessor">#ifdef ESP8266</span></div>
|
||||||
|
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> <span class="keywordtype">void</span> API::handle_client()</div>
|
||||||
|
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> {</div>
|
||||||
|
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> this->server->handleClient();</div>
|
||||||
|
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> }</div>
|
||||||
|
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span><span class="preprocessor">#endif</span></div>
|
||||||
|
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> </div>
|
||||||
|
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> String API::get_url_base()</div>
|
||||||
|
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> {</div>
|
||||||
|
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span><span class="preprocessor">#ifdef ESP8266</span></div>
|
||||||
|
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> <span class="keywordflow">return</span> <span class="stringliteral">"https://"</span> + this->api_ip + <span class="stringliteral">":"</span> + this->api_port;</div>
|
||||||
|
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span><span class="preprocessor">#else</span></div>
|
||||||
|
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> <span class="keywordflow">return</span> <span class="stringliteral">"http://"</span> + this->api_ip + <span class="stringliteral">":"</span> + this->api_port;</div>
|
||||||
|
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span><span class="preprocessor">#endif</span></div>
|
||||||
|
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> }</div>
|
||||||
|
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> </div>
|
||||||
|
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> ok_t API::setup_auth(<span class="keyword">const</span> <span class="keywordtype">char</span> *username, <span class="keyword">const</span> <span class="keywordtype">char</span> *password)</div>
|
||||||
|
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> {</div>
|
||||||
|
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> <span class="keywordflow">if</span> (!username || *username == 0x00 || strlen(username) > CREDENTIALS_LENGTH)</div>
|
||||||
|
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> {</div>
|
||||||
|
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> Serial.printf(<span class="stringliteral">"%s Username too long or missing!\n"</span>, TAG);</div>
|
||||||
|
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> <span class="keywordflow">return</span> ERROR;</div>
|
||||||
|
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> }</div>
|
||||||
|
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> strncpy(credentials.username, username, CREDENTIALS_LENGTH);</div>
|
||||||
|
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> <span class="keywordflow">if</span> (!password || *password == 0x00 || strlen(password) > CREDENTIALS_LENGTH)</div>
|
||||||
|
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> {</div>
|
||||||
|
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> Serial.printf(<span class="stringliteral">"%s Password too long or missing!\n"</span>, TAG);</div>
|
||||||
|
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> <span class="keywordflow">return</span> ERROR;</div>
|
||||||
|
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> }</div>
|
||||||
|
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> strncpy(credentials.password, password, CREDENTIALS_LENGTH);</div>
|
||||||
|
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> <span class="keywordflow">return</span> SUCCESS;</div>
|
||||||
|
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> }</div>
|
||||||
|
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> </div>
|
||||||
|
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> auth_t API::check_auth()</div>
|
||||||
|
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> {</div>
|
||||||
|
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> <span class="keywordflow">if</span> (server->authenticate(this->credentials.username, this->credentials.password))</div>
|
||||||
|
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> {</div>
|
||||||
|
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> <span class="keywordflow">return</span> AUTHENTICATED;</div>
|
||||||
|
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> }</div>
|
||||||
|
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> this->json_message_response(<span class="stringliteral">"unauthorized"</span>, 403);</div>
|
||||||
|
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> <span class="keywordflow">return</span> DENIED;</div>
|
||||||
|
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> }</div>
|
||||||
|
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> </div>
|
||||||
|
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> <span class="keywordtype">void</span> API::setup_routing(<span class="keyword">const</span> <span class="keywordtype">char</span> *cert, <span class="keyword">const</span> <span class="keywordtype">char</span> *key)</div>
|
||||||
|
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> {</div>
|
||||||
|
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span><span class="preprocessor">#ifdef ESP8266</span></div>
|
||||||
|
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> this->server->getServer().setRSACert(<span class="keyword">new</span> BearSSL::X509List(cert), <span class="keyword">new</span> BearSSL::PrivateKey(key));</div>
|
||||||
|
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> this->server->getServer().setCache(serverCache);</div>
|
||||||
|
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span><span class="preprocessor">#endif</span></div>
|
||||||
|
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> this->server->on(<span class="stringliteral">"/api/firewall/rules"</span>, HTTP_GET, std::bind(&API::get_firewall_rules_handler, <span class="keyword">this</span>));</div>
|
||||||
|
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> this->server->on(UriBraces(<span class="stringliteral">"/api/firewall/rules/{}"</span>), HTTP_GET, std::bind(&API::get_firewall_rule_handler, <span class="keyword">this</span>));</div>
|
||||||
|
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> this->server->on(<span class="stringliteral">"/api/firewall/rules"</span>, HTTP_POST, std::bind(&API::post_firewall_handler, <span class="keyword">this</span>));</div>
|
||||||
|
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> this->server->on(UriBraces(<span class="stringliteral">"/api/firewall/rules/{}"</span>), HTTP_PUT, std::bind(&API::put_firewall_handler, <span class="keyword">this</span>));</div>
|
||||||
|
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> this->server->on(UriBraces(<span class="stringliteral">"/api/firewall/rules/{}"</span>), HTTP_DELETE, std::bind(&API::delete_firewall_handler, <span class="keyword">this</span>));</div>
|
||||||
|
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> this->server->on(<span class="stringliteral">"/api"</span>, HTTP_GET, std::bind(&API::get_endpoint_list_handler, <span class="keyword">this</span>));</div>
|
||||||
|
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> this->server->onNotFound(std::bind(&API::not_found_handler, <span class="keyword">this</span>));</div>
|
||||||
|
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> </div>
|
||||||
|
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> add_endpoint_to_list(<span class="stringliteral">"/api/firewall/rules"</span>, <span class="stringliteral">"GET"</span>, <span class="stringliteral">"Get all Firewall Rules"</span>);</div>
|
||||||
|
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> add_endpoint_to_list(<span class="stringliteral">"/api/firewall/rules/<key>"</span>, <span class="stringliteral">"GET"</span>, <span class="stringliteral">"Get Firewall Rule by key"</span>);</div>
|
||||||
|
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> add_endpoint_to_list(<span class="stringliteral">"/api/firewall/rules"</span>, <span class="stringliteral">"POST"</span>, <span class="stringliteral">"Create Firewall Rule"</span>);</div>
|
||||||
|
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> add_endpoint_to_list(<span class="stringliteral">"/api/firewall/rules/<key>"</span>, <span class="stringliteral">"PUT"</span>, <span class="stringliteral">"Update Firewall Rule by key"</span>);</div>
|
||||||
|
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> add_endpoint_to_list(<span class="stringliteral">"/api/firewall/rules/<key>"</span>, <span class="stringliteral">"DELETE"</span>, <span class="stringliteral">"Delete Firewall Rule by key"</span>);</div>
|
||||||
|
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> }</div>
|
||||||
|
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> </div>
|
||||||
|
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> <span class="keywordtype">void</span> API::add_endpoint_to_list(<span class="keyword">const</span> String uri, <span class="keyword">const</span> <span class="keywordtype">char</span> *method, <span class="keyword">const</span> <span class="keywordtype">char</span> *description)</div>
|
||||||
|
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> {</div>
|
||||||
|
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> api_endpoint_t *temp;</div>
|
||||||
|
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> <span class="keyword">const</span> String url = get_url_base() + uri;</div>
|
||||||
|
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> </div>
|
||||||
|
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> api_endpoint_t *api_ptr = (api_endpoint_t *)malloc(<span class="keyword">sizeof</span>(api_endpoint_t));</div>
|
||||||
|
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> strncpy(api_ptr->uri, url.c_str(), <span class="keyword">sizeof</span>(api_ptr->uri));</div>
|
||||||
|
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> strncpy(api_ptr->method, method, <span class="keyword">sizeof</span>(api_ptr->method));</div>
|
||||||
|
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> strncpy(api_ptr->description, description, <span class="keyword">sizeof</span>(api_ptr->description));</div>
|
||||||
|
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> </div>
|
||||||
|
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> <span class="keywordflow">if</span> (this->endpoint_head == NULL)</div>
|
||||||
|
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> {</div>
|
||||||
|
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> this->endpoint_head = api_ptr;</div>
|
||||||
|
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> api_ptr->next = NULL;</div>
|
||||||
|
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> <span class="keywordflow">return</span>;</div>
|
||||||
|
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> }</div>
|
||||||
|
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> temp = this->endpoint_head;</div>
|
||||||
|
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> <span class="keywordflow">while</span> (temp->next != NULL)</div>
|
||||||
|
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> {</div>
|
||||||
|
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> temp = temp->next;</div>
|
||||||
|
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> }</div>
|
||||||
|
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> temp->next = api_ptr;</div>
|
||||||
|
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> api_ptr->next = NULL;</div>
|
||||||
|
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> <span class="keywordflow">return</span>;</div>
|
||||||
|
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> }</div>
|
||||||
|
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> </div>
|
||||||
|
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> <span class="keywordtype">void</span> API::not_found_handler()</div>
|
||||||
|
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> {</div>
|
||||||
|
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> this->json_message_response(<span class="stringliteral">"see "</span> + get_url_base() + <span class="stringliteral">"/api for available routes"</span>, 404);</div>
|
||||||
|
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> }</div>
|
||||||
|
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> </div>
|
||||||
|
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> <span class="keywordtype">void</span> API::get_endpoint_list_handler()</div>
|
||||||
|
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> {</div>
|
||||||
|
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> this->json_array_response(this->construct_json_api(), 200);</div>
|
||||||
|
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> }</div>
|
||||||
|
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> </div>
|
||||||
|
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> <span class="keywordtype">void</span> API::get_firewall_rule_handler()</div>
|
||||||
|
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> {</div>
|
||||||
|
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> <span class="keywordflow">if</span> (this->check_auth() == DENIED)</div>
|
||||||
|
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> <span class="keywordflow">return</span>;</div>
|
||||||
|
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> String param = this->server->pathArg(0);</div>
|
||||||
|
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> <span class="keywordtype">int</span> rule_number = atoi(param.c_str());</div>
|
||||||
|
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> firewall_rule_t *rule_ptr = firewall->get_rule_from_firewall(rule_number);</div>
|
||||||
|
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> <span class="keywordflow">if</span> (rule_ptr == NULL)</div>
|
||||||
|
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> this->json_message_response(<span class="stringliteral">"rule does not exist"</span>, 404);</div>
|
||||||
|
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> <span class="keywordflow">else</span></div>
|
||||||
|
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> this->json_generic_response(this->construct_json_firewall_rule(rule_ptr), 200);</div>
|
||||||
|
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> }</div>
|
||||||
|
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> </div>
|
||||||
|
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> <span class="keywordtype">void</span> API::get_firewall_rules_handler()</div>
|
||||||
|
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> {</div>
|
||||||
|
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> <span class="keywordflow">if</span> (this->check_auth() == DENIED)</div>
|
||||||
|
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> <span class="keywordflow">return</span>;</div>
|
||||||
|
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> this->json_array_response(this->construct_json_firewall(), 200);</div>
|
||||||
|
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> }</div>
|
||||||
|
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> </div>
|
||||||
|
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> <span class="keywordtype">void</span> API::post_firewall_handler()</div>
|
||||||
|
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> {</div>
|
||||||
|
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> <span class="keywordflow">if</span> (this->check_auth() == DENIED)</div>
|
||||||
|
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> <span class="keywordflow">return</span>;</div>
|
||||||
|
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> <span class="keywordflow">if</span> (request_has_all_firewall_parameter())</div>
|
||||||
|
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span> {</div>
|
||||||
|
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> String args[IPV4ADDRESS_LENGTH] = {};</div>
|
||||||
|
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> <span class="keywordflow">for</span> (uint8_t i = 0; i < firewall_fields_amount; i++)</div>
|
||||||
|
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> {</div>
|
||||||
|
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> args[i] = this->server->arg(firewall_fields[i]);</div>
|
||||||
|
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> }</div>
|
||||||
|
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> firewall_rule_t *rule_ptr = firewall->add_rule_to_firewall(args);</div>
|
||||||
|
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> this->json_generic_response(this->construct_json_firewall_rule(rule_ptr), 201);</div>
|
||||||
|
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> }</div>
|
||||||
|
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> <span class="keywordflow">else</span></div>
|
||||||
|
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> {</div>
|
||||||
|
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> this->json_message_response(<span class="stringliteral">"not enough parameter provided"</span>, 400);</div>
|
||||||
|
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> }</div>
|
||||||
|
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> }</div>
|
||||||
|
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> </div>
|
||||||
|
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> <span class="keywordtype">void</span> API::put_firewall_handler()</div>
|
||||||
|
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> {</div>
|
||||||
|
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> <span class="keywordflow">if</span> (this->check_auth() == DENIED)</div>
|
||||||
|
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span> <span class="keywordflow">return</span>;</div>
|
||||||
|
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span> String param = this->server->pathArg(0);</div>
|
||||||
|
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> <span class="keywordtype">int</span> rule_number = atoi(param.c_str());</div>
|
||||||
|
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> <span class="keywordflow">if</span> (request_has_all_firewall_parameter())</div>
|
||||||
|
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span> {</div>
|
||||||
|
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span> String args[IPV4ADDRESS_LENGTH] = {};</div>
|
||||||
|
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span> <span class="keywordflow">for</span> (uint8_t i = 0; i < firewall_fields_amount; i++)</div>
|
||||||
|
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span> {</div>
|
||||||
|
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span> args[i] = this->server->arg(firewall_fields[i]);</div>
|
||||||
|
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span> }</div>
|
||||||
|
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span> firewall_rule_t *rule_ptr = firewall->update_rule_of_firewall(args, rule_number);</div>
|
||||||
|
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span> <span class="keywordflow">if</span> (rule_ptr == NULL)</div>
|
||||||
|
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span> this->json_message_response(<span class="stringliteral">"rule does not exist"</span>, 404);</div>
|
||||||
|
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span> <span class="keywordflow">else</span></div>
|
||||||
|
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span> this->json_generic_response(this->construct_json_firewall_rule(rule_ptr), 200);</div>
|
||||||
|
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span> }</div>
|
||||||
|
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</span> <span class="keywordflow">else</span></div>
|
||||||
|
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"> 196</span> {</div>
|
||||||
|
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span> this->json_message_response(<span class="stringliteral">"not enough parameter provided"</span>, 400);</div>
|
||||||
|
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span> }</div>
|
||||||
|
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span> }</div>
|
||||||
|
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span> </div>
|
||||||
|
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span> <span class="keywordtype">void</span> API::delete_firewall_handler()</div>
|
||||||
|
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span> {</div>
|
||||||
|
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span> <span class="keywordflow">if</span> (this->check_auth() == DENIED)</div>
|
||||||
|
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span> <span class="keywordflow">return</span>;</div>
|
||||||
|
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span> String param = this->server->pathArg(0);</div>
|
||||||
|
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span> <span class="keywordtype">int</span> rule_number = atoi(param.c_str());</div>
|
||||||
|
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> <span class="keywordflow">if</span> (firewall->delete_rule_from_firewall(rule_number) == SUCCESS)</div>
|
||||||
|
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span> this->json_message_response(<span class="stringliteral">"firewall rule deleted"</span>, 200);</div>
|
||||||
|
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span> <span class="keywordflow">else</span></div>
|
||||||
|
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span> this->json_message_response(<span class="stringliteral">"cannot delete firewall rule"</span>, 500);</div>
|
||||||
|
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span> }</div>
|
||||||
|
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> </div>
|
||||||
|
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span> <span class="keywordtype">bool</span> API::request_has_all_firewall_parameter()</div>
|
||||||
|
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span> {</div>
|
||||||
|
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span> <span class="keywordflow">if</span> (!this->server->args())</div>
|
||||||
|
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
||||||
|
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span> <span class="keywordflow">for</span> (uint8_t i = 0; i < firewall_fields_amount; i++)</div>
|
||||||
|
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span> {</div>
|
||||||
|
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span> <span class="keywordflow">if</span> (i != KEY && !this->server->hasArg(firewall_fields[i]))</div>
|
||||||
|
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
||||||
|
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span> }</div>
|
||||||
|
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
||||||
|
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span> }</div>
|
||||||
|
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span> </div>
|
||||||
|
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span> String API::json_new_attribute(String key, String value, <span class="keywordtype">bool</span> last)</div>
|
||||||
|
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span> {</div>
|
||||||
|
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"> 227</span> String json_string;</div>
|
||||||
|
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"> 228</span> json_string += <span class="stringliteral">"\""</span> + key + <span class="stringliteral">"\": \""</span> + value + <span class="stringliteral">"\""</span>;</div>
|
||||||
|
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"> 229</span> <span class="keywordflow">if</span> (!last)</div>
|
||||||
|
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</span> json_string += <span class="stringliteral">","</span>;</div>
|
||||||
|
<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"> 231</span> <span class="keywordflow">return</span> json_string;</div>
|
||||||
|
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span> }</div>
|
||||||
|
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"> 233</span> </div>
|
||||||
|
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span> String API::json_new_attribute(String key, uint32_t value, <span class="keywordtype">bool</span> last)</div>
|
||||||
|
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span> {</div>
|
||||||
|
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span> <span class="keywordflow">return</span> json_new_attribute(key, String(value), last);</div>
|
||||||
|
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span> }</div>
|
||||||
|
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span> </div>
|
||||||
|
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span> <span class="keywordtype">void</span> API::json_generic_response(String serialized_string, <span class="keyword">const</span> uint16_t response_code)</div>
|
||||||
|
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span> {</div>
|
||||||
|
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span> this->server->send(response_code, json_response_type, serialized_string);</div>
|
||||||
|
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span> }</div>
|
||||||
|
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span> </div>
|
||||||
|
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span> <span class="keywordtype">void</span> API::json_array_response(String serialized_string, <span class="keyword">const</span> uint16_t response_code)</div>
|
||||||
|
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span> {</div>
|
||||||
|
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span> this->server->send(response_code, json_response_type, <span class="stringliteral">"["</span> + serialized_string + <span class="stringliteral">"]"</span>);</div>
|
||||||
|
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"> 247</span> }</div>
|
||||||
|
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"> 248</span> </div>
|
||||||
|
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span> <span class="keywordtype">void</span> API::json_message_response(String message, <span class="keyword">const</span> uint16_t response_code)</div>
|
||||||
|
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span> {</div>
|
||||||
|
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span> String serialized_string = <span class="stringliteral">"{"</span>;</div>
|
||||||
|
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span> serialized_string += json_new_attribute(<span class="stringliteral">"message"</span>, message, <span class="keyword">true</span>);</div>
|
||||||
|
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span> serialized_string += <span class="stringliteral">"}"</span>;</div>
|
||||||
|
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span> this->server->send(response_code, json_response_type, serialized_string);</div>
|
||||||
|
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span> }</div>
|
||||||
|
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span> </div>
|
||||||
|
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"> 257</span> String API::construct_json_firewall_rule(firewall_rule_t *rule_ptr)</div>
|
||||||
|
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span> {</div>
|
||||||
|
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span> String serialized_string = <span class="stringliteral">"{"</span>;</div>
|
||||||
|
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span> serialized_string += json_new_attribute(firewall_fields[KEY], rule_ptr->key);</div>
|
||||||
|
<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"> 261</span> serialized_string += json_new_attribute(firewall_fields[IP], rule_ptr->ip);</div>
|
||||||
|
<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"> 262</span> serialized_string += json_new_attribute(firewall_fields[PORT_FROM], rule_ptr->port_from);</div>
|
||||||
|
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"> 263</span> serialized_string += json_new_attribute(firewall_fields[PORT_TO], rule_ptr->port_to);</div>
|
||||||
|
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"> 264</span> serialized_string += json_new_attribute(firewall_fields[PROTOCOL], protocol_to_string(rule_ptr->protocol));</div>
|
||||||
|
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span> serialized_string += json_new_attribute(firewall_fields[TARGET], target_to_string(rule_ptr->target), <span class="keyword">true</span>);</div>
|
||||||
|
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"> 266</span> serialized_string += <span class="stringliteral">"}"</span>;</div>
|
||||||
|
<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"> 267</span> <span class="keywordflow">return</span> serialized_string;</div>
|
||||||
|
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"> 268</span> }</div>
|
||||||
|
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"> 269</span> </div>
|
||||||
|
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"> 270</span> String API::construct_json_firewall()</div>
|
||||||
|
<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"> 271</span> {</div>
|
||||||
|
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"> 272</span> firewall_rule_t *rule_ptr = firewall->get_rule_head();</div>
|
||||||
|
<div class="line"><a id="l00273" name="l00273"></a><span class="lineno"> 273</span> String serialized_string;</div>
|
||||||
|
<div class="line"><a id="l00274" name="l00274"></a><span class="lineno"> 274</span> <span class="keywordflow">while</span> (rule_ptr != NULL)</div>
|
||||||
|
<div class="line"><a id="l00275" name="l00275"></a><span class="lineno"> 275</span> {</div>
|
||||||
|
<div class="line"><a id="l00276" name="l00276"></a><span class="lineno"> 276</span> serialized_string += construct_json_firewall_rule(rule_ptr);</div>
|
||||||
|
<div class="line"><a id="l00277" name="l00277"></a><span class="lineno"> 277</span> rule_ptr = rule_ptr->next;</div>
|
||||||
|
<div class="line"><a id="l00278" name="l00278"></a><span class="lineno"> 278</span> <span class="keywordflow">if</span> (rule_ptr != NULL)</div>
|
||||||
|
<div class="line"><a id="l00279" name="l00279"></a><span class="lineno"> 279</span> serialized_string += <span class="stringliteral">","</span>;</div>
|
||||||
|
<div class="line"><a id="l00280" name="l00280"></a><span class="lineno"> 280</span> }</div>
|
||||||
|
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"> 281</span> <span class="keywordflow">return</span> serialized_string;</div>
|
||||||
|
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"> 282</span> }</div>
|
||||||
|
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"> 283</span> </div>
|
||||||
|
<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</span> String API::construct_json_api_endpoint(api_endpoint_t *api_ptr)</div>
|
||||||
|
<div class="line"><a id="l00285" name="l00285"></a><span class="lineno"> 285</span> {</div>
|
||||||
|
<div class="line"><a id="l00286" name="l00286"></a><span class="lineno"> 286</span> String serialized_string = <span class="stringliteral">"{"</span>;</div>
|
||||||
|
<div class="line"><a id="l00287" name="l00287"></a><span class="lineno"> 287</span> serialized_string += json_new_attribute(<span class="stringliteral">"endpoint"</span>, api_ptr->uri);</div>
|
||||||
|
<div class="line"><a id="l00288" name="l00288"></a><span class="lineno"> 288</span> serialized_string += json_new_attribute(<span class="stringliteral">"description"</span>, api_ptr->description);</div>
|
||||||
|
<div class="line"><a id="l00289" name="l00289"></a><span class="lineno"> 289</span> serialized_string += json_new_attribute(<span class="stringliteral">"method"</span>, api_ptr->method, <span class="keyword">true</span>);</div>
|
||||||
|
<div class="line"><a id="l00290" name="l00290"></a><span class="lineno"> 290</span> serialized_string += <span class="stringliteral">"}"</span>;</div>
|
||||||
|
<div class="line"><a id="l00291" name="l00291"></a><span class="lineno"> 291</span> <span class="keywordflow">return</span> serialized_string;</div>
|
||||||
|
<div class="line"><a id="l00292" name="l00292"></a><span class="lineno"> 292</span> }</div>
|
||||||
|
<div class="line"><a id="l00293" name="l00293"></a><span class="lineno"> 293</span> </div>
|
||||||
|
<div class="line"><a id="l00294" name="l00294"></a><span class="lineno"> 294</span> String API::construct_json_api()</div>
|
||||||
|
<div class="line"><a id="l00295" name="l00295"></a><span class="lineno"> 295</span> {</div>
|
||||||
|
<div class="line"><a id="l00296" name="l00296"></a><span class="lineno"> 296</span> api_endpoint_t *api_ptr = this->endpoint_head;</div>
|
||||||
|
<div class="line"><a id="l00297" name="l00297"></a><span class="lineno"> 297</span> String serialized_string;</div>
|
||||||
|
<div class="line"><a id="l00298" name="l00298"></a><span class="lineno"> 298</span> <span class="keywordflow">while</span> (api_ptr != NULL)</div>
|
||||||
|
<div class="line"><a id="l00299" name="l00299"></a><span class="lineno"> 299</span> {</div>
|
||||||
|
<div class="line"><a id="l00300" name="l00300"></a><span class="lineno"> 300</span> serialized_string += construct_json_api_endpoint(api_ptr);</div>
|
||||||
|
<div class="line"><a id="l00301" name="l00301"></a><span class="lineno"> 301</span> api_ptr = api_ptr->next;</div>
|
||||||
|
<div class="line"><a id="l00302" name="l00302"></a><span class="lineno"> 302</span> <span class="keywordflow">if</span> (api_ptr != NULL)</div>
|
||||||
|
<div class="line"><a id="l00303" name="l00303"></a><span class="lineno"> 303</span> serialized_string += <span class="stringliteral">","</span>;</div>
|
||||||
|
<div class="line"><a id="l00304" name="l00304"></a><span class="lineno"> 304</span> }</div>
|
||||||
|
<div class="line"><a id="l00305" name="l00305"></a><span class="lineno"> 305</span> <span class="keywordflow">return</span> serialized_string;</div>
|
||||||
|
<div class="line"><a id="l00306" name="l00306"></a><span class="lineno"> 306</span> }</div>
|
||||||
|
<div class="line"><a id="l00307" name="l00307"></a><span class="lineno"> 307</span>}</div>
|
||||||
|
<div class="ttc" id="aclassfw_1_1_a_p_i_html_a033d5efd077dfad456cb6e6e7dd2baca"><div class="ttname"><a href="classfw_1_1_a_p_i.html#a033d5efd077dfad456cb6e6e7dd2baca">fw::API::API</a></div><div class="ttdeci">API(Firewall *, const char *cert, const char *key, const char *username, const char *password, const String ip, const uint16_t port=8080)</div><div class="ttdoc">Construct a new API object.</div><div class="ttdef"><b>Definition:</b> <a href="_a_p_i_8cpp_source.html#l00005">API.cpp:5</a></div></div>
|
||||||
|
<div class="ttc" id="aclassfw_1_1_a_p_i_html_a66ac0bd592bb08d069aea199668670ab"><div class="ttname"><a href="classfw_1_1_a_p_i.html#a66ac0bd592bb08d069aea199668670ab">fw::API::~API</a></div><div class="ttdeci">~API()</div><div class="ttdoc">Destroy the API object.</div><div class="ttdef"><b>Definition:</b> <a href="_a_p_i_8cpp_source.html#l00031">API.cpp:31</a></div></div>
|
||||||
|
<div class="ttc" id="aclassfw_1_1_firewall_html"><div class="ttname"><a href="classfw_1_1_firewall.html">fw::Firewall</a></div><div class="ttdef"><b>Definition:</b> <a href="_firewall_8hpp_source.html#l00015">Firewall.hpp:16</a></div></div>
|
||||||
|
</div><!-- fragment --></div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
213
doxygen/html/_a_p_i_8hpp_source.html
Normal file
|
@ -0,0 +1,213 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.9.4"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||||
|
<title>ESP32/ESP8266 Firewall: src/API.hpp Source File</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="resize.js"></script>
|
||||||
|
<script type="text/javascript" src="navtreedata.js"></script>
|
||||||
|
<script type="text/javascript" src="navtree.js"></script>
|
||||||
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||||
|
<script type="text/javascript" src="search/search.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr id="projectrow">
|
||||||
|
<td id="projectalign">
|
||||||
|
<div id="projectname">ESP32/ESP8266 Firewall<span id="projectnumber"> 1.0.0</span>
|
||||||
|
</div>
|
||||||
|
<div id="projectbrief">a software firewall for ESP23 or ESP8266</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.9.4 -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="menudata.js"></script>
|
||||||
|
<script type="text/javascript" src="menu.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
$(function() {
|
||||||
|
initMenu('',true,false,'search.php','Search');
|
||||||
|
$(document).ready(function() { init_search(); });
|
||||||
|
});
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<div id="main-nav"></div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||||
|
<div id="nav-tree">
|
||||||
|
<div id="nav-tree-contents">
|
||||||
|
<div id="nav-sync" class="sync"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="splitbar" style="-moz-user-select:none;"
|
||||||
|
class="ui-resizable-handle">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
$(document).ready(function(){initNavTree('_a_p_i_8hpp_source.html',''); initResizable(); });
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<div id="doc-content">
|
||||||
|
<!-- window showing the filter options -->
|
||||||
|
<div id="MSearchSelectWindow"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- iframe showing the search results (closed by default) -->
|
||||||
|
<div id="MSearchResultsWindow">
|
||||||
|
<iframe src="javascript:void(0)" frameborder="0"
|
||||||
|
name="MSearchResults" id="MSearchResults">
|
||||||
|
</iframe>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="header">
|
||||||
|
<div class="headertitle"><div class="title">API.hpp</div></div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#ifndef API_HPP</span></div>
|
||||||
|
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#define API_HPP</span></div>
|
||||||
|
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span> </div>
|
||||||
|
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="preprocessor">#ifdef ESP8266</span></div>
|
||||||
|
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="preprocessor">#include "ESP8266WebServerSecure.h"</span></div>
|
||||||
|
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="preprocessor">#else</span></div>
|
||||||
|
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="preprocessor">#include "WebServer.h"</span></div>
|
||||||
|
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="preprocessor">#endif</span></div>
|
||||||
|
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#include "uri/UriBraces.h"</span></div>
|
||||||
|
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="preprocessor">#include "Firewall.hpp"</span></div>
|
||||||
|
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="preprocessor">#include "Utils.hpp"</span></div>
|
||||||
|
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span> </div>
|
||||||
|
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="keyword">namespace </span>fw</div>
|
||||||
|
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span>{</div>
|
||||||
|
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"><a class="line" href="classfw_1_1_a_p_i.html"> 20</a></span> <span class="keyword">class </span><a class="code hl_class" href="classfw_1_1_a_p_i.html">API</a></div>
|
||||||
|
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> {</div>
|
||||||
|
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">public</span>:</div>
|
||||||
|
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> <a class="code hl_function" href="classfw_1_1_a_p_i.html#a033d5efd077dfad456cb6e6e7dd2baca">API</a>(<a class="code hl_class" href="classfw_1_1_firewall.html">Firewall</a> *, <span class="keyword">const</span> <span class="keywordtype">char</span> *cert, <span class="keyword">const</span> <span class="keywordtype">char</span> *key, <span class="keyword">const</span> <span class="keywordtype">char</span> *username, <span class="keyword">const</span> <span class="keywordtype">char</span> *password, <span class="keyword">const</span> String ip, <span class="keyword">const</span> uint16_t port = 8080);</div>
|
||||||
|
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> </div>
|
||||||
|
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> <a class="code hl_function" href="classfw_1_1_a_p_i.html#a66ac0bd592bb08d069aea199668670ab">~API</a>();</div>
|
||||||
|
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span><span class="preprocessor">#ifdef ESP8266</span></div>
|
||||||
|
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> <span class="keywordtype">void</span> handle_client();</div>
|
||||||
|
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span><span class="preprocessor">#endif</span></div>
|
||||||
|
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> </div>
|
||||||
|
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> <span class="keyword">private</span>:</div>
|
||||||
|
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span><span class="preprocessor">#ifdef ESP8266</span></div>
|
||||||
|
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> BearSSL::ESP8266WebServerSecure *server;</div>
|
||||||
|
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> BearSSL::ServerSessions *serverCache;</div>
|
||||||
|
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span><span class="preprocessor">#else</span></div>
|
||||||
|
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> WebServer *server;</div>
|
||||||
|
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span><span class="preprocessor">#endif</span></div>
|
||||||
|
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> <a class="code hl_class" href="classfw_1_1_firewall.html">Firewall</a> *firewall;</div>
|
||||||
|
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> <a class="code hl_struct" href="structcredential__t.html">credential_t</a> credentials;</div>
|
||||||
|
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> <a class="code hl_struct" href="structapi__endpoint__t.html">api_endpoint_t</a> *endpoint_head = NULL;</div>
|
||||||
|
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> String api_ip = <span class="stringliteral">"0.0.0.0"</span>;</div>
|
||||||
|
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> uint16_t api_port;</div>
|
||||||
|
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> String json_response_type = <span class="stringliteral">"application/json; charset=utf-8"</span>;</div>
|
||||||
|
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *TAG = <span class="stringliteral">"[API]"</span>;</div>
|
||||||
|
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> </div>
|
||||||
|
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> String <a class="code hl_function" href="classfw_1_1_a_p_i.html#af5dc938ae5a274e3599d637e672b8d07">get_url_base</a>();</div>
|
||||||
|
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> </div>
|
||||||
|
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> ok_t <a class="code hl_function" href="classfw_1_1_a_p_i.html#a45dcdd4969f70a7f1a02e49a47b16a1d">setup_auth</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *username, <span class="keyword">const</span> <span class="keywordtype">char</span> *password);</div>
|
||||||
|
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> </div>
|
||||||
|
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> auth_t <a class="code hl_function" href="classfw_1_1_a_p_i.html#adc9523a1b6e6a6e8f57a514a25c35b8c">check_auth</a>();</div>
|
||||||
|
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> </div>
|
||||||
|
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classfw_1_1_a_p_i.html#a90986dc50f303564e6f5af6d3707dd20">setup_routing</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *cert, <span class="keyword">const</span> <span class="keywordtype">char</span> *key);</div>
|
||||||
|
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> </div>
|
||||||
|
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classfw_1_1_a_p_i.html#aad90a1bfa8e00c4e25a091e5e9a61772">add_endpoint_to_list</a>(<span class="keyword">const</span> String uri, <span class="keyword">const</span> <span class="keywordtype">char</span> *method, <span class="keyword">const</span> <span class="keywordtype">char</span> *description);</div>
|
||||||
|
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> </div>
|
||||||
|
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classfw_1_1_a_p_i.html#aeb74e3b9efc2305c943683b14957ac9d">not_found_handler</a>();</div>
|
||||||
|
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> </div>
|
||||||
|
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classfw_1_1_a_p_i.html#a734cbd9da536fb297da87b4310f20ba1">get_endpoint_list_handler</a>();</div>
|
||||||
|
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> </div>
|
||||||
|
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classfw_1_1_a_p_i.html#ac76f5a6c9c28d71772b238a51b122e4a">get_firewall_rule_handler</a>();</div>
|
||||||
|
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> </div>
|
||||||
|
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classfw_1_1_a_p_i.html#ab904f77fa777a1c8c19deb8e39cf89e8">get_firewall_rules_handler</a>();</div>
|
||||||
|
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> </div>
|
||||||
|
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classfw_1_1_a_p_i.html#a2d78e9dd43abb72da8872cb207db25e3">post_firewall_handler</a>();</div>
|
||||||
|
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> </div>
|
||||||
|
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classfw_1_1_a_p_i.html#a6ce4a9dd9afae493f6639b6fb3f6ba45">put_firewall_handler</a>();</div>
|
||||||
|
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> </div>
|
||||||
|
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classfw_1_1_a_p_i.html#a592c2aa501ff920ebcc125f8d5635deb">delete_firewall_handler</a>();</div>
|
||||||
|
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> </div>
|
||||||
|
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classfw_1_1_a_p_i.html#abab79e90786d14836dcf113077891c50">request_has_all_firewall_parameter</a>();</div>
|
||||||
|
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> </div>
|
||||||
|
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> String <a class="code hl_function" href="classfw_1_1_a_p_i.html#a0ff5aeb3b916dae9219041dc240d9156">json_new_attribute</a>(String key, String value, <span class="keywordtype">bool</span> last = <span class="keyword">false</span>);</div>
|
||||||
|
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> </div>
|
||||||
|
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> String <a class="code hl_function" href="classfw_1_1_a_p_i.html#a0ff5aeb3b916dae9219041dc240d9156">json_new_attribute</a>(String key, uint32_t value, <span class="keywordtype">bool</span> last = <span class="keyword">false</span>);</div>
|
||||||
|
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> </div>
|
||||||
|
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classfw_1_1_a_p_i.html#acbebab924241292706c0287dca5c3ff5">json_generic_response</a>(String serialized_string, <span class="keyword">const</span> uint16_t response_code);</div>
|
||||||
|
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> </div>
|
||||||
|
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classfw_1_1_a_p_i.html#a1892bc26b882b055853e26ed95d8d802">json_array_response</a>(String serialized_string, <span class="keyword">const</span> uint16_t response_code);</div>
|
||||||
|
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span> </div>
|
||||||
|
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classfw_1_1_a_p_i.html#a6b7d4ce75b9cdba0dd39c6c949ef1c15">json_message_response</a>(String message, <span class="keyword">const</span> uint16_t response_code);</div>
|
||||||
|
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span> </div>
|
||||||
|
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span> String <a class="code hl_function" href="classfw_1_1_a_p_i.html#ac249b6e7533414d0296bde477cecac1b">construct_json_firewall_rule</a>(<a class="code hl_struct" href="structfirewall__rule__t.html">firewall_rule_t</a> *rule_ptr);</div>
|
||||||
|
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span> </div>
|
||||||
|
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span> String <a class="code hl_function" href="classfw_1_1_a_p_i.html#a682ec7e09a230507c39cbc7d7c7427d5">construct_json_firewall</a>();</div>
|
||||||
|
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> </div>
|
||||||
|
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span> String <a class="code hl_function" href="classfw_1_1_a_p_i.html#a175d139d29530e2946f67789c9652da8">construct_json_api_endpoint</a>(<a class="code hl_struct" href="structapi__endpoint__t.html">api_endpoint_t</a> *api_ptr);</div>
|
||||||
|
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span> </div>
|
||||||
|
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span> String <a class="code hl_function" href="classfw_1_1_a_p_i.html#aa541a477e14a992b55e3f75351887cab">construct_json_api</a>();</div>
|
||||||
|
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span> };</div>
|
||||||
|
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span>}</div>
|
||||||
|
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span> </div>
|
||||||
|
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span><span class="preprocessor">#endif</span></div>
|
||||||
|
<div class="ttc" id="aclassfw_1_1_a_p_i_html"><div class="ttname"><a href="classfw_1_1_a_p_i.html">fw::API</a></div><div class="ttdoc">The API to create, edit or remove Firewall rules.</div><div class="ttdef"><b>Definition:</b> API.hpp:21</div></div>
|
||||||
|
<div class="ttc" id="aclassfw_1_1_a_p_i_html_a033d5efd077dfad456cb6e6e7dd2baca"><div class="ttname"><a href="classfw_1_1_a_p_i.html#a033d5efd077dfad456cb6e6e7dd2baca">fw::API::API</a></div><div class="ttdeci">API(Firewall *, const char *cert, const char *key, const char *username, const char *password, const String ip, const uint16_t port=8080)</div><div class="ttdoc">Construct a new API object, assign ip and port to generate endpoint list, setup authentication,...</div><div class="ttdef"><b>Definition:</b> API.cpp:5</div></div>
|
||||||
|
<div class="ttc" id="aclassfw_1_1_a_p_i_html_a0ff5aeb3b916dae9219041dc240d9156"><div class="ttname"><a href="classfw_1_1_a_p_i.html#a0ff5aeb3b916dae9219041dc240d9156">fw::API::json_new_attribute</a></div><div class="ttdeci">String json_new_attribute(String key, String value, bool last=false)</div><div class="ttdoc">add another attribute to the json object</div><div class="ttdef"><b>Definition:</b> API.cpp:225</div></div>
|
||||||
|
<div class="ttc" id="aclassfw_1_1_a_p_i_html_a175d139d29530e2946f67789c9652da8"><div class="ttname"><a href="classfw_1_1_a_p_i.html#a175d139d29530e2946f67789c9652da8">fw::API::construct_json_api_endpoint</a></div><div class="ttdeci">String construct_json_api_endpoint(api_endpoint_t *api_ptr)</div><div class="ttdoc">construct an API endpoint as json object</div><div class="ttdef"><b>Definition:</b> API.cpp:284</div></div>
|
||||||
|
<div class="ttc" id="aclassfw_1_1_a_p_i_html_a1892bc26b882b055853e26ed95d8d802"><div class="ttname"><a href="classfw_1_1_a_p_i.html#a1892bc26b882b055853e26ed95d8d802">fw::API::json_array_response</a></div><div class="ttdeci">void json_array_response(String serialized_string, const uint16_t response_code)</div><div class="ttdoc">json response that wraps the message in array brackets</div><div class="ttdef"><b>Definition:</b> API.cpp:244</div></div>
|
||||||
|
<div class="ttc" id="aclassfw_1_1_a_p_i_html_a2d78e9dd43abb72da8872cb207db25e3"><div class="ttname"><a href="classfw_1_1_a_p_i.html#a2d78e9dd43abb72da8872cb207db25e3">fw::API::post_firewall_handler</a></div><div class="ttdeci">void post_firewall_handler()</div><div class="ttdoc">POST handler to create firewall rule.</div><div class="ttdef"><b>Definition:</b> API.cpp:156</div></div>
|
||||||
|
<div class="ttc" id="aclassfw_1_1_a_p_i_html_a45dcdd4969f70a7f1a02e49a47b16a1d"><div class="ttname"><a href="classfw_1_1_a_p_i.html#a45dcdd4969f70a7f1a02e49a47b16a1d">fw::API::setup_auth</a></div><div class="ttdeci">ok_t setup_auth(const char *username, const char *password)</div><div class="ttdoc">Set up authentication.</div><div class="ttdef"><b>Definition:</b> API.cpp:52</div></div>
|
||||||
|
<div class="ttc" id="aclassfw_1_1_a_p_i_html_a592c2aa501ff920ebcc125f8d5635deb"><div class="ttname"><a href="classfw_1_1_a_p_i.html#a592c2aa501ff920ebcc125f8d5635deb">fw::API::delete_firewall_handler</a></div><div class="ttdeci">void delete_firewall_handler()</div><div class="ttdoc">DELETE handler to delete firewall rule.</div><div class="ttdef"><b>Definition:</b> API.cpp:201</div></div>
|
||||||
|
<div class="ttc" id="aclassfw_1_1_a_p_i_html_a66ac0bd592bb08d069aea199668670ab"><div class="ttname"><a href="classfw_1_1_a_p_i.html#a66ac0bd592bb08d069aea199668670ab">fw::API::~API</a></div><div class="ttdeci">~API()</div><div class="ttdoc">Destroy the API object.</div><div class="ttdef"><b>Definition:</b> API.cpp:31</div></div>
|
||||||
|
<div class="ttc" id="aclassfw_1_1_a_p_i_html_a682ec7e09a230507c39cbc7d7c7427d5"><div class="ttname"><a href="classfw_1_1_a_p_i.html#a682ec7e09a230507c39cbc7d7c7427d5">fw::API::construct_json_firewall</a></div><div class="ttdeci">String construct_json_firewall()</div><div class="ttdoc">construct array of all firewall rules as json object</div><div class="ttdef"><b>Definition:</b> API.cpp:270</div></div>
|
||||||
|
<div class="ttc" id="aclassfw_1_1_a_p_i_html_a6b7d4ce75b9cdba0dd39c6c949ef1c15"><div class="ttname"><a href="classfw_1_1_a_p_i.html#a6b7d4ce75b9cdba0dd39c6c949ef1c15">fw::API::json_message_response</a></div><div class="ttdeci">void json_message_response(String message, const uint16_t response_code)</div><div class="ttdoc">json response to send message as json object</div><div class="ttdef"><b>Definition:</b> API.cpp:249</div></div>
|
||||||
|
<div class="ttc" id="aclassfw_1_1_a_p_i_html_a6ce4a9dd9afae493f6639b6fb3f6ba45"><div class="ttname"><a href="classfw_1_1_a_p_i.html#a6ce4a9dd9afae493f6639b6fb3f6ba45">fw::API::put_firewall_handler</a></div><div class="ttdeci">void put_firewall_handler()</div><div class="ttdoc">PUT handler to update firewall rule.</div><div class="ttdef"><b>Definition:</b> API.cpp:176</div></div>
|
||||||
|
<div class="ttc" id="aclassfw_1_1_a_p_i_html_a734cbd9da536fb297da87b4310f20ba1"><div class="ttname"><a href="classfw_1_1_a_p_i.html#a734cbd9da536fb297da87b4310f20ba1">fw::API::get_endpoint_list_handler</a></div><div class="ttdeci">void get_endpoint_list_handler()</div><div class="ttdoc">GET handler to retrieve endpoint list.</div><div class="ttdef"><b>Definition:</b> API.cpp:131</div></div>
|
||||||
|
<div class="ttc" id="aclassfw_1_1_a_p_i_html_a90986dc50f303564e6f5af6d3707dd20"><div class="ttname"><a href="classfw_1_1_a_p_i.html#a90986dc50f303564e6f5af6d3707dd20">fw::API::setup_routing</a></div><div class="ttdeci">void setup_routing(const char *cert, const char *key)</div><div class="ttdoc">Set up the routing/endpoints and encryption.</div><div class="ttdef"><b>Definition:</b> API.cpp:79</div></div>
|
||||||
|
<div class="ttc" id="aclassfw_1_1_a_p_i_html_aa541a477e14a992b55e3f75351887cab"><div class="ttname"><a href="classfw_1_1_a_p_i.html#aa541a477e14a992b55e3f75351887cab">fw::API::construct_json_api</a></div><div class="ttdeci">String construct_json_api()</div><div class="ttdoc">construct array of all endpoints as json object</div><div class="ttdef"><b>Definition:</b> API.cpp:294</div></div>
|
||||||
|
<div class="ttc" id="aclassfw_1_1_a_p_i_html_aad90a1bfa8e00c4e25a091e5e9a61772"><div class="ttname"><a href="classfw_1_1_a_p_i.html#aad90a1bfa8e00c4e25a091e5e9a61772">fw::API::add_endpoint_to_list</a></div><div class="ttdeci">void add_endpoint_to_list(const String uri, const char *method, const char *description)</div><div class="ttdoc">add endpoint information to linked list that is used for the /api endpoint</div><div class="ttdef"><b>Definition:</b> API.cpp:100</div></div>
|
||||||
|
<div class="ttc" id="aclassfw_1_1_a_p_i_html_ab904f77fa777a1c8c19deb8e39cf89e8"><div class="ttname"><a href="classfw_1_1_a_p_i.html#ab904f77fa777a1c8c19deb8e39cf89e8">fw::API::get_firewall_rules_handler</a></div><div class="ttdeci">void get_firewall_rules_handler()</div><div class="ttdoc">GET handler to retrieve firewall rules.</div><div class="ttdef"><b>Definition:</b> API.cpp:149</div></div>
|
||||||
|
<div class="ttc" id="aclassfw_1_1_a_p_i_html_abab79e90786d14836dcf113077891c50"><div class="ttname"><a href="classfw_1_1_a_p_i.html#abab79e90786d14836dcf113077891c50">fw::API::request_has_all_firewall_parameter</a></div><div class="ttdeci">bool request_has_all_firewall_parameter()</div><div class="ttdoc">check if request to create/update firewall rule has all required parameter</div><div class="ttdef"><b>Definition:</b> API.cpp:213</div></div>
|
||||||
|
<div class="ttc" id="aclassfw_1_1_a_p_i_html_ac249b6e7533414d0296bde477cecac1b"><div class="ttname"><a href="classfw_1_1_a_p_i.html#ac249b6e7533414d0296bde477cecac1b">fw::API::construct_json_firewall_rule</a></div><div class="ttdeci">String construct_json_firewall_rule(firewall_rule_t *rule_ptr)</div><div class="ttdoc">construct a firewall rule as json object</div><div class="ttdef"><b>Definition:</b> API.cpp:257</div></div>
|
||||||
|
<div class="ttc" id="aclassfw_1_1_a_p_i_html_ac76f5a6c9c28d71772b238a51b122e4a"><div class="ttname"><a href="classfw_1_1_a_p_i.html#ac76f5a6c9c28d71772b238a51b122e4a">fw::API::get_firewall_rule_handler</a></div><div class="ttdeci">void get_firewall_rule_handler()</div><div class="ttdoc">GET handler to retrieve single firewall rule.</div><div class="ttdef"><b>Definition:</b> API.cpp:136</div></div>
|
||||||
|
<div class="ttc" id="aclassfw_1_1_a_p_i_html_acbebab924241292706c0287dca5c3ff5"><div class="ttname"><a href="classfw_1_1_a_p_i.html#acbebab924241292706c0287dca5c3ff5">fw::API::json_generic_response</a></div><div class="ttdeci">void json_generic_response(String serialized_string, const uint16_t response_code)</div><div class="ttdoc">json response to send any string and response code</div><div class="ttdef"><b>Definition:</b> API.cpp:239</div></div>
|
||||||
|
<div class="ttc" id="aclassfw_1_1_a_p_i_html_adc9523a1b6e6a6e8f57a514a25c35b8c"><div class="ttname"><a href="classfw_1_1_a_p_i.html#adc9523a1b6e6a6e8f57a514a25c35b8c">fw::API::check_auth</a></div><div class="ttdeci">auth_t check_auth()</div><div class="ttdoc">check if request to API can proceed or needs to stop</div><div class="ttdef"><b>Definition:</b> API.cpp:69</div></div>
|
||||||
|
<div class="ttc" id="aclassfw_1_1_a_p_i_html_aeb74e3b9efc2305c943683b14957ac9d"><div class="ttname"><a href="classfw_1_1_a_p_i.html#aeb74e3b9efc2305c943683b14957ac9d">fw::API::not_found_handler</a></div><div class="ttdeci">void not_found_handler()</div><div class="ttdoc">handling not found</div><div class="ttdef"><b>Definition:</b> API.cpp:126</div></div>
|
||||||
|
<div class="ttc" id="aclassfw_1_1_a_p_i_html_af5dc938ae5a274e3599d637e672b8d07"><div class="ttname"><a href="classfw_1_1_a_p_i.html#af5dc938ae5a274e3599d637e672b8d07">fw::API::get_url_base</a></div><div class="ttdeci">String get_url_base()</div><div class="ttdoc">Get the url base string e.g. http://0.0.0.0:8080/api.</div><div class="ttdef"><b>Definition:</b> API.cpp:43</div></div>
|
||||||
|
<div class="ttc" id="aclassfw_1_1_firewall_html"><div class="ttname"><a href="classfw_1_1_firewall.html">fw::Firewall</a></div><div class="ttdoc">The Firewall will handle Firewall rules as linked list.</div><div class="ttdef"><b>Definition:</b> Firewall.hpp:20</div></div>
|
||||||
|
<div class="ttc" id="astructapi__endpoint__t_html"><div class="ttname"><a href="structapi__endpoint__t.html">api_endpoint_t</a></div><div class="ttdef"><b>Definition:</b> Utils.hpp:93</div></div>
|
||||||
|
<div class="ttc" id="astructcredential__t_html"><div class="ttname"><a href="structcredential__t.html">credential_t</a></div><div class="ttdef"><b>Definition:</b> Utils.hpp:85</div></div>
|
||||||
|
<div class="ttc" id="astructfirewall__rule__t_html"><div class="ttname"><a href="structfirewall__rule__t.html">firewall_rule_t</a></div><div class="ttdef"><b>Definition:</b> Utils.hpp:51</div></div>
|
||||||
|
</div><!-- fragment --></div><!-- contents -->
|
||||||
|
</div><!-- doc-content -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||||
|
<ul>
|
||||||
|
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><b>API.hpp</b></li>
|
||||||
|
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4 </li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
262
doxygen/html/_firewall_8cpp_source.html
Normal file
|
@ -0,0 +1,262 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.9.4"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||||
|
<title>ESP32/ESP8266 Firewall: src/Firewall.cpp Source File</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||||
|
<script type="text/javascript" src="search/search.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr id="projectrow">
|
||||||
|
<td id="projectalign">
|
||||||
|
<div id="projectname">ESP32/ESP8266 Firewall<span id="projectnumber"> 1.0.0</span>
|
||||||
|
</div>
|
||||||
|
<div id="projectbrief">a software firewall for ESP23 or ESP8266</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.9.4 -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="menudata.js"></script>
|
||||||
|
<script type="text/javascript" src="menu.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
$(function() {
|
||||||
|
initMenu('',true,false,'search.php','Search');
|
||||||
|
$(document).ready(function() { init_search(); });
|
||||||
|
});
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<div id="main-nav"></div>
|
||||||
|
<!-- window showing the filter options -->
|
||||||
|
<div id="MSearchSelectWindow"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- iframe showing the search results (closed by default) -->
|
||||||
|
<div id="MSearchResultsWindow">
|
||||||
|
<iframe src="javascript:void(0)" frameborder="0"
|
||||||
|
name="MSearchResults" id="MSearchResults">
|
||||||
|
</iframe>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="nav-path" class="navpath">
|
||||||
|
<ul>
|
||||||
|
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li> </ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="header">
|
||||||
|
<div class="headertitle"><div class="title">Firewall.cpp</div></div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#include "Firewall.hpp"</span></div>
|
||||||
|
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span> </div>
|
||||||
|
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="keyword">namespace </span>fw</div>
|
||||||
|
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span>{</div>
|
||||||
|
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span> Firewall::Firewall()</div>
|
||||||
|
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span> {</div>
|
||||||
|
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span> this->amount_of_rules = retrieve_amount_of_rules();</div>
|
||||||
|
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span> <span class="keywordflow">for</span> (uint8_t i = 1; i <= this->amount_of_rules; i++)</div>
|
||||||
|
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span> {</div>
|
||||||
|
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span> firewall_rule_t *rule_ptr = retrieve_firewall_rule(i);</div>
|
||||||
|
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span> this->add_rule_to_firewall(rule_ptr, <span class="keyword">false</span>);</div>
|
||||||
|
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span> }</div>
|
||||||
|
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> }</div>
|
||||||
|
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> </div>
|
||||||
|
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> Firewall::~Firewall()</div>
|
||||||
|
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> {</div>
|
||||||
|
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> }</div>
|
||||||
|
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> </div>
|
||||||
|
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> firewall_rule_t *Firewall::get_rule_head()</div>
|
||||||
|
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> {</div>
|
||||||
|
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> <span class="keywordflow">return</span> this->rule_head;</div>
|
||||||
|
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> }</div>
|
||||||
|
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> </div>
|
||||||
|
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> <span class="keywordtype">void</span> Firewall::add_rule_to_firewall(firewall_rule_t *rule_ptr, <span class="keyword">const</span> <span class="keywordtype">bool</span> save_in_eeprom)</div>
|
||||||
|
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> {</div>
|
||||||
|
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> store_amount_of_rules(this->amount_of_rules);</div>
|
||||||
|
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> <span class="keywordflow">if</span> (save_in_eeprom)</div>
|
||||||
|
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> Storage::store_firewall_rule(rule_ptr);</div>
|
||||||
|
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> <span class="keywordflow">if</span> (this->rule_head == NULL)</div>
|
||||||
|
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> {</div>
|
||||||
|
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> this->rule_head = rule_ptr;</div>
|
||||||
|
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> rule_ptr->next = NULL;</div>
|
||||||
|
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> <span class="keywordflow">return</span>;</div>
|
||||||
|
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> }</div>
|
||||||
|
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> firewall_rule_t *current_rule;</div>
|
||||||
|
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> current_rule = this->rule_head;</div>
|
||||||
|
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> <span class="keywordflow">while</span> (current_rule->next != NULL)</div>
|
||||||
|
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> current_rule = current_rule->next;</div>
|
||||||
|
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> current_rule->next = rule_ptr;</div>
|
||||||
|
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> rule_ptr->next = NULL;</div>
|
||||||
|
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> }</div>
|
||||||
|
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> </div>
|
||||||
|
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> firewall_rule_t *Firewall::add_rule_to_firewall(String *args)</div>
|
||||||
|
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> {</div>
|
||||||
|
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> firewall_rule_t *rule_ptr = (firewall_rule_t *)malloc(<span class="keyword">sizeof</span>(firewall_rule_t));</div>
|
||||||
|
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> rule_ptr->key = ++this->amount_of_rules;</div>
|
||||||
|
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> </div>
|
||||||
|
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> strncpy(rule_ptr->ip, args[IP].c_str(), <span class="keyword">sizeof</span>(rule_ptr->ip));</div>
|
||||||
|
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> rule_ptr->port_from = args[PORT_FROM].toInt();</div>
|
||||||
|
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> rule_ptr->port_to = args[PORT_TO].toInt();</div>
|
||||||
|
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> rule_ptr->protocol = string_to_protocol(args[PROTOCOL]);</div>
|
||||||
|
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> rule_ptr->target = string_to_target(args[TARGET]);</div>
|
||||||
|
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> </div>
|
||||||
|
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> add_rule_to_firewall(rule_ptr);</div>
|
||||||
|
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> <span class="keywordflow">return</span> rule_ptr;</div>
|
||||||
|
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> }</div>
|
||||||
|
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> </div>
|
||||||
|
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> firewall_rule_t *Firewall::update_rule_of_firewall(String *args, <span class="keyword">const</span> uint8_t key)</div>
|
||||||
|
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> {</div>
|
||||||
|
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> firewall_rule_t *rule_ptr = get_rule_from_firewall(key);</div>
|
||||||
|
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> <span class="keywordflow">if</span> (rule_ptr == NULL)</div>
|
||||||
|
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> <span class="keywordflow">return</span> rule_ptr;</div>
|
||||||
|
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> strncpy(rule_ptr->ip, args[IP].c_str(), <span class="keyword">sizeof</span>(rule_ptr->ip));</div>
|
||||||
|
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> rule_ptr->port_from = args[PORT_FROM].toInt();</div>
|
||||||
|
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> rule_ptr->port_to = args[PORT_TO].toInt();</div>
|
||||||
|
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> rule_ptr->protocol = string_to_protocol(args[PROTOCOL]);</div>
|
||||||
|
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> rule_ptr->target = string_to_target(args[TARGET]);</div>
|
||||||
|
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> </div>
|
||||||
|
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> Storage::store_firewall_rule(rule_ptr);</div>
|
||||||
|
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> <span class="keywordflow">return</span> rule_ptr;</div>
|
||||||
|
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> }</div>
|
||||||
|
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> </div>
|
||||||
|
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> firewall_rule_t *Firewall::get_rule_from_firewall(<span class="keyword">const</span> uint8_t key)</div>
|
||||||
|
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> {</div>
|
||||||
|
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> firewall_rule_t *rule_ptr = this->rule_head;</div>
|
||||||
|
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> <span class="keywordflow">if</span> (this->rule_head == NULL)</div>
|
||||||
|
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> <span class="keywordflow">return</span> NULL;</div>
|
||||||
|
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> <span class="keywordflow">while</span> (rule_ptr->key != key)</div>
|
||||||
|
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> {</div>
|
||||||
|
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> <span class="keywordflow">if</span> (rule_ptr->next == NULL)</div>
|
||||||
|
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> <span class="keywordflow">return</span> NULL;</div>
|
||||||
|
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> <span class="keywordflow">else</span></div>
|
||||||
|
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> rule_ptr = rule_ptr->next;</div>
|
||||||
|
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> }</div>
|
||||||
|
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> <span class="keywordflow">return</span> rule_ptr;</div>
|
||||||
|
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> }</div>
|
||||||
|
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> </div>
|
||||||
|
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> ok_t Firewall::delete_rule_from_firewall(<span class="keyword">const</span> uint8_t key)</div>
|
||||||
|
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> {</div>
|
||||||
|
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> <span class="keywordflow">if</span> (this->rule_head == NULL)</div>
|
||||||
|
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> <span class="keywordflow">return</span> NO_ACTION;</div>
|
||||||
|
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> firewall_rule_t *current_rule = this->rule_head;</div>
|
||||||
|
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> firewall_rule_t *previous_rule = NULL;</div>
|
||||||
|
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> firewall_rule_t *temp = NULL;</div>
|
||||||
|
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> <span class="keywordflow">while</span> (current_rule->key != key)</div>
|
||||||
|
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> {</div>
|
||||||
|
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> <span class="keywordflow">if</span> (current_rule->next == NULL)</div>
|
||||||
|
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> <span class="keywordflow">return</span> NO_ACTION;</div>
|
||||||
|
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> <span class="keywordflow">else</span></div>
|
||||||
|
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> {</div>
|
||||||
|
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> previous_rule = current_rule;</div>
|
||||||
|
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> current_rule = current_rule->next;</div>
|
||||||
|
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> }</div>
|
||||||
|
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> }</div>
|
||||||
|
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> <span class="keywordflow">if</span> (current_rule == this->rule_head)</div>
|
||||||
|
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> {</div>
|
||||||
|
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> this->rule_head = rule_head->next;</div>
|
||||||
|
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> temp = this->rule_head;</div>
|
||||||
|
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> }</div>
|
||||||
|
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> <span class="keywordflow">else</span></div>
|
||||||
|
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> {</div>
|
||||||
|
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> previous_rule->next = current_rule->next;</div>
|
||||||
|
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> temp = previous_rule->next;</div>
|
||||||
|
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> }</div>
|
||||||
|
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> <span class="keywordflow">while</span> (temp != NULL)</div>
|
||||||
|
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> {</div>
|
||||||
|
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> temp->key--;</div>
|
||||||
|
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> temp = temp->next;</div>
|
||||||
|
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> }</div>
|
||||||
|
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> free(current_rule);</div>
|
||||||
|
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> this->amount_of_rules--;</div>
|
||||||
|
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> Storage::store_amount_of_rules(this->amount_of_rules);</div>
|
||||||
|
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> <span class="keywordflow">if</span> (this->amount_of_rules != 0)</div>
|
||||||
|
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> Storage::store_all_firewall_rules(rule_head);</div>
|
||||||
|
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> <span class="keywordflow">return</span> SUCCESS;</div>
|
||||||
|
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> }</div>
|
||||||
|
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> </div>
|
||||||
|
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> my_packet_t *Firewall::get_packet_information(<span class="keyword">struct</span> pbuf *pbuf)</div>
|
||||||
|
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> {</div>
|
||||||
|
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> my_packet_t *packet = (my_packet_t *)malloc(<span class="keyword">sizeof</span>(my_packet_t));</div>
|
||||||
|
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> <span class="keyword">const</span> <span class="keyword">struct </span>ip_hdr *iphdr = (<span class="keyword">struct </span>ip_hdr *)pbuf->payload;</div>
|
||||||
|
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> u16_t iphdr_hlen = IPH_HL_BYTES(iphdr);</div>
|
||||||
|
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> </div>
|
||||||
|
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> packet->protocol = (firewall_protocol_t)IPH_PROTO(iphdr);</div>
|
||||||
|
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> sprintf(packet->ip, <span class="stringliteral">"%d.%d.%d.%d"</span>, ip4_addr1_16_val(iphdr->src), ip4_addr2_16_val(iphdr->src), ip4_addr3_16_val(iphdr->src), ip4_addr4_16_val(iphdr->src));</div>
|
||||||
|
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> </div>
|
||||||
|
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> <span class="keywordflow">if</span> (packet->protocol == PROTOCOL_UDP)</div>
|
||||||
|
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> {</div>
|
||||||
|
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> <span class="keyword">const</span> <span class="keyword">struct </span>udp_hdr *udphdr = (<span class="keyword">const</span> <span class="keyword">struct </span>udp_hdr *)((<span class="keyword">const</span> u8_t *)iphdr + iphdr_hlen);</div>
|
||||||
|
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> packet->port = lwip_ntohs(udphdr->dest);</div>
|
||||||
|
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> }</div>
|
||||||
|
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (packet->protocol == PROTOCOL_TCP)</div>
|
||||||
|
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> {</div>
|
||||||
|
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> <span class="keyword">const</span> <span class="keyword">struct </span>tcp_hdr *tcphdr = (<span class="keyword">const</span> <span class="keyword">struct </span>tcp_hdr *)((<span class="keyword">const</span> u8_t *)iphdr + iphdr_hlen);</div>
|
||||||
|
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> packet->port = lwip_ntohs(tcphdr->dest);</div>
|
||||||
|
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> }</div>
|
||||||
|
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> </div>
|
||||||
|
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> <span class="keywordflow">return</span> packet;</div>
|
||||||
|
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> }</div>
|
||||||
|
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> </div>
|
||||||
|
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> <span class="keywordtype">bool</span> Firewall::rule_allows_packet(firewall_rule_t *rule_ptr, my_packet_t *packet)</div>
|
||||||
|
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> {</div>
|
||||||
|
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> <span class="keywordflow">if</span> (strncmp(rule_ptr->ip, packet->ip, IPV4ADDRESS_LENGTH) == 0)</div>
|
||||||
|
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> {</div>
|
||||||
|
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> <span class="keywordflow">if</span> ((rule_ptr->protocol == PROTOCOL_ALL || packet->protocol == rule_ptr->protocol) &&</div>
|
||||||
|
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> is_in_range(packet->port, rule_ptr->port_from, rule_ptr->port_to) &&</div>
|
||||||
|
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> rule_ptr->target == TARGET_ACCEPT)</div>
|
||||||
|
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> {</div>
|
||||||
|
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> free(packet);</div>
|
||||||
|
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
||||||
|
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span> }</div>
|
||||||
|
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> }</div>
|
||||||
|
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
||||||
|
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> }</div>
|
||||||
|
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> </div>
|
||||||
|
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> <span class="keywordtype">bool</span> Firewall::is_packet_allowed(<span class="keyword">struct</span> pbuf *pbuf)</div>
|
||||||
|
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> {</div>
|
||||||
|
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> <span class="comment">// no rules -> no action</span></div>
|
||||||
|
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> <span class="keywordflow">if</span> (this->amount_of_rules == 0)</div>
|
||||||
|
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
||||||
|
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> </div>
|
||||||
|
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> my_packet_t *packet = get_packet_information(pbuf);</div>
|
||||||
|
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> firewall_rule_t *rule_ptr = this->rule_head;</div>
|
||||||
|
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> <span class="keywordflow">while</span> (rule_ptr != NULL)</div>
|
||||||
|
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> {</div>
|
||||||
|
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> <span class="keywordflow">if</span> (rule_allows_packet(rule_ptr, packet))</div>
|
||||||
|
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
||||||
|
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> rule_ptr = rule_ptr->next;</div>
|
||||||
|
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span> }</div>
|
||||||
|
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span> free(packet);</div>
|
||||||
|
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
||||||
|
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> }</div>
|
||||||
|
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span>}</div>
|
||||||
|
</div><!-- fragment --></div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
159
doxygen/html/_firewall_8hpp_source.html
Normal file
|
@ -0,0 +1,159 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.9.4"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||||
|
<title>ESP32/ESP8266 Firewall: src/Firewall.hpp Source File</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="resize.js"></script>
|
||||||
|
<script type="text/javascript" src="navtreedata.js"></script>
|
||||||
|
<script type="text/javascript" src="navtree.js"></script>
|
||||||
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||||
|
<script type="text/javascript" src="search/search.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr id="projectrow">
|
||||||
|
<td id="projectalign">
|
||||||
|
<div id="projectname">ESP32/ESP8266 Firewall<span id="projectnumber"> 1.0.0</span>
|
||||||
|
</div>
|
||||||
|
<div id="projectbrief">a software firewall for ESP23 or ESP8266</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.9.4 -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="menudata.js"></script>
|
||||||
|
<script type="text/javascript" src="menu.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
$(function() {
|
||||||
|
initMenu('',true,false,'search.php','Search');
|
||||||
|
$(document).ready(function() { init_search(); });
|
||||||
|
});
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<div id="main-nav"></div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||||
|
<div id="nav-tree">
|
||||||
|
<div id="nav-tree-contents">
|
||||||
|
<div id="nav-sync" class="sync"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="splitbar" style="-moz-user-select:none;"
|
||||||
|
class="ui-resizable-handle">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
$(document).ready(function(){initNavTree('_firewall_8hpp_source.html',''); initResizable(); });
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<div id="doc-content">
|
||||||
|
<!-- window showing the filter options -->
|
||||||
|
<div id="MSearchSelectWindow"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- iframe showing the search results (closed by default) -->
|
||||||
|
<div id="MSearchResultsWindow">
|
||||||
|
<iframe src="javascript:void(0)" frameborder="0"
|
||||||
|
name="MSearchResults" id="MSearchResults">
|
||||||
|
</iframe>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="header">
|
||||||
|
<div class="headertitle"><div class="title">Firewall.hpp</div></div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#ifndef FIREWALL_HPP</span></div>
|
||||||
|
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#define FIREWALL_HPP</span></div>
|
||||||
|
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span> </div>
|
||||||
|
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="preprocessor">#include "Utils.hpp"</span></div>
|
||||||
|
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="preprocessor">#include "Storage.hpp"</span></div>
|
||||||
|
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="preprocessor">#include "WiFiClient.h"</span></div>
|
||||||
|
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="preprocessor">#include "lwip/netif.h"</span></div>
|
||||||
|
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="preprocessor">#include "lwip/pbuf.h"</span></div>
|
||||||
|
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#include "lwip/ip4.h"</span></div>
|
||||||
|
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="preprocessor">#include "lwip/prot/udp.h"</span></div>
|
||||||
|
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="preprocessor">#include "lwip/prot/tcp.h"</span></div>
|
||||||
|
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span> </div>
|
||||||
|
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="keyword">namespace </span>fw</div>
|
||||||
|
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span>{</div>
|
||||||
|
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"><a class="line" href="classfw_1_1_firewall.html"> 19</a></span> <span class="keyword">class </span><a class="code hl_class" href="classfw_1_1_firewall.html">Firewall</a> : <span class="keyword">public</span> <a class="code hl_class" href="classfw_1_1_storage.html">Storage</a></div>
|
||||||
|
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> {</div>
|
||||||
|
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> <span class="keyword">public</span>:</div>
|
||||||
|
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> <a class="code hl_function" href="classfw_1_1_firewall.html#a2cc2717bd5999bc9a2f24ae33e4abd42">Firewall</a>();</div>
|
||||||
|
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> </div>
|
||||||
|
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> <a class="code hl_function" href="classfw_1_1_firewall.html#a2c7c043d66b645ecc15e71561132057d">~Firewall</a>();</div>
|
||||||
|
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> </div>
|
||||||
|
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> <a class="code hl_struct" href="structfirewall__rule__t.html">firewall_rule_t</a> *<a class="code hl_function" href="classfw_1_1_firewall.html#a86f7d6ef56888f673fa46c4bc9ad3009">get_rule_head</a>();</div>
|
||||||
|
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> </div>
|
||||||
|
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classfw_1_1_firewall.html#aae2a4a36257033c91f8f183b11de82c5">add_rule_to_firewall</a>(<a class="code hl_struct" href="structfirewall__rule__t.html">firewall_rule_t</a> *rule_ptr, <span class="keyword">const</span> <span class="keywordtype">bool</span> save_in_eeprom = <span class="keyword">true</span>);</div>
|
||||||
|
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> </div>
|
||||||
|
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> <a class="code hl_struct" href="structfirewall__rule__t.html">firewall_rule_t</a> *<a class="code hl_function" href="classfw_1_1_firewall.html#aae2a4a36257033c91f8f183b11de82c5">add_rule_to_firewall</a>(String *args);</div>
|
||||||
|
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> </div>
|
||||||
|
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> <a class="code hl_struct" href="structfirewall__rule__t.html">firewall_rule_t</a> *<a class="code hl_function" href="classfw_1_1_firewall.html#a987ec9a98b7d6ef56cf569e0290b3594">update_rule_of_firewall</a>(String *args, <span class="keyword">const</span> uint8_t key);</div>
|
||||||
|
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> </div>
|
||||||
|
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> <a class="code hl_struct" href="structfirewall__rule__t.html">firewall_rule_t</a> *<a class="code hl_function" href="classfw_1_1_firewall.html#a7aa017cfb1ae6d6748d3f8c48e18dcf2">get_rule_from_firewall</a>(<span class="keyword">const</span> uint8_t key);</div>
|
||||||
|
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> </div>
|
||||||
|
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> ok_t <a class="code hl_function" href="classfw_1_1_firewall.html#a25fac8da12651a927c8285aa75e213d1">delete_rule_from_firewall</a>(<span class="keyword">const</span> uint8_t key);</div>
|
||||||
|
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> </div>
|
||||||
|
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classfw_1_1_firewall.html#a81eca0d34c28e5c4244b557a1f8e047d">is_packet_allowed</a>(<span class="keyword">struct</span> pbuf *pbuf);</div>
|
||||||
|
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> </div>
|
||||||
|
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> <span class="keyword">protected</span>:</div>
|
||||||
|
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classfw_1_1_firewall.html#a26fea38729777e00e5ee3a8d58f785b1">rule_allows_packet</a>(<a class="code hl_struct" href="structfirewall__rule__t.html">firewall_rule_t</a> *rule_ptr, <a class="code hl_struct" href="structmy__packet__t.html">my_packet_t</a> *packet);</div>
|
||||||
|
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> </div>
|
||||||
|
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> <a class="code hl_struct" href="structmy__packet__t.html">my_packet_t</a> *<a class="code hl_function" href="classfw_1_1_firewall.html#a6815085477349f902e77cc5564b1b5ba">get_packet_information</a>(<span class="keyword">struct</span> pbuf *pbuf);</div>
|
||||||
|
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> </div>
|
||||||
|
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> uint8_t amount_of_rules = 0;</div>
|
||||||
|
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> <a class="code hl_struct" href="structfirewall__rule__t.html">firewall_rule_t</a> *rule_head = NULL;</div>
|
||||||
|
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> };</div>
|
||||||
|
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span>}</div>
|
||||||
|
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> </div>
|
||||||
|
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span><span class="preprocessor">#endif</span></div>
|
||||||
|
<div class="ttc" id="aclassfw_1_1_firewall_html"><div class="ttname"><a href="classfw_1_1_firewall.html">fw::Firewall</a></div><div class="ttdoc">The Firewall will handle Firewall rules as linked list.</div><div class="ttdef"><b>Definition:</b> Firewall.hpp:20</div></div>
|
||||||
|
<div class="ttc" id="aclassfw_1_1_firewall_html_a25fac8da12651a927c8285aa75e213d1"><div class="ttname"><a href="classfw_1_1_firewall.html#a25fac8da12651a927c8285aa75e213d1">fw::Firewall::delete_rule_from_firewall</a></div><div class="ttdeci">ok_t delete_rule_from_firewall(const uint8_t key)</div><div class="ttdoc">delete rule from the firewall linked list, update amount of rules, store new order of rules in Storag...</div><div class="ttdef"><b>Definition:</b> Firewall.cpp:88</div></div>
|
||||||
|
<div class="ttc" id="aclassfw_1_1_firewall_html_a26fea38729777e00e5ee3a8d58f785b1"><div class="ttname"><a href="classfw_1_1_firewall.html#a26fea38729777e00e5ee3a8d58f785b1">fw::Firewall::rule_allows_packet</a></div><div class="ttdeci">bool rule_allows_packet(firewall_rule_t *rule_ptr, my_packet_t *packet)</div><div class="ttdoc">checks if network packet is allowed by the rule</div><div class="ttdef"><b>Definition:</b> Firewall.cpp:151</div></div>
|
||||||
|
<div class="ttc" id="aclassfw_1_1_firewall_html_a2c7c043d66b645ecc15e71561132057d"><div class="ttname"><a href="classfw_1_1_firewall.html#a2c7c043d66b645ecc15e71561132057d">fw::Firewall::~Firewall</a></div><div class="ttdeci">~Firewall()</div><div class="ttdoc">Destroy the Firewall object.</div><div class="ttdef"><b>Definition:</b> Firewall.cpp:15</div></div>
|
||||||
|
<div class="ttc" id="aclassfw_1_1_firewall_html_a2cc2717bd5999bc9a2f24ae33e4abd42"><div class="ttname"><a href="classfw_1_1_firewall.html#a2cc2717bd5999bc9a2f24ae33e4abd42">fw::Firewall::Firewall</a></div><div class="ttdeci">Firewall()</div><div class="ttdoc">Construct a new Firewall object, retrieve current amount of firewall rules and restore them from Stor...</div><div class="ttdef"><b>Definition:</b> Firewall.cpp:5</div></div>
|
||||||
|
<div class="ttc" id="aclassfw_1_1_firewall_html_a6815085477349f902e77cc5564b1b5ba"><div class="ttname"><a href="classfw_1_1_firewall.html#a6815085477349f902e77cc5564b1b5ba">fw::Firewall::get_packet_information</a></div><div class="ttdeci">my_packet_t * get_packet_information(struct pbuf *pbuf)</div><div class="ttdoc">prepares the necessary information to check packet</div><div class="ttdef"><b>Definition:</b> Firewall.cpp:128</div></div>
|
||||||
|
<div class="ttc" id="aclassfw_1_1_firewall_html_a7aa017cfb1ae6d6748d3f8c48e18dcf2"><div class="ttname"><a href="classfw_1_1_firewall.html#a7aa017cfb1ae6d6748d3f8c48e18dcf2">fw::Firewall::get_rule_from_firewall</a></div><div class="ttdeci">firewall_rule_t * get_rule_from_firewall(const uint8_t key)</div><div class="ttdoc">retrieve rule from the firewall linked list</div><div class="ttdef"><b>Definition:</b> Firewall.cpp:73</div></div>
|
||||||
|
<div class="ttc" id="aclassfw_1_1_firewall_html_a81eca0d34c28e5c4244b557a1f8e047d"><div class="ttname"><a href="classfw_1_1_firewall.html#a81eca0d34c28e5c4244b557a1f8e047d">fw::Firewall::is_packet_allowed</a></div><div class="ttdeci">bool is_packet_allowed(struct pbuf *pbuf)</div><div class="ttdoc">checks if network packet is allowed to pass firewall</div><div class="ttdef"><b>Definition:</b> Firewall.cpp:166</div></div>
|
||||||
|
<div class="ttc" id="aclassfw_1_1_firewall_html_a86f7d6ef56888f673fa46c4bc9ad3009"><div class="ttname"><a href="classfw_1_1_firewall.html#a86f7d6ef56888f673fa46c4bc9ad3009">fw::Firewall::get_rule_head</a></div><div class="ttdeci">firewall_rule_t * get_rule_head()</div><div class="ttdoc">Get the current rule head, it indicates the first rule position of the linked list.</div><div class="ttdef"><b>Definition:</b> Firewall.cpp:19</div></div>
|
||||||
|
<div class="ttc" id="aclassfw_1_1_firewall_html_a987ec9a98b7d6ef56cf569e0290b3594"><div class="ttname"><a href="classfw_1_1_firewall.html#a987ec9a98b7d6ef56cf569e0290b3594">fw::Firewall::update_rule_of_firewall</a></div><div class="ttdeci">firewall_rule_t * update_rule_of_firewall(String *args, const uint8_t key)</div><div class="ttdoc">update rule of firewall, store it in Storage</div><div class="ttdef"><b>Definition:</b> Firewall.cpp:58</div></div>
|
||||||
|
<div class="ttc" id="aclassfw_1_1_firewall_html_aae2a4a36257033c91f8f183b11de82c5"><div class="ttname"><a href="classfw_1_1_firewall.html#aae2a4a36257033c91f8f183b11de82c5">fw::Firewall::add_rule_to_firewall</a></div><div class="ttdeci">void add_rule_to_firewall(firewall_rule_t *rule_ptr, const bool save_in_eeprom=true)</div><div class="ttdoc">add a new rule to the linked list, update amount of rules, store it in Storage if save_in_eeprom is t...</div><div class="ttdef"><b>Definition:</b> Firewall.cpp:24</div></div>
|
||||||
|
<div class="ttc" id="aclassfw_1_1_storage_html"><div class="ttname"><a href="classfw_1_1_storage.html">fw::Storage</a></div><div class="ttdoc">The Storage will handle Firewall rules in EEPROM.</div><div class="ttdef"><b>Definition:</b> Storage.hpp:18</div></div>
|
||||||
|
<div class="ttc" id="astructfirewall__rule__t_html"><div class="ttname"><a href="structfirewall__rule__t.html">firewall_rule_t</a></div><div class="ttdef"><b>Definition:</b> Utils.hpp:51</div></div>
|
||||||
|
<div class="ttc" id="astructmy__packet__t_html"><div class="ttname"><a href="structmy__packet__t.html">my_packet_t</a></div><div class="ttdef"><b>Definition:</b> Utils.hpp:64</div></div>
|
||||||
|
</div><!-- fragment --></div><!-- contents -->
|
||||||
|
</div><!-- doc-content -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||||
|
<ul>
|
||||||
|
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><b>Firewall.hpp</b></li>
|
||||||
|
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4 </li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
196
doxygen/html/_storage_8cpp_source.html
Normal file
|
@ -0,0 +1,196 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.9.4"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||||
|
<title>ESP32/ESP8266 Firewall: src/Storage.cpp Source File</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||||
|
<script type="text/javascript" src="search/search.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr id="projectrow">
|
||||||
|
<td id="projectalign">
|
||||||
|
<div id="projectname">ESP32/ESP8266 Firewall<span id="projectnumber"> 1.0.0</span>
|
||||||
|
</div>
|
||||||
|
<div id="projectbrief">a software firewall for ESP23 or ESP8266</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.9.4 -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="menudata.js"></script>
|
||||||
|
<script type="text/javascript" src="menu.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
$(function() {
|
||||||
|
initMenu('',true,false,'search.php','Search');
|
||||||
|
$(document).ready(function() { init_search(); });
|
||||||
|
});
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<div id="main-nav"></div>
|
||||||
|
<!-- window showing the filter options -->
|
||||||
|
<div id="MSearchSelectWindow"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- iframe showing the search results (closed by default) -->
|
||||||
|
<div id="MSearchResultsWindow">
|
||||||
|
<iframe src="javascript:void(0)" frameborder="0"
|
||||||
|
name="MSearchResults" id="MSearchResults">
|
||||||
|
</iframe>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="nav-path" class="navpath">
|
||||||
|
<ul>
|
||||||
|
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li> </ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="header">
|
||||||
|
<div class="headertitle"><div class="title">Storage.cpp</div></div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#include "Storage.hpp"</span></div>
|
||||||
|
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span> </div>
|
||||||
|
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="keyword">namespace </span>fw</div>
|
||||||
|
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span>{</div>
|
||||||
|
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span> Storage::Storage()</div>
|
||||||
|
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span> {</div>
|
||||||
|
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="preprocessor">#ifdef ESP8266</span></div>
|
||||||
|
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span> this->max_rules = 15;</div>
|
||||||
|
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span> this->eeprom_amount_of_rules = 0;</div>
|
||||||
|
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span> this->eeprom_rules_head = 1;</div>
|
||||||
|
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span> this->eeprom_size = this->max_rules * <span class="keyword">sizeof</span>(firewall_rule_t) + eeprom_rules_head;</div>
|
||||||
|
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span> EEPROM.begin(this->eeprom_size);</div>
|
||||||
|
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#endif</span></div>
|
||||||
|
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> }</div>
|
||||||
|
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> </div>
|
||||||
|
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> Storage::~Storage()</div>
|
||||||
|
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> {</div>
|
||||||
|
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> }</div>
|
||||||
|
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> </div>
|
||||||
|
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="preprocessor">#ifdef ESP8266</span></div>
|
||||||
|
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> uint16_t Storage::eeprom_rule_position(uint8_t key)</div>
|
||||||
|
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> {</div>
|
||||||
|
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> <span class="keywordflow">return</span> eeprom_rules_head + (key - 1) * <span class="keyword">sizeof</span>(firewall_rule_t);</div>
|
||||||
|
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> }</div>
|
||||||
|
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="preprocessor">#endif</span></div>
|
||||||
|
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> </div>
|
||||||
|
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> uint8_t Storage::retrieve_amount_of_rules()</div>
|
||||||
|
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> {</div>
|
||||||
|
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span><span class="preprocessor">#ifdef ESP8266</span></div>
|
||||||
|
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> uint8_t amount_of_rules = EEPROM.read(this->eeprom_amount_of_rules);</div>
|
||||||
|
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> </div>
|
||||||
|
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> <span class="keywordflow">if</span> (amount_of_rules > this->max_rules)</div>
|
||||||
|
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> <span class="keywordflow">return</span> 0;</div>
|
||||||
|
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span><span class="preprocessor">#else</span></div>
|
||||||
|
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> this->memory.begin(<span class="stringliteral">"settings"</span>, <span class="keyword">true</span>);</div>
|
||||||
|
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> <span class="keyword">const</span> uint8_t amount_of_rules = memory.getUChar(<span class="stringliteral">"amount_of_rules"</span>, 0);</div>
|
||||||
|
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> this->memory.end();</div>
|
||||||
|
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span><span class="preprocessor">#endif</span></div>
|
||||||
|
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> <span class="keywordflow">return</span> amount_of_rules;</div>
|
||||||
|
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> }</div>
|
||||||
|
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> </div>
|
||||||
|
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> <span class="keywordtype">void</span> Storage::store_amount_of_rules(<span class="keyword">const</span> uint8_t new_amount)</div>
|
||||||
|
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> {</div>
|
||||||
|
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span><span class="preprocessor">#ifdef ESP8266</span></div>
|
||||||
|
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> EEPROM.put(this->eeprom_amount_of_rules, new_amount);</div>
|
||||||
|
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> EEPROM.commit();</div>
|
||||||
|
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span><span class="preprocessor">#else</span></div>
|
||||||
|
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> this->memory.begin(<span class="stringliteral">"settings"</span>, <span class="keyword">false</span>);</div>
|
||||||
|
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> this->memory.putUChar(<span class="stringliteral">"amount_of_rules"</span>, new_amount);</div>
|
||||||
|
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> this->memory.end();</div>
|
||||||
|
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span><span class="preprocessor">#endif</span></div>
|
||||||
|
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> }</div>
|
||||||
|
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> </div>
|
||||||
|
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> firewall_rule_t *Storage::retrieve_firewall_rule(<span class="keyword">const</span> uint8_t key)</div>
|
||||||
|
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> {</div>
|
||||||
|
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> firewall_rule_t *rule_ptr = (firewall_rule_t *)malloc(<span class="keyword">sizeof</span>(firewall_rule_t));</div>
|
||||||
|
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> rule_ptr->key = key;</div>
|
||||||
|
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span><span class="preprocessor">#ifdef ESP8266</span></div>
|
||||||
|
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> uint16_t eeprom_position = eeprom_rule_position(key);</div>
|
||||||
|
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> </div>
|
||||||
|
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> EEPROM.get(eeprom_position, rule_ptr->ip);</div>
|
||||||
|
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> EEPROM.get(eeprom_position += <span class="keyword">sizeof</span>(rule_ptr->ip), rule_ptr->port_from);</div>
|
||||||
|
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> EEPROM.get(eeprom_position += <span class="keyword">sizeof</span>(rule_ptr->port_from), rule_ptr->port_to);</div>
|
||||||
|
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> EEPROM.get(eeprom_position += <span class="keyword">sizeof</span>(rule_ptr->port_to), rule_ptr->protocol);</div>
|
||||||
|
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> EEPROM.get(eeprom_position += <span class="keyword">sizeof</span>(rule_ptr->protocol), rule_ptr->target);</div>
|
||||||
|
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span><span class="preprocessor">#else</span></div>
|
||||||
|
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> <span class="keywordtype">char</span> rulename[10]; <span class="comment">// fwRule99\n</span></div>
|
||||||
|
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> sprintf(rulename, <span class="stringliteral">"fwRule%i"</span>, key);</div>
|
||||||
|
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> </div>
|
||||||
|
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> this->memory.begin(rulename, <span class="keyword">true</span>);</div>
|
||||||
|
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> strncpy(rule_ptr->ip, this->memory.getString(firewall_fields[IP], <span class="stringliteral">"0.0.0.0"</span>).c_str(), <span class="keyword">sizeof</span>(rule_ptr->ip));</div>
|
||||||
|
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> rule_ptr->port_from = this->memory.getUShort(firewall_fields[PORT_FROM], 0);</div>
|
||||||
|
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> rule_ptr->port_to = this->memory.getUShort(firewall_fields[PORT_TO], 0);</div>
|
||||||
|
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> rule_ptr->protocol = <span class="keyword">static_cast<</span>firewall_protocol_t<span class="keyword">></span>(this->memory.getUChar(firewall_fields[PROTOCOL], PROTOCOL_ALL));</div>
|
||||||
|
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> rule_ptr->target = <span class="keyword">static_cast<</span>firewall_target_t<span class="keyword">></span>(this->memory.getUChar(firewall_fields[TARGET], TARGET_ACCEPT));</div>
|
||||||
|
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> this->memory.end();</div>
|
||||||
|
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span><span class="preprocessor">#endif</span></div>
|
||||||
|
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> <span class="keywordflow">return</span> rule_ptr;</div>
|
||||||
|
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> }</div>
|
||||||
|
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> </div>
|
||||||
|
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> <span class="keywordtype">void</span> Storage::store_all_firewall_rules(firewall_rule_t *rule_head)</div>
|
||||||
|
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> {</div>
|
||||||
|
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> firewall_rule_t *temp = rule_head;</div>
|
||||||
|
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> <span class="keywordflow">while</span> (temp != NULL)</div>
|
||||||
|
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> {</div>
|
||||||
|
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> store_firewall_rule(temp);</div>
|
||||||
|
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> temp = temp->next;</div>
|
||||||
|
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> }</div>
|
||||||
|
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> }</div>
|
||||||
|
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> </div>
|
||||||
|
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> <span class="keywordtype">void</span> Storage::store_firewall_rule(firewall_rule_t *rule_ptr)</div>
|
||||||
|
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> {</div>
|
||||||
|
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span><span class="preprocessor">#ifdef ESP8266</span></div>
|
||||||
|
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> uint16_t eeprom_position = eeprom_rule_position(rule_ptr->key);</div>
|
||||||
|
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> </div>
|
||||||
|
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> EEPROM.put(eeprom_position, rule_ptr->ip);</div>
|
||||||
|
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> EEPROM.put(eeprom_position += <span class="keyword">sizeof</span>(rule_ptr->ip), rule_ptr->port_from);</div>
|
||||||
|
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> EEPROM.put(eeprom_position += <span class="keyword">sizeof</span>(rule_ptr->port_from), rule_ptr->port_to);</div>
|
||||||
|
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> EEPROM.put(eeprom_position += <span class="keyword">sizeof</span>(rule_ptr->port_to), rule_ptr->protocol);</div>
|
||||||
|
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> EEPROM.put(eeprom_position += <span class="keyword">sizeof</span>(rule_ptr->protocol), rule_ptr->target);</div>
|
||||||
|
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> </div>
|
||||||
|
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> EEPROM.commit();</div>
|
||||||
|
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span><span class="preprocessor">#else</span></div>
|
||||||
|
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> <span class="keywordtype">char</span> rulename[10]; <span class="comment">// fwRule99\n</span></div>
|
||||||
|
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> sprintf(rulename, <span class="stringliteral">"fwRule%i"</span>, rule_ptr->key);</div>
|
||||||
|
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> </div>
|
||||||
|
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> this->memory.begin(rulename, <span class="keyword">false</span>);</div>
|
||||||
|
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> this->memory.putString(firewall_fields[IP], rule_ptr->ip);</div>
|
||||||
|
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> this->memory.putUShort(firewall_fields[PORT_FROM], rule_ptr->port_from);</div>
|
||||||
|
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> this->memory.putUShort(firewall_fields[PORT_TO], rule_ptr->port_to);</div>
|
||||||
|
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> this->memory.putUChar(firewall_fields[PROTOCOL], rule_ptr->protocol);</div>
|
||||||
|
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> this->memory.putUChar(firewall_fields[TARGET], rule_ptr->target);</div>
|
||||||
|
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> </div>
|
||||||
|
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> this->memory.end();</div>
|
||||||
|
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span><span class="preprocessor">#endif</span></div>
|
||||||
|
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> }</div>
|
||||||
|
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span>}</div>
|
||||||
|
</div><!-- fragment --></div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
153
doxygen/html/_storage_8hpp_source.html
Normal file
|
@ -0,0 +1,153 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.9.4"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||||
|
<title>ESP32/ESP8266 Firewall: src/Storage.hpp Source File</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="resize.js"></script>
|
||||||
|
<script type="text/javascript" src="navtreedata.js"></script>
|
||||||
|
<script type="text/javascript" src="navtree.js"></script>
|
||||||
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||||
|
<script type="text/javascript" src="search/search.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr id="projectrow">
|
||||||
|
<td id="projectalign">
|
||||||
|
<div id="projectname">ESP32/ESP8266 Firewall<span id="projectnumber"> 1.0.0</span>
|
||||||
|
</div>
|
||||||
|
<div id="projectbrief">a software firewall for ESP23 or ESP8266</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.9.4 -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="menudata.js"></script>
|
||||||
|
<script type="text/javascript" src="menu.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
$(function() {
|
||||||
|
initMenu('',true,false,'search.php','Search');
|
||||||
|
$(document).ready(function() { init_search(); });
|
||||||
|
});
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<div id="main-nav"></div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||||
|
<div id="nav-tree">
|
||||||
|
<div id="nav-tree-contents">
|
||||||
|
<div id="nav-sync" class="sync"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="splitbar" style="-moz-user-select:none;"
|
||||||
|
class="ui-resizable-handle">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
$(document).ready(function(){initNavTree('_storage_8hpp_source.html',''); initResizable(); });
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<div id="doc-content">
|
||||||
|
<!-- window showing the filter options -->
|
||||||
|
<div id="MSearchSelectWindow"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- iframe showing the search results (closed by default) -->
|
||||||
|
<div id="MSearchResultsWindow">
|
||||||
|
<iframe src="javascript:void(0)" frameborder="0"
|
||||||
|
name="MSearchResults" id="MSearchResults">
|
||||||
|
</iframe>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="header">
|
||||||
|
<div class="headertitle"><div class="title">Storage.hpp</div></div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#ifndef STORAGE_HPP</span></div>
|
||||||
|
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#define STORAGE_HPP</span></div>
|
||||||
|
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span> </div>
|
||||||
|
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="preprocessor">#ifdef ESP8266</span></div>
|
||||||
|
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="preprocessor">#include "EEPROM.h"</span></div>
|
||||||
|
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="preprocessor">#else</span></div>
|
||||||
|
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="preprocessor">#include "Preferences.h"</span></div>
|
||||||
|
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="preprocessor">#endif</span></div>
|
||||||
|
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#include "Utils.hpp"</span></div>
|
||||||
|
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span> </div>
|
||||||
|
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="keyword">namespace </span>fw</div>
|
||||||
|
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span>{</div>
|
||||||
|
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"><a class="line" href="classfw_1_1_storage.html"> 17</a></span> <span class="keyword">class </span><a class="code hl_class" href="classfw_1_1_storage.html">Storage</a></div>
|
||||||
|
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> {</div>
|
||||||
|
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> <span class="keyword">public</span>:</div>
|
||||||
|
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> <a class="code hl_function" href="classfw_1_1_storage.html#a9b9fcc0e523d4b14a77e33a5806a348e">Storage</a>();</div>
|
||||||
|
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> </div>
|
||||||
|
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> <a class="code hl_function" href="classfw_1_1_storage.html#a11b6f2d893abc79879418853d4f840e1">~Storage</a>();</div>
|
||||||
|
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> </div>
|
||||||
|
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> <span class="keyword">private</span>:</div>
|
||||||
|
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span><span class="preprocessor">#ifdef ESP8266</span></div>
|
||||||
|
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> uint8_t max_rules;</div>
|
||||||
|
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> uint16_t eeprom_size;</div>
|
||||||
|
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> uint16_t eeprom_amount_of_rules;</div>
|
||||||
|
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> uint16_t eeprom_rules_head;</div>
|
||||||
|
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> </div>
|
||||||
|
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> uint16_t eeprom_rule_position(uint8_t key);</div>
|
||||||
|
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span><span class="preprocessor">#else</span></div>
|
||||||
|
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> Preferences memory;</div>
|
||||||
|
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span><span class="preprocessor">#endif</span></div>
|
||||||
|
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> </div>
|
||||||
|
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">protected</span>:</div>
|
||||||
|
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> uint8_t <a class="code hl_function" href="classfw_1_1_storage.html#aba4b010a57e6f5f5255b41d832891394">retrieve_amount_of_rules</a>();</div>
|
||||||
|
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> </div>
|
||||||
|
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classfw_1_1_storage.html#a79d1951d339a19edab7fd22aaa68cc96">store_amount_of_rules</a>(<span class="keyword">const</span> uint8_t new_amount);</div>
|
||||||
|
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> </div>
|
||||||
|
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> <a class="code hl_struct" href="structfirewall__rule__t.html">firewall_rule_t</a> *<a class="code hl_function" href="classfw_1_1_storage.html#a20d0089533fea31893b323f7fde8535c">retrieve_firewall_rule</a>(<span class="keyword">const</span> uint8_t key);</div>
|
||||||
|
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> </div>
|
||||||
|
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classfw_1_1_storage.html#a7747d174b1b3dd6bb417c1c5a8ac259c">store_all_firewall_rules</a>(<a class="code hl_struct" href="structfirewall__rule__t.html">firewall_rule_t</a> *rule_head);</div>
|
||||||
|
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> </div>
|
||||||
|
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classfw_1_1_storage.html#a9c1d226dbad072a6d0bf7e3507b7863b">store_firewall_rule</a>(<a class="code hl_struct" href="structfirewall__rule__t.html">firewall_rule_t</a> *rule_ptr);</div>
|
||||||
|
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> };</div>
|
||||||
|
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span>}</div>
|
||||||
|
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> </div>
|
||||||
|
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span><span class="preprocessor">#endif</span></div>
|
||||||
|
<div class="ttc" id="aclassfw_1_1_storage_html"><div class="ttname"><a href="classfw_1_1_storage.html">fw::Storage</a></div><div class="ttdoc">The Storage will handle Firewall rules in EEPROM.</div><div class="ttdef"><b>Definition:</b> Storage.hpp:18</div></div>
|
||||||
|
<div class="ttc" id="aclassfw_1_1_storage_html_a11b6f2d893abc79879418853d4f840e1"><div class="ttname"><a href="classfw_1_1_storage.html#a11b6f2d893abc79879418853d4f840e1">fw::Storage::~Storage</a></div><div class="ttdeci">~Storage()</div><div class="ttdoc">Destroy the Storage object.</div><div class="ttdef"><b>Definition:</b> Storage.cpp:16</div></div>
|
||||||
|
<div class="ttc" id="aclassfw_1_1_storage_html_a20d0089533fea31893b323f7fde8535c"><div class="ttname"><a href="classfw_1_1_storage.html#a20d0089533fea31893b323f7fde8535c">fw::Storage::retrieve_firewall_rule</a></div><div class="ttdeci">firewall_rule_t * retrieve_firewall_rule(const uint8_t key)</div><div class="ttdoc">retrieve a Firewall rule from Storage</div><div class="ttdef"><b>Definition:</b> Storage.cpp:54</div></div>
|
||||||
|
<div class="ttc" id="aclassfw_1_1_storage_html_a7747d174b1b3dd6bb417c1c5a8ac259c"><div class="ttname"><a href="classfw_1_1_storage.html#a7747d174b1b3dd6bb417c1c5a8ac259c">fw::Storage::store_all_firewall_rules</a></div><div class="ttdeci">void store_all_firewall_rules(firewall_rule_t *rule_head)</div><div class="ttdoc">store all Firewall rules in Storage</div><div class="ttdef"><b>Definition:</b> Storage.cpp:81</div></div>
|
||||||
|
<div class="ttc" id="aclassfw_1_1_storage_html_a79d1951d339a19edab7fd22aaa68cc96"><div class="ttname"><a href="classfw_1_1_storage.html#a79d1951d339a19edab7fd22aaa68cc96">fw::Storage::store_amount_of_rules</a></div><div class="ttdeci">void store_amount_of_rules(const uint8_t new_amount)</div><div class="ttdoc">store a new amount of Firewall rules in the Storage</div><div class="ttdef"><b>Definition:</b> Storage.cpp:42</div></div>
|
||||||
|
<div class="ttc" id="aclassfw_1_1_storage_html_a9b9fcc0e523d4b14a77e33a5806a348e"><div class="ttname"><a href="classfw_1_1_storage.html#a9b9fcc0e523d4b14a77e33a5806a348e">fw::Storage::Storage</a></div><div class="ttdeci">Storage()</div><div class="ttdoc">Construct a new Storage object.</div><div class="ttdef"><b>Definition:</b> Storage.cpp:5</div></div>
|
||||||
|
<div class="ttc" id="aclassfw_1_1_storage_html_a9c1d226dbad072a6d0bf7e3507b7863b"><div class="ttname"><a href="classfw_1_1_storage.html#a9c1d226dbad072a6d0bf7e3507b7863b">fw::Storage::store_firewall_rule</a></div><div class="ttdeci">void store_firewall_rule(firewall_rule_t *rule_ptr)</div><div class="ttdoc">store Firewall rule in Storage</div><div class="ttdef"><b>Definition:</b> Storage.cpp:91</div></div>
|
||||||
|
<div class="ttc" id="aclassfw_1_1_storage_html_aba4b010a57e6f5f5255b41d832891394"><div class="ttname"><a href="classfw_1_1_storage.html#aba4b010a57e6f5f5255b41d832891394">fw::Storage::retrieve_amount_of_rules</a></div><div class="ttdeci">uint8_t retrieve_amount_of_rules()</div><div class="ttdoc">retrieve the current amount of Firewall rules in the Storage</div><div class="ttdef"><b>Definition:</b> Storage.cpp:27</div></div>
|
||||||
|
<div class="ttc" id="astructfirewall__rule__t_html"><div class="ttname"><a href="structfirewall__rule__t.html">firewall_rule_t</a></div><div class="ttdef"><b>Definition:</b> Utils.hpp:51</div></div>
|
||||||
|
</div><!-- fragment --></div><!-- contents -->
|
||||||
|
</div><!-- doc-content -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||||
|
<ul>
|
||||||
|
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><b>Storage.hpp</b></li>
|
||||||
|
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4 </li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
137
doxygen/html/_utils_8cpp_source.html
Normal file
|
@ -0,0 +1,137 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.9.4"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||||
|
<title>ESP32/ESP8266 Firewall: src/Utils.cpp Source File</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||||
|
<script type="text/javascript" src="search/search.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr id="projectrow">
|
||||||
|
<td id="projectalign">
|
||||||
|
<div id="projectname">ESP32/ESP8266 Firewall<span id="projectnumber"> 1.0.0</span>
|
||||||
|
</div>
|
||||||
|
<div id="projectbrief">a software firewall for ESP23 or ESP8266</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.9.4 -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="menudata.js"></script>
|
||||||
|
<script type="text/javascript" src="menu.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
$(function() {
|
||||||
|
initMenu('',true,false,'search.php','Search');
|
||||||
|
$(document).ready(function() { init_search(); });
|
||||||
|
});
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<div id="main-nav"></div>
|
||||||
|
<!-- window showing the filter options -->
|
||||||
|
<div id="MSearchSelectWindow"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- iframe showing the search results (closed by default) -->
|
||||||
|
<div id="MSearchResultsWindow">
|
||||||
|
<iframe src="javascript:void(0)" frameborder="0"
|
||||||
|
name="MSearchResults" id="MSearchResults">
|
||||||
|
</iframe>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="nav-path" class="navpath">
|
||||||
|
<ul>
|
||||||
|
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li> </ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="header">
|
||||||
|
<div class="headertitle"><div class="title">Utils.cpp</div></div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#include "Utils.hpp"</span></div>
|
||||||
|
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span> </div>
|
||||||
|
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="keyword">namespace </span>fw</div>
|
||||||
|
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span>{</div>
|
||||||
|
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span> String protocol_to_string(firewall_protocol_t &protocol)</div>
|
||||||
|
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span> {</div>
|
||||||
|
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span> <span class="keywordflow">switch</span> (protocol)</div>
|
||||||
|
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span> {</div>
|
||||||
|
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span> <span class="keywordflow">case</span> PROTOCOL_TCP:</div>
|
||||||
|
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span> <span class="keywordflow">return</span> <span class="stringliteral">"TCP"</span>;</div>
|
||||||
|
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span> <span class="keywordflow">case</span> PROTOCOL_UDP:</div>
|
||||||
|
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span> <span class="keywordflow">return</span> <span class="stringliteral">"UDP"</span>;</div>
|
||||||
|
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> <span class="keywordflow">default</span>:</div>
|
||||||
|
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> <span class="keywordflow">return</span> <span class="stringliteral">"ALL"</span>;</div>
|
||||||
|
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> }</div>
|
||||||
|
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> }</div>
|
||||||
|
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> </div>
|
||||||
|
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> firewall_protocol_t string_to_protocol(String &protocol)</div>
|
||||||
|
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> {</div>
|
||||||
|
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> <span class="keywordflow">if</span> (protocol.equals(<span class="stringliteral">"TCP"</span>))</div>
|
||||||
|
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> <span class="keywordflow">return</span> PROTOCOL_TCP;</div>
|
||||||
|
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (protocol.equals(<span class="stringliteral">"UDP"</span>))</div>
|
||||||
|
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> <span class="keywordflow">return</span> PROTOCOL_UDP;</div>
|
||||||
|
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> <span class="keywordflow">else</span></div>
|
||||||
|
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> <span class="keywordflow">return</span> PROTOCOL_ALL;</div>
|
||||||
|
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> }</div>
|
||||||
|
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> </div>
|
||||||
|
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> String target_to_string(firewall_target_t &target)</div>
|
||||||
|
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> {</div>
|
||||||
|
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> <span class="keywordflow">switch</span> (target)</div>
|
||||||
|
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> {</div>
|
||||||
|
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> <span class="keywordflow">case</span> TARGET_DROP:</div>
|
||||||
|
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> <span class="keywordflow">return</span> <span class="stringliteral">"DROP"</span>;</div>
|
||||||
|
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> <span class="keywordflow">default</span>:</div>
|
||||||
|
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> <span class="keywordflow">return</span> <span class="stringliteral">"ACCEPT"</span>;</div>
|
||||||
|
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> }</div>
|
||||||
|
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> }</div>
|
||||||
|
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> </div>
|
||||||
|
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> firewall_target_t string_to_target(String &target)</div>
|
||||||
|
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> {</div>
|
||||||
|
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> <span class="keywordflow">if</span> (target.equals(<span class="stringliteral">"DROP"</span>))</div>
|
||||||
|
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> <span class="keywordflow">return</span> TARGET_DROP;</div>
|
||||||
|
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> <span class="keywordflow">else</span></div>
|
||||||
|
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> <span class="keywordflow">return</span> TARGET_ACCEPT;</div>
|
||||||
|
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> }</div>
|
||||||
|
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> </div>
|
||||||
|
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> <span class="keywordtype">void</span> endless_loop()</div>
|
||||||
|
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> {</div>
|
||||||
|
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> Serial.printf(<span class="stringliteral">"Something went wrong. Running endless loop until fixed..."</span>);</div>
|
||||||
|
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> <span class="keywordflow">while</span> (<span class="keyword">true</span>)</div>
|
||||||
|
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> delay(500);</div>
|
||||||
|
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> }</div>
|
||||||
|
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> </div>
|
||||||
|
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> <span class="keywordtype">bool</span> is_in_range(<span class="keyword">const</span> uint16_t number, <span class="keyword">const</span> uint16_t lower, <span class="keyword">const</span> uint16_t upper)</div>
|
||||||
|
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> {</div>
|
||||||
|
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> <span class="keywordflow">return</span> lower <= number && number <= upper;</div>
|
||||||
|
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> }</div>
|
||||||
|
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span>}</div>
|
||||||
|
</div><!-- fragment --></div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
198
doxygen/html/_utils_8hpp_source.html
Normal file
|
@ -0,0 +1,198 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.9.4"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||||
|
<title>ESP32/ESP8266 Firewall: src/Utils.hpp Source File</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="resize.js"></script>
|
||||||
|
<script type="text/javascript" src="navtreedata.js"></script>
|
||||||
|
<script type="text/javascript" src="navtree.js"></script>
|
||||||
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||||
|
<script type="text/javascript" src="search/search.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr id="projectrow">
|
||||||
|
<td id="projectalign">
|
||||||
|
<div id="projectname">ESP32/ESP8266 Firewall<span id="projectnumber"> 1.0.0</span>
|
||||||
|
</div>
|
||||||
|
<div id="projectbrief">a software firewall for ESP23 or ESP8266</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.9.4 -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="menudata.js"></script>
|
||||||
|
<script type="text/javascript" src="menu.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
$(function() {
|
||||||
|
initMenu('',true,false,'search.php','Search');
|
||||||
|
$(document).ready(function() { init_search(); });
|
||||||
|
});
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<div id="main-nav"></div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||||
|
<div id="nav-tree">
|
||||||
|
<div id="nav-tree-contents">
|
||||||
|
<div id="nav-sync" class="sync"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="splitbar" style="-moz-user-select:none;"
|
||||||
|
class="ui-resizable-handle">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
$(document).ready(function(){initNavTree('_utils_8hpp_source.html',''); initResizable(); });
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<div id="doc-content">
|
||||||
|
<!-- window showing the filter options -->
|
||||||
|
<div id="MSearchSelectWindow"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- iframe showing the search results (closed by default) -->
|
||||||
|
<div id="MSearchResultsWindow">
|
||||||
|
<iframe src="javascript:void(0)" frameborder="0"
|
||||||
|
name="MSearchResults" id="MSearchResults">
|
||||||
|
</iframe>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="header">
|
||||||
|
<div class="headertitle"><div class="title">Utils.hpp</div></div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#ifndef UTILS_HPP</span></div>
|
||||||
|
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#define UTILS_HPP</span></div>
|
||||||
|
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span> </div>
|
||||||
|
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="preprocessor">#include "Arduino.h"</span></div>
|
||||||
|
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="preprocessor">#include "WString.h"</span></div>
|
||||||
|
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span> </div>
|
||||||
|
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="keyword">namespace </span>fw</div>
|
||||||
|
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span>{</div>
|
||||||
|
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span> <span class="keyword">static</span> <span class="keyword">const</span> uint8_t IPV4ADDRESS_LENGTH = 16;</div>
|
||||||
|
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span> <span class="keyword">static</span> <span class="keyword">const</span> uint8_t CREDENTIALS_LENGTH = 32;</div>
|
||||||
|
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span> <span class="keyword">static</span> <span class="keyword">const</span> uint8_t firewall_fields_amount = 6;</div>
|
||||||
|
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span> <span class="keyword">const</span> <span class="keywordtype">char</span> firewall_fields[firewall_fields_amount][10] = {<span class="stringliteral">"key"</span>, <span class="stringliteral">"ip"</span>, <span class="stringliteral">"port_from"</span>, <span class="stringliteral">"port_to"</span>, <span class="stringliteral">"protocol"</span>, <span class="stringliteral">"target"</span>};</div>
|
||||||
|
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> </div>
|
||||||
|
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> <span class="keyword">typedef</span> <span class="keyword">enum</span> firewall_targets : uint8_t</div>
|
||||||
|
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> {</div>
|
||||||
|
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> TARGET_DROP = 1,</div>
|
||||||
|
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> TARGET_ACCEPT = 2,</div>
|
||||||
|
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> } firewall_target_t;</div>
|
||||||
|
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> </div>
|
||||||
|
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> <span class="keyword">typedef</span> <span class="keyword">enum</span> firewall_protocols : uint8_t</div>
|
||||||
|
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> {</div>
|
||||||
|
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> PROTOCOL_TCP = 6,</div>
|
||||||
|
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> PROTOCOL_UDP = 17,</div>
|
||||||
|
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> PROTOCOL_ALL = 255,</div>
|
||||||
|
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> } firewall_protocol_t;</div>
|
||||||
|
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> </div>
|
||||||
|
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> <span class="keyword">typedef</span> <span class="keyword">enum</span> ok : uint8_t</div>
|
||||||
|
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> {</div>
|
||||||
|
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> SUCCESS = 0,</div>
|
||||||
|
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> ERROR = 1,</div>
|
||||||
|
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> NO_ACTION = 2,</div>
|
||||||
|
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> } ok_t;</div>
|
||||||
|
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> </div>
|
||||||
|
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">typedef</span> <span class="keyword">enum</span> auth : uint8_t</div>
|
||||||
|
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> {</div>
|
||||||
|
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> AUTHENTICATED = 0,</div>
|
||||||
|
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> DENIED = 1,</div>
|
||||||
|
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> } auth_t;</div>
|
||||||
|
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> </div>
|
||||||
|
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"><a class="line" href="structfirewall__rule__t.html"> 50</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span>firewall_rules</div>
|
||||||
|
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> {</div>
|
||||||
|
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> uint8_t key;</div>
|
||||||
|
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> <span class="keywordtype">char</span> ip[IPV4ADDRESS_LENGTH];</div>
|
||||||
|
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> uint16_t port_from;</div>
|
||||||
|
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> uint16_t port_to;</div>
|
||||||
|
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> firewall_protocol_t protocol;</div>
|
||||||
|
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> firewall_target_t target;</div>
|
||||||
|
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">struct </span>firewall_rules *next;</div>
|
||||||
|
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> } <a class="code hl_struct" href="structfirewall__rule__t.html">firewall_rule_t</a>;</div>
|
||||||
|
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> </div>
|
||||||
|
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"><a class="line" href="structmy__packet__t.html"> 63</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span>my_packet</div>
|
||||||
|
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> {</div>
|
||||||
|
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> <span class="keywordtype">char</span> ip[IPV4ADDRESS_LENGTH];</div>
|
||||||
|
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> firewall_protocol_t protocol;</div>
|
||||||
|
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> uint16_t port;</div>
|
||||||
|
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> } <a class="code hl_struct" href="structmy__packet__t.html">my_packet_t</a>;</div>
|
||||||
|
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> </div>
|
||||||
|
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> <span class="keyword">typedef</span> <span class="keyword">enum</span> firewall_fields : uint8_t</div>
|
||||||
|
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> {</div>
|
||||||
|
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> KEY,</div>
|
||||||
|
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> IP,</div>
|
||||||
|
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> PORT_FROM,</div>
|
||||||
|
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> PORT_TO,</div>
|
||||||
|
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> PROTOCOL,</div>
|
||||||
|
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> TARGET,</div>
|
||||||
|
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> } firewall_fields_t;</div>
|
||||||
|
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> </div>
|
||||||
|
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"><a class="line" href="structcredential__t.html"> 84</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span>credentials</div>
|
||||||
|
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> {</div>
|
||||||
|
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> <span class="keywordtype">char</span> password[CREDENTIALS_LENGTH];</div>
|
||||||
|
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> <span class="keywordtype">char</span> username[CREDENTIALS_LENGTH];</div>
|
||||||
|
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> } <a class="code hl_struct" href="structcredential__t.html">credential_t</a>;</div>
|
||||||
|
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> </div>
|
||||||
|
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"><a class="line" href="structapi__endpoint__t.html"> 92</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span>api_endpoints</div>
|
||||||
|
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> {</div>
|
||||||
|
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> <span class="keywordtype">char</span> uri[60];</div>
|
||||||
|
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> <span class="keywordtype">char</span> method[7];</div>
|
||||||
|
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> <span class="keywordtype">char</span> description[30];</div>
|
||||||
|
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> <span class="keyword">struct </span>api_endpoints *next;</div>
|
||||||
|
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> } <a class="code hl_struct" href="structapi__endpoint__t.html">api_endpoint_t</a>;</div>
|
||||||
|
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> </div>
|
||||||
|
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> String protocol_to_string(firewall_protocol_t &protocol);</div>
|
||||||
|
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> </div>
|
||||||
|
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> firewall_protocol_t string_to_protocol(String &protocol);</div>
|
||||||
|
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> </div>
|
||||||
|
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> String target_to_string(firewall_target_t &target);</div>
|
||||||
|
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> </div>
|
||||||
|
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> firewall_target_t string_to_target(String &target);</div>
|
||||||
|
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> </div>
|
||||||
|
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> <span class="keywordtype">void</span> endless_loop();</div>
|
||||||
|
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> </div>
|
||||||
|
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> <span class="keywordtype">bool</span> is_in_range(<span class="keyword">const</span> uint16_t number, <span class="keyword">const</span> uint16_t lower, <span class="keyword">const</span> uint16_t upper);</div>
|
||||||
|
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span>}</div>
|
||||||
|
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> </div>
|
||||||
|
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span><span class="preprocessor">#endif</span></div>
|
||||||
|
<div class="ttc" id="astructapi__endpoint__t_html"><div class="ttname"><a href="structapi__endpoint__t.html">api_endpoint_t</a></div><div class="ttdef"><b>Definition:</b> Utils.hpp:93</div></div>
|
||||||
|
<div class="ttc" id="astructcredential__t_html"><div class="ttname"><a href="structcredential__t.html">credential_t</a></div><div class="ttdef"><b>Definition:</b> Utils.hpp:85</div></div>
|
||||||
|
<div class="ttc" id="astructfirewall__rule__t_html"><div class="ttname"><a href="structfirewall__rule__t.html">firewall_rule_t</a></div><div class="ttdef"><b>Definition:</b> Utils.hpp:51</div></div>
|
||||||
|
<div class="ttc" id="astructmy__packet__t_html"><div class="ttname"><a href="structmy__packet__t.html">my_packet_t</a></div><div class="ttdef"><b>Definition:</b> Utils.hpp:64</div></div>
|
||||||
|
</div><!-- fragment --></div><!-- contents -->
|
||||||
|
</div><!-- doc-content -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||||
|
<ul>
|
||||||
|
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><b>Utils.hpp</b></li>
|
||||||
|
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4 </li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
110
doxygen/html/annotated.html
Normal file
|
@ -0,0 +1,110 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.9.4"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||||
|
<title>ESP32/ESP8266 Firewall: Class List</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="resize.js"></script>
|
||||||
|
<script type="text/javascript" src="navtreedata.js"></script>
|
||||||
|
<script type="text/javascript" src="navtree.js"></script>
|
||||||
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||||
|
<script type="text/javascript" src="search/search.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr id="projectrow">
|
||||||
|
<td id="projectalign">
|
||||||
|
<div id="projectname">ESP32/ESP8266 Firewall<span id="projectnumber"> 1.0.0</span>
|
||||||
|
</div>
|
||||||
|
<div id="projectbrief">a software firewall for ESP23 or ESP8266</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.9.4 -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="menudata.js"></script>
|
||||||
|
<script type="text/javascript" src="menu.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
$(function() {
|
||||||
|
initMenu('',true,false,'search.php','Search');
|
||||||
|
$(document).ready(function() { init_search(); });
|
||||||
|
});
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<div id="main-nav"></div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||||
|
<div id="nav-tree">
|
||||||
|
<div id="nav-tree-contents">
|
||||||
|
<div id="nav-sync" class="sync"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="splitbar" style="-moz-user-select:none;"
|
||||||
|
class="ui-resizable-handle">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
$(document).ready(function(){initNavTree('annotated.html',''); initResizable(); });
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<div id="doc-content">
|
||||||
|
<!-- window showing the filter options -->
|
||||||
|
<div id="MSearchSelectWindow"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- iframe showing the search results (closed by default) -->
|
||||||
|
<div id="MSearchResultsWindow">
|
||||||
|
<iframe src="javascript:void(0)" frameborder="0"
|
||||||
|
name="MSearchResults" id="MSearchResults">
|
||||||
|
</iframe>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="header">
|
||||||
|
<div class="headertitle"><div class="title">Class List</div></div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
<div class="textblock">Here are the classes, structs, unions and interfaces with brief descriptions:</div><div class="directory">
|
||||||
|
<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span>]</div><table class="directory">
|
||||||
|
<tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;"> </span><span id="arr_0_" class="arrow" onclick="toggleFolder('0_')">▼</span><span class="icona"><span class="icon">N</span></span><b>fw</b></td><td class="desc"></td></tr>
|
||||||
|
<tr id="row_0_0_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classfw_1_1_a_p_i.html" target="_self">API</a></td><td class="desc">The <a class="el" href="classfw_1_1_a_p_i.html" title="The API to create, edit or remove Firewall rules.">API</a> to create, edit or remove <a class="el" href="classfw_1_1_firewall.html" title="The Firewall will handle Firewall rules as linked list.">Firewall</a> rules </td></tr>
|
||||||
|
<tr id="row_0_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classfw_1_1_firewall.html" target="_self">Firewall</a></td><td class="desc">The <a class="el" href="classfw_1_1_firewall.html" title="The Firewall will handle Firewall rules as linked list.">Firewall</a> will handle <a class="el" href="classfw_1_1_firewall.html" title="The Firewall will handle Firewall rules as linked list.">Firewall</a> rules as linked list </td></tr>
|
||||||
|
<tr id="row_0_2_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classfw_1_1_storage.html" target="_self">Storage</a></td><td class="desc">The <a class="el" href="classfw_1_1_storage.html" title="The Storage will handle Firewall rules in EEPROM.">Storage</a> will handle <a class="el" href="classfw_1_1_firewall.html" title="The Firewall will handle Firewall rules as linked list.">Firewall</a> rules in EEPROM </td></tr>
|
||||||
|
<tr id="row_1_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structapi__endpoint__t.html" target="_self">api_endpoint_t</a></td><td class="desc"></td></tr>
|
||||||
|
<tr id="row_2_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structcredential__t.html" target="_self">credential_t</a></td><td class="desc"></td></tr>
|
||||||
|
<tr id="row_3_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfirewall__rule__t.html" target="_self">firewall_rule_t</a></td><td class="desc"></td></tr>
|
||||||
|
<tr id="row_4_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmy__packet__t.html" target="_self">my_packet_t</a></td><td class="desc"></td></tr>
|
||||||
|
</table>
|
||||||
|
</div><!-- directory -->
|
||||||
|
</div><!-- contents -->
|
||||||
|
</div><!-- doc-content -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||||
|
<ul>
|
||||||
|
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4 </li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
12
doxygen/html/annotated_dup.js
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
var annotated_dup =
|
||||||
|
[
|
||||||
|
[ "fw", null, [
|
||||||
|
[ "API", "classfw_1_1_a_p_i.html", "classfw_1_1_a_p_i" ],
|
||||||
|
[ "Firewall", "classfw_1_1_firewall.html", "classfw_1_1_firewall" ],
|
||||||
|
[ "Storage", "classfw_1_1_storage.html", "classfw_1_1_storage" ]
|
||||||
|
] ],
|
||||||
|
[ "api_endpoint_t", "structapi__endpoint__t.html", null ],
|
||||||
|
[ "credential_t", "structcredential__t.html", null ],
|
||||||
|
[ "firewall_rule_t", "structfirewall__rule__t.html", null ],
|
||||||
|
[ "my_packet_t", "structmy__packet__t.html", null ]
|
||||||
|
];
|
BIN
doxygen/html/bc_s.png
Normal file
After Width: | Height: | Size: 676 B |
BIN
doxygen/html/bdwn.png
Normal file
After Width: | Height: | Size: 147 B |
116
doxygen/html/classes.html
Normal file
|
@ -0,0 +1,116 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.9.4"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||||
|
<title>ESP32/ESP8266 Firewall: Class Index</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="resize.js"></script>
|
||||||
|
<script type="text/javascript" src="navtreedata.js"></script>
|
||||||
|
<script type="text/javascript" src="navtree.js"></script>
|
||||||
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||||
|
<script type="text/javascript" src="search/search.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr id="projectrow">
|
||||||
|
<td id="projectalign">
|
||||||
|
<div id="projectname">ESP32/ESP8266 Firewall<span id="projectnumber"> 1.0.0</span>
|
||||||
|
</div>
|
||||||
|
<div id="projectbrief">a software firewall for ESP23 or ESP8266</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.9.4 -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="menudata.js"></script>
|
||||||
|
<script type="text/javascript" src="menu.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
$(function() {
|
||||||
|
initMenu('',true,false,'search.php','Search');
|
||||||
|
$(document).ready(function() { init_search(); });
|
||||||
|
});
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<div id="main-nav"></div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||||
|
<div id="nav-tree">
|
||||||
|
<div id="nav-tree-contents">
|
||||||
|
<div id="nav-sync" class="sync"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="splitbar" style="-moz-user-select:none;"
|
||||||
|
class="ui-resizable-handle">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
$(document).ready(function(){initNavTree('classes.html',''); initResizable(); });
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<div id="doc-content">
|
||||||
|
<!-- window showing the filter options -->
|
||||||
|
<div id="MSearchSelectWindow"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- iframe showing the search results (closed by default) -->
|
||||||
|
<div id="MSearchResultsWindow">
|
||||||
|
<iframe src="javascript:void(0)" frameborder="0"
|
||||||
|
name="MSearchResults" id="MSearchResults">
|
||||||
|
</iframe>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="header">
|
||||||
|
<div class="headertitle"><div class="title">Class Index</div></div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
<div class="qindex"><a class="qindex" href="#letter_A">A</a> | <a class="qindex" href="#letter_C">C</a> | <a class="qindex" href="#letter_F">F</a> | <a class="qindex" href="#letter_M">M</a> | <a class="qindex" href="#letter_S">S</a></div>
|
||||||
|
<div class="classindex">
|
||||||
|
<dl class="classindex even">
|
||||||
|
<dt class="alphachar"><a id="letter_A" name="letter_A">A</a></dt>
|
||||||
|
<dd><a class="el" href="classfw_1_1_a_p_i.html">API</a> (fw)</dd><dd><a class="el" href="structapi__endpoint__t.html">api_endpoint_t</a></dd></dl>
|
||||||
|
<dl class="classindex odd">
|
||||||
|
<dt class="alphachar"><a id="letter_C" name="letter_C">C</a></dt>
|
||||||
|
<dd><a class="el" href="structcredential__t.html">credential_t</a></dd></dl>
|
||||||
|
<dl class="classindex even">
|
||||||
|
<dt class="alphachar"><a id="letter_F" name="letter_F">F</a></dt>
|
||||||
|
<dd><a class="el" href="classfw_1_1_firewall.html">Firewall</a> (fw)</dd><dd><a class="el" href="structfirewall__rule__t.html">firewall_rule_t</a></dd></dl>
|
||||||
|
<dl class="classindex odd">
|
||||||
|
<dt class="alphachar"><a id="letter_M" name="letter_M">M</a></dt>
|
||||||
|
<dd><a class="el" href="structmy__packet__t.html">my_packet_t</a></dd></dl>
|
||||||
|
<dl class="classindex even">
|
||||||
|
<dt class="alphachar"><a id="letter_S" name="letter_S">S</a></dt>
|
||||||
|
<dd><a class="el" href="classfw_1_1_storage.html">Storage</a> (fw)</dd></dl>
|
||||||
|
</div>
|
||||||
|
</div><!-- contents -->
|
||||||
|
</div><!-- doc-content -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||||
|
<ul>
|
||||||
|
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4 </li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
133
doxygen/html/classfw_1_1_a_p_i-members.html
Normal file
|
@ -0,0 +1,133 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.9.4"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||||
|
<title>ESP32/ESP8266 Firewall: Member List</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="resize.js"></script>
|
||||||
|
<script type="text/javascript" src="navtreedata.js"></script>
|
||||||
|
<script type="text/javascript" src="navtree.js"></script>
|
||||||
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||||
|
<script type="text/javascript" src="search/search.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr id="projectrow">
|
||||||
|
<td id="projectalign">
|
||||||
|
<div id="projectname">ESP32/ESP8266 Firewall<span id="projectnumber"> 1.0.0</span>
|
||||||
|
</div>
|
||||||
|
<div id="projectbrief">a software firewall for ESP23 or ESP8266</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.9.4 -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="menudata.js"></script>
|
||||||
|
<script type="text/javascript" src="menu.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
$(function() {
|
||||||
|
initMenu('',true,false,'search.php','Search');
|
||||||
|
$(document).ready(function() { init_search(); });
|
||||||
|
});
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<div id="main-nav"></div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||||
|
<div id="nav-tree">
|
||||||
|
<div id="nav-tree-contents">
|
||||||
|
<div id="nav-sync" class="sync"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="splitbar" style="-moz-user-select:none;"
|
||||||
|
class="ui-resizable-handle">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
$(document).ready(function(){initNavTree('classfw_1_1_a_p_i.html',''); initResizable(); });
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<div id="doc-content">
|
||||||
|
<!-- window showing the filter options -->
|
||||||
|
<div id="MSearchSelectWindow"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- iframe showing the search results (closed by default) -->
|
||||||
|
<div id="MSearchResultsWindow">
|
||||||
|
<iframe src="javascript:void(0)" frameborder="0"
|
||||||
|
name="MSearchResults" id="MSearchResults">
|
||||||
|
</iframe>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="header">
|
||||||
|
<div class="headertitle"><div class="title">fw::API Member List</div></div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
|
||||||
|
<p>This is the complete list of members for <a class="el" href="classfw_1_1_a_p_i.html">fw::API</a>, including all inherited members.</p>
|
||||||
|
<table class="directory">
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classfw_1_1_a_p_i.html#aad90a1bfa8e00c4e25a091e5e9a61772">add_endpoint_to_list</a>(const String uri, const char *method, const char *description)</td><td class="entry"><a class="el" href="classfw_1_1_a_p_i.html">fw::API</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
|
||||||
|
<tr class="odd"><td class="entry"><a class="el" href="classfw_1_1_a_p_i.html#a033d5efd077dfad456cb6e6e7dd2baca">API</a>(Firewall *, const char *cert, const char *key, const char *username, const char *password, const String ip, const uint16_t port=8080)</td><td class="entry"><a class="el" href="classfw_1_1_a_p_i.html">fw::API</a></td><td class="entry"></td></tr>
|
||||||
|
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>api_ip</b> (defined in <a class="el" href="classfw_1_1_a_p_i.html">fw::API</a>)</td><td class="entry"><a class="el" href="classfw_1_1_a_p_i.html">fw::API</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
|
||||||
|
<tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>api_port</b> (defined in <a class="el" href="classfw_1_1_a_p_i.html">fw::API</a>)</td><td class="entry"><a class="el" href="classfw_1_1_a_p_i.html">fw::API</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classfw_1_1_a_p_i.html#adc9523a1b6e6a6e8f57a514a25c35b8c">check_auth</a>()</td><td class="entry"><a class="el" href="classfw_1_1_a_p_i.html">fw::API</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
|
||||||
|
<tr class="odd"><td class="entry"><a class="el" href="classfw_1_1_a_p_i.html#aa541a477e14a992b55e3f75351887cab">construct_json_api</a>()</td><td class="entry"><a class="el" href="classfw_1_1_a_p_i.html">fw::API</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classfw_1_1_a_p_i.html#a175d139d29530e2946f67789c9652da8">construct_json_api_endpoint</a>(api_endpoint_t *api_ptr)</td><td class="entry"><a class="el" href="classfw_1_1_a_p_i.html">fw::API</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
|
||||||
|
<tr class="odd"><td class="entry"><a class="el" href="classfw_1_1_a_p_i.html#a682ec7e09a230507c39cbc7d7c7427d5">construct_json_firewall</a>()</td><td class="entry"><a class="el" href="classfw_1_1_a_p_i.html">fw::API</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classfw_1_1_a_p_i.html#ac249b6e7533414d0296bde477cecac1b">construct_json_firewall_rule</a>(firewall_rule_t *rule_ptr)</td><td class="entry"><a class="el" href="classfw_1_1_a_p_i.html">fw::API</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
|
||||||
|
<tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>credentials</b> (defined in <a class="el" href="classfw_1_1_a_p_i.html">fw::API</a>)</td><td class="entry"><a class="el" href="classfw_1_1_a_p_i.html">fw::API</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classfw_1_1_a_p_i.html#a592c2aa501ff920ebcc125f8d5635deb">delete_firewall_handler</a>()</td><td class="entry"><a class="el" href="classfw_1_1_a_p_i.html">fw::API</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
|
||||||
|
<tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>endpoint_head</b> (defined in <a class="el" href="classfw_1_1_a_p_i.html">fw::API</a>)</td><td class="entry"><a class="el" href="classfw_1_1_a_p_i.html">fw::API</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
|
||||||
|
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>firewall</b> (defined in <a class="el" href="classfw_1_1_a_p_i.html">fw::API</a>)</td><td class="entry"><a class="el" href="classfw_1_1_a_p_i.html">fw::API</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
|
||||||
|
<tr class="odd"><td class="entry"><a class="el" href="classfw_1_1_a_p_i.html#a734cbd9da536fb297da87b4310f20ba1">get_endpoint_list_handler</a>()</td><td class="entry"><a class="el" href="classfw_1_1_a_p_i.html">fw::API</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classfw_1_1_a_p_i.html#ac76f5a6c9c28d71772b238a51b122e4a">get_firewall_rule_handler</a>()</td><td class="entry"><a class="el" href="classfw_1_1_a_p_i.html">fw::API</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
|
||||||
|
<tr class="odd"><td class="entry"><a class="el" href="classfw_1_1_a_p_i.html#ab904f77fa777a1c8c19deb8e39cf89e8">get_firewall_rules_handler</a>()</td><td class="entry"><a class="el" href="classfw_1_1_a_p_i.html">fw::API</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classfw_1_1_a_p_i.html#af5dc938ae5a274e3599d637e672b8d07">get_url_base</a>()</td><td class="entry"><a class="el" href="classfw_1_1_a_p_i.html">fw::API</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
|
||||||
|
<tr class="odd"><td class="entry"><a class="el" href="classfw_1_1_a_p_i.html#a1892bc26b882b055853e26ed95d8d802">json_array_response</a>(String serialized_string, const uint16_t response_code)</td><td class="entry"><a class="el" href="classfw_1_1_a_p_i.html">fw::API</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classfw_1_1_a_p_i.html#acbebab924241292706c0287dca5c3ff5">json_generic_response</a>(String serialized_string, const uint16_t response_code)</td><td class="entry"><a class="el" href="classfw_1_1_a_p_i.html">fw::API</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
|
||||||
|
<tr class="odd"><td class="entry"><a class="el" href="classfw_1_1_a_p_i.html#a6b7d4ce75b9cdba0dd39c6c949ef1c15">json_message_response</a>(String message, const uint16_t response_code)</td><td class="entry"><a class="el" href="classfw_1_1_a_p_i.html">fw::API</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classfw_1_1_a_p_i.html#a0ff5aeb3b916dae9219041dc240d9156">json_new_attribute</a>(String key, String value, bool last=false)</td><td class="entry"><a class="el" href="classfw_1_1_a_p_i.html">fw::API</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
|
||||||
|
<tr class="odd"><td class="entry"><a class="el" href="classfw_1_1_a_p_i.html#aba378d97c999dda14ef2e4e97a9948f5">json_new_attribute</a>(String key, uint32_t value, bool last=false)</td><td class="entry"><a class="el" href="classfw_1_1_a_p_i.html">fw::API</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
|
||||||
|
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>json_response_type</b> (defined in <a class="el" href="classfw_1_1_a_p_i.html">fw::API</a>)</td><td class="entry"><a class="el" href="classfw_1_1_a_p_i.html">fw::API</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
|
||||||
|
<tr class="odd"><td class="entry"><a class="el" href="classfw_1_1_a_p_i.html#aeb74e3b9efc2305c943683b14957ac9d">not_found_handler</a>()</td><td class="entry"><a class="el" href="classfw_1_1_a_p_i.html">fw::API</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classfw_1_1_a_p_i.html#a2d78e9dd43abb72da8872cb207db25e3">post_firewall_handler</a>()</td><td class="entry"><a class="el" href="classfw_1_1_a_p_i.html">fw::API</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
|
||||||
|
<tr class="odd"><td class="entry"><a class="el" href="classfw_1_1_a_p_i.html#a6ce4a9dd9afae493f6639b6fb3f6ba45">put_firewall_handler</a>()</td><td class="entry"><a class="el" href="classfw_1_1_a_p_i.html">fw::API</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classfw_1_1_a_p_i.html#abab79e90786d14836dcf113077891c50">request_has_all_firewall_parameter</a>()</td><td class="entry"><a class="el" href="classfw_1_1_a_p_i.html">fw::API</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
|
||||||
|
<tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>server</b> (defined in <a class="el" href="classfw_1_1_a_p_i.html">fw::API</a>)</td><td class="entry"><a class="el" href="classfw_1_1_a_p_i.html">fw::API</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classfw_1_1_a_p_i.html#a45dcdd4969f70a7f1a02e49a47b16a1d">setup_auth</a>(const char *username, const char *password)</td><td class="entry"><a class="el" href="classfw_1_1_a_p_i.html">fw::API</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
|
||||||
|
<tr class="odd"><td class="entry"><a class="el" href="classfw_1_1_a_p_i.html#a90986dc50f303564e6f5af6d3707dd20">setup_routing</a>(const char *cert, const char *key)</td><td class="entry"><a class="el" href="classfw_1_1_a_p_i.html">fw::API</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
|
||||||
|
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>TAG</b> (defined in <a class="el" href="classfw_1_1_a_p_i.html">fw::API</a>)</td><td class="entry"><a class="el" href="classfw_1_1_a_p_i.html">fw::API</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
|
||||||
|
<tr class="odd"><td class="entry"><a class="el" href="classfw_1_1_a_p_i.html#a66ac0bd592bb08d069aea199668670ab">~API</a>()</td><td class="entry"><a class="el" href="classfw_1_1_a_p_i.html">fw::API</a></td><td class="entry"></td></tr>
|
||||||
|
</table></div><!-- contents -->
|
||||||
|
</div><!-- doc-content -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||||
|
<ul>
|
||||||
|
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4 </li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
905
doxygen/html/classfw_1_1_a_p_i.html
Normal file
|
@ -0,0 +1,905 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.9.4"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||||
|
<title>ESP32/ESP8266 Firewall: fw::API Class Reference</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="resize.js"></script>
|
||||||
|
<script type="text/javascript" src="navtreedata.js"></script>
|
||||||
|
<script type="text/javascript" src="navtree.js"></script>
|
||||||
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||||
|
<script type="text/javascript" src="search/search.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr id="projectrow">
|
||||||
|
<td id="projectalign">
|
||||||
|
<div id="projectname">ESP32/ESP8266 Firewall<span id="projectnumber"> 1.0.0</span>
|
||||||
|
</div>
|
||||||
|
<div id="projectbrief">a software firewall for ESP23 or ESP8266</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.9.4 -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="menudata.js"></script>
|
||||||
|
<script type="text/javascript" src="menu.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
$(function() {
|
||||||
|
initMenu('',true,false,'search.php','Search');
|
||||||
|
$(document).ready(function() { init_search(); });
|
||||||
|
});
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<div id="main-nav"></div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||||
|
<div id="nav-tree">
|
||||||
|
<div id="nav-tree-contents">
|
||||||
|
<div id="nav-sync" class="sync"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="splitbar" style="-moz-user-select:none;"
|
||||||
|
class="ui-resizable-handle">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
$(document).ready(function(){initNavTree('classfw_1_1_a_p_i.html',''); initResizable(); });
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<div id="doc-content">
|
||||||
|
<!-- window showing the filter options -->
|
||||||
|
<div id="MSearchSelectWindow"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- iframe showing the search results (closed by default) -->
|
||||||
|
<div id="MSearchResultsWindow">
|
||||||
|
<iframe src="javascript:void(0)" frameborder="0"
|
||||||
|
name="MSearchResults" id="MSearchResults">
|
||||||
|
</iframe>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="header">
|
||||||
|
<div class="summary">
|
||||||
|
<a href="#pub-methods">Public Member Functions</a> |
|
||||||
|
<a href="#pri-methods">Private Member Functions</a> |
|
||||||
|
<a href="#pri-attribs">Private Attributes</a> |
|
||||||
|
<a href="classfw_1_1_a_p_i-members.html">List of all members</a> </div>
|
||||||
|
<div class="headertitle"><div class="title">fw::API Class Reference</div></div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
|
||||||
|
<p>The <a class="el" href="classfw_1_1_a_p_i.html" title="The API to create, edit or remove Firewall rules.">API</a> to create, edit or remove <a class="el" href="classfw_1_1_firewall.html" title="The Firewall will handle Firewall rules as linked list.">Firewall</a> rules.
|
||||||
|
<a href="classfw_1_1_a_p_i.html#details">More...</a></p>
|
||||||
|
|
||||||
|
<p><code>#include <<a class="el" href="_a_p_i_8hpp_source.html">API.hpp</a>></code></p>
|
||||||
|
<table class="memberdecls">
|
||||||
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
|
||||||
|
Public Member Functions</h2></td></tr>
|
||||||
|
<tr class="memitem:a033d5efd077dfad456cb6e6e7dd2baca"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classfw_1_1_a_p_i.html#a033d5efd077dfad456cb6e6e7dd2baca">API</a> (<a class="el" href="classfw_1_1_firewall.html">Firewall</a> *, const char *cert, const char *key, const char *username, const char *password, const String ip, const uint16_t port=8080)</td></tr>
|
||||||
|
<tr class="memdesc:a033d5efd077dfad456cb6e6e7dd2baca"><td class="mdescLeft"> </td><td class="mdescRight">Construct a new <a class="el" href="classfw_1_1_a_p_i.html" title="The API to create, edit or remove Firewall rules.">API</a> object, assign ip and port to generate endpoint list, setup authentication, create WebServer, setup routing. <a href="classfw_1_1_a_p_i.html#a033d5efd077dfad456cb6e6e7dd2baca">More...</a><br /></td></tr>
|
||||||
|
<tr class="separator:a033d5efd077dfad456cb6e6e7dd2baca"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a66ac0bd592bb08d069aea199668670ab"><td class="memItemLeft" align="right" valign="top"><a id="a66ac0bd592bb08d069aea199668670ab" name="a66ac0bd592bb08d069aea199668670ab"></a>
|
||||||
|
 </td><td class="memItemRight" valign="bottom"><b>~API</b> ()</td></tr>
|
||||||
|
<tr class="memdesc:a66ac0bd592bb08d069aea199668670ab"><td class="mdescLeft"> </td><td class="mdescRight">Destroy the <a class="el" href="classfw_1_1_a_p_i.html" title="The API to create, edit or remove Firewall rules.">API</a> object. <br /></td></tr>
|
||||||
|
<tr class="separator:a66ac0bd592bb08d069aea199668670ab"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
</table><table class="memberdecls">
|
||||||
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pri-methods" name="pri-methods"></a>
|
||||||
|
Private Member Functions</h2></td></tr>
|
||||||
|
<tr class="memitem:af5dc938ae5a274e3599d637e672b8d07"><td class="memItemLeft" align="right" valign="top">String </td><td class="memItemRight" valign="bottom"><a class="el" href="classfw_1_1_a_p_i.html#af5dc938ae5a274e3599d637e672b8d07">get_url_base</a> ()</td></tr>
|
||||||
|
<tr class="memdesc:af5dc938ae5a274e3599d637e672b8d07"><td class="mdescLeft"> </td><td class="mdescRight">Get the url base string e.g. <a href="http://0.0.0.0:8080/api">http://0.0.0.0:8080/api</a>. <a href="classfw_1_1_a_p_i.html#af5dc938ae5a274e3599d637e672b8d07">More...</a><br /></td></tr>
|
||||||
|
<tr class="separator:af5dc938ae5a274e3599d637e672b8d07"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a45dcdd4969f70a7f1a02e49a47b16a1d"><td class="memItemLeft" align="right" valign="top">ok_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classfw_1_1_a_p_i.html#a45dcdd4969f70a7f1a02e49a47b16a1d">setup_auth</a> (const char *username, const char *password)</td></tr>
|
||||||
|
<tr class="memdesc:a45dcdd4969f70a7f1a02e49a47b16a1d"><td class="mdescLeft"> </td><td class="mdescRight">Set up authentication. <a href="classfw_1_1_a_p_i.html#a45dcdd4969f70a7f1a02e49a47b16a1d">More...</a><br /></td></tr>
|
||||||
|
<tr class="separator:a45dcdd4969f70a7f1a02e49a47b16a1d"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:adc9523a1b6e6a6e8f57a514a25c35b8c"><td class="memItemLeft" align="right" valign="top">auth_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classfw_1_1_a_p_i.html#adc9523a1b6e6a6e8f57a514a25c35b8c">check_auth</a> ()</td></tr>
|
||||||
|
<tr class="memdesc:adc9523a1b6e6a6e8f57a514a25c35b8c"><td class="mdescLeft"> </td><td class="mdescRight">check if request to <a class="el" href="classfw_1_1_a_p_i.html" title="The API to create, edit or remove Firewall rules.">API</a> can proceed or needs to stop <a href="classfw_1_1_a_p_i.html#adc9523a1b6e6a6e8f57a514a25c35b8c">More...</a><br /></td></tr>
|
||||||
|
<tr class="separator:adc9523a1b6e6a6e8f57a514a25c35b8c"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a90986dc50f303564e6f5af6d3707dd20"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classfw_1_1_a_p_i.html#a90986dc50f303564e6f5af6d3707dd20">setup_routing</a> (const char *cert, const char *key)</td></tr>
|
||||||
|
<tr class="memdesc:a90986dc50f303564e6f5af6d3707dd20"><td class="mdescLeft"> </td><td class="mdescRight">Set up the routing/endpoints and encryption. <a href="classfw_1_1_a_p_i.html#a90986dc50f303564e6f5af6d3707dd20">More...</a><br /></td></tr>
|
||||||
|
<tr class="separator:a90986dc50f303564e6f5af6d3707dd20"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:aad90a1bfa8e00c4e25a091e5e9a61772"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classfw_1_1_a_p_i.html#aad90a1bfa8e00c4e25a091e5e9a61772">add_endpoint_to_list</a> (const String uri, const char *method, const char *description)</td></tr>
|
||||||
|
<tr class="memdesc:aad90a1bfa8e00c4e25a091e5e9a61772"><td class="mdescLeft"> </td><td class="mdescRight">add endpoint information to linked list that is used for the /api endpoint <a href="classfw_1_1_a_p_i.html#aad90a1bfa8e00c4e25a091e5e9a61772">More...</a><br /></td></tr>
|
||||||
|
<tr class="separator:aad90a1bfa8e00c4e25a091e5e9a61772"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:aeb74e3b9efc2305c943683b14957ac9d"><td class="memItemLeft" align="right" valign="top"><a id="aeb74e3b9efc2305c943683b14957ac9d" name="aeb74e3b9efc2305c943683b14957ac9d"></a>
|
||||||
|
void </td><td class="memItemRight" valign="bottom"><b>not_found_handler</b> ()</td></tr>
|
||||||
|
<tr class="memdesc:aeb74e3b9efc2305c943683b14957ac9d"><td class="mdescLeft"> </td><td class="mdescRight">handling not found <br /></td></tr>
|
||||||
|
<tr class="separator:aeb74e3b9efc2305c943683b14957ac9d"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a734cbd9da536fb297da87b4310f20ba1"><td class="memItemLeft" align="right" valign="top"><a id="a734cbd9da536fb297da87b4310f20ba1" name="a734cbd9da536fb297da87b4310f20ba1"></a>
|
||||||
|
void </td><td class="memItemRight" valign="bottom"><b>get_endpoint_list_handler</b> ()</td></tr>
|
||||||
|
<tr class="memdesc:a734cbd9da536fb297da87b4310f20ba1"><td class="mdescLeft"> </td><td class="mdescRight">GET handler to retrieve endpoint list. <br /></td></tr>
|
||||||
|
<tr class="separator:a734cbd9da536fb297da87b4310f20ba1"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:ac76f5a6c9c28d71772b238a51b122e4a"><td class="memItemLeft" align="right" valign="top"><a id="ac76f5a6c9c28d71772b238a51b122e4a" name="ac76f5a6c9c28d71772b238a51b122e4a"></a>
|
||||||
|
void </td><td class="memItemRight" valign="bottom"><b>get_firewall_rule_handler</b> ()</td></tr>
|
||||||
|
<tr class="memdesc:ac76f5a6c9c28d71772b238a51b122e4a"><td class="mdescLeft"> </td><td class="mdescRight">GET handler to retrieve single firewall rule. <br /></td></tr>
|
||||||
|
<tr class="separator:ac76f5a6c9c28d71772b238a51b122e4a"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:ab904f77fa777a1c8c19deb8e39cf89e8"><td class="memItemLeft" align="right" valign="top"><a id="ab904f77fa777a1c8c19deb8e39cf89e8" name="ab904f77fa777a1c8c19deb8e39cf89e8"></a>
|
||||||
|
void </td><td class="memItemRight" valign="bottom"><b>get_firewall_rules_handler</b> ()</td></tr>
|
||||||
|
<tr class="memdesc:ab904f77fa777a1c8c19deb8e39cf89e8"><td class="mdescLeft"> </td><td class="mdescRight">GET handler to retrieve firewall rules. <br /></td></tr>
|
||||||
|
<tr class="separator:ab904f77fa777a1c8c19deb8e39cf89e8"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a2d78e9dd43abb72da8872cb207db25e3"><td class="memItemLeft" align="right" valign="top"><a id="a2d78e9dd43abb72da8872cb207db25e3" name="a2d78e9dd43abb72da8872cb207db25e3"></a>
|
||||||
|
void </td><td class="memItemRight" valign="bottom"><b>post_firewall_handler</b> ()</td></tr>
|
||||||
|
<tr class="memdesc:a2d78e9dd43abb72da8872cb207db25e3"><td class="mdescLeft"> </td><td class="mdescRight">POST handler to create firewall rule. <br /></td></tr>
|
||||||
|
<tr class="separator:a2d78e9dd43abb72da8872cb207db25e3"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a6ce4a9dd9afae493f6639b6fb3f6ba45"><td class="memItemLeft" align="right" valign="top"><a id="a6ce4a9dd9afae493f6639b6fb3f6ba45" name="a6ce4a9dd9afae493f6639b6fb3f6ba45"></a>
|
||||||
|
void </td><td class="memItemRight" valign="bottom"><b>put_firewall_handler</b> ()</td></tr>
|
||||||
|
<tr class="memdesc:a6ce4a9dd9afae493f6639b6fb3f6ba45"><td class="mdescLeft"> </td><td class="mdescRight">PUT handler to update firewall rule. <br /></td></tr>
|
||||||
|
<tr class="separator:a6ce4a9dd9afae493f6639b6fb3f6ba45"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a592c2aa501ff920ebcc125f8d5635deb"><td class="memItemLeft" align="right" valign="top"><a id="a592c2aa501ff920ebcc125f8d5635deb" name="a592c2aa501ff920ebcc125f8d5635deb"></a>
|
||||||
|
void </td><td class="memItemRight" valign="bottom"><b>delete_firewall_handler</b> ()</td></tr>
|
||||||
|
<tr class="memdesc:a592c2aa501ff920ebcc125f8d5635deb"><td class="mdescLeft"> </td><td class="mdescRight">DELETE handler to delete firewall rule. <br /></td></tr>
|
||||||
|
<tr class="separator:a592c2aa501ff920ebcc125f8d5635deb"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:abab79e90786d14836dcf113077891c50"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classfw_1_1_a_p_i.html#abab79e90786d14836dcf113077891c50">request_has_all_firewall_parameter</a> ()</td></tr>
|
||||||
|
<tr class="memdesc:abab79e90786d14836dcf113077891c50"><td class="mdescLeft"> </td><td class="mdescRight">check if request to create/update firewall rule has all required parameter <a href="classfw_1_1_a_p_i.html#abab79e90786d14836dcf113077891c50">More...</a><br /></td></tr>
|
||||||
|
<tr class="separator:abab79e90786d14836dcf113077891c50"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a0ff5aeb3b916dae9219041dc240d9156"><td class="memItemLeft" align="right" valign="top">String </td><td class="memItemRight" valign="bottom"><a class="el" href="classfw_1_1_a_p_i.html#a0ff5aeb3b916dae9219041dc240d9156">json_new_attribute</a> (String key, String value, bool last=false)</td></tr>
|
||||||
|
<tr class="memdesc:a0ff5aeb3b916dae9219041dc240d9156"><td class="mdescLeft"> </td><td class="mdescRight">add another attribute to the json object <a href="classfw_1_1_a_p_i.html#a0ff5aeb3b916dae9219041dc240d9156">More...</a><br /></td></tr>
|
||||||
|
<tr class="separator:a0ff5aeb3b916dae9219041dc240d9156"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:aba378d97c999dda14ef2e4e97a9948f5"><td class="memItemLeft" align="right" valign="top">String </td><td class="memItemRight" valign="bottom"><a class="el" href="classfw_1_1_a_p_i.html#aba378d97c999dda14ef2e4e97a9948f5">json_new_attribute</a> (String key, uint32_t value, bool last=false)</td></tr>
|
||||||
|
<tr class="memdesc:aba378d97c999dda14ef2e4e97a9948f5"><td class="mdescLeft"> </td><td class="mdescRight">add another attribute to the json object <a href="classfw_1_1_a_p_i.html#aba378d97c999dda14ef2e4e97a9948f5">More...</a><br /></td></tr>
|
||||||
|
<tr class="separator:aba378d97c999dda14ef2e4e97a9948f5"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:acbebab924241292706c0287dca5c3ff5"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classfw_1_1_a_p_i.html#acbebab924241292706c0287dca5c3ff5">json_generic_response</a> (String serialized_string, const uint16_t response_code)</td></tr>
|
||||||
|
<tr class="memdesc:acbebab924241292706c0287dca5c3ff5"><td class="mdescLeft"> </td><td class="mdescRight">json response to send any string and response code <a href="classfw_1_1_a_p_i.html#acbebab924241292706c0287dca5c3ff5">More...</a><br /></td></tr>
|
||||||
|
<tr class="separator:acbebab924241292706c0287dca5c3ff5"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a1892bc26b882b055853e26ed95d8d802"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classfw_1_1_a_p_i.html#a1892bc26b882b055853e26ed95d8d802">json_array_response</a> (String serialized_string, const uint16_t response_code)</td></tr>
|
||||||
|
<tr class="memdesc:a1892bc26b882b055853e26ed95d8d802"><td class="mdescLeft"> </td><td class="mdescRight">json response that wraps the message in array brackets <a href="classfw_1_1_a_p_i.html#a1892bc26b882b055853e26ed95d8d802">More...</a><br /></td></tr>
|
||||||
|
<tr class="separator:a1892bc26b882b055853e26ed95d8d802"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a6b7d4ce75b9cdba0dd39c6c949ef1c15"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classfw_1_1_a_p_i.html#a6b7d4ce75b9cdba0dd39c6c949ef1c15">json_message_response</a> (String message, const uint16_t response_code)</td></tr>
|
||||||
|
<tr class="memdesc:a6b7d4ce75b9cdba0dd39c6c949ef1c15"><td class="mdescLeft"> </td><td class="mdescRight">json response to send message as json object <a href="classfw_1_1_a_p_i.html#a6b7d4ce75b9cdba0dd39c6c949ef1c15">More...</a><br /></td></tr>
|
||||||
|
<tr class="separator:a6b7d4ce75b9cdba0dd39c6c949ef1c15"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:ac249b6e7533414d0296bde477cecac1b"><td class="memItemLeft" align="right" valign="top">String </td><td class="memItemRight" valign="bottom"><a class="el" href="classfw_1_1_a_p_i.html#ac249b6e7533414d0296bde477cecac1b">construct_json_firewall_rule</a> (<a class="el" href="structfirewall__rule__t.html">firewall_rule_t</a> *rule_ptr)</td></tr>
|
||||||
|
<tr class="memdesc:ac249b6e7533414d0296bde477cecac1b"><td class="mdescLeft"> </td><td class="mdescRight">construct a firewall rule as json object <a href="classfw_1_1_a_p_i.html#ac249b6e7533414d0296bde477cecac1b">More...</a><br /></td></tr>
|
||||||
|
<tr class="separator:ac249b6e7533414d0296bde477cecac1b"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a682ec7e09a230507c39cbc7d7c7427d5"><td class="memItemLeft" align="right" valign="top">String </td><td class="memItemRight" valign="bottom"><a class="el" href="classfw_1_1_a_p_i.html#a682ec7e09a230507c39cbc7d7c7427d5">construct_json_firewall</a> ()</td></tr>
|
||||||
|
<tr class="memdesc:a682ec7e09a230507c39cbc7d7c7427d5"><td class="mdescLeft"> </td><td class="mdescRight">construct array of all firewall rules as json object <a href="classfw_1_1_a_p_i.html#a682ec7e09a230507c39cbc7d7c7427d5">More...</a><br /></td></tr>
|
||||||
|
<tr class="separator:a682ec7e09a230507c39cbc7d7c7427d5"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a175d139d29530e2946f67789c9652da8"><td class="memItemLeft" align="right" valign="top">String </td><td class="memItemRight" valign="bottom"><a class="el" href="classfw_1_1_a_p_i.html#a175d139d29530e2946f67789c9652da8">construct_json_api_endpoint</a> (<a class="el" href="structapi__endpoint__t.html">api_endpoint_t</a> *api_ptr)</td></tr>
|
||||||
|
<tr class="memdesc:a175d139d29530e2946f67789c9652da8"><td class="mdescLeft"> </td><td class="mdescRight">construct an <a class="el" href="classfw_1_1_a_p_i.html" title="The API to create, edit or remove Firewall rules.">API</a> endpoint as json object <a href="classfw_1_1_a_p_i.html#a175d139d29530e2946f67789c9652da8">More...</a><br /></td></tr>
|
||||||
|
<tr class="separator:a175d139d29530e2946f67789c9652da8"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:aa541a477e14a992b55e3f75351887cab"><td class="memItemLeft" align="right" valign="top">String </td><td class="memItemRight" valign="bottom"><a class="el" href="classfw_1_1_a_p_i.html#aa541a477e14a992b55e3f75351887cab">construct_json_api</a> ()</td></tr>
|
||||||
|
<tr class="memdesc:aa541a477e14a992b55e3f75351887cab"><td class="mdescLeft"> </td><td class="mdescRight">construct array of all endpoints as json object <a href="classfw_1_1_a_p_i.html#aa541a477e14a992b55e3f75351887cab">More...</a><br /></td></tr>
|
||||||
|
<tr class="separator:aa541a477e14a992b55e3f75351887cab"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
</table><table class="memberdecls">
|
||||||
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pri-attribs" name="pri-attribs"></a>
|
||||||
|
Private Attributes</h2></td></tr>
|
||||||
|
<tr class="memitem:a63b835a5e99f9addd8389d35aefc1aa1"><td class="memItemLeft" align="right" valign="top"><a id="a63b835a5e99f9addd8389d35aefc1aa1" name="a63b835a5e99f9addd8389d35aefc1aa1"></a>
|
||||||
|
WebServer * </td><td class="memItemRight" valign="bottom"><b>server</b></td></tr>
|
||||||
|
<tr class="separator:a63b835a5e99f9addd8389d35aefc1aa1"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:ad9cd5f27dafe039210d12c60e1cd6172"><td class="memItemLeft" align="right" valign="top"><a id="ad9cd5f27dafe039210d12c60e1cd6172" name="ad9cd5f27dafe039210d12c60e1cd6172"></a>
|
||||||
|
<a class="el" href="classfw_1_1_firewall.html">Firewall</a> * </td><td class="memItemRight" valign="bottom"><b>firewall</b></td></tr>
|
||||||
|
<tr class="separator:ad9cd5f27dafe039210d12c60e1cd6172"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:abc5ef98b67d8f69d633434fa6867e654"><td class="memItemLeft" align="right" valign="top"><a id="abc5ef98b67d8f69d633434fa6867e654" name="abc5ef98b67d8f69d633434fa6867e654"></a>
|
||||||
|
<a class="el" href="structcredential__t.html">credential_t</a> </td><td class="memItemRight" valign="bottom"><b>credentials</b></td></tr>
|
||||||
|
<tr class="separator:abc5ef98b67d8f69d633434fa6867e654"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:aec0db3ef7ca1b851a99eaf5a3ed0041c"><td class="memItemLeft" align="right" valign="top"><a id="aec0db3ef7ca1b851a99eaf5a3ed0041c" name="aec0db3ef7ca1b851a99eaf5a3ed0041c"></a>
|
||||||
|
<a class="el" href="structapi__endpoint__t.html">api_endpoint_t</a> * </td><td class="memItemRight" valign="bottom"><b>endpoint_head</b> = NULL</td></tr>
|
||||||
|
<tr class="separator:aec0db3ef7ca1b851a99eaf5a3ed0041c"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:af59975d0ca4c32f2edb4e026fea008aa"><td class="memItemLeft" align="right" valign="top"><a id="af59975d0ca4c32f2edb4e026fea008aa" name="af59975d0ca4c32f2edb4e026fea008aa"></a>
|
||||||
|
String </td><td class="memItemRight" valign="bottom"><b>api_ip</b> = "0.0.0.0"</td></tr>
|
||||||
|
<tr class="separator:af59975d0ca4c32f2edb4e026fea008aa"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a8dcccd4386829794c7df93d21b1f91d8"><td class="memItemLeft" align="right" valign="top"><a id="a8dcccd4386829794c7df93d21b1f91d8" name="a8dcccd4386829794c7df93d21b1f91d8"></a>
|
||||||
|
uint16_t </td><td class="memItemRight" valign="bottom"><b>api_port</b></td></tr>
|
||||||
|
<tr class="separator:a8dcccd4386829794c7df93d21b1f91d8"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a31fe0e90c14da484b9cabfcf00e65b04"><td class="memItemLeft" align="right" valign="top"><a id="a31fe0e90c14da484b9cabfcf00e65b04" name="a31fe0e90c14da484b9cabfcf00e65b04"></a>
|
||||||
|
String </td><td class="memItemRight" valign="bottom"><b>json_response_type</b> = "application/json; charset=utf-8"</td></tr>
|
||||||
|
<tr class="separator:a31fe0e90c14da484b9cabfcf00e65b04"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a9df393e56c5ff6f934f8fa628bf68217"><td class="memItemLeft" align="right" valign="top"><a id="a9df393e56c5ff6f934f8fa628bf68217" name="a9df393e56c5ff6f934f8fa628bf68217"></a>
|
||||||
|
const char * </td><td class="memItemRight" valign="bottom"><b>TAG</b> = "[API]"</td></tr>
|
||||||
|
<tr class="separator:a9df393e56c5ff6f934f8fa628bf68217"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
</table>
|
||||||
|
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||||
|
<div class="textblock"><p >The <a class="el" href="classfw_1_1_a_p_i.html" title="The API to create, edit or remove Firewall rules.">API</a> to create, edit or remove <a class="el" href="classfw_1_1_firewall.html" title="The Firewall will handle Firewall rules as linked list.">Firewall</a> rules. </p>
|
||||||
|
<dl class="section author"><dt>Author</dt><dd>Florian Hoss </dd></dl>
|
||||||
|
</div><h2 class="groupheader">Constructor & Destructor Documentation</h2>
|
||||||
|
<a id="a033d5efd077dfad456cb6e6e7dd2baca" name="a033d5efd077dfad456cb6e6e7dd2baca"></a>
|
||||||
|
<h2 class="memtitle"><span class="permalink"><a href="#a033d5efd077dfad456cb6e6e7dd2baca">◆ </a></span>API()</h2>
|
||||||
|
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">fw::API::API </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype"><a class="el" href="classfw_1_1_firewall.html">fw::Firewall</a> * </td>
|
||||||
|
<td class="paramname"><em>firewall</em>, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype">const char * </td>
|
||||||
|
<td class="paramname"><em>cert</em>, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype">const char * </td>
|
||||||
|
<td class="paramname"><em>key</em>, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype">const char * </td>
|
||||||
|
<td class="paramname"><em>username</em>, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype">const char * </td>
|
||||||
|
<td class="paramname"><em>password</em>, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype">const String </td>
|
||||||
|
<td class="paramname"><em>ip</em>, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype">const uint16_t </td>
|
||||||
|
<td class="paramname"><em>port</em> = <code>8080</code> </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td>)</td>
|
||||||
|
<td></td><td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>Construct a new <a class="el" href="classfw_1_1_a_p_i.html" title="The API to create, edit or remove Firewall rules.">API</a> object, assign ip and port to generate endpoint list, setup authentication, create WebServer, setup routing. </p>
|
||||||
|
<dl class="params"><dt>Parameters</dt><dd>
|
||||||
|
<table class="params">
|
||||||
|
<tr><td class="paramname">cert</td><td></td></tr>
|
||||||
|
<tr><td class="paramname">key</td><td></td></tr>
|
||||||
|
<tr><td class="paramname">username</td><td></td></tr>
|
||||||
|
<tr><td class="paramname">password</td><td></td></tr>
|
||||||
|
<tr><td class="paramname">ip</td><td></td></tr>
|
||||||
|
<tr><td class="paramname">port</td><td></td></tr>
|
||||||
|
</table>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<h2 class="groupheader">Member Function Documentation</h2>
|
||||||
|
<a id="aad90a1bfa8e00c4e25a091e5e9a61772" name="aad90a1bfa8e00c4e25a091e5e9a61772"></a>
|
||||||
|
<h2 class="memtitle"><span class="permalink"><a href="#aad90a1bfa8e00c4e25a091e5e9a61772">◆ </a></span>add_endpoint_to_list()</h2>
|
||||||
|
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="mlabels">
|
||||||
|
<tr>
|
||||||
|
<td class="mlabels-left">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">void fw::API::add_endpoint_to_list </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype">const String </td>
|
||||||
|
<td class="paramname"><em>uri</em>, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype">const char * </td>
|
||||||
|
<td class="paramname"><em>method</em>, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype">const char * </td>
|
||||||
|
<td class="paramname"><em>description</em> </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td>)</td>
|
||||||
|
<td></td><td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
<td class="mlabels-right">
|
||||||
|
<span class="mlabels"><span class="mlabel">private</span></span> </td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>add endpoint information to linked list that is used for the /api endpoint </p>
|
||||||
|
<dl class="params"><dt>Parameters</dt><dd>
|
||||||
|
<table class="params">
|
||||||
|
<tr><td class="paramname">uri</td><td></td></tr>
|
||||||
|
<tr><td class="paramname">method</td><td></td></tr>
|
||||||
|
<tr><td class="paramname">description</td><td></td></tr>
|
||||||
|
</table>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a id="adc9523a1b6e6a6e8f57a514a25c35b8c" name="adc9523a1b6e6a6e8f57a514a25c35b8c"></a>
|
||||||
|
<h2 class="memtitle"><span class="permalink"><a href="#adc9523a1b6e6a6e8f57a514a25c35b8c">◆ </a></span>check_auth()</h2>
|
||||||
|
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="mlabels">
|
||||||
|
<tr>
|
||||||
|
<td class="mlabels-left">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">auth_t fw::API::check_auth </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramname"></td><td>)</td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
<td class="mlabels-right">
|
||||||
|
<span class="mlabels"><span class="mlabel">private</span></span> </td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>check if request to <a class="el" href="classfw_1_1_a_p_i.html" title="The API to create, edit or remove Firewall rules.">API</a> can proceed or needs to stop </p>
|
||||||
|
<dl class="section return"><dt>Returns</dt><dd>auth_t </dd></dl>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a id="aa541a477e14a992b55e3f75351887cab" name="aa541a477e14a992b55e3f75351887cab"></a>
|
||||||
|
<h2 class="memtitle"><span class="permalink"><a href="#aa541a477e14a992b55e3f75351887cab">◆ </a></span>construct_json_api()</h2>
|
||||||
|
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="mlabels">
|
||||||
|
<tr>
|
||||||
|
<td class="mlabels-left">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">String fw::API::construct_json_api </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramname"></td><td>)</td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
<td class="mlabels-right">
|
||||||
|
<span class="mlabels"><span class="mlabel">private</span></span> </td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>construct array of all endpoints as json object </p>
|
||||||
|
<dl class="params"><dt>Parameters</dt><dd>
|
||||||
|
<table class="params">
|
||||||
|
<tr><td class="paramname">api_ptr</td><td></td></tr>
|
||||||
|
</table>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl class="section return"><dt>Returns</dt><dd>String </dd></dl>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a id="a175d139d29530e2946f67789c9652da8" name="a175d139d29530e2946f67789c9652da8"></a>
|
||||||
|
<h2 class="memtitle"><span class="permalink"><a href="#a175d139d29530e2946f67789c9652da8">◆ </a></span>construct_json_api_endpoint()</h2>
|
||||||
|
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="mlabels">
|
||||||
|
<tr>
|
||||||
|
<td class="mlabels-left">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">String fw::API::construct_json_api_endpoint </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype"><a class="el" href="structapi__endpoint__t.html">api_endpoint_t</a> * </td>
|
||||||
|
<td class="paramname"><em>api_ptr</em></td><td>)</td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
<td class="mlabels-right">
|
||||||
|
<span class="mlabels"><span class="mlabel">private</span></span> </td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>construct an <a class="el" href="classfw_1_1_a_p_i.html" title="The API to create, edit or remove Firewall rules.">API</a> endpoint as json object </p>
|
||||||
|
<dl class="params"><dt>Parameters</dt><dd>
|
||||||
|
<table class="params">
|
||||||
|
<tr><td class="paramname">api_ptr</td><td></td></tr>
|
||||||
|
</table>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl class="section return"><dt>Returns</dt><dd>String </dd></dl>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a id="a682ec7e09a230507c39cbc7d7c7427d5" name="a682ec7e09a230507c39cbc7d7c7427d5"></a>
|
||||||
|
<h2 class="memtitle"><span class="permalink"><a href="#a682ec7e09a230507c39cbc7d7c7427d5">◆ </a></span>construct_json_firewall()</h2>
|
||||||
|
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="mlabels">
|
||||||
|
<tr>
|
||||||
|
<td class="mlabels-left">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">String fw::API::construct_json_firewall </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramname"></td><td>)</td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
<td class="mlabels-right">
|
||||||
|
<span class="mlabels"><span class="mlabel">private</span></span> </td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>construct array of all firewall rules as json object </p>
|
||||||
|
<dl class="section return"><dt>Returns</dt><dd>String </dd></dl>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a id="ac249b6e7533414d0296bde477cecac1b" name="ac249b6e7533414d0296bde477cecac1b"></a>
|
||||||
|
<h2 class="memtitle"><span class="permalink"><a href="#ac249b6e7533414d0296bde477cecac1b">◆ </a></span>construct_json_firewall_rule()</h2>
|
||||||
|
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="mlabels">
|
||||||
|
<tr>
|
||||||
|
<td class="mlabels-left">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">String fw::API::construct_json_firewall_rule </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype"><a class="el" href="structfirewall__rule__t.html">firewall_rule_t</a> * </td>
|
||||||
|
<td class="paramname"><em>rule_ptr</em></td><td>)</td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
<td class="mlabels-right">
|
||||||
|
<span class="mlabels"><span class="mlabel">private</span></span> </td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>construct a firewall rule as json object </p>
|
||||||
|
<dl class="params"><dt>Parameters</dt><dd>
|
||||||
|
<table class="params">
|
||||||
|
<tr><td class="paramname">rule_ptr</td><td></td></tr>
|
||||||
|
</table>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl class="section return"><dt>Returns</dt><dd>String </dd></dl>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a id="af5dc938ae5a274e3599d637e672b8d07" name="af5dc938ae5a274e3599d637e672b8d07"></a>
|
||||||
|
<h2 class="memtitle"><span class="permalink"><a href="#af5dc938ae5a274e3599d637e672b8d07">◆ </a></span>get_url_base()</h2>
|
||||||
|
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="mlabels">
|
||||||
|
<tr>
|
||||||
|
<td class="mlabels-left">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">String fw::API::get_url_base </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramname"></td><td>)</td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
<td class="mlabels-right">
|
||||||
|
<span class="mlabels"><span class="mlabel">private</span></span> </td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>Get the url base string e.g. <a href="http://0.0.0.0:8080/api">http://0.0.0.0:8080/api</a>. </p>
|
||||||
|
<dl class="section return"><dt>Returns</dt><dd>String </dd></dl>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a id="a1892bc26b882b055853e26ed95d8d802" name="a1892bc26b882b055853e26ed95d8d802"></a>
|
||||||
|
<h2 class="memtitle"><span class="permalink"><a href="#a1892bc26b882b055853e26ed95d8d802">◆ </a></span>json_array_response()</h2>
|
||||||
|
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="mlabels">
|
||||||
|
<tr>
|
||||||
|
<td class="mlabels-left">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">void fw::API::json_array_response </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype">String </td>
|
||||||
|
<td class="paramname"><em>serialized_string</em>, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype">const uint16_t </td>
|
||||||
|
<td class="paramname"><em>response_code</em> </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td>)</td>
|
||||||
|
<td></td><td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
<td class="mlabels-right">
|
||||||
|
<span class="mlabels"><span class="mlabel">private</span></span> </td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>json response that wraps the message in array brackets </p>
|
||||||
|
<dl class="params"><dt>Parameters</dt><dd>
|
||||||
|
<table class="params">
|
||||||
|
<tr><td class="paramname">serialized_string</td><td></td></tr>
|
||||||
|
<tr><td class="paramname">response_code</td><td></td></tr>
|
||||||
|
</table>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a id="acbebab924241292706c0287dca5c3ff5" name="acbebab924241292706c0287dca5c3ff5"></a>
|
||||||
|
<h2 class="memtitle"><span class="permalink"><a href="#acbebab924241292706c0287dca5c3ff5">◆ </a></span>json_generic_response()</h2>
|
||||||
|
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="mlabels">
|
||||||
|
<tr>
|
||||||
|
<td class="mlabels-left">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">void fw::API::json_generic_response </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype">String </td>
|
||||||
|
<td class="paramname"><em>serialized_string</em>, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype">const uint16_t </td>
|
||||||
|
<td class="paramname"><em>response_code</em> </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td>)</td>
|
||||||
|
<td></td><td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
<td class="mlabels-right">
|
||||||
|
<span class="mlabels"><span class="mlabel">private</span></span> </td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>json response to send any string and response code </p>
|
||||||
|
<dl class="params"><dt>Parameters</dt><dd>
|
||||||
|
<table class="params">
|
||||||
|
<tr><td class="paramname">serialized_string</td><td></td></tr>
|
||||||
|
<tr><td class="paramname">response_code</td><td></td></tr>
|
||||||
|
</table>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a id="a6b7d4ce75b9cdba0dd39c6c949ef1c15" name="a6b7d4ce75b9cdba0dd39c6c949ef1c15"></a>
|
||||||
|
<h2 class="memtitle"><span class="permalink"><a href="#a6b7d4ce75b9cdba0dd39c6c949ef1c15">◆ </a></span>json_message_response()</h2>
|
||||||
|
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="mlabels">
|
||||||
|
<tr>
|
||||||
|
<td class="mlabels-left">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">void fw::API::json_message_response </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype">String </td>
|
||||||
|
<td class="paramname"><em>message</em>, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype">const uint16_t </td>
|
||||||
|
<td class="paramname"><em>response_code</em> </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td>)</td>
|
||||||
|
<td></td><td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
<td class="mlabels-right">
|
||||||
|
<span class="mlabels"><span class="mlabel">private</span></span> </td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>json response to send message as json object </p>
|
||||||
|
<dl class="params"><dt>Parameters</dt><dd>
|
||||||
|
<table class="params">
|
||||||
|
<tr><td class="paramname">message</td><td></td></tr>
|
||||||
|
<tr><td class="paramname">response_code</td><td></td></tr>
|
||||||
|
</table>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a id="a0ff5aeb3b916dae9219041dc240d9156" name="a0ff5aeb3b916dae9219041dc240d9156"></a>
|
||||||
|
<h2 class="memtitle"><span class="permalink"><a href="#a0ff5aeb3b916dae9219041dc240d9156">◆ </a></span>json_new_attribute() <span class="overload">[1/2]</span></h2>
|
||||||
|
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="mlabels">
|
||||||
|
<tr>
|
||||||
|
<td class="mlabels-left">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">String fw::API::json_new_attribute </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype">String </td>
|
||||||
|
<td class="paramname"><em>key</em>, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype">String </td>
|
||||||
|
<td class="paramname"><em>value</em>, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype">bool </td>
|
||||||
|
<td class="paramname"><em>last</em> = <code>false</code> </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td>)</td>
|
||||||
|
<td></td><td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
<td class="mlabels-right">
|
||||||
|
<span class="mlabels"><span class="mlabel">private</span></span> </td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>add another attribute to the json object </p>
|
||||||
|
<dl class="params"><dt>Parameters</dt><dd>
|
||||||
|
<table class="params">
|
||||||
|
<tr><td class="paramname">key</td><td></td></tr>
|
||||||
|
<tr><td class="paramname">value</td><td></td></tr>
|
||||||
|
<tr><td class="paramname">last</td><td></td></tr>
|
||||||
|
</table>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl class="section return"><dt>Returns</dt><dd>String </dd></dl>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a id="aba378d97c999dda14ef2e4e97a9948f5" name="aba378d97c999dda14ef2e4e97a9948f5"></a>
|
||||||
|
<h2 class="memtitle"><span class="permalink"><a href="#aba378d97c999dda14ef2e4e97a9948f5">◆ </a></span>json_new_attribute() <span class="overload">[2/2]</span></h2>
|
||||||
|
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="mlabels">
|
||||||
|
<tr>
|
||||||
|
<td class="mlabels-left">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">String fw::API::json_new_attribute </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype">String </td>
|
||||||
|
<td class="paramname"><em>key</em>, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype">uint32_t </td>
|
||||||
|
<td class="paramname"><em>value</em>, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype">bool </td>
|
||||||
|
<td class="paramname"><em>last</em> = <code>false</code> </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td>)</td>
|
||||||
|
<td></td><td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
<td class="mlabels-right">
|
||||||
|
<span class="mlabels"><span class="mlabel">private</span></span> </td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>add another attribute to the json object </p>
|
||||||
|
<dl class="params"><dt>Parameters</dt><dd>
|
||||||
|
<table class="params">
|
||||||
|
<tr><td class="paramname">key</td><td></td></tr>
|
||||||
|
<tr><td class="paramname">value</td><td></td></tr>
|
||||||
|
<tr><td class="paramname">last</td><td></td></tr>
|
||||||
|
</table>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl class="section return"><dt>Returns</dt><dd>String </dd></dl>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a id="abab79e90786d14836dcf113077891c50" name="abab79e90786d14836dcf113077891c50"></a>
|
||||||
|
<h2 class="memtitle"><span class="permalink"><a href="#abab79e90786d14836dcf113077891c50">◆ </a></span>request_has_all_firewall_parameter()</h2>
|
||||||
|
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="mlabels">
|
||||||
|
<tr>
|
||||||
|
<td class="mlabels-left">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">bool fw::API::request_has_all_firewall_parameter </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramname"></td><td>)</td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
<td class="mlabels-right">
|
||||||
|
<span class="mlabels"><span class="mlabel">private</span></span> </td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>check if request to create/update firewall rule has all required parameter </p>
|
||||||
|
<dl class="section return"><dt>Returns</dt><dd>true </dd>
|
||||||
|
<dd>
|
||||||
|
false </dd></dl>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a id="a45dcdd4969f70a7f1a02e49a47b16a1d" name="a45dcdd4969f70a7f1a02e49a47b16a1d"></a>
|
||||||
|
<h2 class="memtitle"><span class="permalink"><a href="#a45dcdd4969f70a7f1a02e49a47b16a1d">◆ </a></span>setup_auth()</h2>
|
||||||
|
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="mlabels">
|
||||||
|
<tr>
|
||||||
|
<td class="mlabels-left">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">ok_t fw::API::setup_auth </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype">const char * </td>
|
||||||
|
<td class="paramname"><em>username</em>, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype">const char * </td>
|
||||||
|
<td class="paramname"><em>password</em> </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td>)</td>
|
||||||
|
<td></td><td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
<td class="mlabels-right">
|
||||||
|
<span class="mlabels"><span class="mlabel">private</span></span> </td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>Set up authentication. </p>
|
||||||
|
<dl class="params"><dt>Parameters</dt><dd>
|
||||||
|
<table class="params">
|
||||||
|
<tr><td class="paramname">username</td><td></td></tr>
|
||||||
|
<tr><td class="paramname">password</td><td></td></tr>
|
||||||
|
</table>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl class="section return"><dt>Returns</dt><dd>ok_t </dd></dl>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a id="a90986dc50f303564e6f5af6d3707dd20" name="a90986dc50f303564e6f5af6d3707dd20"></a>
|
||||||
|
<h2 class="memtitle"><span class="permalink"><a href="#a90986dc50f303564e6f5af6d3707dd20">◆ </a></span>setup_routing()</h2>
|
||||||
|
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="mlabels">
|
||||||
|
<tr>
|
||||||
|
<td class="mlabels-left">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">void fw::API::setup_routing </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype">const char * </td>
|
||||||
|
<td class="paramname"><em>cert</em>, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype">const char * </td>
|
||||||
|
<td class="paramname"><em>key</em> </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td>)</td>
|
||||||
|
<td></td><td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
<td class="mlabels-right">
|
||||||
|
<span class="mlabels"><span class="mlabel">private</span></span> </td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>Set up the routing/endpoints and encryption. </p>
|
||||||
|
<dl class="params"><dt>Parameters</dt><dd>
|
||||||
|
<table class="params">
|
||||||
|
<tr><td class="paramname">cert</td><td></td></tr>
|
||||||
|
<tr><td class="paramname">key</td><td></td></tr>
|
||||||
|
</table>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<hr/>The documentation for this class was generated from the following files:<ul>
|
||||||
|
<li>src/<a class="el" href="_a_p_i_8hpp_source.html">API.hpp</a></li>
|
||||||
|
<li>src/API.cpp</li>
|
||||||
|
</ul>
|
||||||
|
</div><!-- contents -->
|
||||||
|
</div><!-- doc-content -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||||
|
<ul>
|
||||||
|
<li class="navelem"><b>fw</b></li><li class="navelem"><a class="el" href="classfw_1_1_a_p_i.html">API</a></li>
|
||||||
|
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4 </li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
27
doxygen/html/classfw_1_1_a_p_i.js
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
var classfw_1_1_a_p_i =
|
||||||
|
[
|
||||||
|
[ "API", "classfw_1_1_a_p_i.html#a033d5efd077dfad456cb6e6e7dd2baca", null ],
|
||||||
|
[ "~API", "classfw_1_1_a_p_i.html#a66ac0bd592bb08d069aea199668670ab", null ],
|
||||||
|
[ "add_endpoint_to_list", "classfw_1_1_a_p_i.html#aad90a1bfa8e00c4e25a091e5e9a61772", null ],
|
||||||
|
[ "check_auth", "classfw_1_1_a_p_i.html#adc9523a1b6e6a6e8f57a514a25c35b8c", null ],
|
||||||
|
[ "construct_json_api", "classfw_1_1_a_p_i.html#aa541a477e14a992b55e3f75351887cab", null ],
|
||||||
|
[ "construct_json_api_endpoint", "classfw_1_1_a_p_i.html#a175d139d29530e2946f67789c9652da8", null ],
|
||||||
|
[ "construct_json_firewall", "classfw_1_1_a_p_i.html#a682ec7e09a230507c39cbc7d7c7427d5", null ],
|
||||||
|
[ "construct_json_firewall_rule", "classfw_1_1_a_p_i.html#ac249b6e7533414d0296bde477cecac1b", null ],
|
||||||
|
[ "delete_firewall_handler", "classfw_1_1_a_p_i.html#a592c2aa501ff920ebcc125f8d5635deb", null ],
|
||||||
|
[ "get_endpoint_list_handler", "classfw_1_1_a_p_i.html#a734cbd9da536fb297da87b4310f20ba1", null ],
|
||||||
|
[ "get_firewall_rule_handler", "classfw_1_1_a_p_i.html#ac76f5a6c9c28d71772b238a51b122e4a", null ],
|
||||||
|
[ "get_firewall_rules_handler", "classfw_1_1_a_p_i.html#ab904f77fa777a1c8c19deb8e39cf89e8", null ],
|
||||||
|
[ "get_url_base", "classfw_1_1_a_p_i.html#af5dc938ae5a274e3599d637e672b8d07", null ],
|
||||||
|
[ "json_array_response", "classfw_1_1_a_p_i.html#a1892bc26b882b055853e26ed95d8d802", null ],
|
||||||
|
[ "json_generic_response", "classfw_1_1_a_p_i.html#acbebab924241292706c0287dca5c3ff5", null ],
|
||||||
|
[ "json_message_response", "classfw_1_1_a_p_i.html#a6b7d4ce75b9cdba0dd39c6c949ef1c15", null ],
|
||||||
|
[ "json_new_attribute", "classfw_1_1_a_p_i.html#a0ff5aeb3b916dae9219041dc240d9156", null ],
|
||||||
|
[ "json_new_attribute", "classfw_1_1_a_p_i.html#aba378d97c999dda14ef2e4e97a9948f5", null ],
|
||||||
|
[ "not_found_handler", "classfw_1_1_a_p_i.html#aeb74e3b9efc2305c943683b14957ac9d", null ],
|
||||||
|
[ "post_firewall_handler", "classfw_1_1_a_p_i.html#a2d78e9dd43abb72da8872cb207db25e3", null ],
|
||||||
|
[ "put_firewall_handler", "classfw_1_1_a_p_i.html#a6ce4a9dd9afae493f6639b6fb3f6ba45", null ],
|
||||||
|
[ "request_has_all_firewall_parameter", "classfw_1_1_a_p_i.html#abab79e90786d14836dcf113077891c50", null ],
|
||||||
|
[ "setup_auth", "classfw_1_1_a_p_i.html#a45dcdd4969f70a7f1a02e49a47b16a1d", null ],
|
||||||
|
[ "setup_routing", "classfw_1_1_a_p_i.html#a90986dc50f303564e6f5af6d3707dd20", null ]
|
||||||
|
];
|
122
doxygen/html/classfw_1_1_firewall-members.html
Normal file
|
@ -0,0 +1,122 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.9.4"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||||
|
<title>ESP32/ESP8266 Firewall: Member List</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="resize.js"></script>
|
||||||
|
<script type="text/javascript" src="navtreedata.js"></script>
|
||||||
|
<script type="text/javascript" src="navtree.js"></script>
|
||||||
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||||
|
<script type="text/javascript" src="search/search.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr id="projectrow">
|
||||||
|
<td id="projectalign">
|
||||||
|
<div id="projectname">ESP32/ESP8266 Firewall<span id="projectnumber"> 1.0.0</span>
|
||||||
|
</div>
|
||||||
|
<div id="projectbrief">a software firewall for ESP23 or ESP8266</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.9.4 -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="menudata.js"></script>
|
||||||
|
<script type="text/javascript" src="menu.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
$(function() {
|
||||||
|
initMenu('',true,false,'search.php','Search');
|
||||||
|
$(document).ready(function() { init_search(); });
|
||||||
|
});
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<div id="main-nav"></div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||||
|
<div id="nav-tree">
|
||||||
|
<div id="nav-tree-contents">
|
||||||
|
<div id="nav-sync" class="sync"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="splitbar" style="-moz-user-select:none;"
|
||||||
|
class="ui-resizable-handle">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
$(document).ready(function(){initNavTree('classfw_1_1_firewall.html',''); initResizable(); });
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<div id="doc-content">
|
||||||
|
<!-- window showing the filter options -->
|
||||||
|
<div id="MSearchSelectWindow"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- iframe showing the search results (closed by default) -->
|
||||||
|
<div id="MSearchResultsWindow">
|
||||||
|
<iframe src="javascript:void(0)" frameborder="0"
|
||||||
|
name="MSearchResults" id="MSearchResults">
|
||||||
|
</iframe>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="header">
|
||||||
|
<div class="headertitle"><div class="title">fw::Firewall Member List</div></div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
|
||||||
|
<p>This is the complete list of members for <a class="el" href="classfw_1_1_firewall.html">fw::Firewall</a>, including all inherited members.</p>
|
||||||
|
<table class="directory">
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classfw_1_1_firewall.html#aae2a4a36257033c91f8f183b11de82c5">add_rule_to_firewall</a>(firewall_rule_t *rule_ptr, const bool save_in_eeprom=true)</td><td class="entry"><a class="el" href="classfw_1_1_firewall.html">fw::Firewall</a></td><td class="entry"></td></tr>
|
||||||
|
<tr class="odd"><td class="entry"><a class="el" href="classfw_1_1_firewall.html#af1d9481f13052673c64aaf88d019e01d">add_rule_to_firewall</a>(String *args)</td><td class="entry"><a class="el" href="classfw_1_1_firewall.html">fw::Firewall</a></td><td class="entry"></td></tr>
|
||||||
|
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>amount_of_rules</b> (defined in <a class="el" href="classfw_1_1_firewall.html">fw::Firewall</a>)</td><td class="entry"><a class="el" href="classfw_1_1_firewall.html">fw::Firewall</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
|
||||||
|
<tr class="odd"><td class="entry"><a class="el" href="classfw_1_1_firewall.html#a25fac8da12651a927c8285aa75e213d1">delete_rule_from_firewall</a>(const uint8_t key)</td><td class="entry"><a class="el" href="classfw_1_1_firewall.html">fw::Firewall</a></td><td class="entry"></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classfw_1_1_firewall.html#a2cc2717bd5999bc9a2f24ae33e4abd42">Firewall</a>()</td><td class="entry"><a class="el" href="classfw_1_1_firewall.html">fw::Firewall</a></td><td class="entry"></td></tr>
|
||||||
|
<tr class="odd"><td class="entry"><a class="el" href="classfw_1_1_firewall.html#a6815085477349f902e77cc5564b1b5ba">get_packet_information</a>(struct pbuf *pbuf)</td><td class="entry"><a class="el" href="classfw_1_1_firewall.html">fw::Firewall</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classfw_1_1_firewall.html#a7aa017cfb1ae6d6748d3f8c48e18dcf2">get_rule_from_firewall</a>(const uint8_t key)</td><td class="entry"><a class="el" href="classfw_1_1_firewall.html">fw::Firewall</a></td><td class="entry"></td></tr>
|
||||||
|
<tr class="odd"><td class="entry"><a class="el" href="classfw_1_1_firewall.html#a86f7d6ef56888f673fa46c4bc9ad3009">get_rule_head</a>()</td><td class="entry"><a class="el" href="classfw_1_1_firewall.html">fw::Firewall</a></td><td class="entry"></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classfw_1_1_firewall.html#a81eca0d34c28e5c4244b557a1f8e047d">is_packet_allowed</a>(struct pbuf *pbuf)</td><td class="entry"><a class="el" href="classfw_1_1_firewall.html">fw::Firewall</a></td><td class="entry"></td></tr>
|
||||||
|
<tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>memory</b> (defined in <a class="el" href="classfw_1_1_storage.html">fw::Storage</a>)</td><td class="entry"><a class="el" href="classfw_1_1_storage.html">fw::Storage</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classfw_1_1_storage.html#aba4b010a57e6f5f5255b41d832891394">retrieve_amount_of_rules</a>()</td><td class="entry"><a class="el" href="classfw_1_1_storage.html">fw::Storage</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
|
||||||
|
<tr class="odd"><td class="entry"><a class="el" href="classfw_1_1_storage.html#a20d0089533fea31893b323f7fde8535c">retrieve_firewall_rule</a>(const uint8_t key)</td><td class="entry"><a class="el" href="classfw_1_1_storage.html">fw::Storage</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classfw_1_1_firewall.html#a26fea38729777e00e5ee3a8d58f785b1">rule_allows_packet</a>(firewall_rule_t *rule_ptr, my_packet_t *packet)</td><td class="entry"><a class="el" href="classfw_1_1_firewall.html">fw::Firewall</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
|
||||||
|
<tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>rule_head</b> (defined in <a class="el" href="classfw_1_1_firewall.html">fw::Firewall</a>)</td><td class="entry"><a class="el" href="classfw_1_1_firewall.html">fw::Firewall</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classfw_1_1_storage.html#a9b9fcc0e523d4b14a77e33a5806a348e">Storage</a>()</td><td class="entry"><a class="el" href="classfw_1_1_storage.html">fw::Storage</a></td><td class="entry"></td></tr>
|
||||||
|
<tr class="odd"><td class="entry"><a class="el" href="classfw_1_1_storage.html#a7747d174b1b3dd6bb417c1c5a8ac259c">store_all_firewall_rules</a>(firewall_rule_t *rule_head)</td><td class="entry"><a class="el" href="classfw_1_1_storage.html">fw::Storage</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classfw_1_1_storage.html#a79d1951d339a19edab7fd22aaa68cc96">store_amount_of_rules</a>(const uint8_t new_amount)</td><td class="entry"><a class="el" href="classfw_1_1_storage.html">fw::Storage</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
|
||||||
|
<tr class="odd"><td class="entry"><a class="el" href="classfw_1_1_storage.html#a9c1d226dbad072a6d0bf7e3507b7863b">store_firewall_rule</a>(firewall_rule_t *rule_ptr)</td><td class="entry"><a class="el" href="classfw_1_1_storage.html">fw::Storage</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classfw_1_1_firewall.html#a987ec9a98b7d6ef56cf569e0290b3594">update_rule_of_firewall</a>(String *args, const uint8_t key)</td><td class="entry"><a class="el" href="classfw_1_1_firewall.html">fw::Firewall</a></td><td class="entry"></td></tr>
|
||||||
|
<tr class="odd"><td class="entry"><a class="el" href="classfw_1_1_firewall.html#a2c7c043d66b645ecc15e71561132057d">~Firewall</a>()</td><td class="entry"><a class="el" href="classfw_1_1_firewall.html">fw::Firewall</a></td><td class="entry"></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classfw_1_1_storage.html#a11b6f2d893abc79879418853d4f840e1">~Storage</a>()</td><td class="entry"><a class="el" href="classfw_1_1_storage.html">fw::Storage</a></td><td class="entry"></td></tr>
|
||||||
|
</table></div><!-- contents -->
|
||||||
|
</div><!-- doc-content -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||||
|
<ul>
|
||||||
|
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4 </li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
489
doxygen/html/classfw_1_1_firewall.html
Normal file
|
@ -0,0 +1,489 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.9.4"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||||
|
<title>ESP32/ESP8266 Firewall: fw::Firewall Class Reference</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="resize.js"></script>
|
||||||
|
<script type="text/javascript" src="navtreedata.js"></script>
|
||||||
|
<script type="text/javascript" src="navtree.js"></script>
|
||||||
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||||
|
<script type="text/javascript" src="search/search.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr id="projectrow">
|
||||||
|
<td id="projectalign">
|
||||||
|
<div id="projectname">ESP32/ESP8266 Firewall<span id="projectnumber"> 1.0.0</span>
|
||||||
|
</div>
|
||||||
|
<div id="projectbrief">a software firewall for ESP23 or ESP8266</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.9.4 -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="menudata.js"></script>
|
||||||
|
<script type="text/javascript" src="menu.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
$(function() {
|
||||||
|
initMenu('',true,false,'search.php','Search');
|
||||||
|
$(document).ready(function() { init_search(); });
|
||||||
|
});
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<div id="main-nav"></div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||||
|
<div id="nav-tree">
|
||||||
|
<div id="nav-tree-contents">
|
||||||
|
<div id="nav-sync" class="sync"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="splitbar" style="-moz-user-select:none;"
|
||||||
|
class="ui-resizable-handle">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
$(document).ready(function(){initNavTree('classfw_1_1_firewall.html',''); initResizable(); });
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<div id="doc-content">
|
||||||
|
<!-- window showing the filter options -->
|
||||||
|
<div id="MSearchSelectWindow"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- iframe showing the search results (closed by default) -->
|
||||||
|
<div id="MSearchResultsWindow">
|
||||||
|
<iframe src="javascript:void(0)" frameborder="0"
|
||||||
|
name="MSearchResults" id="MSearchResults">
|
||||||
|
</iframe>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="header">
|
||||||
|
<div class="summary">
|
||||||
|
<a href="#pub-methods">Public Member Functions</a> |
|
||||||
|
<a href="#pro-methods">Protected Member Functions</a> |
|
||||||
|
<a href="#pro-attribs">Protected Attributes</a> |
|
||||||
|
<a href="classfw_1_1_firewall-members.html">List of all members</a> </div>
|
||||||
|
<div class="headertitle"><div class="title">fw::Firewall Class Reference</div></div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
|
||||||
|
<p>The <a class="el" href="classfw_1_1_firewall.html" title="The Firewall will handle Firewall rules as linked list.">Firewall</a> will handle <a class="el" href="classfw_1_1_firewall.html" title="The Firewall will handle Firewall rules as linked list.">Firewall</a> rules as linked list.
|
||||||
|
<a href="classfw_1_1_firewall.html#details">More...</a></p>
|
||||||
|
|
||||||
|
<p><code>#include <<a class="el" href="_firewall_8hpp_source.html">Firewall.hpp</a>></code></p>
|
||||||
|
<div class="dynheader">
|
||||||
|
Inheritance diagram for fw::Firewall:</div>
|
||||||
|
<div class="dyncontent">
|
||||||
|
<div class="center">
|
||||||
|
<img src="classfw_1_1_firewall.png" usemap="#fw::Firewall_map" alt=""/>
|
||||||
|
<map id="fw::Firewall_map" name="fw::Firewall_map">
|
||||||
|
<area href="classfw_1_1_storage.html" title="The Storage will handle Firewall rules in EEPROM." alt="fw::Storage" shape="rect" coords="0,0,76,24"/>
|
||||||
|
</map>
|
||||||
|
</div></div>
|
||||||
|
<table class="memberdecls">
|
||||||
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
|
||||||
|
Public Member Functions</h2></td></tr>
|
||||||
|
<tr class="memitem:a2cc2717bd5999bc9a2f24ae33e4abd42"><td class="memItemLeft" align="right" valign="top"><a id="a2cc2717bd5999bc9a2f24ae33e4abd42" name="a2cc2717bd5999bc9a2f24ae33e4abd42"></a>
|
||||||
|
 </td><td class="memItemRight" valign="bottom"><b>Firewall</b> ()</td></tr>
|
||||||
|
<tr class="memdesc:a2cc2717bd5999bc9a2f24ae33e4abd42"><td class="mdescLeft"> </td><td class="mdescRight">Construct a new <a class="el" href="classfw_1_1_firewall.html" title="The Firewall will handle Firewall rules as linked list.">Firewall</a> object, retrieve current amount of firewall rules and restore them from <a class="el" href="classfw_1_1_storage.html" title="The Storage will handle Firewall rules in EEPROM.">Storage</a>. <br /></td></tr>
|
||||||
|
<tr class="separator:a2cc2717bd5999bc9a2f24ae33e4abd42"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a2c7c043d66b645ecc15e71561132057d"><td class="memItemLeft" align="right" valign="top"><a id="a2c7c043d66b645ecc15e71561132057d" name="a2c7c043d66b645ecc15e71561132057d"></a>
|
||||||
|
 </td><td class="memItemRight" valign="bottom"><b>~Firewall</b> ()</td></tr>
|
||||||
|
<tr class="memdesc:a2c7c043d66b645ecc15e71561132057d"><td class="mdescLeft"> </td><td class="mdescRight">Destroy the <a class="el" href="classfw_1_1_firewall.html" title="The Firewall will handle Firewall rules as linked list.">Firewall</a> object. <br /></td></tr>
|
||||||
|
<tr class="separator:a2c7c043d66b645ecc15e71561132057d"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a86f7d6ef56888f673fa46c4bc9ad3009"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structfirewall__rule__t.html">firewall_rule_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classfw_1_1_firewall.html#a86f7d6ef56888f673fa46c4bc9ad3009">get_rule_head</a> ()</td></tr>
|
||||||
|
<tr class="memdesc:a86f7d6ef56888f673fa46c4bc9ad3009"><td class="mdescLeft"> </td><td class="mdescRight">Get the current rule head, it indicates the first rule position of the linked list. <a href="classfw_1_1_firewall.html#a86f7d6ef56888f673fa46c4bc9ad3009">More...</a><br /></td></tr>
|
||||||
|
<tr class="separator:a86f7d6ef56888f673fa46c4bc9ad3009"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:aae2a4a36257033c91f8f183b11de82c5"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classfw_1_1_firewall.html#aae2a4a36257033c91f8f183b11de82c5">add_rule_to_firewall</a> (<a class="el" href="structfirewall__rule__t.html">firewall_rule_t</a> *rule_ptr, const bool save_in_eeprom=true)</td></tr>
|
||||||
|
<tr class="memdesc:aae2a4a36257033c91f8f183b11de82c5"><td class="mdescLeft"> </td><td class="mdescRight">add a new rule to the linked list, update amount of rules, store it in <a class="el" href="classfw_1_1_storage.html" title="The Storage will handle Firewall rules in EEPROM.">Storage</a> if save_in_eeprom is true <a href="classfw_1_1_firewall.html#aae2a4a36257033c91f8f183b11de82c5">More...</a><br /></td></tr>
|
||||||
|
<tr class="separator:aae2a4a36257033c91f8f183b11de82c5"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:af1d9481f13052673c64aaf88d019e01d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structfirewall__rule__t.html">firewall_rule_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classfw_1_1_firewall.html#af1d9481f13052673c64aaf88d019e01d">add_rule_to_firewall</a> (String *args)</td></tr>
|
||||||
|
<tr class="memdesc:af1d9481f13052673c64aaf88d019e01d"><td class="mdescLeft"> </td><td class="mdescRight">add a new rule to the firewall, providing request parameter <a href="classfw_1_1_firewall.html#af1d9481f13052673c64aaf88d019e01d">More...</a><br /></td></tr>
|
||||||
|
<tr class="separator:af1d9481f13052673c64aaf88d019e01d"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a987ec9a98b7d6ef56cf569e0290b3594"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structfirewall__rule__t.html">firewall_rule_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classfw_1_1_firewall.html#a987ec9a98b7d6ef56cf569e0290b3594">update_rule_of_firewall</a> (String *args, const uint8_t key)</td></tr>
|
||||||
|
<tr class="memdesc:a987ec9a98b7d6ef56cf569e0290b3594"><td class="mdescLeft"> </td><td class="mdescRight">update rule of firewall, store it in <a class="el" href="classfw_1_1_storage.html" title="The Storage will handle Firewall rules in EEPROM.">Storage</a> <a href="classfw_1_1_firewall.html#a987ec9a98b7d6ef56cf569e0290b3594">More...</a><br /></td></tr>
|
||||||
|
<tr class="separator:a987ec9a98b7d6ef56cf569e0290b3594"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a7aa017cfb1ae6d6748d3f8c48e18dcf2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structfirewall__rule__t.html">firewall_rule_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classfw_1_1_firewall.html#a7aa017cfb1ae6d6748d3f8c48e18dcf2">get_rule_from_firewall</a> (const uint8_t key)</td></tr>
|
||||||
|
<tr class="memdesc:a7aa017cfb1ae6d6748d3f8c48e18dcf2"><td class="mdescLeft"> </td><td class="mdescRight">retrieve rule from the firewall linked list <a href="classfw_1_1_firewall.html#a7aa017cfb1ae6d6748d3f8c48e18dcf2">More...</a><br /></td></tr>
|
||||||
|
<tr class="separator:a7aa017cfb1ae6d6748d3f8c48e18dcf2"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a25fac8da12651a927c8285aa75e213d1"><td class="memItemLeft" align="right" valign="top">ok_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classfw_1_1_firewall.html#a25fac8da12651a927c8285aa75e213d1">delete_rule_from_firewall</a> (const uint8_t key)</td></tr>
|
||||||
|
<tr class="memdesc:a25fac8da12651a927c8285aa75e213d1"><td class="mdescLeft"> </td><td class="mdescRight">delete rule from the firewall linked list, update amount of rules, store new order of rules in <a class="el" href="classfw_1_1_storage.html" title="The Storage will handle Firewall rules in EEPROM.">Storage</a> <a href="classfw_1_1_firewall.html#a25fac8da12651a927c8285aa75e213d1">More...</a><br /></td></tr>
|
||||||
|
<tr class="separator:a25fac8da12651a927c8285aa75e213d1"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a81eca0d34c28e5c4244b557a1f8e047d"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classfw_1_1_firewall.html#a81eca0d34c28e5c4244b557a1f8e047d">is_packet_allowed</a> (struct pbuf *pbuf)</td></tr>
|
||||||
|
<tr class="memdesc:a81eca0d34c28e5c4244b557a1f8e047d"><td class="mdescLeft"> </td><td class="mdescRight">checks if network packet is allowed to pass firewall <a href="classfw_1_1_firewall.html#a81eca0d34c28e5c4244b557a1f8e047d">More...</a><br /></td></tr>
|
||||||
|
<tr class="separator:a81eca0d34c28e5c4244b557a1f8e047d"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="inherit_header pub_methods_classfw_1_1_storage"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classfw_1_1_storage')"><img src="closed.png" alt="-"/> Public Member Functions inherited from <a class="el" href="classfw_1_1_storage.html">fw::Storage</a></td></tr>
|
||||||
|
<tr class="memitem:a9b9fcc0e523d4b14a77e33a5806a348e inherit pub_methods_classfw_1_1_storage"><td class="memItemLeft" align="right" valign="top"><a id="a9b9fcc0e523d4b14a77e33a5806a348e" name="a9b9fcc0e523d4b14a77e33a5806a348e"></a>
|
||||||
|
 </td><td class="memItemRight" valign="bottom"><b>Storage</b> ()</td></tr>
|
||||||
|
<tr class="memdesc:a9b9fcc0e523d4b14a77e33a5806a348e inherit pub_methods_classfw_1_1_storage"><td class="mdescLeft"> </td><td class="mdescRight">Construct a new <a class="el" href="classfw_1_1_storage.html" title="The Storage will handle Firewall rules in EEPROM.">Storage</a> object. <br /></td></tr>
|
||||||
|
<tr class="separator:a9b9fcc0e523d4b14a77e33a5806a348e inherit pub_methods_classfw_1_1_storage"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a11b6f2d893abc79879418853d4f840e1 inherit pub_methods_classfw_1_1_storage"><td class="memItemLeft" align="right" valign="top"><a id="a11b6f2d893abc79879418853d4f840e1" name="a11b6f2d893abc79879418853d4f840e1"></a>
|
||||||
|
 </td><td class="memItemRight" valign="bottom"><b>~Storage</b> ()</td></tr>
|
||||||
|
<tr class="memdesc:a11b6f2d893abc79879418853d4f840e1 inherit pub_methods_classfw_1_1_storage"><td class="mdescLeft"> </td><td class="mdescRight">Destroy the <a class="el" href="classfw_1_1_storage.html" title="The Storage will handle Firewall rules in EEPROM.">Storage</a> object. <br /></td></tr>
|
||||||
|
<tr class="separator:a11b6f2d893abc79879418853d4f840e1 inherit pub_methods_classfw_1_1_storage"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
</table><table class="memberdecls">
|
||||||
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-methods" name="pro-methods"></a>
|
||||||
|
Protected Member Functions</h2></td></tr>
|
||||||
|
<tr class="memitem:a26fea38729777e00e5ee3a8d58f785b1"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classfw_1_1_firewall.html#a26fea38729777e00e5ee3a8d58f785b1">rule_allows_packet</a> (<a class="el" href="structfirewall__rule__t.html">firewall_rule_t</a> *rule_ptr, <a class="el" href="structmy__packet__t.html">my_packet_t</a> *packet)</td></tr>
|
||||||
|
<tr class="memdesc:a26fea38729777e00e5ee3a8d58f785b1"><td class="mdescLeft"> </td><td class="mdescRight">checks if network packet is allowed by the rule <a href="classfw_1_1_firewall.html#a26fea38729777e00e5ee3a8d58f785b1">More...</a><br /></td></tr>
|
||||||
|
<tr class="separator:a26fea38729777e00e5ee3a8d58f785b1"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a6815085477349f902e77cc5564b1b5ba"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmy__packet__t.html">my_packet_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classfw_1_1_firewall.html#a6815085477349f902e77cc5564b1b5ba">get_packet_information</a> (struct pbuf *pbuf)</td></tr>
|
||||||
|
<tr class="memdesc:a6815085477349f902e77cc5564b1b5ba"><td class="mdescLeft"> </td><td class="mdescRight">prepares the necessary information to check packet <a href="classfw_1_1_firewall.html#a6815085477349f902e77cc5564b1b5ba">More...</a><br /></td></tr>
|
||||||
|
<tr class="separator:a6815085477349f902e77cc5564b1b5ba"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="inherit_header pro_methods_classfw_1_1_storage"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classfw_1_1_storage')"><img src="closed.png" alt="-"/> Protected Member Functions inherited from <a class="el" href="classfw_1_1_storage.html">fw::Storage</a></td></tr>
|
||||||
|
<tr class="memitem:aba4b010a57e6f5f5255b41d832891394 inherit pro_methods_classfw_1_1_storage"><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classfw_1_1_storage.html#aba4b010a57e6f5f5255b41d832891394">retrieve_amount_of_rules</a> ()</td></tr>
|
||||||
|
<tr class="memdesc:aba4b010a57e6f5f5255b41d832891394 inherit pro_methods_classfw_1_1_storage"><td class="mdescLeft"> </td><td class="mdescRight">retrieve the current amount of <a class="el" href="classfw_1_1_firewall.html" title="The Firewall will handle Firewall rules as linked list.">Firewall</a> rules in the <a class="el" href="classfw_1_1_storage.html" title="The Storage will handle Firewall rules in EEPROM.">Storage</a> <a href="classfw_1_1_storage.html#aba4b010a57e6f5f5255b41d832891394">More...</a><br /></td></tr>
|
||||||
|
<tr class="separator:aba4b010a57e6f5f5255b41d832891394 inherit pro_methods_classfw_1_1_storage"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a79d1951d339a19edab7fd22aaa68cc96 inherit pro_methods_classfw_1_1_storage"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classfw_1_1_storage.html#a79d1951d339a19edab7fd22aaa68cc96">store_amount_of_rules</a> (const uint8_t new_amount)</td></tr>
|
||||||
|
<tr class="memdesc:a79d1951d339a19edab7fd22aaa68cc96 inherit pro_methods_classfw_1_1_storage"><td class="mdescLeft"> </td><td class="mdescRight">store a new amount of <a class="el" href="classfw_1_1_firewall.html" title="The Firewall will handle Firewall rules as linked list.">Firewall</a> rules in the <a class="el" href="classfw_1_1_storage.html" title="The Storage will handle Firewall rules in EEPROM.">Storage</a> <a href="classfw_1_1_storage.html#a79d1951d339a19edab7fd22aaa68cc96">More...</a><br /></td></tr>
|
||||||
|
<tr class="separator:a79d1951d339a19edab7fd22aaa68cc96 inherit pro_methods_classfw_1_1_storage"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a20d0089533fea31893b323f7fde8535c inherit pro_methods_classfw_1_1_storage"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structfirewall__rule__t.html">firewall_rule_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classfw_1_1_storage.html#a20d0089533fea31893b323f7fde8535c">retrieve_firewall_rule</a> (const uint8_t key)</td></tr>
|
||||||
|
<tr class="memdesc:a20d0089533fea31893b323f7fde8535c inherit pro_methods_classfw_1_1_storage"><td class="mdescLeft"> </td><td class="mdescRight">retrieve a <a class="el" href="classfw_1_1_firewall.html" title="The Firewall will handle Firewall rules as linked list.">Firewall</a> rule from <a class="el" href="classfw_1_1_storage.html" title="The Storage will handle Firewall rules in EEPROM.">Storage</a> <a href="classfw_1_1_storage.html#a20d0089533fea31893b323f7fde8535c">More...</a><br /></td></tr>
|
||||||
|
<tr class="separator:a20d0089533fea31893b323f7fde8535c inherit pro_methods_classfw_1_1_storage"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a7747d174b1b3dd6bb417c1c5a8ac259c inherit pro_methods_classfw_1_1_storage"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classfw_1_1_storage.html#a7747d174b1b3dd6bb417c1c5a8ac259c">store_all_firewall_rules</a> (<a class="el" href="structfirewall__rule__t.html">firewall_rule_t</a> *rule_head)</td></tr>
|
||||||
|
<tr class="memdesc:a7747d174b1b3dd6bb417c1c5a8ac259c inherit pro_methods_classfw_1_1_storage"><td class="mdescLeft"> </td><td class="mdescRight">store all <a class="el" href="classfw_1_1_firewall.html" title="The Firewall will handle Firewall rules as linked list.">Firewall</a> rules in <a class="el" href="classfw_1_1_storage.html" title="The Storage will handle Firewall rules in EEPROM.">Storage</a> <a href="classfw_1_1_storage.html#a7747d174b1b3dd6bb417c1c5a8ac259c">More...</a><br /></td></tr>
|
||||||
|
<tr class="separator:a7747d174b1b3dd6bb417c1c5a8ac259c inherit pro_methods_classfw_1_1_storage"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a9c1d226dbad072a6d0bf7e3507b7863b inherit pro_methods_classfw_1_1_storage"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classfw_1_1_storage.html#a9c1d226dbad072a6d0bf7e3507b7863b">store_firewall_rule</a> (<a class="el" href="structfirewall__rule__t.html">firewall_rule_t</a> *rule_ptr)</td></tr>
|
||||||
|
<tr class="memdesc:a9c1d226dbad072a6d0bf7e3507b7863b inherit pro_methods_classfw_1_1_storage"><td class="mdescLeft"> </td><td class="mdescRight">store <a class="el" href="classfw_1_1_firewall.html" title="The Firewall will handle Firewall rules as linked list.">Firewall</a> rule in <a class="el" href="classfw_1_1_storage.html" title="The Storage will handle Firewall rules in EEPROM.">Storage</a> <a href="classfw_1_1_storage.html#a9c1d226dbad072a6d0bf7e3507b7863b">More...</a><br /></td></tr>
|
||||||
|
<tr class="separator:a9c1d226dbad072a6d0bf7e3507b7863b inherit pro_methods_classfw_1_1_storage"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
</table><table class="memberdecls">
|
||||||
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-attribs" name="pro-attribs"></a>
|
||||||
|
Protected Attributes</h2></td></tr>
|
||||||
|
<tr class="memitem:aa67aba1e6dc06e88119b1681757ebc44"><td class="memItemLeft" align="right" valign="top"><a id="aa67aba1e6dc06e88119b1681757ebc44" name="aa67aba1e6dc06e88119b1681757ebc44"></a>
|
||||||
|
uint8_t </td><td class="memItemRight" valign="bottom"><b>amount_of_rules</b> = 0</td></tr>
|
||||||
|
<tr class="separator:aa67aba1e6dc06e88119b1681757ebc44"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a69d03fa8fcaffd218ef4520e98d654b1"><td class="memItemLeft" align="right" valign="top"><a id="a69d03fa8fcaffd218ef4520e98d654b1" name="a69d03fa8fcaffd218ef4520e98d654b1"></a>
|
||||||
|
<a class="el" href="structfirewall__rule__t.html">firewall_rule_t</a> * </td><td class="memItemRight" valign="bottom"><b>rule_head</b> = NULL</td></tr>
|
||||||
|
<tr class="separator:a69d03fa8fcaffd218ef4520e98d654b1"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
</table>
|
||||||
|
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||||
|
<div class="textblock"><p >The <a class="el" href="classfw_1_1_firewall.html" title="The Firewall will handle Firewall rules as linked list.">Firewall</a> will handle <a class="el" href="classfw_1_1_firewall.html" title="The Firewall will handle Firewall rules as linked list.">Firewall</a> rules as linked list. </p>
|
||||||
|
</div><h2 class="groupheader">Member Function Documentation</h2>
|
||||||
|
<a id="aae2a4a36257033c91f8f183b11de82c5" name="aae2a4a36257033c91f8f183b11de82c5"></a>
|
||||||
|
<h2 class="memtitle"><span class="permalink"><a href="#aae2a4a36257033c91f8f183b11de82c5">◆ </a></span>add_rule_to_firewall() <span class="overload">[1/2]</span></h2>
|
||||||
|
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">void fw::Firewall::add_rule_to_firewall </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype"><a class="el" href="structfirewall__rule__t.html">firewall_rule_t</a> * </td>
|
||||||
|
<td class="paramname"><em>rule_ptr</em>, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype">const bool </td>
|
||||||
|
<td class="paramname"><em>save_in_eeprom</em> = <code>true</code> </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td>)</td>
|
||||||
|
<td></td><td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>add a new rule to the linked list, update amount of rules, store it in <a class="el" href="classfw_1_1_storage.html" title="The Storage will handle Firewall rules in EEPROM.">Storage</a> if save_in_eeprom is true </p>
|
||||||
|
<dl class="params"><dt>Parameters</dt><dd>
|
||||||
|
<table class="params">
|
||||||
|
<tr><td class="paramname">rule_ptr</td><td></td></tr>
|
||||||
|
<tr><td class="paramname">save_in_eeprom</td><td></td></tr>
|
||||||
|
</table>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a id="af1d9481f13052673c64aaf88d019e01d" name="af1d9481f13052673c64aaf88d019e01d"></a>
|
||||||
|
<h2 class="memtitle"><span class="permalink"><a href="#af1d9481f13052673c64aaf88d019e01d">◆ </a></span>add_rule_to_firewall() <span class="overload">[2/2]</span></h2>
|
||||||
|
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname"><a class="el" href="structfirewall__rule__t.html">firewall_rule_t</a> * fw::Firewall::add_rule_to_firewall </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype">String * </td>
|
||||||
|
<td class="paramname"><em>args</em></td><td>)</td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>add a new rule to the firewall, providing request parameter </p>
|
||||||
|
<dl class="params"><dt>Parameters</dt><dd>
|
||||||
|
<table class="params">
|
||||||
|
<tr><td class="paramname">args</td><td></td></tr>
|
||||||
|
</table>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl class="section return"><dt>Returns</dt><dd>firewall_rule_t* </dd></dl>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a id="a25fac8da12651a927c8285aa75e213d1" name="a25fac8da12651a927c8285aa75e213d1"></a>
|
||||||
|
<h2 class="memtitle"><span class="permalink"><a href="#a25fac8da12651a927c8285aa75e213d1">◆ </a></span>delete_rule_from_firewall()</h2>
|
||||||
|
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">ok_t fw::Firewall::delete_rule_from_firewall </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype">const uint8_t </td>
|
||||||
|
<td class="paramname"><em>key</em></td><td>)</td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>delete rule from the firewall linked list, update amount of rules, store new order of rules in <a class="el" href="classfw_1_1_storage.html" title="The Storage will handle Firewall rules in EEPROM.">Storage</a> </p>
|
||||||
|
<dl class="params"><dt>Parameters</dt><dd>
|
||||||
|
<table class="params">
|
||||||
|
<tr><td class="paramname">key</td><td></td></tr>
|
||||||
|
</table>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl class="section return"><dt>Returns</dt><dd>ok_t </dd></dl>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a id="a6815085477349f902e77cc5564b1b5ba" name="a6815085477349f902e77cc5564b1b5ba"></a>
|
||||||
|
<h2 class="memtitle"><span class="permalink"><a href="#a6815085477349f902e77cc5564b1b5ba">◆ </a></span>get_packet_information()</h2>
|
||||||
|
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="mlabels">
|
||||||
|
<tr>
|
||||||
|
<td class="mlabels-left">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname"><a class="el" href="structmy__packet__t.html">my_packet_t</a> * fw::Firewall::get_packet_information </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype">struct pbuf * </td>
|
||||||
|
<td class="paramname"><em>pbuf</em></td><td>)</td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
<td class="mlabels-right">
|
||||||
|
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>prepares the necessary information to check packet </p>
|
||||||
|
<dl class="params"><dt>Parameters</dt><dd>
|
||||||
|
<table class="params">
|
||||||
|
<tr><td class="paramname">pbuf</td><td></td></tr>
|
||||||
|
</table>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl class="section return"><dt>Returns</dt><dd>my_packet_t* </dd></dl>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a id="a7aa017cfb1ae6d6748d3f8c48e18dcf2" name="a7aa017cfb1ae6d6748d3f8c48e18dcf2"></a>
|
||||||
|
<h2 class="memtitle"><span class="permalink"><a href="#a7aa017cfb1ae6d6748d3f8c48e18dcf2">◆ </a></span>get_rule_from_firewall()</h2>
|
||||||
|
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname"><a class="el" href="structfirewall__rule__t.html">firewall_rule_t</a> * fw::Firewall::get_rule_from_firewall </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype">const uint8_t </td>
|
||||||
|
<td class="paramname"><em>key</em></td><td>)</td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>retrieve rule from the firewall linked list </p>
|
||||||
|
<dl class="params"><dt>Parameters</dt><dd>
|
||||||
|
<table class="params">
|
||||||
|
<tr><td class="paramname">key</td><td></td></tr>
|
||||||
|
</table>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl class="section return"><dt>Returns</dt><dd>firewall_rule_t* </dd></dl>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a id="a86f7d6ef56888f673fa46c4bc9ad3009" name="a86f7d6ef56888f673fa46c4bc9ad3009"></a>
|
||||||
|
<h2 class="memtitle"><span class="permalink"><a href="#a86f7d6ef56888f673fa46c4bc9ad3009">◆ </a></span>get_rule_head()</h2>
|
||||||
|
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname"><a class="el" href="structfirewall__rule__t.html">firewall_rule_t</a> * fw::Firewall::get_rule_head </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramname"></td><td>)</td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>Get the current rule head, it indicates the first rule position of the linked list. </p>
|
||||||
|
<dl class="section return"><dt>Returns</dt><dd>firewall_rule_t* </dd></dl>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a id="a81eca0d34c28e5c4244b557a1f8e047d" name="a81eca0d34c28e5c4244b557a1f8e047d"></a>
|
||||||
|
<h2 class="memtitle"><span class="permalink"><a href="#a81eca0d34c28e5c4244b557a1f8e047d">◆ </a></span>is_packet_allowed()</h2>
|
||||||
|
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">bool fw::Firewall::is_packet_allowed </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype">struct pbuf * </td>
|
||||||
|
<td class="paramname"><em>pbuf</em></td><td>)</td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>checks if network packet is allowed to pass firewall </p>
|
||||||
|
<dl class="params"><dt>Parameters</dt><dd>
|
||||||
|
<table class="params">
|
||||||
|
<tr><td class="paramname">pbuf</td><td></td></tr>
|
||||||
|
</table>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl class="section return"><dt>Returns</dt><dd>true </dd>
|
||||||
|
<dd>
|
||||||
|
false </dd></dl>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a id="a26fea38729777e00e5ee3a8d58f785b1" name="a26fea38729777e00e5ee3a8d58f785b1"></a>
|
||||||
|
<h2 class="memtitle"><span class="permalink"><a href="#a26fea38729777e00e5ee3a8d58f785b1">◆ </a></span>rule_allows_packet()</h2>
|
||||||
|
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="mlabels">
|
||||||
|
<tr>
|
||||||
|
<td class="mlabels-left">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">bool fw::Firewall::rule_allows_packet </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype"><a class="el" href="structfirewall__rule__t.html">firewall_rule_t</a> * </td>
|
||||||
|
<td class="paramname"><em>rule_ptr</em>, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype"><a class="el" href="structmy__packet__t.html">my_packet_t</a> * </td>
|
||||||
|
<td class="paramname"><em>packet</em> </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td>)</td>
|
||||||
|
<td></td><td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
<td class="mlabels-right">
|
||||||
|
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>checks if network packet is allowed by the rule </p>
|
||||||
|
<dl class="params"><dt>Parameters</dt><dd>
|
||||||
|
<table class="params">
|
||||||
|
<tr><td class="paramname">rule_ptr</td><td></td></tr>
|
||||||
|
<tr><td class="paramname">packet</td><td></td></tr>
|
||||||
|
</table>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl class="section return"><dt>Returns</dt><dd>true </dd>
|
||||||
|
<dd>
|
||||||
|
false </dd></dl>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a id="a987ec9a98b7d6ef56cf569e0290b3594" name="a987ec9a98b7d6ef56cf569e0290b3594"></a>
|
||||||
|
<h2 class="memtitle"><span class="permalink"><a href="#a987ec9a98b7d6ef56cf569e0290b3594">◆ </a></span>update_rule_of_firewall()</h2>
|
||||||
|
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname"><a class="el" href="structfirewall__rule__t.html">firewall_rule_t</a> * fw::Firewall::update_rule_of_firewall </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype">String * </td>
|
||||||
|
<td class="paramname"><em>args</em>, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype">const uint8_t </td>
|
||||||
|
<td class="paramname"><em>key</em> </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td>)</td>
|
||||||
|
<td></td><td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>update rule of firewall, store it in <a class="el" href="classfw_1_1_storage.html" title="The Storage will handle Firewall rules in EEPROM.">Storage</a> </p>
|
||||||
|
<dl class="params"><dt>Parameters</dt><dd>
|
||||||
|
<table class="params">
|
||||||
|
<tr><td class="paramname">args</td><td></td></tr>
|
||||||
|
<tr><td class="paramname">key</td><td></td></tr>
|
||||||
|
</table>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl class="section return"><dt>Returns</dt><dd>firewall_rule_t* </dd></dl>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<hr/>The documentation for this class was generated from the following files:<ul>
|
||||||
|
<li>src/<a class="el" href="_firewall_8hpp_source.html">Firewall.hpp</a></li>
|
||||||
|
<li>src/Firewall.cpp</li>
|
||||||
|
</ul>
|
||||||
|
</div><!-- contents -->
|
||||||
|
</div><!-- doc-content -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||||
|
<ul>
|
||||||
|
<li class="navelem"><b>fw</b></li><li class="navelem"><a class="el" href="classfw_1_1_firewall.html">Firewall</a></li>
|
||||||
|
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4 </li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
BIN
doxygen/html/classfw_1_1_firewall.png
Normal file
After Width: | Height: | Size: 451 B |
109
doxygen/html/classfw_1_1_storage-members.html
Normal file
|
@ -0,0 +1,109 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.9.4"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||||
|
<title>ESP32/ESP8266 Firewall: Member List</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="resize.js"></script>
|
||||||
|
<script type="text/javascript" src="navtreedata.js"></script>
|
||||||
|
<script type="text/javascript" src="navtree.js"></script>
|
||||||
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||||
|
<script type="text/javascript" src="search/search.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr id="projectrow">
|
||||||
|
<td id="projectalign">
|
||||||
|
<div id="projectname">ESP32/ESP8266 Firewall<span id="projectnumber"> 1.0.0</span>
|
||||||
|
</div>
|
||||||
|
<div id="projectbrief">a software firewall for ESP23 or ESP8266</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.9.4 -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="menudata.js"></script>
|
||||||
|
<script type="text/javascript" src="menu.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
$(function() {
|
||||||
|
initMenu('',true,false,'search.php','Search');
|
||||||
|
$(document).ready(function() { init_search(); });
|
||||||
|
});
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<div id="main-nav"></div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||||
|
<div id="nav-tree">
|
||||||
|
<div id="nav-tree-contents">
|
||||||
|
<div id="nav-sync" class="sync"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="splitbar" style="-moz-user-select:none;"
|
||||||
|
class="ui-resizable-handle">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
$(document).ready(function(){initNavTree('classfw_1_1_storage.html',''); initResizable(); });
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<div id="doc-content">
|
||||||
|
<!-- window showing the filter options -->
|
||||||
|
<div id="MSearchSelectWindow"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- iframe showing the search results (closed by default) -->
|
||||||
|
<div id="MSearchResultsWindow">
|
||||||
|
<iframe src="javascript:void(0)" frameborder="0"
|
||||||
|
name="MSearchResults" id="MSearchResults">
|
||||||
|
</iframe>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="header">
|
||||||
|
<div class="headertitle"><div class="title">fw::Storage Member List</div></div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
|
||||||
|
<p>This is the complete list of members for <a class="el" href="classfw_1_1_storage.html">fw::Storage</a>, including all inherited members.</p>
|
||||||
|
<table class="directory">
|
||||||
|
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>memory</b> (defined in <a class="el" href="classfw_1_1_storage.html">fw::Storage</a>)</td><td class="entry"><a class="el" href="classfw_1_1_storage.html">fw::Storage</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
|
||||||
|
<tr class="odd"><td class="entry"><a class="el" href="classfw_1_1_storage.html#aba4b010a57e6f5f5255b41d832891394">retrieve_amount_of_rules</a>()</td><td class="entry"><a class="el" href="classfw_1_1_storage.html">fw::Storage</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classfw_1_1_storage.html#a20d0089533fea31893b323f7fde8535c">retrieve_firewall_rule</a>(const uint8_t key)</td><td class="entry"><a class="el" href="classfw_1_1_storage.html">fw::Storage</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
|
||||||
|
<tr class="odd"><td class="entry"><a class="el" href="classfw_1_1_storage.html#a9b9fcc0e523d4b14a77e33a5806a348e">Storage</a>()</td><td class="entry"><a class="el" href="classfw_1_1_storage.html">fw::Storage</a></td><td class="entry"></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classfw_1_1_storage.html#a7747d174b1b3dd6bb417c1c5a8ac259c">store_all_firewall_rules</a>(firewall_rule_t *rule_head)</td><td class="entry"><a class="el" href="classfw_1_1_storage.html">fw::Storage</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
|
||||||
|
<tr class="odd"><td class="entry"><a class="el" href="classfw_1_1_storage.html#a79d1951d339a19edab7fd22aaa68cc96">store_amount_of_rules</a>(const uint8_t new_amount)</td><td class="entry"><a class="el" href="classfw_1_1_storage.html">fw::Storage</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classfw_1_1_storage.html#a9c1d226dbad072a6d0bf7e3507b7863b">store_firewall_rule</a>(firewall_rule_t *rule_ptr)</td><td class="entry"><a class="el" href="classfw_1_1_storage.html">fw::Storage</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
|
||||||
|
<tr class="odd"><td class="entry"><a class="el" href="classfw_1_1_storage.html#a11b6f2d893abc79879418853d4f840e1">~Storage</a>()</td><td class="entry"><a class="el" href="classfw_1_1_storage.html">fw::Storage</a></td><td class="entry"></td></tr>
|
||||||
|
</table></div><!-- contents -->
|
||||||
|
</div><!-- doc-content -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||||
|
<ul>
|
||||||
|
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4 </li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
326
doxygen/html/classfw_1_1_storage.html
Normal file
|
@ -0,0 +1,326 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.9.4"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||||
|
<title>ESP32/ESP8266 Firewall: fw::Storage Class Reference</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="resize.js"></script>
|
||||||
|
<script type="text/javascript" src="navtreedata.js"></script>
|
||||||
|
<script type="text/javascript" src="navtree.js"></script>
|
||||||
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||||
|
<script type="text/javascript" src="search/search.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr id="projectrow">
|
||||||
|
<td id="projectalign">
|
||||||
|
<div id="projectname">ESP32/ESP8266 Firewall<span id="projectnumber"> 1.0.0</span>
|
||||||
|
</div>
|
||||||
|
<div id="projectbrief">a software firewall for ESP23 or ESP8266</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.9.4 -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="menudata.js"></script>
|
||||||
|
<script type="text/javascript" src="menu.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
$(function() {
|
||||||
|
initMenu('',true,false,'search.php','Search');
|
||||||
|
$(document).ready(function() { init_search(); });
|
||||||
|
});
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<div id="main-nav"></div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||||
|
<div id="nav-tree">
|
||||||
|
<div id="nav-tree-contents">
|
||||||
|
<div id="nav-sync" class="sync"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="splitbar" style="-moz-user-select:none;"
|
||||||
|
class="ui-resizable-handle">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
$(document).ready(function(){initNavTree('classfw_1_1_storage.html',''); initResizable(); });
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<div id="doc-content">
|
||||||
|
<!-- window showing the filter options -->
|
||||||
|
<div id="MSearchSelectWindow"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- iframe showing the search results (closed by default) -->
|
||||||
|
<div id="MSearchResultsWindow">
|
||||||
|
<iframe src="javascript:void(0)" frameborder="0"
|
||||||
|
name="MSearchResults" id="MSearchResults">
|
||||||
|
</iframe>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="header">
|
||||||
|
<div class="summary">
|
||||||
|
<a href="#pub-methods">Public Member Functions</a> |
|
||||||
|
<a href="#pro-methods">Protected Member Functions</a> |
|
||||||
|
<a href="#pri-attribs">Private Attributes</a> |
|
||||||
|
<a href="classfw_1_1_storage-members.html">List of all members</a> </div>
|
||||||
|
<div class="headertitle"><div class="title">fw::Storage Class Reference</div></div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
|
||||||
|
<p>The <a class="el" href="classfw_1_1_storage.html" title="The Storage will handle Firewall rules in EEPROM.">Storage</a> will handle <a class="el" href="classfw_1_1_firewall.html" title="The Firewall will handle Firewall rules as linked list.">Firewall</a> rules in EEPROM.
|
||||||
|
<a href="classfw_1_1_storage.html#details">More...</a></p>
|
||||||
|
|
||||||
|
<p><code>#include <<a class="el" href="_storage_8hpp_source.html">Storage.hpp</a>></code></p>
|
||||||
|
<div class="dynheader">
|
||||||
|
Inheritance diagram for fw::Storage:</div>
|
||||||
|
<div class="dyncontent">
|
||||||
|
<div class="center">
|
||||||
|
<img src="classfw_1_1_storage.png" usemap="#fw::Storage_map" alt=""/>
|
||||||
|
<map id="fw::Storage_map" name="fw::Storage_map">
|
||||||
|
<area href="classfw_1_1_firewall.html" title="The Firewall will handle Firewall rules as linked list." alt="fw::Firewall" shape="rect" coords="0,56,76,80"/>
|
||||||
|
</map>
|
||||||
|
</div></div>
|
||||||
|
<table class="memberdecls">
|
||||||
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
|
||||||
|
Public Member Functions</h2></td></tr>
|
||||||
|
<tr class="memitem:a9b9fcc0e523d4b14a77e33a5806a348e"><td class="memItemLeft" align="right" valign="top"><a id="a9b9fcc0e523d4b14a77e33a5806a348e" name="a9b9fcc0e523d4b14a77e33a5806a348e"></a>
|
||||||
|
 </td><td class="memItemRight" valign="bottom"><b>Storage</b> ()</td></tr>
|
||||||
|
<tr class="memdesc:a9b9fcc0e523d4b14a77e33a5806a348e"><td class="mdescLeft"> </td><td class="mdescRight">Construct a new <a class="el" href="classfw_1_1_storage.html" title="The Storage will handle Firewall rules in EEPROM.">Storage</a> object. <br /></td></tr>
|
||||||
|
<tr class="separator:a9b9fcc0e523d4b14a77e33a5806a348e"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a11b6f2d893abc79879418853d4f840e1"><td class="memItemLeft" align="right" valign="top"><a id="a11b6f2d893abc79879418853d4f840e1" name="a11b6f2d893abc79879418853d4f840e1"></a>
|
||||||
|
 </td><td class="memItemRight" valign="bottom"><b>~Storage</b> ()</td></tr>
|
||||||
|
<tr class="memdesc:a11b6f2d893abc79879418853d4f840e1"><td class="mdescLeft"> </td><td class="mdescRight">Destroy the <a class="el" href="classfw_1_1_storage.html" title="The Storage will handle Firewall rules in EEPROM.">Storage</a> object. <br /></td></tr>
|
||||||
|
<tr class="separator:a11b6f2d893abc79879418853d4f840e1"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
</table><table class="memberdecls">
|
||||||
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-methods" name="pro-methods"></a>
|
||||||
|
Protected Member Functions</h2></td></tr>
|
||||||
|
<tr class="memitem:aba4b010a57e6f5f5255b41d832891394"><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classfw_1_1_storage.html#aba4b010a57e6f5f5255b41d832891394">retrieve_amount_of_rules</a> ()</td></tr>
|
||||||
|
<tr class="memdesc:aba4b010a57e6f5f5255b41d832891394"><td class="mdescLeft"> </td><td class="mdescRight">retrieve the current amount of <a class="el" href="classfw_1_1_firewall.html" title="The Firewall will handle Firewall rules as linked list.">Firewall</a> rules in the <a class="el" href="classfw_1_1_storage.html" title="The Storage will handle Firewall rules in EEPROM.">Storage</a> <a href="classfw_1_1_storage.html#aba4b010a57e6f5f5255b41d832891394">More...</a><br /></td></tr>
|
||||||
|
<tr class="separator:aba4b010a57e6f5f5255b41d832891394"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a79d1951d339a19edab7fd22aaa68cc96"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classfw_1_1_storage.html#a79d1951d339a19edab7fd22aaa68cc96">store_amount_of_rules</a> (const uint8_t new_amount)</td></tr>
|
||||||
|
<tr class="memdesc:a79d1951d339a19edab7fd22aaa68cc96"><td class="mdescLeft"> </td><td class="mdescRight">store a new amount of <a class="el" href="classfw_1_1_firewall.html" title="The Firewall will handle Firewall rules as linked list.">Firewall</a> rules in the <a class="el" href="classfw_1_1_storage.html" title="The Storage will handle Firewall rules in EEPROM.">Storage</a> <a href="classfw_1_1_storage.html#a79d1951d339a19edab7fd22aaa68cc96">More...</a><br /></td></tr>
|
||||||
|
<tr class="separator:a79d1951d339a19edab7fd22aaa68cc96"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a20d0089533fea31893b323f7fde8535c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structfirewall__rule__t.html">firewall_rule_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classfw_1_1_storage.html#a20d0089533fea31893b323f7fde8535c">retrieve_firewall_rule</a> (const uint8_t key)</td></tr>
|
||||||
|
<tr class="memdesc:a20d0089533fea31893b323f7fde8535c"><td class="mdescLeft"> </td><td class="mdescRight">retrieve a <a class="el" href="classfw_1_1_firewall.html" title="The Firewall will handle Firewall rules as linked list.">Firewall</a> rule from <a class="el" href="classfw_1_1_storage.html" title="The Storage will handle Firewall rules in EEPROM.">Storage</a> <a href="classfw_1_1_storage.html#a20d0089533fea31893b323f7fde8535c">More...</a><br /></td></tr>
|
||||||
|
<tr class="separator:a20d0089533fea31893b323f7fde8535c"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a7747d174b1b3dd6bb417c1c5a8ac259c"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classfw_1_1_storage.html#a7747d174b1b3dd6bb417c1c5a8ac259c">store_all_firewall_rules</a> (<a class="el" href="structfirewall__rule__t.html">firewall_rule_t</a> *rule_head)</td></tr>
|
||||||
|
<tr class="memdesc:a7747d174b1b3dd6bb417c1c5a8ac259c"><td class="mdescLeft"> </td><td class="mdescRight">store all <a class="el" href="classfw_1_1_firewall.html" title="The Firewall will handle Firewall rules as linked list.">Firewall</a> rules in <a class="el" href="classfw_1_1_storage.html" title="The Storage will handle Firewall rules in EEPROM.">Storage</a> <a href="classfw_1_1_storage.html#a7747d174b1b3dd6bb417c1c5a8ac259c">More...</a><br /></td></tr>
|
||||||
|
<tr class="separator:a7747d174b1b3dd6bb417c1c5a8ac259c"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a9c1d226dbad072a6d0bf7e3507b7863b"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classfw_1_1_storage.html#a9c1d226dbad072a6d0bf7e3507b7863b">store_firewall_rule</a> (<a class="el" href="structfirewall__rule__t.html">firewall_rule_t</a> *rule_ptr)</td></tr>
|
||||||
|
<tr class="memdesc:a9c1d226dbad072a6d0bf7e3507b7863b"><td class="mdescLeft"> </td><td class="mdescRight">store <a class="el" href="classfw_1_1_firewall.html" title="The Firewall will handle Firewall rules as linked list.">Firewall</a> rule in <a class="el" href="classfw_1_1_storage.html" title="The Storage will handle Firewall rules in EEPROM.">Storage</a> <a href="classfw_1_1_storage.html#a9c1d226dbad072a6d0bf7e3507b7863b">More...</a><br /></td></tr>
|
||||||
|
<tr class="separator:a9c1d226dbad072a6d0bf7e3507b7863b"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
</table><table class="memberdecls">
|
||||||
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pri-attribs" name="pri-attribs"></a>
|
||||||
|
Private Attributes</h2></td></tr>
|
||||||
|
<tr class="memitem:a22d4748911ab3f0ee4101d672516ee04"><td class="memItemLeft" align="right" valign="top"><a id="a22d4748911ab3f0ee4101d672516ee04" name="a22d4748911ab3f0ee4101d672516ee04"></a>
|
||||||
|
Preferences </td><td class="memItemRight" valign="bottom"><b>memory</b></td></tr>
|
||||||
|
<tr class="separator:a22d4748911ab3f0ee4101d672516ee04"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
</table>
|
||||||
|
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||||
|
<div class="textblock"><p >The <a class="el" href="classfw_1_1_storage.html" title="The Storage will handle Firewall rules in EEPROM.">Storage</a> will handle <a class="el" href="classfw_1_1_firewall.html" title="The Firewall will handle Firewall rules as linked list.">Firewall</a> rules in EEPROM. </p>
|
||||||
|
</div><h2 class="groupheader">Member Function Documentation</h2>
|
||||||
|
<a id="aba4b010a57e6f5f5255b41d832891394" name="aba4b010a57e6f5f5255b41d832891394"></a>
|
||||||
|
<h2 class="memtitle"><span class="permalink"><a href="#aba4b010a57e6f5f5255b41d832891394">◆ </a></span>retrieve_amount_of_rules()</h2>
|
||||||
|
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="mlabels">
|
||||||
|
<tr>
|
||||||
|
<td class="mlabels-left">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">uint8_t fw::Storage::retrieve_amount_of_rules </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramname"></td><td>)</td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
<td class="mlabels-right">
|
||||||
|
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>retrieve the current amount of <a class="el" href="classfw_1_1_firewall.html" title="The Firewall will handle Firewall rules as linked list.">Firewall</a> rules in the <a class="el" href="classfw_1_1_storage.html" title="The Storage will handle Firewall rules in EEPROM.">Storage</a> </p>
|
||||||
|
<dl class="section return"><dt>Returns</dt><dd>uint8_t </dd></dl>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a id="a20d0089533fea31893b323f7fde8535c" name="a20d0089533fea31893b323f7fde8535c"></a>
|
||||||
|
<h2 class="memtitle"><span class="permalink"><a href="#a20d0089533fea31893b323f7fde8535c">◆ </a></span>retrieve_firewall_rule()</h2>
|
||||||
|
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="mlabels">
|
||||||
|
<tr>
|
||||||
|
<td class="mlabels-left">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname"><a class="el" href="structfirewall__rule__t.html">firewall_rule_t</a> * fw::Storage::retrieve_firewall_rule </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype">const uint8_t </td>
|
||||||
|
<td class="paramname"><em>key</em></td><td>)</td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
<td class="mlabels-right">
|
||||||
|
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>retrieve a <a class="el" href="classfw_1_1_firewall.html" title="The Firewall will handle Firewall rules as linked list.">Firewall</a> rule from <a class="el" href="classfw_1_1_storage.html" title="The Storage will handle Firewall rules in EEPROM.">Storage</a> </p>
|
||||||
|
<dl class="params"><dt>Parameters</dt><dd>
|
||||||
|
<table class="params">
|
||||||
|
<tr><td class="paramname">key</td><td></td></tr>
|
||||||
|
</table>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl class="section return"><dt>Returns</dt><dd>firewall_rule_t* </dd></dl>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a id="a7747d174b1b3dd6bb417c1c5a8ac259c" name="a7747d174b1b3dd6bb417c1c5a8ac259c"></a>
|
||||||
|
<h2 class="memtitle"><span class="permalink"><a href="#a7747d174b1b3dd6bb417c1c5a8ac259c">◆ </a></span>store_all_firewall_rules()</h2>
|
||||||
|
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="mlabels">
|
||||||
|
<tr>
|
||||||
|
<td class="mlabels-left">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">void fw::Storage::store_all_firewall_rules </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype"><a class="el" href="structfirewall__rule__t.html">firewall_rule_t</a> * </td>
|
||||||
|
<td class="paramname"><em>rule_head</em></td><td>)</td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
<td class="mlabels-right">
|
||||||
|
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>store all <a class="el" href="classfw_1_1_firewall.html" title="The Firewall will handle Firewall rules as linked list.">Firewall</a> rules in <a class="el" href="classfw_1_1_storage.html" title="The Storage will handle Firewall rules in EEPROM.">Storage</a> </p>
|
||||||
|
<dl class="params"><dt>Parameters</dt><dd>
|
||||||
|
<table class="params">
|
||||||
|
<tr><td class="paramname">rule_head</td><td></td></tr>
|
||||||
|
</table>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a id="a79d1951d339a19edab7fd22aaa68cc96" name="a79d1951d339a19edab7fd22aaa68cc96"></a>
|
||||||
|
<h2 class="memtitle"><span class="permalink"><a href="#a79d1951d339a19edab7fd22aaa68cc96">◆ </a></span>store_amount_of_rules()</h2>
|
||||||
|
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="mlabels">
|
||||||
|
<tr>
|
||||||
|
<td class="mlabels-left">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">void fw::Storage::store_amount_of_rules </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype">const uint8_t </td>
|
||||||
|
<td class="paramname"><em>new_amount</em></td><td>)</td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
<td class="mlabels-right">
|
||||||
|
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>store a new amount of <a class="el" href="classfw_1_1_firewall.html" title="The Firewall will handle Firewall rules as linked list.">Firewall</a> rules in the <a class="el" href="classfw_1_1_storage.html" title="The Storage will handle Firewall rules in EEPROM.">Storage</a> </p>
|
||||||
|
<dl class="params"><dt>Parameters</dt><dd>
|
||||||
|
<table class="params">
|
||||||
|
<tr><td class="paramname">new_amount</td><td></td></tr>
|
||||||
|
</table>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a id="a9c1d226dbad072a6d0bf7e3507b7863b" name="a9c1d226dbad072a6d0bf7e3507b7863b"></a>
|
||||||
|
<h2 class="memtitle"><span class="permalink"><a href="#a9c1d226dbad072a6d0bf7e3507b7863b">◆ </a></span>store_firewall_rule()</h2>
|
||||||
|
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="mlabels">
|
||||||
|
<tr>
|
||||||
|
<td class="mlabels-left">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">void fw::Storage::store_firewall_rule </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype"><a class="el" href="structfirewall__rule__t.html">firewall_rule_t</a> * </td>
|
||||||
|
<td class="paramname"><em>rule_ptr</em></td><td>)</td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
<td class="mlabels-right">
|
||||||
|
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>store <a class="el" href="classfw_1_1_firewall.html" title="The Firewall will handle Firewall rules as linked list.">Firewall</a> rule in <a class="el" href="classfw_1_1_storage.html" title="The Storage will handle Firewall rules in EEPROM.">Storage</a> </p>
|
||||||
|
<dl class="params"><dt>Parameters</dt><dd>
|
||||||
|
<table class="params">
|
||||||
|
<tr><td class="paramname">rule_ptr</td><td></td></tr>
|
||||||
|
</table>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<hr/>The documentation for this class was generated from the following files:<ul>
|
||||||
|
<li>src/<a class="el" href="_storage_8hpp_source.html">Storage.hpp</a></li>
|
||||||
|
<li>src/Storage.cpp</li>
|
||||||
|
</ul>
|
||||||
|
</div><!-- contents -->
|
||||||
|
</div><!-- doc-content -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||||
|
<ul>
|
||||||
|
<li class="navelem"><b>fw</b></li><li class="navelem"><a class="el" href="classfw_1_1_storage.html">Storage</a></li>
|
||||||
|
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4 </li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
10
doxygen/html/classfw_1_1_storage.js
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
var classfw_1_1_storage =
|
||||||
|
[
|
||||||
|
[ "Storage", "classfw_1_1_storage.html#a9b9fcc0e523d4b14a77e33a5806a348e", null ],
|
||||||
|
[ "~Storage", "classfw_1_1_storage.html#a11b6f2d893abc79879418853d4f840e1", null ],
|
||||||
|
[ "retrieve_amount_of_rules", "classfw_1_1_storage.html#aba4b010a57e6f5f5255b41d832891394", null ],
|
||||||
|
[ "retrieve_firewall_rule", "classfw_1_1_storage.html#a20d0089533fea31893b323f7fde8535c", null ],
|
||||||
|
[ "store_all_firewall_rules", "classfw_1_1_storage.html#a7747d174b1b3dd6bb417c1c5a8ac259c", null ],
|
||||||
|
[ "store_amount_of_rules", "classfw_1_1_storage.html#a79d1951d339a19edab7fd22aaa68cc96", null ],
|
||||||
|
[ "store_firewall_rule", "classfw_1_1_storage.html#a9c1d226dbad072a6d0bf7e3507b7863b", null ]
|
||||||
|
];
|
BIN
doxygen/html/classfw_1_1_storage.png
Normal file
After Width: | Height: | Size: 456 B |
BIN
doxygen/html/closed.png
Normal file
After Width: | Height: | Size: 132 B |
111
doxygen/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html
Normal file
|
@ -0,0 +1,111 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.9.4"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||||
|
<title>ESP32/ESP8266 Firewall: src Directory Reference</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="resize.js"></script>
|
||||||
|
<script type="text/javascript" src="navtreedata.js"></script>
|
||||||
|
<script type="text/javascript" src="navtree.js"></script>
|
||||||
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||||
|
<script type="text/javascript" src="search/search.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr id="projectrow">
|
||||||
|
<td id="projectalign">
|
||||||
|
<div id="projectname">ESP32/ESP8266 Firewall<span id="projectnumber"> 1.0.0</span>
|
||||||
|
</div>
|
||||||
|
<div id="projectbrief">a software firewall for ESP23 or ESP8266</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.9.4 -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="menudata.js"></script>
|
||||||
|
<script type="text/javascript" src="menu.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
$(function() {
|
||||||
|
initMenu('',true,false,'search.php','Search');
|
||||||
|
$(document).ready(function() { init_search(); });
|
||||||
|
});
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<div id="main-nav"></div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||||
|
<div id="nav-tree">
|
||||||
|
<div id="nav-tree-contents">
|
||||||
|
<div id="nav-sync" class="sync"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="splitbar" style="-moz-user-select:none;"
|
||||||
|
class="ui-resizable-handle">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
$(document).ready(function(){initNavTree('dir_68267d1309a1af8e8297ef4c3efbcdba.html',''); initResizable(); });
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<div id="doc-content">
|
||||||
|
<!-- window showing the filter options -->
|
||||||
|
<div id="MSearchSelectWindow"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- iframe showing the search results (closed by default) -->
|
||||||
|
<div id="MSearchResultsWindow">
|
||||||
|
<iframe src="javascript:void(0)" frameborder="0"
|
||||||
|
name="MSearchResults" id="MSearchResults">
|
||||||
|
</iframe>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="header">
|
||||||
|
<div class="headertitle"><div class="title">src Directory Reference</div></div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
<table class="memberdecls">
|
||||||
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="files" name="files"></a>
|
||||||
|
Files</h2></td></tr>
|
||||||
|
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><b>API.hpp</b> <a href="_a_p_i_8hpp_source.html">[code]</a></td></tr>
|
||||||
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><b>Firewall.hpp</b> <a href="_firewall_8hpp_source.html">[code]</a></td></tr>
|
||||||
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><b>Storage.hpp</b> <a href="_storage_8hpp_source.html">[code]</a></td></tr>
|
||||||
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><b>Utils.hpp</b> <a href="_utils_8hpp_source.html">[code]</a></td></tr>
|
||||||
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
</table>
|
||||||
|
</div><!-- contents -->
|
||||||
|
</div><!-- doc-content -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||||
|
<ul>
|
||||||
|
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li>
|
||||||
|
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4 </li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
7
doxygen/html/dir_68267d1309a1af8e8297ef4c3efbcdba.js
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
var dir_68267d1309a1af8e8297ef4c3efbcdba =
|
||||||
|
[
|
||||||
|
[ "API.hpp", "_a_p_i_8hpp_source.html", null ],
|
||||||
|
[ "Firewall.hpp", "_firewall_8hpp_source.html", null ],
|
||||||
|
[ "Storage.hpp", "_storage_8hpp_source.html", null ],
|
||||||
|
[ "Utils.hpp", "_utils_8hpp_source.html", null ]
|
||||||
|
];
|
BIN
doxygen/html/doc.png
Normal file
After Width: | Height: | Size: 746 B |
1841
doxygen/html/doxygen.css
Normal file
26
doxygen/html/doxygen.svg
Normal file
After Width: | Height: | Size: 15 KiB |
121
doxygen/html/dynsections.js
Normal file
|
@ -0,0 +1,121 @@
|
||||||
|
/*
|
||||||
|
@licstart The following is the entire license notice for the JavaScript code in this file.
|
||||||
|
|
||||||
|
The MIT License (MIT)
|
||||||
|
|
||||||
|
Copyright (C) 1997-2020 by Dimitri van Heesch
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy of this software
|
||||||
|
and associated documentation files (the "Software"), to deal in the Software without restriction,
|
||||||
|
including without limitation the rights to use, copy, modify, merge, publish, distribute,
|
||||||
|
sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all copies or
|
||||||
|
substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
|
||||||
|
BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
|
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||||
|
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
|
@licend The above is the entire license notice for the JavaScript code in this file
|
||||||
|
*/
|
||||||
|
function toggleVisibility(linkObj)
|
||||||
|
{
|
||||||
|
var base = $(linkObj).attr('id');
|
||||||
|
var summary = $('#'+base+'-summary');
|
||||||
|
var content = $('#'+base+'-content');
|
||||||
|
var trigger = $('#'+base+'-trigger');
|
||||||
|
var src=$(trigger).attr('src');
|
||||||
|
if (content.is(':visible')===true) {
|
||||||
|
content.hide();
|
||||||
|
summary.show();
|
||||||
|
$(linkObj).addClass('closed').removeClass('opened');
|
||||||
|
$(trigger).attr('src',src.substring(0,src.length-8)+'closed.png');
|
||||||
|
} else {
|
||||||
|
content.show();
|
||||||
|
summary.hide();
|
||||||
|
$(linkObj).removeClass('closed').addClass('opened');
|
||||||
|
$(trigger).attr('src',src.substring(0,src.length-10)+'open.png');
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateStripes()
|
||||||
|
{
|
||||||
|
$('table.directory tr').
|
||||||
|
removeClass('even').filter(':visible:even').addClass('even');
|
||||||
|
}
|
||||||
|
|
||||||
|
function toggleLevel(level)
|
||||||
|
{
|
||||||
|
$('table.directory tr').each(function() {
|
||||||
|
var l = this.id.split('_').length-1;
|
||||||
|
var i = $('#img'+this.id.substring(3));
|
||||||
|
var a = $('#arr'+this.id.substring(3));
|
||||||
|
if (l<level+1) {
|
||||||
|
i.removeClass('iconfopen iconfclosed').addClass('iconfopen');
|
||||||
|
a.html('▼');
|
||||||
|
$(this).show();
|
||||||
|
} else if (l==level+1) {
|
||||||
|
i.removeClass('iconfclosed iconfopen').addClass('iconfclosed');
|
||||||
|
a.html('►');
|
||||||
|
$(this).show();
|
||||||
|
} else {
|
||||||
|
$(this).hide();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
updateStripes();
|
||||||
|
}
|
||||||
|
|
||||||
|
function toggleFolder(id)
|
||||||
|
{
|
||||||
|
// the clicked row
|
||||||
|
var currentRow = $('#row_'+id);
|
||||||
|
|
||||||
|
// all rows after the clicked row
|
||||||
|
var rows = currentRow.nextAll("tr");
|
||||||
|
|
||||||
|
var re = new RegExp('^row_'+id+'\\d+_$', "i"); //only one sub
|
||||||
|
|
||||||
|
// only match elements AFTER this one (can't hide elements before)
|
||||||
|
var childRows = rows.filter(function() { return this.id.match(re); });
|
||||||
|
|
||||||
|
// first row is visible we are HIDING
|
||||||
|
if (childRows.filter(':first').is(':visible')===true) {
|
||||||
|
// replace down arrow by right arrow for current row
|
||||||
|
var currentRowSpans = currentRow.find("span");
|
||||||
|
currentRowSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
|
||||||
|
currentRowSpans.filter(".arrow").html('►');
|
||||||
|
rows.filter("[id^=row_"+id+"]").hide(); // hide all children
|
||||||
|
} else { // we are SHOWING
|
||||||
|
// replace right arrow by down arrow for current row
|
||||||
|
var currentRowSpans = currentRow.find("span");
|
||||||
|
currentRowSpans.filter(".iconfclosed").removeClass("iconfclosed").addClass("iconfopen");
|
||||||
|
currentRowSpans.filter(".arrow").html('▼');
|
||||||
|
// replace down arrows by right arrows for child rows
|
||||||
|
var childRowsSpans = childRows.find("span");
|
||||||
|
childRowsSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
|
||||||
|
childRowsSpans.filter(".arrow").html('►');
|
||||||
|
childRows.show(); //show all children
|
||||||
|
}
|
||||||
|
updateStripes();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function toggleInherit(id)
|
||||||
|
{
|
||||||
|
var rows = $('tr.inherit.'+id);
|
||||||
|
var img = $('tr.inherit_header.'+id+' img');
|
||||||
|
var src = $(img).attr('src');
|
||||||
|
if (rows.filter(':first').is(':visible')===true) {
|
||||||
|
rows.css('display','none');
|
||||||
|
$(img).attr('src',src.substring(0,src.length-8)+'closed.png');
|
||||||
|
} else {
|
||||||
|
rows.css('display','table-row'); // using show() causes jump in firefox
|
||||||
|
$(img).attr('src',src.substring(0,src.length-10)+'open.png');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/* @license-end */
|
107
doxygen/html/files.html
Normal file
|
@ -0,0 +1,107 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.9.4"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||||
|
<title>ESP32/ESP8266 Firewall: File List</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="resize.js"></script>
|
||||||
|
<script type="text/javascript" src="navtreedata.js"></script>
|
||||||
|
<script type="text/javascript" src="navtree.js"></script>
|
||||||
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||||
|
<script type="text/javascript" src="search/search.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr id="projectrow">
|
||||||
|
<td id="projectalign">
|
||||||
|
<div id="projectname">ESP32/ESP8266 Firewall<span id="projectnumber"> 1.0.0</span>
|
||||||
|
</div>
|
||||||
|
<div id="projectbrief">a software firewall for ESP23 or ESP8266</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.9.4 -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="menudata.js"></script>
|
||||||
|
<script type="text/javascript" src="menu.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
$(function() {
|
||||||
|
initMenu('',true,false,'search.php','Search');
|
||||||
|
$(document).ready(function() { init_search(); });
|
||||||
|
});
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<div id="main-nav"></div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||||
|
<div id="nav-tree">
|
||||||
|
<div id="nav-tree-contents">
|
||||||
|
<div id="nav-sync" class="sync"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="splitbar" style="-moz-user-select:none;"
|
||||||
|
class="ui-resizable-handle">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
$(document).ready(function(){initNavTree('files.html',''); initResizable(); });
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<div id="doc-content">
|
||||||
|
<!-- window showing the filter options -->
|
||||||
|
<div id="MSearchSelectWindow"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- iframe showing the search results (closed by default) -->
|
||||||
|
<div id="MSearchResultsWindow">
|
||||||
|
<iframe src="javascript:void(0)" frameborder="0"
|
||||||
|
name="MSearchResults" id="MSearchResults">
|
||||||
|
</iframe>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="header">
|
||||||
|
<div class="headertitle"><div class="title">File List</div></div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
<div class="textblock">Here is a list of all documented files with brief descriptions:</div><div class="directory">
|
||||||
|
<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span>]</div><table class="directory">
|
||||||
|
<tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;"> </span><span id="arr_0_" class="arrow" onclick="toggleFolder('0_')">▼</span><span id="img_0_" class="iconfopen" onclick="toggleFolder('0_')"> </span><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html" target="_self">src</a></td><td class="desc"></td></tr>
|
||||||
|
<tr id="row_0_0_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a href="_a_p_i_8hpp_source.html"><span class="icondoc"></span></a><b>API.hpp</b></td><td class="desc"></td></tr>
|
||||||
|
<tr id="row_0_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a href="_firewall_8hpp_source.html"><span class="icondoc"></span></a><b>Firewall.hpp</b></td><td class="desc"></td></tr>
|
||||||
|
<tr id="row_0_2_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a href="_storage_8hpp_source.html"><span class="icondoc"></span></a><b>Storage.hpp</b></td><td class="desc"></td></tr>
|
||||||
|
<tr id="row_0_3_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a href="_utils_8hpp_source.html"><span class="icondoc"></span></a><b>Utils.hpp</b></td><td class="desc"></td></tr>
|
||||||
|
</table>
|
||||||
|
</div><!-- directory -->
|
||||||
|
</div><!-- contents -->
|
||||||
|
</div><!-- doc-content -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||||
|
<ul>
|
||||||
|
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4 </li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
4
doxygen/html/files_dup.js
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
var files_dup =
|
||||||
|
[
|
||||||
|
[ "src", "dir_68267d1309a1af8e8297ef4c3efbcdba.html", "dir_68267d1309a1af8e8297ef4c3efbcdba" ]
|
||||||
|
];
|
BIN
doxygen/html/folderclosed.png
Normal file
After Width: | Height: | Size: 616 B |
BIN
doxygen/html/folderopen.png
Normal file
After Width: | Height: | Size: 597 B |
187
doxygen/html/functions.html
Normal file
|
@ -0,0 +1,187 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.9.4"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||||
|
<title>ESP32/ESP8266 Firewall: Class Members</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="resize.js"></script>
|
||||||
|
<script type="text/javascript" src="navtreedata.js"></script>
|
||||||
|
<script type="text/javascript" src="navtree.js"></script>
|
||||||
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||||
|
<script type="text/javascript" src="search/search.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr id="projectrow">
|
||||||
|
<td id="projectalign">
|
||||||
|
<div id="projectname">ESP32/ESP8266 Firewall<span id="projectnumber"> 1.0.0</span>
|
||||||
|
</div>
|
||||||
|
<div id="projectbrief">a software firewall for ESP23 or ESP8266</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.9.4 -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="menudata.js"></script>
|
||||||
|
<script type="text/javascript" src="menu.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
$(function() {
|
||||||
|
initMenu('',true,false,'search.php','Search');
|
||||||
|
$(document).ready(function() { init_search(); });
|
||||||
|
});
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<div id="main-nav"></div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||||
|
<div id="nav-tree">
|
||||||
|
<div id="nav-tree-contents">
|
||||||
|
<div id="nav-sync" class="sync"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="splitbar" style="-moz-user-select:none;"
|
||||||
|
class="ui-resizable-handle">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
$(document).ready(function(){initNavTree('functions.html',''); initResizable(); });
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<div id="doc-content">
|
||||||
|
<!-- window showing the filter options -->
|
||||||
|
<div id="MSearchSelectWindow"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- iframe showing the search results (closed by default) -->
|
||||||
|
<div id="MSearchResultsWindow">
|
||||||
|
<iframe src="javascript:void(0)" frameborder="0"
|
||||||
|
name="MSearchResults" id="MSearchResults">
|
||||||
|
</iframe>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="contents">
|
||||||
|
<div class="textblock">Here is a list of all documented class members with links to the class documentation for each member:</div>
|
||||||
|
|
||||||
|
<h3><a id="index_a" name="index_a"></a>- a -</h3><ul>
|
||||||
|
<li>add_endpoint_to_list() : <a class="el" href="classfw_1_1_a_p_i.html#aad90a1bfa8e00c4e25a091e5e9a61772">fw::API</a></li>
|
||||||
|
<li>add_rule_to_firewall() : <a class="el" href="classfw_1_1_firewall.html#aae2a4a36257033c91f8f183b11de82c5">fw::Firewall</a></li>
|
||||||
|
<li>API() : <a class="el" href="classfw_1_1_a_p_i.html#a033d5efd077dfad456cb6e6e7dd2baca">fw::API</a></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a id="index_c" name="index_c"></a>- c -</h3><ul>
|
||||||
|
<li>check_auth() : <a class="el" href="classfw_1_1_a_p_i.html#adc9523a1b6e6a6e8f57a514a25c35b8c">fw::API</a></li>
|
||||||
|
<li>construct_json_api() : <a class="el" href="classfw_1_1_a_p_i.html#aa541a477e14a992b55e3f75351887cab">fw::API</a></li>
|
||||||
|
<li>construct_json_api_endpoint() : <a class="el" href="classfw_1_1_a_p_i.html#a175d139d29530e2946f67789c9652da8">fw::API</a></li>
|
||||||
|
<li>construct_json_firewall() : <a class="el" href="classfw_1_1_a_p_i.html#a682ec7e09a230507c39cbc7d7c7427d5">fw::API</a></li>
|
||||||
|
<li>construct_json_firewall_rule() : <a class="el" href="classfw_1_1_a_p_i.html#ac249b6e7533414d0296bde477cecac1b">fw::API</a></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a id="index_d" name="index_d"></a>- d -</h3><ul>
|
||||||
|
<li>delete_firewall_handler() : <a class="el" href="classfw_1_1_a_p_i.html#a592c2aa501ff920ebcc125f8d5635deb">fw::API</a></li>
|
||||||
|
<li>delete_rule_from_firewall() : <a class="el" href="classfw_1_1_firewall.html#a25fac8da12651a927c8285aa75e213d1">fw::Firewall</a></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a id="index_f" name="index_f"></a>- f -</h3><ul>
|
||||||
|
<li>Firewall() : <a class="el" href="classfw_1_1_firewall.html#a2cc2717bd5999bc9a2f24ae33e4abd42">fw::Firewall</a></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a id="index_g" name="index_g"></a>- g -</h3><ul>
|
||||||
|
<li>get_endpoint_list_handler() : <a class="el" href="classfw_1_1_a_p_i.html#a734cbd9da536fb297da87b4310f20ba1">fw::API</a></li>
|
||||||
|
<li>get_firewall_rule_handler() : <a class="el" href="classfw_1_1_a_p_i.html#ac76f5a6c9c28d71772b238a51b122e4a">fw::API</a></li>
|
||||||
|
<li>get_firewall_rules_handler() : <a class="el" href="classfw_1_1_a_p_i.html#ab904f77fa777a1c8c19deb8e39cf89e8">fw::API</a></li>
|
||||||
|
<li>get_packet_information() : <a class="el" href="classfw_1_1_firewall.html#a6815085477349f902e77cc5564b1b5ba">fw::Firewall</a></li>
|
||||||
|
<li>get_rule_from_firewall() : <a class="el" href="classfw_1_1_firewall.html#a7aa017cfb1ae6d6748d3f8c48e18dcf2">fw::Firewall</a></li>
|
||||||
|
<li>get_rule_head() : <a class="el" href="classfw_1_1_firewall.html#a86f7d6ef56888f673fa46c4bc9ad3009">fw::Firewall</a></li>
|
||||||
|
<li>get_url_base() : <a class="el" href="classfw_1_1_a_p_i.html#af5dc938ae5a274e3599d637e672b8d07">fw::API</a></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a id="index_i" name="index_i"></a>- i -</h3><ul>
|
||||||
|
<li>is_packet_allowed() : <a class="el" href="classfw_1_1_firewall.html#a81eca0d34c28e5c4244b557a1f8e047d">fw::Firewall</a></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a id="index_j" name="index_j"></a>- j -</h3><ul>
|
||||||
|
<li>json_array_response() : <a class="el" href="classfw_1_1_a_p_i.html#a1892bc26b882b055853e26ed95d8d802">fw::API</a></li>
|
||||||
|
<li>json_generic_response() : <a class="el" href="classfw_1_1_a_p_i.html#acbebab924241292706c0287dca5c3ff5">fw::API</a></li>
|
||||||
|
<li>json_message_response() : <a class="el" href="classfw_1_1_a_p_i.html#a6b7d4ce75b9cdba0dd39c6c949ef1c15">fw::API</a></li>
|
||||||
|
<li>json_new_attribute() : <a class="el" href="classfw_1_1_a_p_i.html#a0ff5aeb3b916dae9219041dc240d9156">fw::API</a></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a id="index_n" name="index_n"></a>- n -</h3><ul>
|
||||||
|
<li>not_found_handler() : <a class="el" href="classfw_1_1_a_p_i.html#aeb74e3b9efc2305c943683b14957ac9d">fw::API</a></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a id="index_p" name="index_p"></a>- p -</h3><ul>
|
||||||
|
<li>post_firewall_handler() : <a class="el" href="classfw_1_1_a_p_i.html#a2d78e9dd43abb72da8872cb207db25e3">fw::API</a></li>
|
||||||
|
<li>put_firewall_handler() : <a class="el" href="classfw_1_1_a_p_i.html#a6ce4a9dd9afae493f6639b6fb3f6ba45">fw::API</a></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a id="index_r" name="index_r"></a>- r -</h3><ul>
|
||||||
|
<li>request_has_all_firewall_parameter() : <a class="el" href="classfw_1_1_a_p_i.html#abab79e90786d14836dcf113077891c50">fw::API</a></li>
|
||||||
|
<li>retrieve_amount_of_rules() : <a class="el" href="classfw_1_1_storage.html#aba4b010a57e6f5f5255b41d832891394">fw::Storage</a></li>
|
||||||
|
<li>retrieve_firewall_rule() : <a class="el" href="classfw_1_1_storage.html#a20d0089533fea31893b323f7fde8535c">fw::Storage</a></li>
|
||||||
|
<li>rule_allows_packet() : <a class="el" href="classfw_1_1_firewall.html#a26fea38729777e00e5ee3a8d58f785b1">fw::Firewall</a></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a id="index_s" name="index_s"></a>- s -</h3><ul>
|
||||||
|
<li>setup_auth() : <a class="el" href="classfw_1_1_a_p_i.html#a45dcdd4969f70a7f1a02e49a47b16a1d">fw::API</a></li>
|
||||||
|
<li>setup_routing() : <a class="el" href="classfw_1_1_a_p_i.html#a90986dc50f303564e6f5af6d3707dd20">fw::API</a></li>
|
||||||
|
<li>Storage() : <a class="el" href="classfw_1_1_storage.html#a9b9fcc0e523d4b14a77e33a5806a348e">fw::Storage</a></li>
|
||||||
|
<li>store_all_firewall_rules() : <a class="el" href="classfw_1_1_storage.html#a7747d174b1b3dd6bb417c1c5a8ac259c">fw::Storage</a></li>
|
||||||
|
<li>store_amount_of_rules() : <a class="el" href="classfw_1_1_storage.html#a79d1951d339a19edab7fd22aaa68cc96">fw::Storage</a></li>
|
||||||
|
<li>store_firewall_rule() : <a class="el" href="classfw_1_1_storage.html#a9c1d226dbad072a6d0bf7e3507b7863b">fw::Storage</a></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a id="index_u" name="index_u"></a>- u -</h3><ul>
|
||||||
|
<li>update_rule_of_firewall() : <a class="el" href="classfw_1_1_firewall.html#a987ec9a98b7d6ef56cf569e0290b3594">fw::Firewall</a></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a id="index__7E" name="index__7E"></a>- ~ -</h3><ul>
|
||||||
|
<li>~API() : <a class="el" href="classfw_1_1_a_p_i.html#a66ac0bd592bb08d069aea199668670ab">fw::API</a></li>
|
||||||
|
<li>~Firewall() : <a class="el" href="classfw_1_1_firewall.html#a2c7c043d66b645ecc15e71561132057d">fw::Firewall</a></li>
|
||||||
|
<li>~Storage() : <a class="el" href="classfw_1_1_storage.html#a11b6f2d893abc79879418853d4f840e1">fw::Storage</a></li>
|
||||||
|
</ul>
|
||||||
|
</div><!-- contents -->
|
||||||
|
</div><!-- doc-content -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||||
|
<ul>
|
||||||
|
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4 </li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
187
doxygen/html/functions_func.html
Normal file
|
@ -0,0 +1,187 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.9.4"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||||
|
<title>ESP32/ESP8266 Firewall: Class Members - Functions</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="resize.js"></script>
|
||||||
|
<script type="text/javascript" src="navtreedata.js"></script>
|
||||||
|
<script type="text/javascript" src="navtree.js"></script>
|
||||||
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||||
|
<script type="text/javascript" src="search/search.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr id="projectrow">
|
||||||
|
<td id="projectalign">
|
||||||
|
<div id="projectname">ESP32/ESP8266 Firewall<span id="projectnumber"> 1.0.0</span>
|
||||||
|
</div>
|
||||||
|
<div id="projectbrief">a software firewall for ESP23 or ESP8266</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.9.4 -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="menudata.js"></script>
|
||||||
|
<script type="text/javascript" src="menu.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
$(function() {
|
||||||
|
initMenu('',true,false,'search.php','Search');
|
||||||
|
$(document).ready(function() { init_search(); });
|
||||||
|
});
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<div id="main-nav"></div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||||
|
<div id="nav-tree">
|
||||||
|
<div id="nav-tree-contents">
|
||||||
|
<div id="nav-sync" class="sync"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="splitbar" style="-moz-user-select:none;"
|
||||||
|
class="ui-resizable-handle">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
$(document).ready(function(){initNavTree('functions_func.html',''); initResizable(); });
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<div id="doc-content">
|
||||||
|
<!-- window showing the filter options -->
|
||||||
|
<div id="MSearchSelectWindow"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- iframe showing the search results (closed by default) -->
|
||||||
|
<div id="MSearchResultsWindow">
|
||||||
|
<iframe src="javascript:void(0)" frameborder="0"
|
||||||
|
name="MSearchResults" id="MSearchResults">
|
||||||
|
</iframe>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="contents">
|
||||||
|
 
|
||||||
|
|
||||||
|
<h3><a id="index_a" name="index_a"></a>- a -</h3><ul>
|
||||||
|
<li>add_endpoint_to_list() : <a class="el" href="classfw_1_1_a_p_i.html#aad90a1bfa8e00c4e25a091e5e9a61772">fw::API</a></li>
|
||||||
|
<li>add_rule_to_firewall() : <a class="el" href="classfw_1_1_firewall.html#aae2a4a36257033c91f8f183b11de82c5">fw::Firewall</a></li>
|
||||||
|
<li>API() : <a class="el" href="classfw_1_1_a_p_i.html#a033d5efd077dfad456cb6e6e7dd2baca">fw::API</a></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a id="index_c" name="index_c"></a>- c -</h3><ul>
|
||||||
|
<li>check_auth() : <a class="el" href="classfw_1_1_a_p_i.html#adc9523a1b6e6a6e8f57a514a25c35b8c">fw::API</a></li>
|
||||||
|
<li>construct_json_api() : <a class="el" href="classfw_1_1_a_p_i.html#aa541a477e14a992b55e3f75351887cab">fw::API</a></li>
|
||||||
|
<li>construct_json_api_endpoint() : <a class="el" href="classfw_1_1_a_p_i.html#a175d139d29530e2946f67789c9652da8">fw::API</a></li>
|
||||||
|
<li>construct_json_firewall() : <a class="el" href="classfw_1_1_a_p_i.html#a682ec7e09a230507c39cbc7d7c7427d5">fw::API</a></li>
|
||||||
|
<li>construct_json_firewall_rule() : <a class="el" href="classfw_1_1_a_p_i.html#ac249b6e7533414d0296bde477cecac1b">fw::API</a></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a id="index_d" name="index_d"></a>- d -</h3><ul>
|
||||||
|
<li>delete_firewall_handler() : <a class="el" href="classfw_1_1_a_p_i.html#a592c2aa501ff920ebcc125f8d5635deb">fw::API</a></li>
|
||||||
|
<li>delete_rule_from_firewall() : <a class="el" href="classfw_1_1_firewall.html#a25fac8da12651a927c8285aa75e213d1">fw::Firewall</a></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a id="index_f" name="index_f"></a>- f -</h3><ul>
|
||||||
|
<li>Firewall() : <a class="el" href="classfw_1_1_firewall.html#a2cc2717bd5999bc9a2f24ae33e4abd42">fw::Firewall</a></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a id="index_g" name="index_g"></a>- g -</h3><ul>
|
||||||
|
<li>get_endpoint_list_handler() : <a class="el" href="classfw_1_1_a_p_i.html#a734cbd9da536fb297da87b4310f20ba1">fw::API</a></li>
|
||||||
|
<li>get_firewall_rule_handler() : <a class="el" href="classfw_1_1_a_p_i.html#ac76f5a6c9c28d71772b238a51b122e4a">fw::API</a></li>
|
||||||
|
<li>get_firewall_rules_handler() : <a class="el" href="classfw_1_1_a_p_i.html#ab904f77fa777a1c8c19deb8e39cf89e8">fw::API</a></li>
|
||||||
|
<li>get_packet_information() : <a class="el" href="classfw_1_1_firewall.html#a6815085477349f902e77cc5564b1b5ba">fw::Firewall</a></li>
|
||||||
|
<li>get_rule_from_firewall() : <a class="el" href="classfw_1_1_firewall.html#a7aa017cfb1ae6d6748d3f8c48e18dcf2">fw::Firewall</a></li>
|
||||||
|
<li>get_rule_head() : <a class="el" href="classfw_1_1_firewall.html#a86f7d6ef56888f673fa46c4bc9ad3009">fw::Firewall</a></li>
|
||||||
|
<li>get_url_base() : <a class="el" href="classfw_1_1_a_p_i.html#af5dc938ae5a274e3599d637e672b8d07">fw::API</a></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a id="index_i" name="index_i"></a>- i -</h3><ul>
|
||||||
|
<li>is_packet_allowed() : <a class="el" href="classfw_1_1_firewall.html#a81eca0d34c28e5c4244b557a1f8e047d">fw::Firewall</a></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a id="index_j" name="index_j"></a>- j -</h3><ul>
|
||||||
|
<li>json_array_response() : <a class="el" href="classfw_1_1_a_p_i.html#a1892bc26b882b055853e26ed95d8d802">fw::API</a></li>
|
||||||
|
<li>json_generic_response() : <a class="el" href="classfw_1_1_a_p_i.html#acbebab924241292706c0287dca5c3ff5">fw::API</a></li>
|
||||||
|
<li>json_message_response() : <a class="el" href="classfw_1_1_a_p_i.html#a6b7d4ce75b9cdba0dd39c6c949ef1c15">fw::API</a></li>
|
||||||
|
<li>json_new_attribute() : <a class="el" href="classfw_1_1_a_p_i.html#a0ff5aeb3b916dae9219041dc240d9156">fw::API</a></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a id="index_n" name="index_n"></a>- n -</h3><ul>
|
||||||
|
<li>not_found_handler() : <a class="el" href="classfw_1_1_a_p_i.html#aeb74e3b9efc2305c943683b14957ac9d">fw::API</a></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a id="index_p" name="index_p"></a>- p -</h3><ul>
|
||||||
|
<li>post_firewall_handler() : <a class="el" href="classfw_1_1_a_p_i.html#a2d78e9dd43abb72da8872cb207db25e3">fw::API</a></li>
|
||||||
|
<li>put_firewall_handler() : <a class="el" href="classfw_1_1_a_p_i.html#a6ce4a9dd9afae493f6639b6fb3f6ba45">fw::API</a></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a id="index_r" name="index_r"></a>- r -</h3><ul>
|
||||||
|
<li>request_has_all_firewall_parameter() : <a class="el" href="classfw_1_1_a_p_i.html#abab79e90786d14836dcf113077891c50">fw::API</a></li>
|
||||||
|
<li>retrieve_amount_of_rules() : <a class="el" href="classfw_1_1_storage.html#aba4b010a57e6f5f5255b41d832891394">fw::Storage</a></li>
|
||||||
|
<li>retrieve_firewall_rule() : <a class="el" href="classfw_1_1_storage.html#a20d0089533fea31893b323f7fde8535c">fw::Storage</a></li>
|
||||||
|
<li>rule_allows_packet() : <a class="el" href="classfw_1_1_firewall.html#a26fea38729777e00e5ee3a8d58f785b1">fw::Firewall</a></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a id="index_s" name="index_s"></a>- s -</h3><ul>
|
||||||
|
<li>setup_auth() : <a class="el" href="classfw_1_1_a_p_i.html#a45dcdd4969f70a7f1a02e49a47b16a1d">fw::API</a></li>
|
||||||
|
<li>setup_routing() : <a class="el" href="classfw_1_1_a_p_i.html#a90986dc50f303564e6f5af6d3707dd20">fw::API</a></li>
|
||||||
|
<li>Storage() : <a class="el" href="classfw_1_1_storage.html#a9b9fcc0e523d4b14a77e33a5806a348e">fw::Storage</a></li>
|
||||||
|
<li>store_all_firewall_rules() : <a class="el" href="classfw_1_1_storage.html#a7747d174b1b3dd6bb417c1c5a8ac259c">fw::Storage</a></li>
|
||||||
|
<li>store_amount_of_rules() : <a class="el" href="classfw_1_1_storage.html#a79d1951d339a19edab7fd22aaa68cc96">fw::Storage</a></li>
|
||||||
|
<li>store_firewall_rule() : <a class="el" href="classfw_1_1_storage.html#a9c1d226dbad072a6d0bf7e3507b7863b">fw::Storage</a></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a id="index_u" name="index_u"></a>- u -</h3><ul>
|
||||||
|
<li>update_rule_of_firewall() : <a class="el" href="classfw_1_1_firewall.html#a987ec9a98b7d6ef56cf569e0290b3594">fw::Firewall</a></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a id="index__7E" name="index__7E"></a>- ~ -</h3><ul>
|
||||||
|
<li>~API() : <a class="el" href="classfw_1_1_a_p_i.html#a66ac0bd592bb08d069aea199668670ab">fw::API</a></li>
|
||||||
|
<li>~Firewall() : <a class="el" href="classfw_1_1_firewall.html#a2c7c043d66b645ecc15e71561132057d">fw::Firewall</a></li>
|
||||||
|
<li>~Storage() : <a class="el" href="classfw_1_1_storage.html#a11b6f2d893abc79879418853d4f840e1">fw::Storage</a></li>
|
||||||
|
</ul>
|
||||||
|
</div><!-- contents -->
|
||||||
|
</div><!-- doc-content -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||||
|
<ul>
|
||||||
|
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4 </li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
109
doxygen/html/hierarchy.html
Normal file
|
@ -0,0 +1,109 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.9.4"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||||
|
<title>ESP32/ESP8266 Firewall: Class Hierarchy</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="resize.js"></script>
|
||||||
|
<script type="text/javascript" src="navtreedata.js"></script>
|
||||||
|
<script type="text/javascript" src="navtree.js"></script>
|
||||||
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||||
|
<script type="text/javascript" src="search/search.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr id="projectrow">
|
||||||
|
<td id="projectalign">
|
||||||
|
<div id="projectname">ESP32/ESP8266 Firewall<span id="projectnumber"> 1.0.0</span>
|
||||||
|
</div>
|
||||||
|
<div id="projectbrief">a software firewall for ESP23 or ESP8266</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.9.4 -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="menudata.js"></script>
|
||||||
|
<script type="text/javascript" src="menu.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
$(function() {
|
||||||
|
initMenu('',true,false,'search.php','Search');
|
||||||
|
$(document).ready(function() { init_search(); });
|
||||||
|
});
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<div id="main-nav"></div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||||
|
<div id="nav-tree">
|
||||||
|
<div id="nav-tree-contents">
|
||||||
|
<div id="nav-sync" class="sync"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="splitbar" style="-moz-user-select:none;"
|
||||||
|
class="ui-resizable-handle">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
$(document).ready(function(){initNavTree('hierarchy.html',''); initResizable(); });
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<div id="doc-content">
|
||||||
|
<!-- window showing the filter options -->
|
||||||
|
<div id="MSearchSelectWindow"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- iframe showing the search results (closed by default) -->
|
||||||
|
<div id="MSearchResultsWindow">
|
||||||
|
<iframe src="javascript:void(0)" frameborder="0"
|
||||||
|
name="MSearchResults" id="MSearchResults">
|
||||||
|
</iframe>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="header">
|
||||||
|
<div class="headertitle"><div class="title">Class Hierarchy</div></div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
<div class="textblock">This inheritance list is sorted roughly, but not completely, alphabetically:</div><div class="directory">
|
||||||
|
<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span>]</div><table class="directory">
|
||||||
|
<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classfw_1_1_a_p_i.html" target="_self">fw::API</a></td><td class="desc">The <a class="el" href="classfw_1_1_a_p_i.html" title="The API to create, edit or remove Firewall rules.">API</a> to create, edit or remove <a class="el" href="classfw_1_1_firewall.html" title="The Firewall will handle Firewall rules as linked list.">Firewall</a> rules </td></tr>
|
||||||
|
<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structapi__endpoint__t.html" target="_self">api_endpoint_t</a></td><td class="desc"></td></tr>
|
||||||
|
<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structcredential__t.html" target="_self">credential_t</a></td><td class="desc"></td></tr>
|
||||||
|
<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfirewall__rule__t.html" target="_self">firewall_rule_t</a></td><td class="desc"></td></tr>
|
||||||
|
<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmy__packet__t.html" target="_self">my_packet_t</a></td><td class="desc"></td></tr>
|
||||||
|
<tr id="row_5_"><td class="entry"><span style="width:0px;display:inline-block;"> </span><span id="arr_5_" class="arrow" onclick="toggleFolder('5_')">▼</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classfw_1_1_storage.html" target="_self">fw::Storage</a></td><td class="desc">The <a class="el" href="classfw_1_1_storage.html" title="The Storage will handle Firewall rules in EEPROM.">Storage</a> will handle <a class="el" href="classfw_1_1_firewall.html" title="The Firewall will handle Firewall rules as linked list.">Firewall</a> rules in EEPROM </td></tr>
|
||||||
|
<tr id="row_5_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classfw_1_1_firewall.html" target="_self">fw::Firewall</a></td><td class="desc">The <a class="el" href="classfw_1_1_firewall.html" title="The Firewall will handle Firewall rules as linked list.">Firewall</a> will handle <a class="el" href="classfw_1_1_firewall.html" title="The Firewall will handle Firewall rules as linked list.">Firewall</a> rules as linked list </td></tr>
|
||||||
|
</table>
|
||||||
|
</div><!-- directory -->
|
||||||
|
</div><!-- contents -->
|
||||||
|
</div><!-- doc-content -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||||
|
<ul>
|
||||||
|
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4 </li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
11
doxygen/html/hierarchy.js
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
var hierarchy =
|
||||||
|
[
|
||||||
|
[ "fw::API", "classfw_1_1_a_p_i.html", null ],
|
||||||
|
[ "api_endpoint_t", "structapi__endpoint__t.html", null ],
|
||||||
|
[ "credential_t", "structcredential__t.html", null ],
|
||||||
|
[ "firewall_rule_t", "structfirewall__rule__t.html", null ],
|
||||||
|
[ "my_packet_t", "structmy__packet__t.html", null ],
|
||||||
|
[ "fw::Storage", "classfw_1_1_storage.html", [
|
||||||
|
[ "fw::Firewall", "classfw_1_1_firewall.html", null ]
|
||||||
|
] ]
|
||||||
|
];
|
112
doxygen/html/index.html
Normal file
|
@ -0,0 +1,112 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.9.4"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||||
|
<title>ESP32/ESP8266 Firewall: ESP32/ESP8266 Firewall</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="resize.js"></script>
|
||||||
|
<script type="text/javascript" src="navtreedata.js"></script>
|
||||||
|
<script type="text/javascript" src="navtree.js"></script>
|
||||||
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||||
|
<script type="text/javascript" src="search/search.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr id="projectrow">
|
||||||
|
<td id="projectalign">
|
||||||
|
<div id="projectname">ESP32/ESP8266 Firewall<span id="projectnumber"> 1.0.0</span>
|
||||||
|
</div>
|
||||||
|
<div id="projectbrief">a software firewall for ESP23 or ESP8266</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.9.4 -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="menudata.js"></script>
|
||||||
|
<script type="text/javascript" src="menu.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
$(function() {
|
||||||
|
initMenu('',true,false,'search.php','Search');
|
||||||
|
$(document).ready(function() { init_search(); });
|
||||||
|
});
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<div id="main-nav"></div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||||
|
<div id="nav-tree">
|
||||||
|
<div id="nav-tree-contents">
|
||||||
|
<div id="nav-sync" class="sync"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="splitbar" style="-moz-user-select:none;"
|
||||||
|
class="ui-resizable-handle">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
$(document).ready(function(){initNavTree('index.html',''); initResizable(); });
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<div id="doc-content">
|
||||||
|
<!-- window showing the filter options -->
|
||||||
|
<div id="MSearchSelectWindow"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- iframe showing the search results (closed by default) -->
|
||||||
|
<div id="MSearchResultsWindow">
|
||||||
|
<iframe src="javascript:void(0)" frameborder="0"
|
||||||
|
name="MSearchResults" id="MSearchResults">
|
||||||
|
</iframe>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div><div class="header">
|
||||||
|
<div class="headertitle"><div class="title">ESP32/ESP8266 Firewall </div></div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
<div class="textblock"><p ><a class="anchor" id="md_README"></a> </p>
|
||||||
|
<h1><a class="anchor" id="autotoc_md1"></a>
|
||||||
|
Examples</h1>
|
||||||
|
<ul>
|
||||||
|
<li><b><a href="https://gitlab.hs-esslingen.de/toheer/iot-security-tools/-/tree/main/esp32example">ESP32 Example</a></b></li>
|
||||||
|
<li><b><a href="https://gitlab.hs-esslingen.de/toheer/iot-security-tools/-/tree/main/esp8266example">ESP8266 Example</a></b></li>
|
||||||
|
</ul>
|
||||||
|
<h1><a class="anchor" id="autotoc_md2"></a>
|
||||||
|
Maintainer</h1>
|
||||||
|
<ul>
|
||||||
|
<li>Student: Florian Hoss (<a href="#" onclick="location.href='mai'+'lto:'+'flh'+'oi'+'t00'+'@h'+'s-e'+'ss'+'lin'+'ge'+'n.d'+'e'; return false;">flhoit00@hs-esslingen.de</a>)</li>
|
||||||
|
<li>Professor: Prof. Dr. rer. nat. Tobias Heer (<a href="#" onclick="location.href='mai'+'lto:'+'tob'+'ia'+'s.h'+'ee'+'r@h'+'s-'+'ess'+'li'+'nge'+'n.'+'de'; return false;">tobias.heer@hs-esslingen.de</a>) </li>
|
||||||
|
</ul>
|
||||||
|
</div></div><!-- PageDoc -->
|
||||||
|
</div><!-- contents -->
|
||||||
|
</div><!-- doc-content -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||||
|
<ul>
|
||||||
|
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4 </li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
35
doxygen/html/jquery.js
vendored
Normal file
135
doxygen/html/menu.js
Normal file
|
@ -0,0 +1,135 @@
|
||||||
|
/*
|
||||||
|
@licstart The following is the entire license notice for the JavaScript code in this file.
|
||||||
|
|
||||||
|
The MIT License (MIT)
|
||||||
|
|
||||||
|
Copyright (C) 1997-2020 by Dimitri van Heesch
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy of this software
|
||||||
|
and associated documentation files (the "Software"), to deal in the Software without restriction,
|
||||||
|
including without limitation the rights to use, copy, modify, merge, publish, distribute,
|
||||||
|
sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all copies or
|
||||||
|
substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
|
||||||
|
BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
|
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||||
|
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
|
@licend The above is the entire license notice for the JavaScript code in this file
|
||||||
|
*/
|
||||||
|
function initMenu(relPath,searchEnabled,serverSide,searchPage,search) {
|
||||||
|
function makeTree(data,relPath) {
|
||||||
|
var result='';
|
||||||
|
if ('children' in data) {
|
||||||
|
result+='<ul>';
|
||||||
|
for (var i in data.children) {
|
||||||
|
var url;
|
||||||
|
var link;
|
||||||
|
link = data.children[i].url;
|
||||||
|
if (link.substring(0,1)=='^') {
|
||||||
|
url = link.substring(1);
|
||||||
|
} else {
|
||||||
|
url = relPath+link;
|
||||||
|
}
|
||||||
|
result+='<li><a href="'+url+'">'+
|
||||||
|
data.children[i].text+'</a>'+
|
||||||
|
makeTree(data.children[i],relPath)+'</li>';
|
||||||
|
}
|
||||||
|
result+='</ul>';
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
var searchBox;
|
||||||
|
if (searchEnabled) {
|
||||||
|
if (serverSide) {
|
||||||
|
searchBox='<div id="MSearchBox" class="MSearchBoxInactive">'+
|
||||||
|
'<div class="left">'+
|
||||||
|
'<form id="FSearchBox" action="'+relPath+searchPage+
|
||||||
|
'" method="get"><img id="MSearchSelect" src="'+
|
||||||
|
relPath+'search/mag.svg" alt=""/>'+
|
||||||
|
'<input type="text" id="MSearchField" name="query" value="'+search+
|
||||||
|
'" size="20" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)"'+
|
||||||
|
' onblur="searchBox.OnSearchFieldFocus(false)">'+
|
||||||
|
'</form>'+
|
||||||
|
'</div>'+
|
||||||
|
'<div class="right"></div>'+
|
||||||
|
'</div>';
|
||||||
|
} else {
|
||||||
|
searchBox='<div id="MSearchBox" class="MSearchBoxInactive">'+
|
||||||
|
'<span class="left">'+
|
||||||
|
'<img id="MSearchSelect" src="'+relPath+
|
||||||
|
'search/mag_sel.svg" onmouseover="return searchBox.OnSearchSelectShow()"'+
|
||||||
|
' onmouseout="return searchBox.OnSearchSelectHide()" alt=""/>'+
|
||||||
|
'<input type="text" id="MSearchField" value="'+search+
|
||||||
|
'" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" '+
|
||||||
|
'onblur="searchBox.OnSearchFieldFocus(false)" '+
|
||||||
|
'onkeyup="searchBox.OnSearchFieldChange(event)"/>'+
|
||||||
|
'</span>'+
|
||||||
|
'<span class="right"><a id="MSearchClose" '+
|
||||||
|
'href="javascript:searchBox.CloseResultsWindow()">'+
|
||||||
|
'<img id="MSearchCloseImg" border="0" src="'+relPath+
|
||||||
|
'search/close.svg" alt=""/></a>'
|
||||||
|
'</span>'
|
||||||
|
'</div>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$('#main-nav').before('<div class="sm sm-dox"><input id="main-menu-state" type="checkbox"/>'+
|
||||||
|
'<label class="main-menu-btn" for="main-menu-state">'+
|
||||||
|
'<span class="main-menu-btn-icon"></span> '+
|
||||||
|
'Toggle main menu visibility</label>'+
|
||||||
|
'<span id="searchBoxPos1" style="position:absolute;right:8px;top:8px;height:36px;"></span>'+
|
||||||
|
'</div>');
|
||||||
|
$('#main-nav').append(makeTree(menudata,relPath));
|
||||||
|
$('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu');
|
||||||
|
if (searchBox) {
|
||||||
|
$('#main-menu').append('<li id="searchBoxPos2" style="float:right"></li>');
|
||||||
|
}
|
||||||
|
var $mainMenuState = $('#main-menu-state');
|
||||||
|
var prevWidth = 0;
|
||||||
|
if ($mainMenuState.length) {
|
||||||
|
function initResizableIfExists() {
|
||||||
|
if (typeof initResizable==='function') initResizable();
|
||||||
|
}
|
||||||
|
// animate mobile menu
|
||||||
|
$mainMenuState.change(function(e) {
|
||||||
|
var $menu = $('#main-menu');
|
||||||
|
var options = { duration: 250, step: initResizableIfExists };
|
||||||
|
if (this.checked) {
|
||||||
|
options['complete'] = function() { $menu.css('display', 'block') };
|
||||||
|
$menu.hide().slideDown(options);
|
||||||
|
} else {
|
||||||
|
options['complete'] = function() { $menu.css('display', 'none') };
|
||||||
|
$menu.show().slideUp(options);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
// set default menu visibility
|
||||||
|
function resetState() {
|
||||||
|
var $menu = $('#main-menu');
|
||||||
|
var $mainMenuState = $('#main-menu-state');
|
||||||
|
var newWidth = $(window).outerWidth();
|
||||||
|
if (newWidth!=prevWidth) {
|
||||||
|
if ($(window).outerWidth()<768) {
|
||||||
|
$mainMenuState.prop('checked',false); $menu.hide();
|
||||||
|
$('#searchBoxPos1').html(searchBox);
|
||||||
|
$('#searchBoxPos2').hide();
|
||||||
|
} else {
|
||||||
|
$menu.show();
|
||||||
|
$('#searchBoxPos1').empty();
|
||||||
|
$('#searchBoxPos2').html(searchBox);
|
||||||
|
$('#searchBoxPos2').show();
|
||||||
|
}
|
||||||
|
prevWidth = newWidth;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$(window).ready(function() { resetState(); initResizableIfExists(); });
|
||||||
|
$(window).resize(resetState);
|
||||||
|
}
|
||||||
|
$('#main-menu').smartmenus();
|
||||||
|
}
|
||||||
|
/* @license-end */
|
61
doxygen/html/menudata.js
Normal file
|
@ -0,0 +1,61 @@
|
||||||
|
/*
|
||||||
|
@licstart The following is the entire license notice for the JavaScript code in this file.
|
||||||
|
|
||||||
|
The MIT License (MIT)
|
||||||
|
|
||||||
|
Copyright (C) 1997-2020 by Dimitri van Heesch
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy of this software
|
||||||
|
and associated documentation files (the "Software"), to deal in the Software without restriction,
|
||||||
|
including without limitation the rights to use, copy, modify, merge, publish, distribute,
|
||||||
|
sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all copies or
|
||||||
|
substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
|
||||||
|
BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
|
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||||
|
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
|
@licend The above is the entire license notice for the JavaScript code in this file
|
||||||
|
*/
|
||||||
|
var menudata={children:[
|
||||||
|
{text:"Main Page",url:"index.html"},
|
||||||
|
{text:"Classes",url:"annotated.html",children:[
|
||||||
|
{text:"Class List",url:"annotated.html"},
|
||||||
|
{text:"Class Index",url:"classes.html"},
|
||||||
|
{text:"Class Hierarchy",url:"hierarchy.html"},
|
||||||
|
{text:"Class Members",url:"functions.html",children:[
|
||||||
|
{text:"All",url:"functions.html",children:[
|
||||||
|
{text:"a",url:"functions.html#index_a"},
|
||||||
|
{text:"c",url:"functions.html#index_c"},
|
||||||
|
{text:"d",url:"functions.html#index_d"},
|
||||||
|
{text:"f",url:"functions.html#index_f"},
|
||||||
|
{text:"g",url:"functions.html#index_g"},
|
||||||
|
{text:"i",url:"functions.html#index_i"},
|
||||||
|
{text:"j",url:"functions.html#index_j"},
|
||||||
|
{text:"n",url:"functions.html#index_n"},
|
||||||
|
{text:"p",url:"functions.html#index_p"},
|
||||||
|
{text:"r",url:"functions.html#index_r"},
|
||||||
|
{text:"s",url:"functions.html#index_s"},
|
||||||
|
{text:"u",url:"functions.html#index_u"},
|
||||||
|
{text:"~",url:"functions.html#index__7E"}]},
|
||||||
|
{text:"Functions",url:"functions_func.html",children:[
|
||||||
|
{text:"a",url:"functions_func.html#index_a"},
|
||||||
|
{text:"c",url:"functions_func.html#index_c"},
|
||||||
|
{text:"d",url:"functions_func.html#index_d"},
|
||||||
|
{text:"f",url:"functions_func.html#index_f"},
|
||||||
|
{text:"g",url:"functions_func.html#index_g"},
|
||||||
|
{text:"i",url:"functions_func.html#index_i"},
|
||||||
|
{text:"j",url:"functions_func.html#index_j"},
|
||||||
|
{text:"n",url:"functions_func.html#index_n"},
|
||||||
|
{text:"p",url:"functions_func.html#index_p"},
|
||||||
|
{text:"r",url:"functions_func.html#index_r"},
|
||||||
|
{text:"s",url:"functions_func.html#index_s"},
|
||||||
|
{text:"u",url:"functions_func.html#index_u"},
|
||||||
|
{text:"~",url:"functions_func.html#index__7E"}]}]}]},
|
||||||
|
{text:"Files",url:"files.html",children:[
|
||||||
|
{text:"File List",url:"files.html"}]}]}
|
BIN
doxygen/html/nav_f.png
Normal file
After Width: | Height: | Size: 153 B |
BIN
doxygen/html/nav_g.png
Normal file
After Width: | Height: | Size: 95 B |
BIN
doxygen/html/nav_h.png
Normal file
After Width: | Height: | Size: 98 B |
147
doxygen/html/navtree.css
Normal file
|
@ -0,0 +1,147 @@
|
||||||
|
#nav-tree .children_ul {
|
||||||
|
margin:0;
|
||||||
|
padding:4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#nav-tree ul {
|
||||||
|
list-style:none outside none;
|
||||||
|
margin:0px;
|
||||||
|
padding:0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#nav-tree li {
|
||||||
|
white-space:nowrap;
|
||||||
|
margin:0px;
|
||||||
|
padding:0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#nav-tree .plus {
|
||||||
|
margin:0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#nav-tree .selected {
|
||||||
|
background-image: url('tab_a.png');
|
||||||
|
background-repeat:repeat-x;
|
||||||
|
color: #fff;
|
||||||
|
text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
|
||||||
|
}
|
||||||
|
|
||||||
|
#nav-tree img {
|
||||||
|
margin:0px;
|
||||||
|
padding:0px;
|
||||||
|
border:0px;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
#nav-tree a {
|
||||||
|
text-decoration:none;
|
||||||
|
padding:0px;
|
||||||
|
margin:0px;
|
||||||
|
outline:none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#nav-tree .label {
|
||||||
|
margin:0px;
|
||||||
|
padding:0px;
|
||||||
|
font: 12px 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
#nav-tree .label a {
|
||||||
|
padding:2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#nav-tree .selected a {
|
||||||
|
text-decoration:none;
|
||||||
|
color:#fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
#nav-tree .children_ul {
|
||||||
|
margin:0px;
|
||||||
|
padding:0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#nav-tree .item {
|
||||||
|
margin:0px;
|
||||||
|
padding:0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#nav-tree {
|
||||||
|
padding: 0px 0px;
|
||||||
|
background-color: #FAFAFF;
|
||||||
|
font-size:14px;
|
||||||
|
overflow:auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
#doc-content {
|
||||||
|
overflow:auto;
|
||||||
|
display:block;
|
||||||
|
padding:0px;
|
||||||
|
margin:0px;
|
||||||
|
-webkit-overflow-scrolling : touch; /* iOS 5+ */
|
||||||
|
}
|
||||||
|
|
||||||
|
#side-nav {
|
||||||
|
padding:0 6px 0 0;
|
||||||
|
margin: 0px;
|
||||||
|
display:block;
|
||||||
|
position: absolute;
|
||||||
|
left: 0px;
|
||||||
|
width: 250px;
|
||||||
|
overflow : hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ui-resizable .ui-resizable-handle {
|
||||||
|
display:block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ui-resizable-e {
|
||||||
|
background-image:url("splitbar.png");
|
||||||
|
background-size:100%;
|
||||||
|
background-repeat:repeat-y;
|
||||||
|
background-attachment: scroll;
|
||||||
|
cursor:ew-resize;
|
||||||
|
height:100%;
|
||||||
|
right:0;
|
||||||
|
top:0;
|
||||||
|
width:6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ui-resizable-handle {
|
||||||
|
display:none;
|
||||||
|
font-size:0.1px;
|
||||||
|
position:absolute;
|
||||||
|
z-index:1;
|
||||||
|
}
|
||||||
|
|
||||||
|
#nav-tree-contents {
|
||||||
|
margin: 6px 0px 0px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#nav-tree {
|
||||||
|
background-image:url('nav_h.png');
|
||||||
|
background-repeat:repeat-x;
|
||||||
|
background-color: #F9FAFC;
|
||||||
|
-webkit-overflow-scrolling : touch; /* iOS 5+ */
|
||||||
|
}
|
||||||
|
|
||||||
|
#nav-sync {
|
||||||
|
position:absolute;
|
||||||
|
top:5px;
|
||||||
|
right:24px;
|
||||||
|
z-index:0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#nav-sync img {
|
||||||
|
opacity:0.3;
|
||||||
|
}
|
||||||
|
|
||||||
|
#nav-sync img:hover {
|
||||||
|
opacity:0.9;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media print
|
||||||
|
{
|
||||||
|
#nav-tree { display: none; }
|
||||||
|
div.ui-resizable-handle { display: none; position: relative; }
|
||||||
|
}
|
||||||
|
|
549
doxygen/html/navtree.js
Normal file
|
@ -0,0 +1,549 @@
|
||||||
|
/*
|
||||||
|
@licstart The following is the entire license notice for the JavaScript code in this file.
|
||||||
|
|
||||||
|
The MIT License (MIT)
|
||||||
|
|
||||||
|
Copyright (C) 1997-2020 by Dimitri van Heesch
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy of this software
|
||||||
|
and associated documentation files (the "Software"), to deal in the Software without restriction,
|
||||||
|
including without limitation the rights to use, copy, modify, merge, publish, distribute,
|
||||||
|
sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all copies or
|
||||||
|
substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
|
||||||
|
BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
|
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||||
|
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
|
@licend The above is the entire license notice for the JavaScript code in this file
|
||||||
|
*/
|
||||||
|
var navTreeSubIndices = new Array();
|
||||||
|
var arrowDown = '▼';
|
||||||
|
var arrowRight = '►';
|
||||||
|
|
||||||
|
function getData(varName)
|
||||||
|
{
|
||||||
|
var i = varName.lastIndexOf('/');
|
||||||
|
var n = i>=0 ? varName.substring(i+1) : varName;
|
||||||
|
return eval(n.replace(/\-/g,'_'));
|
||||||
|
}
|
||||||
|
|
||||||
|
function stripPath(uri)
|
||||||
|
{
|
||||||
|
return uri.substring(uri.lastIndexOf('/')+1);
|
||||||
|
}
|
||||||
|
|
||||||
|
function stripPath2(uri)
|
||||||
|
{
|
||||||
|
var i = uri.lastIndexOf('/');
|
||||||
|
var s = uri.substring(i+1);
|
||||||
|
var m = uri.substring(0,i+1).match(/\/d\w\/d\w\w\/$/);
|
||||||
|
return m ? uri.substring(i-6) : s;
|
||||||
|
}
|
||||||
|
|
||||||
|
function hashValue()
|
||||||
|
{
|
||||||
|
return $(location).attr('hash').substring(1).replace(/[^\w\-]/g,'');
|
||||||
|
}
|
||||||
|
|
||||||
|
function hashUrl()
|
||||||
|
{
|
||||||
|
return '#'+hashValue();
|
||||||
|
}
|
||||||
|
|
||||||
|
function pathName()
|
||||||
|
{
|
||||||
|
return $(location).attr('pathname').replace(/[^-A-Za-z0-9+&@#/%?=~_|!:,.;\(\)]/g, '');
|
||||||
|
}
|
||||||
|
|
||||||
|
function localStorageSupported()
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
return 'localStorage' in window && window['localStorage'] !== null && window.localStorage.getItem;
|
||||||
|
}
|
||||||
|
catch(e) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function storeLink(link)
|
||||||
|
{
|
||||||
|
if (!$("#nav-sync").hasClass('sync') && localStorageSupported()) {
|
||||||
|
window.localStorage.setItem('navpath',link);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function deleteLink()
|
||||||
|
{
|
||||||
|
if (localStorageSupported()) {
|
||||||
|
window.localStorage.setItem('navpath','');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function cachedLink()
|
||||||
|
{
|
||||||
|
if (localStorageSupported()) {
|
||||||
|
return window.localStorage.getItem('navpath');
|
||||||
|
} else {
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function getScript(scriptName,func,show)
|
||||||
|
{
|
||||||
|
var head = document.getElementsByTagName("head")[0];
|
||||||
|
var script = document.createElement('script');
|
||||||
|
script.id = scriptName;
|
||||||
|
script.type = 'text/javascript';
|
||||||
|
script.onload = func;
|
||||||
|
script.src = scriptName+'.js';
|
||||||
|
head.appendChild(script);
|
||||||
|
}
|
||||||
|
|
||||||
|
function createIndent(o,domNode,node,level)
|
||||||
|
{
|
||||||
|
var level=-1;
|
||||||
|
var n = node;
|
||||||
|
while (n.parentNode) { level++; n=n.parentNode; }
|
||||||
|
if (node.childrenData) {
|
||||||
|
var imgNode = document.createElement("span");
|
||||||
|
imgNode.className = 'arrow';
|
||||||
|
imgNode.style.paddingLeft=(16*level).toString()+'px';
|
||||||
|
imgNode.innerHTML=arrowRight;
|
||||||
|
node.plus_img = imgNode;
|
||||||
|
node.expandToggle = document.createElement("a");
|
||||||
|
node.expandToggle.href = "javascript:void(0)";
|
||||||
|
node.expandToggle.onclick = function() {
|
||||||
|
if (node.expanded) {
|
||||||
|
$(node.getChildrenUL()).slideUp("fast");
|
||||||
|
node.plus_img.innerHTML=arrowRight;
|
||||||
|
node.expanded = false;
|
||||||
|
} else {
|
||||||
|
expandNode(o, node, false, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
node.expandToggle.appendChild(imgNode);
|
||||||
|
domNode.appendChild(node.expandToggle);
|
||||||
|
} else {
|
||||||
|
var span = document.createElement("span");
|
||||||
|
span.className = 'arrow';
|
||||||
|
span.style.width = 16*(level+1)+'px';
|
||||||
|
span.innerHTML = ' ';
|
||||||
|
domNode.appendChild(span);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var animationInProgress = false;
|
||||||
|
|
||||||
|
function gotoAnchor(anchor,aname,updateLocation)
|
||||||
|
{
|
||||||
|
var pos, docContent = $('#doc-content');
|
||||||
|
var ancParent = $(anchor.parent());
|
||||||
|
if (ancParent.hasClass('memItemLeft') ||
|
||||||
|
ancParent.hasClass('memtitle') ||
|
||||||
|
ancParent.hasClass('fieldname') ||
|
||||||
|
ancParent.hasClass('fieldtype') ||
|
||||||
|
ancParent.is(':header'))
|
||||||
|
{
|
||||||
|
pos = ancParent.position().top;
|
||||||
|
} else if (anchor.position()) {
|
||||||
|
pos = anchor.position().top;
|
||||||
|
}
|
||||||
|
if (pos) {
|
||||||
|
var dist = Math.abs(Math.min(
|
||||||
|
pos-docContent.offset().top,
|
||||||
|
docContent[0].scrollHeight-
|
||||||
|
docContent.height()-docContent.scrollTop()));
|
||||||
|
animationInProgress=true;
|
||||||
|
docContent.animate({
|
||||||
|
scrollTop: pos + docContent.scrollTop() - docContent.offset().top
|
||||||
|
},Math.max(50,Math.min(500,dist)),function(){
|
||||||
|
if (updateLocation) window.location.href=aname;
|
||||||
|
animationInProgress=false;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function newNode(o, po, text, link, childrenData, lastNode)
|
||||||
|
{
|
||||||
|
var node = new Object();
|
||||||
|
node.children = Array();
|
||||||
|
node.childrenData = childrenData;
|
||||||
|
node.depth = po.depth + 1;
|
||||||
|
node.relpath = po.relpath;
|
||||||
|
node.isLast = lastNode;
|
||||||
|
|
||||||
|
node.li = document.createElement("li");
|
||||||
|
po.getChildrenUL().appendChild(node.li);
|
||||||
|
node.parentNode = po;
|
||||||
|
|
||||||
|
node.itemDiv = document.createElement("div");
|
||||||
|
node.itemDiv.className = "item";
|
||||||
|
|
||||||
|
node.labelSpan = document.createElement("span");
|
||||||
|
node.labelSpan.className = "label";
|
||||||
|
|
||||||
|
createIndent(o,node.itemDiv,node,0);
|
||||||
|
node.itemDiv.appendChild(node.labelSpan);
|
||||||
|
node.li.appendChild(node.itemDiv);
|
||||||
|
|
||||||
|
var a = document.createElement("a");
|
||||||
|
node.labelSpan.appendChild(a);
|
||||||
|
node.label = document.createTextNode(text);
|
||||||
|
node.expanded = false;
|
||||||
|
a.appendChild(node.label);
|
||||||
|
if (link) {
|
||||||
|
var url;
|
||||||
|
if (link.substring(0,1)=='^') {
|
||||||
|
url = link.substring(1);
|
||||||
|
link = url;
|
||||||
|
} else {
|
||||||
|
url = node.relpath+link;
|
||||||
|
}
|
||||||
|
a.className = stripPath(link.replace('#',':'));
|
||||||
|
if (link.indexOf('#')!=-1) {
|
||||||
|
var aname = '#'+link.split('#')[1];
|
||||||
|
var srcPage = stripPath(pathName());
|
||||||
|
var targetPage = stripPath(link.split('#')[0]);
|
||||||
|
a.href = srcPage!=targetPage ? url : "javascript:void(0)";
|
||||||
|
a.onclick = function(){
|
||||||
|
storeLink(link);
|
||||||
|
if (!$(a).parent().parent().hasClass('selected'))
|
||||||
|
{
|
||||||
|
$('.item').removeClass('selected');
|
||||||
|
$('.item').removeAttr('id');
|
||||||
|
$(a).parent().parent().addClass('selected');
|
||||||
|
$(a).parent().parent().attr('id','selected');
|
||||||
|
}
|
||||||
|
var anchor = $(aname);
|
||||||
|
gotoAnchor(anchor,aname,true);
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
a.href = url;
|
||||||
|
a.onclick = function() { storeLink(link); }
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (childrenData != null)
|
||||||
|
{
|
||||||
|
a.className = "nolink";
|
||||||
|
a.href = "javascript:void(0)";
|
||||||
|
a.onclick = node.expandToggle.onclick;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
node.childrenUL = null;
|
||||||
|
node.getChildrenUL = function() {
|
||||||
|
if (!node.childrenUL) {
|
||||||
|
node.childrenUL = document.createElement("ul");
|
||||||
|
node.childrenUL.className = "children_ul";
|
||||||
|
node.childrenUL.style.display = "none";
|
||||||
|
node.li.appendChild(node.childrenUL);
|
||||||
|
}
|
||||||
|
return node.childrenUL;
|
||||||
|
};
|
||||||
|
|
||||||
|
return node;
|
||||||
|
}
|
||||||
|
|
||||||
|
function showRoot()
|
||||||
|
{
|
||||||
|
var headerHeight = $("#top").height();
|
||||||
|
var footerHeight = $("#nav-path").height();
|
||||||
|
var windowHeight = $(window).height() - headerHeight - footerHeight;
|
||||||
|
(function (){ // retry until we can scroll to the selected item
|
||||||
|
try {
|
||||||
|
var navtree=$('#nav-tree');
|
||||||
|
navtree.scrollTo('#selected',100,{offset:-windowHeight/2});
|
||||||
|
} catch (err) {
|
||||||
|
setTimeout(arguments.callee, 0);
|
||||||
|
}
|
||||||
|
})();
|
||||||
|
}
|
||||||
|
|
||||||
|
function expandNode(o, node, imm, showRoot)
|
||||||
|
{
|
||||||
|
if (node.childrenData && !node.expanded) {
|
||||||
|
if (typeof(node.childrenData)==='string') {
|
||||||
|
var varName = node.childrenData;
|
||||||
|
getScript(node.relpath+varName,function(){
|
||||||
|
node.childrenData = getData(varName);
|
||||||
|
expandNode(o, node, imm, showRoot);
|
||||||
|
}, showRoot);
|
||||||
|
} else {
|
||||||
|
if (!node.childrenVisited) {
|
||||||
|
getNode(o, node);
|
||||||
|
}
|
||||||
|
$(node.getChildrenUL()).slideDown("fast");
|
||||||
|
node.plus_img.innerHTML = arrowDown;
|
||||||
|
node.expanded = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function glowEffect(n,duration)
|
||||||
|
{
|
||||||
|
n.addClass('glow').delay(duration).queue(function(next){
|
||||||
|
$(this).removeClass('glow');next();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function highlightAnchor()
|
||||||
|
{
|
||||||
|
var aname = hashUrl();
|
||||||
|
var anchor = $(aname);
|
||||||
|
if (anchor.parent().attr('class')=='memItemLeft'){
|
||||||
|
var rows = $('.memberdecls tr[class$="'+hashValue()+'"]');
|
||||||
|
glowEffect(rows.children(),300); // member without details
|
||||||
|
} else if (anchor.parent().attr('class')=='fieldname'){
|
||||||
|
glowEffect(anchor.parent().parent(),1000); // enum value
|
||||||
|
} else if (anchor.parent().attr('class')=='fieldtype'){
|
||||||
|
glowEffect(anchor.parent().parent(),1000); // struct field
|
||||||
|
} else if (anchor.parent().is(":header")) {
|
||||||
|
glowEffect(anchor.parent(),1000); // section header
|
||||||
|
} else {
|
||||||
|
glowEffect(anchor.next(),1000); // normal member
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function selectAndHighlight(hash,n)
|
||||||
|
{
|
||||||
|
var a;
|
||||||
|
if (hash) {
|
||||||
|
var link=stripPath(pathName())+':'+hash.substring(1);
|
||||||
|
a=$('.item a[class$="'+link+'"]');
|
||||||
|
}
|
||||||
|
if (a && a.length) {
|
||||||
|
a.parent().parent().addClass('selected');
|
||||||
|
a.parent().parent().attr('id','selected');
|
||||||
|
highlightAnchor();
|
||||||
|
} else if (n) {
|
||||||
|
$(n.itemDiv).addClass('selected');
|
||||||
|
$(n.itemDiv).attr('id','selected');
|
||||||
|
}
|
||||||
|
var topOffset=5;
|
||||||
|
if (typeof page_layout!=='undefined' && page_layout==1) {
|
||||||
|
topOffset+=$('#top').outerHeight();
|
||||||
|
}
|
||||||
|
if ($('#nav-tree-contents .item:first').hasClass('selected')) {
|
||||||
|
topOffset+=25;
|
||||||
|
}
|
||||||
|
$('#nav-sync').css('top',topOffset+'px');
|
||||||
|
showRoot();
|
||||||
|
}
|
||||||
|
|
||||||
|
function showNode(o, node, index, hash)
|
||||||
|
{
|
||||||
|
if (node && node.childrenData) {
|
||||||
|
if (typeof(node.childrenData)==='string') {
|
||||||
|
var varName = node.childrenData;
|
||||||
|
getScript(node.relpath+varName,function(){
|
||||||
|
node.childrenData = getData(varName);
|
||||||
|
showNode(o,node,index,hash);
|
||||||
|
},true);
|
||||||
|
} else {
|
||||||
|
if (!node.childrenVisited) {
|
||||||
|
getNode(o, node);
|
||||||
|
}
|
||||||
|
$(node.getChildrenUL()).css({'display':'block'});
|
||||||
|
node.plus_img.innerHTML = arrowDown;
|
||||||
|
node.expanded = true;
|
||||||
|
var n = node.children[o.breadcrumbs[index]];
|
||||||
|
if (index+1<o.breadcrumbs.length) {
|
||||||
|
showNode(o,n,index+1,hash);
|
||||||
|
} else {
|
||||||
|
if (typeof(n.childrenData)==='string') {
|
||||||
|
var varName = n.childrenData;
|
||||||
|
getScript(n.relpath+varName,function(){
|
||||||
|
n.childrenData = getData(varName);
|
||||||
|
node.expanded=false;
|
||||||
|
showNode(o,node,index,hash); // retry with child node expanded
|
||||||
|
},true);
|
||||||
|
} else {
|
||||||
|
var rootBase = stripPath(o.toroot.replace(/\..+$/, ''));
|
||||||
|
if (rootBase=="index" || rootBase=="pages" || rootBase=="search") {
|
||||||
|
expandNode(o, n, true, true);
|
||||||
|
}
|
||||||
|
selectAndHighlight(hash,n);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
selectAndHighlight(hash);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function removeToInsertLater(element) {
|
||||||
|
var parentNode = element.parentNode;
|
||||||
|
var nextSibling = element.nextSibling;
|
||||||
|
parentNode.removeChild(element);
|
||||||
|
return function() {
|
||||||
|
if (nextSibling) {
|
||||||
|
parentNode.insertBefore(element, nextSibling);
|
||||||
|
} else {
|
||||||
|
parentNode.appendChild(element);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
function getNode(o, po)
|
||||||
|
{
|
||||||
|
var insertFunction = removeToInsertLater(po.li);
|
||||||
|
po.childrenVisited = true;
|
||||||
|
var l = po.childrenData.length-1;
|
||||||
|
for (var i in po.childrenData) {
|
||||||
|
var nodeData = po.childrenData[i];
|
||||||
|
po.children[i] = newNode(o, po, nodeData[0], nodeData[1], nodeData[2],
|
||||||
|
i==l);
|
||||||
|
}
|
||||||
|
insertFunction();
|
||||||
|
}
|
||||||
|
|
||||||
|
function gotoNode(o,subIndex,root,hash,relpath)
|
||||||
|
{
|
||||||
|
var nti = navTreeSubIndices[subIndex][root+hash];
|
||||||
|
o.breadcrumbs = $.extend(true, [], nti ? nti : navTreeSubIndices[subIndex][root]);
|
||||||
|
if (!o.breadcrumbs && root!=NAVTREE[0][1]) { // fallback: show index
|
||||||
|
navTo(o,NAVTREE[0][1],"",relpath);
|
||||||
|
$('.item').removeClass('selected');
|
||||||
|
$('.item').removeAttr('id');
|
||||||
|
}
|
||||||
|
if (o.breadcrumbs) {
|
||||||
|
o.breadcrumbs.unshift(0); // add 0 for root node
|
||||||
|
showNode(o, o.node, 0, hash);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function navTo(o,root,hash,relpath)
|
||||||
|
{
|
||||||
|
var link = cachedLink();
|
||||||
|
if (link) {
|
||||||
|
var parts = link.split('#');
|
||||||
|
root = parts[0];
|
||||||
|
if (parts.length>1) hash = '#'+parts[1].replace(/[^\w\-]/g,'');
|
||||||
|
else hash='';
|
||||||
|
}
|
||||||
|
if (hash.match(/^#l\d+$/)) {
|
||||||
|
var anchor=$('a[name='+hash.substring(1)+']');
|
||||||
|
glowEffect(anchor.parent(),1000); // line number
|
||||||
|
hash=''; // strip line number anchors
|
||||||
|
}
|
||||||
|
var url=root+hash;
|
||||||
|
var i=-1;
|
||||||
|
while (NAVTREEINDEX[i+1]<=url) i++;
|
||||||
|
if (i==-1) { i=0; root=NAVTREE[0][1]; } // fallback: show index
|
||||||
|
if (navTreeSubIndices[i]) {
|
||||||
|
gotoNode(o,i,root,hash,relpath)
|
||||||
|
} else {
|
||||||
|
getScript(relpath+'navtreeindex'+i,function(){
|
||||||
|
navTreeSubIndices[i] = eval('NAVTREEINDEX'+i);
|
||||||
|
if (navTreeSubIndices[i]) {
|
||||||
|
gotoNode(o,i,root,hash,relpath);
|
||||||
|
}
|
||||||
|
},true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function showSyncOff(n,relpath)
|
||||||
|
{
|
||||||
|
n.html('<img src="'+relpath+'sync_off.png" title="'+SYNCOFFMSG+'"/>');
|
||||||
|
}
|
||||||
|
|
||||||
|
function showSyncOn(n,relpath)
|
||||||
|
{
|
||||||
|
n.html('<img src="'+relpath+'sync_on.png" title="'+SYNCONMSG+'"/>');
|
||||||
|
}
|
||||||
|
|
||||||
|
function toggleSyncButton(relpath)
|
||||||
|
{
|
||||||
|
var navSync = $('#nav-sync');
|
||||||
|
if (navSync.hasClass('sync')) {
|
||||||
|
navSync.removeClass('sync');
|
||||||
|
showSyncOff(navSync,relpath);
|
||||||
|
storeLink(stripPath2(pathName())+hashUrl());
|
||||||
|
} else {
|
||||||
|
navSync.addClass('sync');
|
||||||
|
showSyncOn(navSync,relpath);
|
||||||
|
deleteLink();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var loadTriggered = false;
|
||||||
|
var readyTriggered = false;
|
||||||
|
var loadObject,loadToRoot,loadUrl,loadRelPath;
|
||||||
|
|
||||||
|
$(window).on('load',function(){
|
||||||
|
if (readyTriggered) { // ready first
|
||||||
|
navTo(loadObject,loadToRoot,loadUrl,loadRelPath);
|
||||||
|
showRoot();
|
||||||
|
}
|
||||||
|
loadTriggered=true;
|
||||||
|
});
|
||||||
|
|
||||||
|
function initNavTree(toroot,relpath)
|
||||||
|
{
|
||||||
|
var o = new Object();
|
||||||
|
o.toroot = toroot;
|
||||||
|
o.node = new Object();
|
||||||
|
o.node.li = document.getElementById("nav-tree-contents");
|
||||||
|
o.node.childrenData = NAVTREE;
|
||||||
|
o.node.children = new Array();
|
||||||
|
o.node.childrenUL = document.createElement("ul");
|
||||||
|
o.node.getChildrenUL = function() { return o.node.childrenUL; };
|
||||||
|
o.node.li.appendChild(o.node.childrenUL);
|
||||||
|
o.node.depth = 0;
|
||||||
|
o.node.relpath = relpath;
|
||||||
|
o.node.expanded = false;
|
||||||
|
o.node.isLast = true;
|
||||||
|
o.node.plus_img = document.createElement("span");
|
||||||
|
o.node.plus_img.className = 'arrow';
|
||||||
|
o.node.plus_img.innerHTML = arrowRight;
|
||||||
|
|
||||||
|
if (localStorageSupported()) {
|
||||||
|
var navSync = $('#nav-sync');
|
||||||
|
if (cachedLink()) {
|
||||||
|
showSyncOff(navSync,relpath);
|
||||||
|
navSync.removeClass('sync');
|
||||||
|
} else {
|
||||||
|
showSyncOn(navSync,relpath);
|
||||||
|
}
|
||||||
|
navSync.click(function(){ toggleSyncButton(relpath); });
|
||||||
|
}
|
||||||
|
|
||||||
|
if (loadTriggered) { // load before ready
|
||||||
|
navTo(o,toroot,hashUrl(),relpath);
|
||||||
|
showRoot();
|
||||||
|
} else { // ready before load
|
||||||
|
loadObject = o;
|
||||||
|
loadToRoot = toroot;
|
||||||
|
loadUrl = hashUrl();
|
||||||
|
loadRelPath = relpath;
|
||||||
|
readyTriggered=true;
|
||||||
|
}
|
||||||
|
|
||||||
|
$(window).bind('hashchange', function(){
|
||||||
|
if (window.location.hash && window.location.hash.length>1){
|
||||||
|
var a;
|
||||||
|
if ($(location).attr('hash')){
|
||||||
|
var clslink=stripPath(pathName())+':'+hashValue();
|
||||||
|
a=$('.item a[class$="'+clslink.replace(/</g,'\\3c ')+'"]');
|
||||||
|
}
|
||||||
|
if (a==null || !$(a).parent().parent().hasClass('selected')){
|
||||||
|
$('.item').removeClass('selected');
|
||||||
|
$('.item').removeAttr('id');
|
||||||
|
}
|
||||||
|
var link=stripPath2(pathName());
|
||||||
|
navTo(o,link,hashUrl(),relpath);
|
||||||
|
} else if (!animationInProgress) {
|
||||||
|
$('#doc-content').scrollTop(0);
|
||||||
|
$('.item').removeClass('selected');
|
||||||
|
$('.item').removeAttr('id');
|
||||||
|
navTo(o,toroot,hashUrl(),relpath);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
/* @license-end */
|
51
doxygen/html/navtreedata.js
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
/*
|
||||||
|
@licstart The following is the entire license notice for the JavaScript code in this file.
|
||||||
|
|
||||||
|
The MIT License (MIT)
|
||||||
|
|
||||||
|
Copyright (C) 1997-2020 by Dimitri van Heesch
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy of this software
|
||||||
|
and associated documentation files (the "Software"), to deal in the Software without restriction,
|
||||||
|
including without limitation the rights to use, copy, modify, merge, publish, distribute,
|
||||||
|
sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all copies or
|
||||||
|
substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
|
||||||
|
BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
|
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||||
|
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
|
@licend The above is the entire license notice for the JavaScript code in this file
|
||||||
|
*/
|
||||||
|
var NAVTREE =
|
||||||
|
[
|
||||||
|
[ "ESP32/ESP8266 Firewall", "index.html", [
|
||||||
|
[ "Examples", "index.html#autotoc_md1", null ],
|
||||||
|
[ "Maintainer", "index.html#autotoc_md2", null ],
|
||||||
|
[ "Classes", "annotated.html", [
|
||||||
|
[ "Class List", "annotated.html", "annotated_dup" ],
|
||||||
|
[ "Class Index", "classes.html", null ],
|
||||||
|
[ "Class Hierarchy", "hierarchy.html", "hierarchy" ],
|
||||||
|
[ "Class Members", "functions.html", [
|
||||||
|
[ "All", "functions.html", null ],
|
||||||
|
[ "Functions", "functions_func.html", null ]
|
||||||
|
] ]
|
||||||
|
] ],
|
||||||
|
[ "Files", "files.html", [
|
||||||
|
[ "File List", "files.html", "files_dup" ]
|
||||||
|
] ]
|
||||||
|
] ]
|
||||||
|
];
|
||||||
|
|
||||||
|
var NAVTREEINDEX =
|
||||||
|
[
|
||||||
|
"_a_p_i_8hpp_source.html"
|
||||||
|
];
|
||||||
|
|
||||||
|
var SYNCONMSG = 'click to disable panel synchronisation';
|
||||||
|
var SYNCOFFMSG = 'click to enable panel synchronisation';
|
67
doxygen/html/navtreeindex0.js
Normal file
|
@ -0,0 +1,67 @@
|
||||||
|
var NAVTREEINDEX0 =
|
||||||
|
{
|
||||||
|
"_a_p_i_8hpp_source.html":[3,0,0,0],
|
||||||
|
"_firewall_8hpp_source.html":[3,0,0,1],
|
||||||
|
"_storage_8hpp_source.html":[3,0,0,2],
|
||||||
|
"_utils_8hpp_source.html":[3,0,0,3],
|
||||||
|
"annotated.html":[2,0],
|
||||||
|
"classes.html":[2,1],
|
||||||
|
"classfw_1_1_a_p_i.html":[2,0,0,0],
|
||||||
|
"classfw_1_1_a_p_i.html#a033d5efd077dfad456cb6e6e7dd2baca":[2,0,0,0,0],
|
||||||
|
"classfw_1_1_a_p_i.html#a0ff5aeb3b916dae9219041dc240d9156":[2,0,0,0,16],
|
||||||
|
"classfw_1_1_a_p_i.html#a175d139d29530e2946f67789c9652da8":[2,0,0,0,5],
|
||||||
|
"classfw_1_1_a_p_i.html#a1892bc26b882b055853e26ed95d8d802":[2,0,0,0,13],
|
||||||
|
"classfw_1_1_a_p_i.html#a2d78e9dd43abb72da8872cb207db25e3":[2,0,0,0,19],
|
||||||
|
"classfw_1_1_a_p_i.html#a45dcdd4969f70a7f1a02e49a47b16a1d":[2,0,0,0,22],
|
||||||
|
"classfw_1_1_a_p_i.html#a592c2aa501ff920ebcc125f8d5635deb":[2,0,0,0,8],
|
||||||
|
"classfw_1_1_a_p_i.html#a66ac0bd592bb08d069aea199668670ab":[2,0,0,0,1],
|
||||||
|
"classfw_1_1_a_p_i.html#a682ec7e09a230507c39cbc7d7c7427d5":[2,0,0,0,6],
|
||||||
|
"classfw_1_1_a_p_i.html#a6b7d4ce75b9cdba0dd39c6c949ef1c15":[2,0,0,0,15],
|
||||||
|
"classfw_1_1_a_p_i.html#a6ce4a9dd9afae493f6639b6fb3f6ba45":[2,0,0,0,20],
|
||||||
|
"classfw_1_1_a_p_i.html#a734cbd9da536fb297da87b4310f20ba1":[2,0,0,0,9],
|
||||||
|
"classfw_1_1_a_p_i.html#a90986dc50f303564e6f5af6d3707dd20":[2,0,0,0,23],
|
||||||
|
"classfw_1_1_a_p_i.html#aa541a477e14a992b55e3f75351887cab":[2,0,0,0,4],
|
||||||
|
"classfw_1_1_a_p_i.html#aad90a1bfa8e00c4e25a091e5e9a61772":[2,0,0,0,2],
|
||||||
|
"classfw_1_1_a_p_i.html#ab904f77fa777a1c8c19deb8e39cf89e8":[2,0,0,0,11],
|
||||||
|
"classfw_1_1_a_p_i.html#aba378d97c999dda14ef2e4e97a9948f5":[2,0,0,0,17],
|
||||||
|
"classfw_1_1_a_p_i.html#abab79e90786d14836dcf113077891c50":[2,0,0,0,21],
|
||||||
|
"classfw_1_1_a_p_i.html#ac249b6e7533414d0296bde477cecac1b":[2,0,0,0,7],
|
||||||
|
"classfw_1_1_a_p_i.html#ac76f5a6c9c28d71772b238a51b122e4a":[2,0,0,0,10],
|
||||||
|
"classfw_1_1_a_p_i.html#acbebab924241292706c0287dca5c3ff5":[2,0,0,0,14],
|
||||||
|
"classfw_1_1_a_p_i.html#adc9523a1b6e6a6e8f57a514a25c35b8c":[2,0,0,0,3],
|
||||||
|
"classfw_1_1_a_p_i.html#aeb74e3b9efc2305c943683b14957ac9d":[2,0,0,0,18],
|
||||||
|
"classfw_1_1_a_p_i.html#af5dc938ae5a274e3599d637e672b8d07":[2,0,0,0,12],
|
||||||
|
"classfw_1_1_firewall.html":[2,0,0,1],
|
||||||
|
"classfw_1_1_firewall.html#a25fac8da12651a927c8285aa75e213d1":[2,0,0,1,4],
|
||||||
|
"classfw_1_1_firewall.html#a26fea38729777e00e5ee3a8d58f785b1":[2,0,0,1,9],
|
||||||
|
"classfw_1_1_firewall.html#a2c7c043d66b645ecc15e71561132057d":[2,0,0,1,1],
|
||||||
|
"classfw_1_1_firewall.html#a2cc2717bd5999bc9a2f24ae33e4abd42":[2,0,0,1,0],
|
||||||
|
"classfw_1_1_firewall.html#a6815085477349f902e77cc5564b1b5ba":[2,0,0,1,5],
|
||||||
|
"classfw_1_1_firewall.html#a7aa017cfb1ae6d6748d3f8c48e18dcf2":[2,0,0,1,6],
|
||||||
|
"classfw_1_1_firewall.html#a81eca0d34c28e5c4244b557a1f8e047d":[2,0,0,1,8],
|
||||||
|
"classfw_1_1_firewall.html#a86f7d6ef56888f673fa46c4bc9ad3009":[2,0,0,1,7],
|
||||||
|
"classfw_1_1_firewall.html#a987ec9a98b7d6ef56cf569e0290b3594":[2,0,0,1,10],
|
||||||
|
"classfw_1_1_firewall.html#aae2a4a36257033c91f8f183b11de82c5":[2,0,0,1,2],
|
||||||
|
"classfw_1_1_firewall.html#af1d9481f13052673c64aaf88d019e01d":[2,0,0,1,3],
|
||||||
|
"classfw_1_1_storage.html":[2,0,0,2],
|
||||||
|
"classfw_1_1_storage.html#a11b6f2d893abc79879418853d4f840e1":[2,0,0,2,1],
|
||||||
|
"classfw_1_1_storage.html#a20d0089533fea31893b323f7fde8535c":[2,0,0,2,3],
|
||||||
|
"classfw_1_1_storage.html#a7747d174b1b3dd6bb417c1c5a8ac259c":[2,0,0,2,4],
|
||||||
|
"classfw_1_1_storage.html#a79d1951d339a19edab7fd22aaa68cc96":[2,0,0,2,5],
|
||||||
|
"classfw_1_1_storage.html#a9b9fcc0e523d4b14a77e33a5806a348e":[2,0,0,2,0],
|
||||||
|
"classfw_1_1_storage.html#a9c1d226dbad072a6d0bf7e3507b7863b":[2,0,0,2,6],
|
||||||
|
"classfw_1_1_storage.html#aba4b010a57e6f5f5255b41d832891394":[2,0,0,2,2],
|
||||||
|
"dir_68267d1309a1af8e8297ef4c3efbcdba.html":[3,0,0],
|
||||||
|
"files.html":[3,0],
|
||||||
|
"functions.html":[2,3,0],
|
||||||
|
"functions_func.html":[2,3,1],
|
||||||
|
"hierarchy.html":[2,2],
|
||||||
|
"index.html":[],
|
||||||
|
"index.html#autotoc_md1":[0],
|
||||||
|
"index.html#autotoc_md2":[1],
|
||||||
|
"pages.html":[],
|
||||||
|
"structapi__endpoint__t.html":[2,0,1],
|
||||||
|
"structcredential__t.html":[2,0,2],
|
||||||
|
"structfirewall__rule__t.html":[2,0,3],
|
||||||
|
"structmy__packet__t.html":[2,0,4]
|
||||||
|
};
|
BIN
doxygen/html/open.png
Normal file
After Width: | Height: | Size: 123 B |
150
doxygen/html/resize.js
Normal file
|
@ -0,0 +1,150 @@
|
||||||
|
/*
|
||||||
|
@licstart The following is the entire license notice for the JavaScript code in this file.
|
||||||
|
|
||||||
|
The MIT License (MIT)
|
||||||
|
|
||||||
|
Copyright (C) 1997-2020 by Dimitri van Heesch
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy of this software
|
||||||
|
and associated documentation files (the "Software"), to deal in the Software without restriction,
|
||||||
|
including without limitation the rights to use, copy, modify, merge, publish, distribute,
|
||||||
|
sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all copies or
|
||||||
|
substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
|
||||||
|
BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
|
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||||
|
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
|
@licend The above is the entire license notice for the JavaScript code in this file
|
||||||
|
*/
|
||||||
|
function initResizable()
|
||||||
|
{
|
||||||
|
var cookie_namespace = 'doxygen';
|
||||||
|
var sidenav,navtree,content,header,collapsed,collapsedWidth=0,barWidth=6,desktop_vp=768,titleHeight;
|
||||||
|
|
||||||
|
function readCookie(cookie)
|
||||||
|
{
|
||||||
|
var myCookie = cookie_namespace+"_"+cookie+"=";
|
||||||
|
if (document.cookie) {
|
||||||
|
var index = document.cookie.indexOf(myCookie);
|
||||||
|
if (index != -1) {
|
||||||
|
var valStart = index + myCookie.length;
|
||||||
|
var valEnd = document.cookie.indexOf(";", valStart);
|
||||||
|
if (valEnd == -1) {
|
||||||
|
valEnd = document.cookie.length;
|
||||||
|
}
|
||||||
|
var val = document.cookie.substring(valStart, valEnd);
|
||||||
|
return val;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
function writeCookie(cookie, val, expiration)
|
||||||
|
{
|
||||||
|
if (val==undefined) return;
|
||||||
|
if (expiration == null) {
|
||||||
|
var date = new Date();
|
||||||
|
date.setTime(date.getTime()+(10*365*24*60*60*1000)); // default expiration is one week
|
||||||
|
expiration = date.toGMTString();
|
||||||
|
}
|
||||||
|
document.cookie = cookie_namespace + "_" + cookie + "=" + val + "; SameSite=Lax; expires=" + expiration+"; path=/";
|
||||||
|
}
|
||||||
|
|
||||||
|
function resizeWidth()
|
||||||
|
{
|
||||||
|
var windowWidth = $(window).width() + "px";
|
||||||
|
var sidenavWidth = $(sidenav).outerWidth();
|
||||||
|
content.css({marginLeft:parseInt(sidenavWidth)+"px"});
|
||||||
|
writeCookie('width',sidenavWidth-barWidth, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
function restoreWidth(navWidth)
|
||||||
|
{
|
||||||
|
var windowWidth = $(window).width() + "px";
|
||||||
|
content.css({marginLeft:parseInt(navWidth)+barWidth+"px"});
|
||||||
|
sidenav.css({width:navWidth + "px"});
|
||||||
|
}
|
||||||
|
|
||||||
|
function resizeHeight()
|
||||||
|
{
|
||||||
|
var headerHeight = header.outerHeight();
|
||||||
|
var footerHeight = footer.outerHeight();
|
||||||
|
var windowHeight = $(window).height();
|
||||||
|
var contentHeight,navtreeHeight,sideNavHeight;
|
||||||
|
if (typeof page_layout==='undefined' || page_layout==0) { /* DISABLE_INDEX=NO */
|
||||||
|
contentHeight = windowHeight - headerHeight - footerHeight;
|
||||||
|
navtreeHeight = contentHeight;
|
||||||
|
sideNavHeight = contentHeight;
|
||||||
|
} else if (page_layout==1) { /* DISABLE_INDEX=YES */
|
||||||
|
contentHeight = windowHeight - footerHeight;
|
||||||
|
navtreeHeight = windowHeight - headerHeight;
|
||||||
|
sideNavHeight = windowHeight;
|
||||||
|
}
|
||||||
|
content.css({height:contentHeight + "px"});
|
||||||
|
navtree.css({height:navtreeHeight + "px"});
|
||||||
|
sidenav.css({height:sideNavHeight + "px"});
|
||||||
|
var width=$(window).width();
|
||||||
|
if (width!=collapsedWidth) {
|
||||||
|
if (width<desktop_vp && collapsedWidth>=desktop_vp) {
|
||||||
|
if (!collapsed) {
|
||||||
|
collapseExpand();
|
||||||
|
}
|
||||||
|
} else if (width>desktop_vp && collapsedWidth<desktop_vp) {
|
||||||
|
if (collapsed) {
|
||||||
|
collapseExpand();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
collapsedWidth=width;
|
||||||
|
}
|
||||||
|
if (location.hash.slice(1)) {
|
||||||
|
(document.getElementById(location.hash.slice(1))||document.body).scrollIntoView();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function collapseExpand()
|
||||||
|
{
|
||||||
|
if (sidenav.width()>0) {
|
||||||
|
restoreWidth(0);
|
||||||
|
collapsed=true;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
var width = readCookie('width');
|
||||||
|
if (width>200 && width<$(window).width()) { restoreWidth(width); } else { restoreWidth(200); }
|
||||||
|
collapsed=false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
header = $("#top");
|
||||||
|
sidenav = $("#side-nav");
|
||||||
|
content = $("#doc-content");
|
||||||
|
navtree = $("#nav-tree");
|
||||||
|
footer = $("#nav-path");
|
||||||
|
$(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(); } });
|
||||||
|
$(sidenav).resizable({ minWidth: 0 });
|
||||||
|
$(window).resize(function() { resizeHeight(); });
|
||||||
|
var device = navigator.userAgent.toLowerCase();
|
||||||
|
var touch_device = device.match(/(iphone|ipod|ipad|android)/);
|
||||||
|
if (touch_device) { /* wider split bar for touch only devices */
|
||||||
|
$(sidenav).css({ paddingRight:'20px' });
|
||||||
|
$('.ui-resizable-e').css({ width:'20px' });
|
||||||
|
$('#nav-sync').css({ right:'34px' });
|
||||||
|
barWidth=20;
|
||||||
|
}
|
||||||
|
var width = readCookie('width');
|
||||||
|
if (width) { restoreWidth(width); } else { resizeWidth(); }
|
||||||
|
resizeHeight();
|
||||||
|
var url = location.href;
|
||||||
|
var i=url.indexOf("#");
|
||||||
|
if (i>=0) window.location.hash=url.substr(i);
|
||||||
|
var _preventDefault = function(evt) { evt.preventDefault(); };
|
||||||
|
$("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault);
|
||||||
|
$(".ui-resizable-handle").dblclick(collapseExpand);
|
||||||
|
$(window).on('load',resizeHeight);
|
||||||
|
}
|
||||||
|
/* @license-end */
|
37
doxygen/html/search/all_0.html
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head><title></title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.9.4"/>
|
||||||
|
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||||
|
<script type="text/javascript" src="all_0.js"></script>
|
||||||
|
<script type="text/javascript" src="search.js"></script>
|
||||||
|
</head>
|
||||||
|
<body class="SRPage">
|
||||||
|
<div id="SRIndex">
|
||||||
|
<div class="SRStatus" id="Loading">Loading...</div>
|
||||||
|
<div id="SRResults"></div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
createResults();
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<div class="SRStatus" id="Searching">Searching...</div>
|
||||||
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
document.getElementById("Loading").style.display="none";
|
||||||
|
document.getElementById("NoMatches").style.display="none";
|
||||||
|
var searchResults = new SearchResults("searchResults");
|
||||||
|
searchResults.Search();
|
||||||
|
window.addEventListener("message", function(event) {
|
||||||
|
if (event.data == "take_focus") {
|
||||||
|
var elem = searchResults.NavNext(0);
|
||||||
|
if (elem) elem.focus();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
7
doxygen/html/search/all_0.js
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
var searchData=
|
||||||
|
[
|
||||||
|
['add_5fendpoint_5fto_5flist_0',['add_endpoint_to_list',['../classfw_1_1_a_p_i.html#aad90a1bfa8e00c4e25a091e5e9a61772',1,'fw::API']]],
|
||||||
|
['add_5frule_5fto_5ffirewall_1',['add_rule_to_firewall',['../classfw_1_1_firewall.html#aae2a4a36257033c91f8f183b11de82c5',1,'fw::Firewall::add_rule_to_firewall(firewall_rule_t *rule_ptr, const bool save_in_eeprom=true)'],['../classfw_1_1_firewall.html#af1d9481f13052673c64aaf88d019e01d',1,'fw::Firewall::add_rule_to_firewall(String *args)']]],
|
||||||
|
['api_2',['API',['../classfw_1_1_a_p_i.html#a033d5efd077dfad456cb6e6e7dd2baca',1,'fw::API::API()'],['../classfw_1_1_a_p_i.html',1,'fw::API']]],
|
||||||
|
['api_5fendpoint_5ft_3',['api_endpoint_t',['../structapi__endpoint__t.html',1,'']]]
|
||||||
|
];
|
37
doxygen/html/search/all_1.html
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head><title></title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.9.4"/>
|
||||||
|
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||||
|
<script type="text/javascript" src="all_1.js"></script>
|
||||||
|
<script type="text/javascript" src="search.js"></script>
|
||||||
|
</head>
|
||||||
|
<body class="SRPage">
|
||||||
|
<div id="SRIndex">
|
||||||
|
<div class="SRStatus" id="Loading">Loading...</div>
|
||||||
|
<div id="SRResults"></div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
createResults();
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<div class="SRStatus" id="Searching">Searching...</div>
|
||||||
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
document.getElementById("Loading").style.display="none";
|
||||||
|
document.getElementById("NoMatches").style.display="none";
|
||||||
|
var searchResults = new SearchResults("searchResults");
|
||||||
|
searchResults.Search();
|
||||||
|
window.addEventListener("message", function(event) {
|
||||||
|
if (event.data == "take_focus") {
|
||||||
|
var elem = searchResults.NavNext(0);
|
||||||
|
if (elem) elem.focus();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
9
doxygen/html/search/all_1.js
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
var searchData=
|
||||||
|
[
|
||||||
|
['check_5fauth_0',['check_auth',['../classfw_1_1_a_p_i.html#adc9523a1b6e6a6e8f57a514a25c35b8c',1,'fw::API']]],
|
||||||
|
['construct_5fjson_5fapi_1',['construct_json_api',['../classfw_1_1_a_p_i.html#aa541a477e14a992b55e3f75351887cab',1,'fw::API']]],
|
||||||
|
['construct_5fjson_5fapi_5fendpoint_2',['construct_json_api_endpoint',['../classfw_1_1_a_p_i.html#a175d139d29530e2946f67789c9652da8',1,'fw::API']]],
|
||||||
|
['construct_5fjson_5ffirewall_3',['construct_json_firewall',['../classfw_1_1_a_p_i.html#a682ec7e09a230507c39cbc7d7c7427d5',1,'fw::API']]],
|
||||||
|
['construct_5fjson_5ffirewall_5frule_4',['construct_json_firewall_rule',['../classfw_1_1_a_p_i.html#ac249b6e7533414d0296bde477cecac1b',1,'fw::API']]],
|
||||||
|
['credential_5ft_5',['credential_t',['../structcredential__t.html',1,'']]]
|
||||||
|
];
|
37
doxygen/html/search/all_2.html
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head><title></title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.9.4"/>
|
||||||
|
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||||
|
<script type="text/javascript" src="all_2.js"></script>
|
||||||
|
<script type="text/javascript" src="search.js"></script>
|
||||||
|
</head>
|
||||||
|
<body class="SRPage">
|
||||||
|
<div id="SRIndex">
|
||||||
|
<div class="SRStatus" id="Loading">Loading...</div>
|
||||||
|
<div id="SRResults"></div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
createResults();
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<div class="SRStatus" id="Searching">Searching...</div>
|
||||||
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
document.getElementById("Loading").style.display="none";
|
||||||
|
document.getElementById("NoMatches").style.display="none";
|
||||||
|
var searchResults = new SearchResults("searchResults");
|
||||||
|
searchResults.Search();
|
||||||
|
window.addEventListener("message", function(event) {
|
||||||
|
if (event.data == "take_focus") {
|
||||||
|
var elem = searchResults.NavNext(0);
|
||||||
|
if (elem) elem.focus();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
5
doxygen/html/search/all_2.js
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
var searchData=
|
||||||
|
[
|
||||||
|
['delete_5ffirewall_5fhandler_0',['delete_firewall_handler',['../classfw_1_1_a_p_i.html#a592c2aa501ff920ebcc125f8d5635deb',1,'fw::API']]],
|
||||||
|
['delete_5frule_5ffrom_5ffirewall_1',['delete_rule_from_firewall',['../classfw_1_1_firewall.html#a25fac8da12651a927c8285aa75e213d1',1,'fw::Firewall']]]
|
||||||
|
];
|
37
doxygen/html/search/all_3.html
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head><title></title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.9.4"/>
|
||||||
|
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||||
|
<script type="text/javascript" src="all_3.js"></script>
|
||||||
|
<script type="text/javascript" src="search.js"></script>
|
||||||
|
</head>
|
||||||
|
<body class="SRPage">
|
||||||
|
<div id="SRIndex">
|
||||||
|
<div class="SRStatus" id="Loading">Loading...</div>
|
||||||
|
<div id="SRResults"></div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
createResults();
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<div class="SRStatus" id="Searching">Searching...</div>
|
||||||
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
document.getElementById("Loading").style.display="none";
|
||||||
|
document.getElementById("NoMatches").style.display="none";
|
||||||
|
var searchResults = new SearchResults("searchResults");
|
||||||
|
searchResults.Search();
|
||||||
|
window.addEventListener("message", function(event) {
|
||||||
|
if (event.data == "take_focus") {
|
||||||
|
var elem = searchResults.NavNext(0);
|
||||||
|
if (elem) elem.focus();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
4
doxygen/html/search/all_3.js
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
var searchData=
|
||||||
|
[
|
||||||
|
['esp32_2fesp8266_20firewall_0',['ESP32/ESP8266 Firewall',['../index.html',1,'']]]
|
||||||
|
];
|
37
doxygen/html/search/all_4.html
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head><title></title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.9.4"/>
|
||||||
|
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||||
|
<script type="text/javascript" src="all_4.js"></script>
|
||||||
|
<script type="text/javascript" src="search.js"></script>
|
||||||
|
</head>
|
||||||
|
<body class="SRPage">
|
||||||
|
<div id="SRIndex">
|
||||||
|
<div class="SRStatus" id="Loading">Loading...</div>
|
||||||
|
<div id="SRResults"></div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
createResults();
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<div class="SRStatus" id="Searching">Searching...</div>
|
||||||
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
document.getElementById("Loading").style.display="none";
|
||||||
|
document.getElementById("NoMatches").style.display="none";
|
||||||
|
var searchResults = new SearchResults("searchResults");
|
||||||
|
searchResults.Search();
|
||||||
|
window.addEventListener("message", function(event) {
|
||||||
|
if (event.data == "take_focus") {
|
||||||
|
var elem = searchResults.NavNext(0);
|
||||||
|
if (elem) elem.focus();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
5
doxygen/html/search/all_4.js
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
var searchData=
|
||||||
|
[
|
||||||
|
['firewall_0',['Firewall',['../classfw_1_1_firewall.html#a2cc2717bd5999bc9a2f24ae33e4abd42',1,'fw::Firewall::Firewall()'],['../classfw_1_1_firewall.html',1,'fw::Firewall']]],
|
||||||
|
['firewall_5frule_5ft_1',['firewall_rule_t',['../structfirewall__rule__t.html',1,'']]]
|
||||||
|
];
|
37
doxygen/html/search/all_5.html
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head><title></title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.9.4"/>
|
||||||
|
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||||
|
<script type="text/javascript" src="all_5.js"></script>
|
||||||
|
<script type="text/javascript" src="search.js"></script>
|
||||||
|
</head>
|
||||||
|
<body class="SRPage">
|
||||||
|
<div id="SRIndex">
|
||||||
|
<div class="SRStatus" id="Loading">Loading...</div>
|
||||||
|
<div id="SRResults"></div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
createResults();
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<div class="SRStatus" id="Searching">Searching...</div>
|
||||||
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
document.getElementById("Loading").style.display="none";
|
||||||
|
document.getElementById("NoMatches").style.display="none";
|
||||||
|
var searchResults = new SearchResults("searchResults");
|
||||||
|
searchResults.Search();
|
||||||
|
window.addEventListener("message", function(event) {
|
||||||
|
if (event.data == "take_focus") {
|
||||||
|
var elem = searchResults.NavNext(0);
|
||||||
|
if (elem) elem.focus();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
10
doxygen/html/search/all_5.js
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
var searchData=
|
||||||
|
[
|
||||||
|
['get_5fendpoint_5flist_5fhandler_0',['get_endpoint_list_handler',['../classfw_1_1_a_p_i.html#a734cbd9da536fb297da87b4310f20ba1',1,'fw::API']]],
|
||||||
|
['get_5ffirewall_5frule_5fhandler_1',['get_firewall_rule_handler',['../classfw_1_1_a_p_i.html#ac76f5a6c9c28d71772b238a51b122e4a',1,'fw::API']]],
|
||||||
|
['get_5ffirewall_5frules_5fhandler_2',['get_firewall_rules_handler',['../classfw_1_1_a_p_i.html#ab904f77fa777a1c8c19deb8e39cf89e8',1,'fw::API']]],
|
||||||
|
['get_5fpacket_5finformation_3',['get_packet_information',['../classfw_1_1_firewall.html#a6815085477349f902e77cc5564b1b5ba',1,'fw::Firewall']]],
|
||||||
|
['get_5frule_5ffrom_5ffirewall_4',['get_rule_from_firewall',['../classfw_1_1_firewall.html#a7aa017cfb1ae6d6748d3f8c48e18dcf2',1,'fw::Firewall']]],
|
||||||
|
['get_5frule_5fhead_5',['get_rule_head',['../classfw_1_1_firewall.html#a86f7d6ef56888f673fa46c4bc9ad3009',1,'fw::Firewall']]],
|
||||||
|
['get_5furl_5fbase_6',['get_url_base',['../classfw_1_1_a_p_i.html#af5dc938ae5a274e3599d637e672b8d07',1,'fw::API']]]
|
||||||
|
];
|
37
doxygen/html/search/all_6.html
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head><title></title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.9.4"/>
|
||||||
|
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||||
|
<script type="text/javascript" src="all_6.js"></script>
|
||||||
|
<script type="text/javascript" src="search.js"></script>
|
||||||
|
</head>
|
||||||
|
<body class="SRPage">
|
||||||
|
<div id="SRIndex">
|
||||||
|
<div class="SRStatus" id="Loading">Loading...</div>
|
||||||
|
<div id="SRResults"></div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
createResults();
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<div class="SRStatus" id="Searching">Searching...</div>
|
||||||
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
document.getElementById("Loading").style.display="none";
|
||||||
|
document.getElementById("NoMatches").style.display="none";
|
||||||
|
var searchResults = new SearchResults("searchResults");
|
||||||
|
searchResults.Search();
|
||||||
|
window.addEventListener("message", function(event) {
|
||||||
|
if (event.data == "take_focus") {
|
||||||
|
var elem = searchResults.NavNext(0);
|
||||||
|
if (elem) elem.focus();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
4
doxygen/html/search/all_6.js
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
var searchData=
|
||||||
|
[
|
||||||
|
['is_5fpacket_5fallowed_0',['is_packet_allowed',['../classfw_1_1_firewall.html#a81eca0d34c28e5c4244b557a1f8e047d',1,'fw::Firewall']]]
|
||||||
|
];
|
37
doxygen/html/search/all_7.html
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head><title></title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.9.4"/>
|
||||||
|
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||||
|
<script type="text/javascript" src="all_7.js"></script>
|
||||||
|
<script type="text/javascript" src="search.js"></script>
|
||||||
|
</head>
|
||||||
|
<body class="SRPage">
|
||||||
|
<div id="SRIndex">
|
||||||
|
<div class="SRStatus" id="Loading">Loading...</div>
|
||||||
|
<div id="SRResults"></div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
createResults();
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<div class="SRStatus" id="Searching">Searching...</div>
|
||||||
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
document.getElementById("Loading").style.display="none";
|
||||||
|
document.getElementById("NoMatches").style.display="none";
|
||||||
|
var searchResults = new SearchResults("searchResults");
|
||||||
|
searchResults.Search();
|
||||||
|
window.addEventListener("message", function(event) {
|
||||||
|
if (event.data == "take_focus") {
|
||||||
|
var elem = searchResults.NavNext(0);
|
||||||
|
if (elem) elem.focus();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
7
doxygen/html/search/all_7.js
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
var searchData=
|
||||||
|
[
|
||||||
|
['json_5farray_5fresponse_0',['json_array_response',['../classfw_1_1_a_p_i.html#a1892bc26b882b055853e26ed95d8d802',1,'fw::API']]],
|
||||||
|
['json_5fgeneric_5fresponse_1',['json_generic_response',['../classfw_1_1_a_p_i.html#acbebab924241292706c0287dca5c3ff5',1,'fw::API']]],
|
||||||
|
['json_5fmessage_5fresponse_2',['json_message_response',['../classfw_1_1_a_p_i.html#a6b7d4ce75b9cdba0dd39c6c949ef1c15',1,'fw::API']]],
|
||||||
|
['json_5fnew_5fattribute_3',['json_new_attribute',['../classfw_1_1_a_p_i.html#a0ff5aeb3b916dae9219041dc240d9156',1,'fw::API::json_new_attribute(String key, String value, bool last=false)'],['../classfw_1_1_a_p_i.html#aba378d97c999dda14ef2e4e97a9948f5',1,'fw::API::json_new_attribute(String key, uint32_t value, bool last=false)']]]
|
||||||
|
];
|
37
doxygen/html/search/all_8.html
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head><title></title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.9.4"/>
|
||||||
|
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||||
|
<script type="text/javascript" src="all_8.js"></script>
|
||||||
|
<script type="text/javascript" src="search.js"></script>
|
||||||
|
</head>
|
||||||
|
<body class="SRPage">
|
||||||
|
<div id="SRIndex">
|
||||||
|
<div class="SRStatus" id="Loading">Loading...</div>
|
||||||
|
<div id="SRResults"></div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
createResults();
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<div class="SRStatus" id="Searching">Searching...</div>
|
||||||
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
document.getElementById("Loading").style.display="none";
|
||||||
|
document.getElementById("NoMatches").style.display="none";
|
||||||
|
var searchResults = new SearchResults("searchResults");
|
||||||
|
searchResults.Search();
|
||||||
|
window.addEventListener("message", function(event) {
|
||||||
|
if (event.data == "take_focus") {
|
||||||
|
var elem = searchResults.NavNext(0);
|
||||||
|
if (elem) elem.focus();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
4
doxygen/html/search/all_8.js
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
var searchData=
|
||||||
|
[
|
||||||
|
['my_5fpacket_5ft_0',['my_packet_t',['../structmy__packet__t.html',1,'']]]
|
||||||
|
];
|
37
doxygen/html/search/all_9.html
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head><title></title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.9.4"/>
|
||||||
|
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||||
|
<script type="text/javascript" src="all_9.js"></script>
|
||||||
|
<script type="text/javascript" src="search.js"></script>
|
||||||
|
</head>
|
||||||
|
<body class="SRPage">
|
||||||
|
<div id="SRIndex">
|
||||||
|
<div class="SRStatus" id="Loading">Loading...</div>
|
||||||
|
<div id="SRResults"></div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
createResults();
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<div class="SRStatus" id="Searching">Searching...</div>
|
||||||
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
document.getElementById("Loading").style.display="none";
|
||||||
|
document.getElementById("NoMatches").style.display="none";
|
||||||
|
var searchResults = new SearchResults("searchResults");
|
||||||
|
searchResults.Search();
|
||||||
|
window.addEventListener("message", function(event) {
|
||||||
|
if (event.data == "take_focus") {
|
||||||
|
var elem = searchResults.NavNext(0);
|
||||||
|
if (elem) elem.focus();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
4
doxygen/html/search/all_9.js
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
var searchData=
|
||||||
|
[
|
||||||
|
['not_5ffound_5fhandler_0',['not_found_handler',['../classfw_1_1_a_p_i.html#aeb74e3b9efc2305c943683b14957ac9d',1,'fw::API']]]
|
||||||
|
];
|
37
doxygen/html/search/all_a.html
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head><title></title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.9.4"/>
|
||||||
|
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||||
|
<script type="text/javascript" src="all_a.js"></script>
|
||||||
|
<script type="text/javascript" src="search.js"></script>
|
||||||
|
</head>
|
||||||
|
<body class="SRPage">
|
||||||
|
<div id="SRIndex">
|
||||||
|
<div class="SRStatus" id="Loading">Loading...</div>
|
||||||
|
<div id="SRResults"></div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
createResults();
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<div class="SRStatus" id="Searching">Searching...</div>
|
||||||
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
document.getElementById("Loading").style.display="none";
|
||||||
|
document.getElementById("NoMatches").style.display="none";
|
||||||
|
var searchResults = new SearchResults("searchResults");
|
||||||
|
searchResults.Search();
|
||||||
|
window.addEventListener("message", function(event) {
|
||||||
|
if (event.data == "take_focus") {
|
||||||
|
var elem = searchResults.NavNext(0);
|
||||||
|
if (elem) elem.focus();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
5
doxygen/html/search/all_a.js
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
var searchData=
|
||||||
|
[
|
||||||
|
['post_5ffirewall_5fhandler_0',['post_firewall_handler',['../classfw_1_1_a_p_i.html#a2d78e9dd43abb72da8872cb207db25e3',1,'fw::API']]],
|
||||||
|
['put_5ffirewall_5fhandler_1',['put_firewall_handler',['../classfw_1_1_a_p_i.html#a6ce4a9dd9afae493f6639b6fb3f6ba45',1,'fw::API']]]
|
||||||
|
];
|
37
doxygen/html/search/all_b.html
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head><title></title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.9.4"/>
|
||||||
|
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||||
|
<script type="text/javascript" src="all_b.js"></script>
|
||||||
|
<script type="text/javascript" src="search.js"></script>
|
||||||
|
</head>
|
||||||
|
<body class="SRPage">
|
||||||
|
<div id="SRIndex">
|
||||||
|
<div class="SRStatus" id="Loading">Loading...</div>
|
||||||
|
<div id="SRResults"></div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
createResults();
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<div class="SRStatus" id="Searching">Searching...</div>
|
||||||
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
document.getElementById("Loading").style.display="none";
|
||||||
|
document.getElementById("NoMatches").style.display="none";
|
||||||
|
var searchResults = new SearchResults("searchResults");
|
||||||
|
searchResults.Search();
|
||||||
|
window.addEventListener("message", function(event) {
|
||||||
|
if (event.data == "take_focus") {
|
||||||
|
var elem = searchResults.NavNext(0);
|
||||||
|
if (elem) elem.focus();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
7
doxygen/html/search/all_b.js
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
var searchData=
|
||||||
|
[
|
||||||
|
['request_5fhas_5fall_5ffirewall_5fparameter_0',['request_has_all_firewall_parameter',['../classfw_1_1_a_p_i.html#abab79e90786d14836dcf113077891c50',1,'fw::API']]],
|
||||||
|
['retrieve_5famount_5fof_5frules_1',['retrieve_amount_of_rules',['../classfw_1_1_storage.html#aba4b010a57e6f5f5255b41d832891394',1,'fw::Storage']]],
|
||||||
|
['retrieve_5ffirewall_5frule_2',['retrieve_firewall_rule',['../classfw_1_1_storage.html#a20d0089533fea31893b323f7fde8535c',1,'fw::Storage']]],
|
||||||
|
['rule_5fallows_5fpacket_3',['rule_allows_packet',['../classfw_1_1_firewall.html#a26fea38729777e00e5ee3a8d58f785b1',1,'fw::Firewall']]]
|
||||||
|
];
|
37
doxygen/html/search/all_c.html
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head><title></title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.9.4"/>
|
||||||
|
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||||
|
<script type="text/javascript" src="all_c.js"></script>
|
||||||
|
<script type="text/javascript" src="search.js"></script>
|
||||||
|
</head>
|
||||||
|
<body class="SRPage">
|
||||||
|
<div id="SRIndex">
|
||||||
|
<div class="SRStatus" id="Loading">Loading...</div>
|
||||||
|
<div id="SRResults"></div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
createResults();
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<div class="SRStatus" id="Searching">Searching...</div>
|
||||||
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
document.getElementById("Loading").style.display="none";
|
||||||
|
document.getElementById("NoMatches").style.display="none";
|
||||||
|
var searchResults = new SearchResults("searchResults");
|
||||||
|
searchResults.Search();
|
||||||
|
window.addEventListener("message", function(event) {
|
||||||
|
if (event.data == "take_focus") {
|
||||||
|
var elem = searchResults.NavNext(0);
|
||||||
|
if (elem) elem.focus();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
9
doxygen/html/search/all_c.js
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
var searchData=
|
||||||
|
[
|
||||||
|
['setup_5fauth_0',['setup_auth',['../classfw_1_1_a_p_i.html#a45dcdd4969f70a7f1a02e49a47b16a1d',1,'fw::API']]],
|
||||||
|
['setup_5frouting_1',['setup_routing',['../classfw_1_1_a_p_i.html#a90986dc50f303564e6f5af6d3707dd20',1,'fw::API']]],
|
||||||
|
['storage_2',['Storage',['../classfw_1_1_storage.html',1,'fw::Storage'],['../classfw_1_1_storage.html#a9b9fcc0e523d4b14a77e33a5806a348e',1,'fw::Storage::Storage()']]],
|
||||||
|
['store_5fall_5ffirewall_5frules_3',['store_all_firewall_rules',['../classfw_1_1_storage.html#a7747d174b1b3dd6bb417c1c5a8ac259c',1,'fw::Storage']]],
|
||||||
|
['store_5famount_5fof_5frules_4',['store_amount_of_rules',['../classfw_1_1_storage.html#a79d1951d339a19edab7fd22aaa68cc96',1,'fw::Storage']]],
|
||||||
|
['store_5ffirewall_5frule_5',['store_firewall_rule',['../classfw_1_1_storage.html#a9c1d226dbad072a6d0bf7e3507b7863b',1,'fw::Storage']]]
|
||||||
|
];
|
|
@ -1,5 +1,6 @@
|
||||||
var searchData=
|
var searchData=
|
||||||
[
|
[
|
||||||
['_7eapi_0',['~API',['../classfw_1_1_a_p_i.html#a66ac0bd592bb08d069aea199668670ab',1,'fw::API']]],
|
['_7eapi_0',['~API',['../classfw_1_1_a_p_i.html#a66ac0bd592bb08d069aea199668670ab',1,'fw::API']]],
|
||||||
['_7efirewall_1',['~Firewall',['../classfw_1_1_firewall.html#a2c7c043d66b645ecc15e71561132057d',1,'fw::Firewall']]]
|
['_7efirewall_1',['~Firewall',['../classfw_1_1_firewall.html#a2c7c043d66b645ecc15e71561132057d',1,'fw::Firewall']]],
|
||||||
|
['_7estorage_2',['~Storage',['../classfw_1_1_storage.html#a11b6f2d893abc79879418853d4f840e1',1,'fw::Storage']]]
|
||||||
];
|
];
|
||||||
|
|
37
doxygen/html/search/classes_0.html
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head><title></title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.9.4"/>
|
||||||
|
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||||
|
<script type="text/javascript" src="classes_0.js"></script>
|
||||||
|
<script type="text/javascript" src="search.js"></script>
|
||||||
|
</head>
|
||||||
|
<body class="SRPage">
|
||||||
|
<div id="SRIndex">
|
||||||
|
<div class="SRStatus" id="Loading">Loading...</div>
|
||||||
|
<div id="SRResults"></div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
createResults();
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<div class="SRStatus" id="Searching">Searching...</div>
|
||||||
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
document.getElementById("Loading").style.display="none";
|
||||||
|
document.getElementById("NoMatches").style.display="none";
|
||||||
|
var searchResults = new SearchResults("searchResults");
|
||||||
|
searchResults.Search();
|
||||||
|
window.addEventListener("message", function(event) {
|
||||||
|
if (event.data == "take_focus") {
|
||||||
|
var elem = searchResults.NavNext(0);
|
||||||
|
if (elem) elem.focus();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
5
doxygen/html/search/classes_0.js
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
var searchData=
|
||||||
|
[
|
||||||
|
['api_0',['API',['../classfw_1_1_a_p_i.html',1,'fw']]],
|
||||||
|
['api_5fendpoint_5ft_1',['api_endpoint_t',['../structapi__endpoint__t.html',1,'']]]
|
||||||
|
];
|
37
doxygen/html/search/classes_1.html
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head><title></title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.9.4"/>
|
||||||
|
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||||
|
<script type="text/javascript" src="classes_1.js"></script>
|
||||||
|
<script type="text/javascript" src="search.js"></script>
|
||||||
|
</head>
|
||||||
|
<body class="SRPage">
|
||||||
|
<div id="SRIndex">
|
||||||
|
<div class="SRStatus" id="Loading">Loading...</div>
|
||||||
|
<div id="SRResults"></div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
createResults();
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<div class="SRStatus" id="Searching">Searching...</div>
|
||||||
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
document.getElementById("Loading").style.display="none";
|
||||||
|
document.getElementById("NoMatches").style.display="none";
|
||||||
|
var searchResults = new SearchResults("searchResults");
|
||||||
|
searchResults.Search();
|
||||||
|
window.addEventListener("message", function(event) {
|
||||||
|
if (event.data == "take_focus") {
|
||||||
|
var elem = searchResults.NavNext(0);
|
||||||
|
if (elem) elem.focus();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
4
doxygen/html/search/classes_1.js
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
var searchData=
|
||||||
|
[
|
||||||
|
['credential_5ft_0',['credential_t',['../structcredential__t.html',1,'']]]
|
||||||
|
];
|
37
doxygen/html/search/classes_2.html
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head><title></title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.9.4"/>
|
||||||
|
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||||
|
<script type="text/javascript" src="classes_2.js"></script>
|
||||||
|
<script type="text/javascript" src="search.js"></script>
|
||||||
|
</head>
|
||||||
|
<body class="SRPage">
|
||||||
|
<div id="SRIndex">
|
||||||
|
<div class="SRStatus" id="Loading">Loading...</div>
|
||||||
|
<div id="SRResults"></div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
createResults();
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<div class="SRStatus" id="Searching">Searching...</div>
|
||||||
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
document.getElementById("Loading").style.display="none";
|
||||||
|
document.getElementById("NoMatches").style.display="none";
|
||||||
|
var searchResults = new SearchResults("searchResults");
|
||||||
|
searchResults.Search();
|
||||||
|
window.addEventListener("message", function(event) {
|
||||||
|
if (event.data == "take_focus") {
|
||||||
|
var elem = searchResults.NavNext(0);
|
||||||
|
if (elem) elem.focus();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
5
doxygen/html/search/classes_2.js
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
var searchData=
|
||||||
|
[
|
||||||
|
['firewall_0',['Firewall',['../classfw_1_1_firewall.html',1,'fw']]],
|
||||||
|
['firewall_5frule_5ft_1',['firewall_rule_t',['../structfirewall__rule__t.html',1,'']]]
|
||||||
|
];
|
37
doxygen/html/search/classes_3.html
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head><title></title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.9.4"/>
|
||||||
|
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||||
|
<script type="text/javascript" src="classes_3.js"></script>
|
||||||
|
<script type="text/javascript" src="search.js"></script>
|
||||||
|
</head>
|
||||||
|
<body class="SRPage">
|
||||||
|
<div id="SRIndex">
|
||||||
|
<div class="SRStatus" id="Loading">Loading...</div>
|
||||||
|
<div id="SRResults"></div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
createResults();
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<div class="SRStatus" id="Searching">Searching...</div>
|
||||||
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
document.getElementById("Loading").style.display="none";
|
||||||
|
document.getElementById("NoMatches").style.display="none";
|
||||||
|
var searchResults = new SearchResults("searchResults");
|
||||||
|
searchResults.Search();
|
||||||
|
window.addEventListener("message", function(event) {
|
||||||
|
if (event.data == "take_focus") {
|
||||||
|
var elem = searchResults.NavNext(0);
|
||||||
|
if (elem) elem.focus();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
4
doxygen/html/search/classes_3.js
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
var searchData=
|
||||||
|
[
|
||||||
|
['my_5fpacket_5ft_0',['my_packet_t',['../structmy__packet__t.html',1,'']]]
|
||||||
|
];
|
37
doxygen/html/search/classes_4.html
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head><title></title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.9.4"/>
|
||||||
|
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||||
|
<script type="text/javascript" src="classes_4.js"></script>
|
||||||
|
<script type="text/javascript" src="search.js"></script>
|
||||||
|
</head>
|
||||||
|
<body class="SRPage">
|
||||||
|
<div id="SRIndex">
|
||||||
|
<div class="SRStatus" id="Loading">Loading...</div>
|
||||||
|
<div id="SRResults"></div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
createResults();
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<div class="SRStatus" id="Searching">Searching...</div>
|
||||||
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
document.getElementById("Loading").style.display="none";
|
||||||
|
document.getElementById("NoMatches").style.display="none";
|
||||||
|
var searchResults = new SearchResults("searchResults");
|
||||||
|
searchResults.Search();
|
||||||
|
window.addEventListener("message", function(event) {
|
||||||
|
if (event.data == "take_focus") {
|
||||||
|
var elem = searchResults.NavNext(0);
|
||||||
|
if (elem) elem.focus();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
4
doxygen/html/search/classes_4.js
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
var searchData=
|
||||||
|
[
|
||||||
|
['storage_0',['Storage',['../classfw_1_1_storage.html',1,'fw']]]
|
||||||
|
];
|
31
doxygen/html/search/close.svg
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
viewBox="0 0 11 11"
|
||||||
|
height="11"
|
||||||
|
width="11"
|
||||||
|
id="svg2"
|
||||||
|
version="1.1">
|
||||||
|
<metadata
|
||||||
|
id="metadata8">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
<dc:title></dc:title>
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<defs
|
||||||
|
id="defs6" />
|
||||||
|
<path
|
||||||
|
id="path12"
|
||||||
|
d="M 5.5 0.5 A 5 5 0 0 0 0.5 5.5 A 5 5 0 0 0 5.5 10.5 A 5 5 0 0 0 10.5 5.5 A 5 5 0 0 0 5.5 0.5 z M 3.5820312 3 A 0.58291923 0.58291923 0 0 1 4 3.1757812 L 5.5 4.6757812 L 7 3.1757812 A 0.58291923 0.58291923 0 0 1 7.4003906 3 A 0.58291923 0.58291923 0 0 1 7.8242188 4 L 6.3242188 5.5 L 7.8242188 7 A 0.58291923 0.58291923 0 1 1 7 7.8242188 L 5.5 6.3242188 L 4 7.8242188 A 0.58291923 0.58291923 0 1 1 3.1757812 7 L 4.6757812 5.5 L 3.1757812 4 A 0.58291923 0.58291923 0 0 1 3.5820312 3 z "
|
||||||
|
style="stroke-width:1.09870648;fill:#bababa;fill-opacity:1" />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.3 KiB |
37
doxygen/html/search/functions_0.html
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head><title></title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.9.4"/>
|
||||||
|
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||||
|
<script type="text/javascript" src="functions_0.js"></script>
|
||||||
|
<script type="text/javascript" src="search.js"></script>
|
||||||
|
</head>
|
||||||
|
<body class="SRPage">
|
||||||
|
<div id="SRIndex">
|
||||||
|
<div class="SRStatus" id="Loading">Loading...</div>
|
||||||
|
<div id="SRResults"></div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
createResults();
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<div class="SRStatus" id="Searching">Searching...</div>
|
||||||
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
document.getElementById("Loading").style.display="none";
|
||||||
|
document.getElementById("NoMatches").style.display="none";
|
||||||
|
var searchResults = new SearchResults("searchResults");
|
||||||
|
searchResults.Search();
|
||||||
|
window.addEventListener("message", function(event) {
|
||||||
|
if (event.data == "take_focus") {
|
||||||
|
var elem = searchResults.NavNext(0);
|
||||||
|
if (elem) elem.focus();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
6
doxygen/html/search/functions_0.js
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
var searchData=
|
||||||
|
[
|
||||||
|
['add_5fendpoint_5fto_5flist_0',['add_endpoint_to_list',['../classfw_1_1_a_p_i.html#aad90a1bfa8e00c4e25a091e5e9a61772',1,'fw::API']]],
|
||||||
|
['add_5frule_5fto_5ffirewall_1',['add_rule_to_firewall',['../classfw_1_1_firewall.html#aae2a4a36257033c91f8f183b11de82c5',1,'fw::Firewall::add_rule_to_firewall(firewall_rule_t *rule_ptr, const bool save_in_eeprom=true)'],['../classfw_1_1_firewall.html#af1d9481f13052673c64aaf88d019e01d',1,'fw::Firewall::add_rule_to_firewall(String *args)']]],
|
||||||
|
['api_2',['API',['../classfw_1_1_a_p_i.html#a033d5efd077dfad456cb6e6e7dd2baca',1,'fw::API']]]
|
||||||
|
];
|
37
doxygen/html/search/functions_1.html
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head><title></title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.9.4"/>
|
||||||
|
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||||
|
<script type="text/javascript" src="functions_1.js"></script>
|
||||||
|
<script type="text/javascript" src="search.js"></script>
|
||||||
|
</head>
|
||||||
|
<body class="SRPage">
|
||||||
|
<div id="SRIndex">
|
||||||
|
<div class="SRStatus" id="Loading">Loading...</div>
|
||||||
|
<div id="SRResults"></div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
createResults();
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<div class="SRStatus" id="Searching">Searching...</div>
|
||||||
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
document.getElementById("Loading").style.display="none";
|
||||||
|
document.getElementById("NoMatches").style.display="none";
|
||||||
|
var searchResults = new SearchResults("searchResults");
|
||||||
|
searchResults.Search();
|
||||||
|
window.addEventListener("message", function(event) {
|
||||||
|
if (event.data == "take_focus") {
|
||||||
|
var elem = searchResults.NavNext(0);
|
||||||
|
if (elem) elem.focus();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
8
doxygen/html/search/functions_1.js
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
var searchData=
|
||||||
|
[
|
||||||
|
['check_5fauth_0',['check_auth',['../classfw_1_1_a_p_i.html#adc9523a1b6e6a6e8f57a514a25c35b8c',1,'fw::API']]],
|
||||||
|
['construct_5fjson_5fapi_1',['construct_json_api',['../classfw_1_1_a_p_i.html#aa541a477e14a992b55e3f75351887cab',1,'fw::API']]],
|
||||||
|
['construct_5fjson_5fapi_5fendpoint_2',['construct_json_api_endpoint',['../classfw_1_1_a_p_i.html#a175d139d29530e2946f67789c9652da8',1,'fw::API']]],
|
||||||
|
['construct_5fjson_5ffirewall_3',['construct_json_firewall',['../classfw_1_1_a_p_i.html#a682ec7e09a230507c39cbc7d7c7427d5',1,'fw::API']]],
|
||||||
|
['construct_5fjson_5ffirewall_5frule_4',['construct_json_firewall_rule',['../classfw_1_1_a_p_i.html#ac249b6e7533414d0296bde477cecac1b',1,'fw::API']]]
|
||||||
|
];
|
37
doxygen/html/search/functions_2.html
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head><title></title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.9.4"/>
|
||||||
|
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||||
|
<script type="text/javascript" src="functions_2.js"></script>
|
||||||
|
<script type="text/javascript" src="search.js"></script>
|
||||||
|
</head>
|
||||||
|
<body class="SRPage">
|
||||||
|
<div id="SRIndex">
|
||||||
|
<div class="SRStatus" id="Loading">Loading...</div>
|
||||||
|
<div id="SRResults"></div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
createResults();
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<div class="SRStatus" id="Searching">Searching...</div>
|
||||||
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
document.getElementById("Loading").style.display="none";
|
||||||
|
document.getElementById("NoMatches").style.display="none";
|
||||||
|
var searchResults = new SearchResults("searchResults");
|
||||||
|
searchResults.Search();
|
||||||
|
window.addEventListener("message", function(event) {
|
||||||
|
if (event.data == "take_focus") {
|
||||||
|
var elem = searchResults.NavNext(0);
|
||||||
|
if (elem) elem.focus();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
5
doxygen/html/search/functions_2.js
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
var searchData=
|
||||||
|
[
|
||||||
|
['delete_5ffirewall_5fhandler_0',['delete_firewall_handler',['../classfw_1_1_a_p_i.html#a592c2aa501ff920ebcc125f8d5635deb',1,'fw::API']]],
|
||||||
|
['delete_5frule_5ffrom_5ffirewall_1',['delete_rule_from_firewall',['../classfw_1_1_firewall.html#a25fac8da12651a927c8285aa75e213d1',1,'fw::Firewall']]]
|
||||||
|
];
|
37
doxygen/html/search/functions_3.html
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head><title></title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.9.4"/>
|
||||||
|
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||||
|
<script type="text/javascript" src="functions_3.js"></script>
|
||||||
|
<script type="text/javascript" src="search.js"></script>
|
||||||
|
</head>
|
||||||
|
<body class="SRPage">
|
||||||
|
<div id="SRIndex">
|
||||||
|
<div class="SRStatus" id="Loading">Loading...</div>
|
||||||
|
<div id="SRResults"></div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
createResults();
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<div class="SRStatus" id="Searching">Searching...</div>
|
||||||
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
document.getElementById("Loading").style.display="none";
|
||||||
|
document.getElementById("NoMatches").style.display="none";
|
||||||
|
var searchResults = new SearchResults("searchResults");
|
||||||
|
searchResults.Search();
|
||||||
|
window.addEventListener("message", function(event) {
|
||||||
|
if (event.data == "take_focus") {
|
||||||
|
var elem = searchResults.NavNext(0);
|
||||||
|
if (elem) elem.focus();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
4
doxygen/html/search/functions_3.js
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
var searchData=
|
||||||
|
[
|
||||||
|
['firewall_0',['Firewall',['../classfw_1_1_firewall.html#a2cc2717bd5999bc9a2f24ae33e4abd42',1,'fw::Firewall']]]
|
||||||
|
];
|
37
doxygen/html/search/functions_4.html
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head><title></title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.9.4"/>
|
||||||
|
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||||
|
<script type="text/javascript" src="functions_4.js"></script>
|
||||||
|
<script type="text/javascript" src="search.js"></script>
|
||||||
|
</head>
|
||||||
|
<body class="SRPage">
|
||||||
|
<div id="SRIndex">
|
||||||
|
<div class="SRStatus" id="Loading">Loading...</div>
|
||||||
|
<div id="SRResults"></div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
createResults();
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
<div class="SRStatus" id="Searching">Searching...</div>
|
||||||
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||||
|
document.getElementById("Loading").style.display="none";
|
||||||
|
document.getElementById("NoMatches").style.display="none";
|
||||||
|
var searchResults = new SearchResults("searchResults");
|
||||||
|
searchResults.Search();
|
||||||
|
window.addEventListener("message", function(event) {
|
||||||
|
if (event.data == "take_focus") {
|
||||||
|
var elem = searchResults.NavNext(0);
|
||||||
|
if (elem) elem.focus();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
/* @license-end */
|
||||||
|
</script>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
10
doxygen/html/search/functions_4.js
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
var searchData=
|
||||||
|
[
|
||||||
|
['get_5fendpoint_5flist_5fhandler_0',['get_endpoint_list_handler',['../classfw_1_1_a_p_i.html#a734cbd9da536fb297da87b4310f20ba1',1,'fw::API']]],
|
||||||
|
['get_5ffirewall_5frule_5fhandler_1',['get_firewall_rule_handler',['../classfw_1_1_a_p_i.html#ac76f5a6c9c28d71772b238a51b122e4a',1,'fw::API']]],
|
||||||
|
['get_5ffirewall_5frules_5fhandler_2',['get_firewall_rules_handler',['../classfw_1_1_a_p_i.html#ab904f77fa777a1c8c19deb8e39cf89e8',1,'fw::API']]],
|
||||||
|
['get_5fpacket_5finformation_3',['get_packet_information',['../classfw_1_1_firewall.html#a6815085477349f902e77cc5564b1b5ba',1,'fw::Firewall']]],
|
||||||
|
['get_5frule_5ffrom_5ffirewall_4',['get_rule_from_firewall',['../classfw_1_1_firewall.html#a7aa017cfb1ae6d6748d3f8c48e18dcf2',1,'fw::Firewall']]],
|
||||||
|
['get_5frule_5fhead_5',['get_rule_head',['../classfw_1_1_firewall.html#a86f7d6ef56888f673fa46c4bc9ad3009',1,'fw::Firewall']]],
|
||||||
|
['get_5furl_5fbase_6',['get_url_base',['../classfw_1_1_a_p_i.html#af5dc938ae5a274e3599d637e672b8d07',1,'fw::API']]]
|
||||||
|
];
|