You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
172 lines
23 KiB
172 lines
23 KiB
<!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" lang="en-US">
|
|
<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.7"/>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
|
<title>Webserv: srcs/load/Env.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">Webserv
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<!-- end header part -->
|
|
<!-- Generated by Doxygen 1.9.7 -->
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
var searchBox = new SearchBox("searchBox", "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">
|
|
<div id="MSearchResults">
|
|
<div class="SRPage">
|
|
<div id="SRIndex">
|
|
<div id="SRResults"></div>
|
|
<div class="SRStatus" id="Loading">Loading...</div>
|
|
<div class="SRStatus" id="Searching">Searching...</div>
|
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="nav-path" class="navpath">
|
|
<ul>
|
|
<li class="navelem"><a class="el" href="dir_b73b02d482d1c4a3db20c3d9ad52d395.html">srcs</a></li><li class="navelem"><a class="el" href="dir_5fca218e70541e091643ad2320ad7111.html">load</a></li> </ul>
|
|
</div>
|
|
</div><!-- top -->
|
|
<div class="header">
|
|
<div class="headertitle"><div class="title">Env.cpp</div></div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
<a href="Env_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#include "<a class="code" href="webserv_8hpp.html">webserv.hpp</a>"</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="comment">/*|==========|</span></div>
|
|
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="comment"> * Environment constructor:</span></div>
|
|
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="comment"> *</span></div>
|
|
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="comment"> * Input: The JSONParser output</span></div>
|
|
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="comment"> * Output: The env object containing servers and sockets vectors defined inside</span></div>
|
|
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="comment"> * conf file by servers blocks and listens.</span></div>
|
|
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="comment"> */</span></div>
|
|
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"><a class="line" href="classEnv.html#ace0ebeb150673fa69526c14d8417d587"> 10</a></span><a class="code hl_function" href="classEnv.html#ace0ebeb150673fa69526c14d8417d587">Env::Env</a>(<a class="code hl_class" href="classJSONNode.html">JSONNode</a> *conf) {</div>
|
|
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span> <span class="keywordflow">try</span> {</div>
|
|
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span> <a class="code hl_class" href="classJSONNode.html">JSONNode</a> *node;</div>
|
|
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> <a class="code hl_typedef" href="webserv_8hpp.html#aa3529ef9abc60facb73497ed5062d913">JSONList</a> lst;</div>
|
|
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> <span class="keywordflow">if</span> ((node = conf-><a class="code hl_function" href="classJSONNode.html#a6412ecbb284cfddb5de9818b72c785f9">obj</a>()[<span class="stringliteral">"servers"</span>])) {</div>
|
|
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> lst = conf-><a class="code hl_function" href="classJSONNode.html#a6412ecbb284cfddb5de9818b72c785f9">obj</a>()[<span class="stringliteral">"servers"</span>]->lst();</div>
|
|
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> <span class="keywordflow">for</span> (std::vector<JSONNode *>::iterator it = lst.begin(); it < lst.end(); it++) {</div>
|
|
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> <a class="code hl_class" href="classServer.html">Server</a> *server = <span class="keyword">new</span> <a class="code hl_class" href="classServer.html">Server</a>(*it);</div>
|
|
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> this-><a class="code hl_variable" href="classEnv.html#ae82dda3aafec12c1b84c55227d606304">_servers</a>.push_back(server);</div>
|
|
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> std::vector<Master *> tmp_s = server-><a class="code hl_function" href="classServer.html#a5738134631f6bab9a26ca0687d86f21f">get_sockets</a>(*it);</div>
|
|
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> this-><a class="code hl_variable" href="classEnv.html#ace7f8bc745cd6d7ef2f5c410cfc09f4f">_masters</a>.insert(this-><a class="code hl_variable" href="classEnv.html#ace7f8bc745cd6d7ef2f5c410cfc09f4f">_masters</a>.end(), tmp_s.begin(), tmp_s.end());</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> }</div>
|
|
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> <span class="keywordflow">if</span> ((node = conf-><a class="code hl_function" href="classJSONNode.html#a6412ecbb284cfddb5de9818b72c785f9">obj</a>()[<span class="stringliteral">"allowed_methods"</span>])) {</div>
|
|
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> <a class="code hl_typedef" href="webserv_8hpp.html#aa3529ef9abc60facb73497ed5062d913">JSONList</a> lst = node-><a class="code hl_function" href="classJSONNode.html#ac6290ea016718b625b5a60ce176c75b8">lst</a>();</div>
|
|
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> <span class="keywordflow">for</span> (JSONList::iterator it = lst.begin(); it < lst.end(); it++) {</div>
|
|
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> this-><a class="code hl_variable" href="classEnv.html#af554adf3353c753d3e3050fc04bd297f">_allowed_methods</a>.push_back((*it)->str());</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> }</div>
|
|
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> } <span class="keywordflow">catch</span> (std::exception &e) {</div>
|
|
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> std::cerr << e.what() << <span class="stringliteral">"\n"</span>;</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">delete</span> conf;</div>
|
|
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span>}</div>
|
|
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> </div>
|
|
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"><a class="line" href="classEnv.html#aae7e70f6b1aa0ddc3e9b2766d1cbfb5e"> 40</a></span><a class="code hl_function" href="classEnv.html#aae7e70f6b1aa0ddc3e9b2766d1cbfb5e">Env::~Env</a>() {</div>
|
|
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> <span class="keywordflow">for</span> (std::vector<Server *>::iterator it = this-><a class="code hl_variable" href="classEnv.html#ae82dda3aafec12c1b84c55227d606304">_servers</a>.begin(); it < this-><a class="code hl_variable" href="classEnv.html#ae82dda3aafec12c1b84c55227d606304">_servers</a>.end(); it++) {</div>
|
|
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">delete</span> *it;</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="keywordflow">for</span> (std::vector<Master *>::iterator it = this-><a class="code hl_variable" href="classEnv.html#ace7f8bc745cd6d7ef2f5c410cfc09f4f">_masters</a>.begin(); it < this-><a class="code hl_variable" href="classEnv.html#ace7f8bc745cd6d7ef2f5c410cfc09f4f">_masters</a>.end(); it++) {</div>
|
|
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> <span class="keyword">delete</span> *it;</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>}</div>
|
|
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> </div>
|
|
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"><a class="line" href="classEnv.html#a0c8b92f45308987231f9b0be8751d39f"> 55</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="classEnv.html#a0c8b92f45308987231f9b0be8751d39f">Env::cycle</a>(<span class="keywordtype">void</span>) {</div>
|
|
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> FD_ZERO(&<a class="code hl_variable" href="classMaster.html#a16a05173b1961ea7fc302319f06716a4">Master::_readfds</a>);</div>
|
|
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> <a class="code hl_variable" href="classMaster.html#a40b24ae083809951e7d3e1a08d06fe65">Master::_max_fd</a> = <a class="code hl_variable" href="classMaster.html#a6c0dd4e4c7de17dea3de77f28e1de308">Master::_min_fd</a>;</div>
|
|
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> <a class="code hl_function" href="classEnv.html#af4399c7f3d136ce2164dacef42f5c258">pre_select</a>();</div>
|
|
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> cout << <span class="stringliteral">"|===||===| Waiting some HTTP request... |===||===|\n"</span>;</div>
|
|
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> <span class="keywordtype">int</span> activity = select(<a class="code hl_variable" href="classMaster.html#a6c0dd4e4c7de17dea3de77f28e1de308">Master::_min_fd</a> + <a class="code hl_variable" href="classMaster.html#a2418abd3c0d0e9f4db769335cadd7545">Master::_amount</a>, &(<a class="code hl_variable" href="classMaster.html#a16a05173b1961ea7fc302319f06716a4">Master::_readfds</a>), NULL, NULL, NULL);</div>
|
|
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> <span class="keywordflow">if</span> ((activity < 0) && (errno != EINTR))</div>
|
|
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> std::cerr << <span class="stringliteral">"Select: "</span> << strerror(errno) << <span class="stringliteral">"\n"</span>;</div>
|
|
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> <a class="code hl_function" href="classEnv.html#a830b6a19d0ab40a20a67155e8e4fb713">post_select</a>();</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> </div>
|
|
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"><a class="line" href="classEnv.html#af4399c7f3d136ce2164dacef42f5c258"> 67</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="classEnv.html#af4399c7f3d136ce2164dacef42f5c258">Env::pre_select</a>(<span class="keywordtype">void</span>) {</div>
|
|
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> cout << <span class="stringliteral">"==> Check sockets still alive to listen\n"</span>;</div>
|
|
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> <span class="keywordflow">for</span> (std::vector<Master *>::iterator it = this-><a class="code hl_variable" href="classEnv.html#ace7f8bc745cd6d7ef2f5c410cfc09f4f">_masters</a>.begin(); it < this-><a class="code hl_variable" href="classEnv.html#ace7f8bc745cd6d7ef2f5c410cfc09f4f">_masters</a>.end(); it++)</div>
|
|
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> (*it)->pre_select();</div>
|
|
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span>}</div>
|
|
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"><a class="line" href="classEnv.html#a830b6a19d0ab40a20a67155e8e4fb713"> 77</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="classEnv.html#a830b6a19d0ab40a20a67155e8e4fb713">Env::post_select</a>(<span class="keywordtype">void</span>) {</div>
|
|
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> cout << <span class="stringliteral">"==> Handle requests and answers:\n"</span>;</div>
|
|
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> <span class="keywordflow">for</span> (std::vector<Master *>::iterator it = this-><a class="code hl_variable" href="classEnv.html#ace7f8bc745cd6d7ef2f5c410cfc09f4f">_masters</a>.begin(); it < this-><a class="code hl_variable" href="classEnv.html#ace7f8bc745cd6d7ef2f5c410cfc09f4f">_masters</a>.end(); it++)</div>
|
|
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> <span class="keywordflow">try</span> {</div>
|
|
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> (*it)->post_select(<span class="keyword">this</span>);</div>
|
|
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> } <span class="keywordflow">catch</span> (std::exception &e) {</div>
|
|
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> std::cerr << e.what();</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>}</div>
|
|
<div class="ttc" id="aclassEnv_html_a0c8b92f45308987231f9b0be8751d39f"><div class="ttname"><a href="classEnv.html#a0c8b92f45308987231f9b0be8751d39f">Env::cycle</a></div><div class="ttdeci">void cycle(void)</div><div class="ttdoc">A Wevserv cycle:</div><div class="ttdef"><b>Definition:</b> <a href="Env_8cpp_source.html#l00055">Env.cpp:55</a></div></div>
|
|
<div class="ttc" id="aclassEnv_html_a830b6a19d0ab40a20a67155e8e4fb713"><div class="ttname"><a href="classEnv.html#a830b6a19d0ab40a20a67155e8e4fb713">Env::post_select</a></div><div class="ttdeci">void post_select(void)</div><div class="ttdoc">Refresh all master_sockets and their clients datas (disconnect, new connection, etc....</div><div class="ttdef"><b>Definition:</b> <a href="Env_8cpp_source.html#l00077">Env.cpp:77</a></div></div>
|
|
<div class="ttc" id="aclassEnv_html_aae7e70f6b1aa0ddc3e9b2766d1cbfb5e"><div class="ttname"><a href="classEnv.html#aae7e70f6b1aa0ddc3e9b2766d1cbfb5e">Env::~Env</a></div><div class="ttdeci">~Env(void)</div><div class="ttdoc">Destructor.</div><div class="ttdef"><b>Definition:</b> <a href="Env_8cpp_source.html#l00040">Env.cpp:40</a></div></div>
|
|
<div class="ttc" id="aclassEnv_html_ace0ebeb150673fa69526c14d8417d587"><div class="ttname"><a href="classEnv.html#ace0ebeb150673fa69526c14d8417d587">Env::Env</a></div><div class="ttdeci">Env(JSONNode *conf)</div><div class="ttdef"><b>Definition:</b> <a href="Env_8cpp_source.html#l00010">Env.cpp:10</a></div></div>
|
|
<div class="ttc" id="aclassEnv_html_ace7f8bc745cd6d7ef2f5c410cfc09f4f"><div class="ttname"><a href="classEnv.html#ace7f8bc745cd6d7ef2f5c410cfc09f4f">Env::_masters</a></div><div class="ttdeci">std::vector< Master * > _masters</div><div class="ttdef"><b>Definition:</b> <a href="Env_8hpp_source.html#l00007">Env.hpp:7</a></div></div>
|
|
<div class="ttc" id="aclassEnv_html_ae82dda3aafec12c1b84c55227d606304"><div class="ttname"><a href="classEnv.html#ae82dda3aafec12c1b84c55227d606304">Env::_servers</a></div><div class="ttdeci">std::vector< Server * > _servers</div><div class="ttdef"><b>Definition:</b> <a href="Env_8hpp_source.html#l00006">Env.hpp:6</a></div></div>
|
|
<div class="ttc" id="aclassEnv_html_af4399c7f3d136ce2164dacef42f5c258"><div class="ttname"><a href="classEnv.html#af4399c7f3d136ce2164dacef42f5c258">Env::pre_select</a></div><div class="ttdeci">void pre_select(void)</div><div class="ttdoc">Append each master_sockets and their clients to list of fds SELECT must look at.</div><div class="ttdef"><b>Definition:</b> <a href="Env_8cpp_source.html#l00067">Env.cpp:67</a></div></div>
|
|
<div class="ttc" id="aclassEnv_html_af554adf3353c753d3e3050fc04bd297f"><div class="ttname"><a href="classEnv.html#af554adf3353c753d3e3050fc04bd297f">Env::_allowed_methods</a></div><div class="ttdeci">vec_string _allowed_methods</div><div class="ttdef"><b>Definition:</b> <a href="Env_8hpp_source.html#l00008">Env.hpp:8</a></div></div>
|
|
<div class="ttc" id="aclassJSONNode_html"><div class="ttname"><a href="classJSONNode.html">JSONNode</a></div><div class="ttdef"><b>Definition:</b> <a href="Nodes_8hpp_source.html#l00004">Nodes.hpp:4</a></div></div>
|
|
<div class="ttc" id="aclassJSONNode_html_a6412ecbb284cfddb5de9818b72c785f9"><div class="ttname"><a href="classJSONNode.html#a6412ecbb284cfddb5de9818b72c785f9">JSONNode::obj</a></div><div class="ttdeci">JSONObject obj()</div><div class="ttdef"><b>Definition:</b> <a href="Nodes_8cpp_source.html#l00003">Nodes.cpp:3</a></div></div>
|
|
<div class="ttc" id="aclassJSONNode_html_ac6290ea016718b625b5a60ce176c75b8"><div class="ttname"><a href="classJSONNode.html#ac6290ea016718b625b5a60ce176c75b8">JSONNode::lst</a></div><div class="ttdeci">JSONList lst()</div><div class="ttdef"><b>Definition:</b> <a href="Nodes_8cpp_source.html#l00008">Nodes.cpp:8</a></div></div>
|
|
<div class="ttc" id="aclassMaster_html_a16a05173b1961ea7fc302319f06716a4"><div class="ttname"><a href="classMaster.html#a16a05173b1961ea7fc302319f06716a4">Master::_readfds</a></div><div class="ttdeci">static fd_set _readfds</div><div class="ttdef"><b>Definition:</b> <a href="Master_8hpp_source.html#l00019">Master.hpp:19</a></div></div>
|
|
<div class="ttc" id="aclassMaster_html_a2418abd3c0d0e9f4db769335cadd7545"><div class="ttname"><a href="classMaster.html#a2418abd3c0d0e9f4db769335cadd7545">Master::_amount</a></div><div class="ttdeci">static int _amount</div><div class="ttdoc">< The higher one</div><div class="ttdef"><b>Definition:</b> <a href="Master_8hpp_source.html#l00020">Master.hpp:20</a></div></div>
|
|
<div class="ttc" id="aclassMaster_html_a40b24ae083809951e7d3e1a08d06fe65"><div class="ttname"><a href="classMaster.html#a40b24ae083809951e7d3e1a08d06fe65">Master::_max_fd</a></div><div class="ttdeci">static int _max_fd</div><div class="ttdoc">< The lower socket fd</div><div class="ttdef"><b>Definition:</b> <a href="Master_8hpp_source.html#l00020">Master.hpp:20</a></div></div>
|
|
<div class="ttc" id="aclassMaster_html_a6c0dd4e4c7de17dea3de77f28e1de308"><div class="ttname"><a href="classMaster.html#a6c0dd4e4c7de17dea3de77f28e1de308">Master::_min_fd</a></div><div class="ttdeci">static int _min_fd</div><div class="ttdoc">< The sockets fd which will be select</div><div class="ttdef"><b>Definition:</b> <a href="Master_8hpp_source.html#l00020">Master.hpp:20</a></div></div>
|
|
<div class="ttc" id="aclassServer_html"><div class="ttname"><a href="classServer.html">Server</a></div><div class="ttdef"><b>Definition:</b> <a href="Server_8hpp_source.html#l00004">Server.hpp:4</a></div></div>
|
|
<div class="ttc" id="aclassServer_html_a5738134631f6bab9a26ca0687d86f21f"><div class="ttname"><a href="classServer.html#a5738134631f6bab9a26ca0687d86f21f">Server::get_sockets</a></div><div class="ttdeci">std::vector< Master * > get_sockets(JSONNode *server)</div><div class="ttdoc">Create server's defined sockets:</div><div class="ttdef"><b>Definition:</b> <a href="Server_8cpp_source.html#l00079">Server.cpp:79</a></div></div>
|
|
<div class="ttc" id="awebserv_8hpp_html"><div class="ttname"><a href="webserv_8hpp.html">webserv.hpp</a></div></div>
|
|
<div class="ttc" id="awebserv_8hpp_html_aa3529ef9abc60facb73497ed5062d913"><div class="ttname"><a href="webserv_8hpp.html#aa3529ef9abc60facb73497ed5062d913">JSONList</a></div><div class="ttdeci">std::vector< JSONNode * > JSONList</div><div class="ttdef"><b>Definition:</b> <a href="webserv_8hpp_source.html#l00049">webserv.hpp:49</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.7
|
|
</small></address>
|
|
</body>
|
|
</html>
|
|
|