A library for a decentralised peer-to-peer chat over IPv6 only.
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

lc6__common_8h_source.html 24KB

il y a 5 ans
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
  5. <meta http-equiv="X-UA-Compatible" content="IE=9"/>
  6. <meta name="generator" content="Doxygen 1.8.13"/>
  7. <meta name="viewport" content="width=device-width, initial-scale=1"/>
  8. <title>libchat6: inc/lc6_common.h Source File</title>
  9. <link href="tabs.css" rel="stylesheet" type="text/css"/>
  10. <script type="text/javascript" src="jquery.js"></script>
  11. <script type="text/javascript" src="dynsections.js"></script>
  12. <link href="search/search.css" rel="stylesheet" type="text/css"/>
  13. <script type="text/javascript" src="search/searchdata.js"></script>
  14. <script type="text/javascript" src="search/search.js"></script>
  15. <link href="doxygen.css" rel="stylesheet" type="text/css" />
  16. </head>
  17. <body>
  18. <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
  19. <div id="titlearea">
  20. <table cellspacing="0" cellpadding="0">
  21. <tbody>
  22. <tr style="height: 56px;">
  23. <td id="projectalign" style="padding-left: 0.5em;">
  24. <div id="projectname">libchat6
  25. </div>
  26. </td>
  27. </tr>
  28. </tbody>
  29. </table>
  30. </div>
  31. <!-- end header part -->
  32. <!-- Generated by Doxygen 1.8.13 -->
  33. <script type="text/javascript">
  34. var searchBox = new SearchBox("searchBox", "search",false,'Search');
  35. </script>
  36. <script type="text/javascript" src="menudata.js"></script>
  37. <script type="text/javascript" src="menu.js"></script>
  38. <script type="text/javascript">
  39. $(function() {
  40. initMenu('',true,false,'search.php','Search');
  41. $(document).ready(function() { init_search(); });
  42. });
  43. </script>
  44. <div id="main-nav"></div>
  45. <!-- window showing the filter options -->
  46. <div id="MSearchSelectWindow"
  47. onmouseover="return searchBox.OnSearchSelectShow()"
  48. onmouseout="return searchBox.OnSearchSelectHide()"
  49. onkeydown="return searchBox.OnSearchSelectKey(event)">
  50. </div>
  51. <!-- iframe showing the search results (closed by default) -->
  52. <div id="MSearchResultsWindow">
  53. <iframe src="javascript:void(0)" frameborder="0"
  54. name="MSearchResults" id="MSearchResults">
  55. </iframe>
  56. </div>
  57. <div id="nav-path" class="navpath">
  58. <ul>
  59. <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li> </ul>
  60. </div>
  61. </div><!-- top -->
  62. <div class="header">
  63. <div class="headertitle">
  64. <div class="title">lc6_common.h</div> </div>
  65. </div><!--header-->
  66. <div class="contents">
  67. <div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef LC6_COMMON_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define LC6_COMMON_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &lt;pthread.h&gt;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#include &lt;sys/param.h&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &lt;arpa/inet.h&gt;</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &lt;sodium.h&gt;</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#include &quot;../inc/libchat6.h&quot;</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor">#include &quot;../inc/lc6_helpers.h&quot;</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#ifdef LC6_DEBUG</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#include &quot;../inc/lc6_debug.h&quot;</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#define LC6_CRYPTO_HASHLEN crypto_generichash_BYTES</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#define LC6_CRYPTO_HASHSIGNLEN (crypto_secretbox_NONCEBYTES+crypto_box_MACBYTES+crypto_generichash_BYTES)</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#define LC6_CRYPTO_PUBLEN crypto_kx_PUBLICKEYBYTES</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define LC6_CRYPTO_PRIVLEN crypto_kx_SECRETKEYBYTES</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#define LC6_CRYPTO_RXLEN crypto_kx_SESSIONKEYBYTES</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#define LC6_CRYPTO_TXLEN crypto_kx_SESSIONKEYBYTES</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#define LC6_EVENT_MAXPEERS_OUT 5</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#define LC6_EVENT_MAXPEERS_IN 5</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="structLC6__NODE.html"> 26</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structLC6__NODE.html">LC6_NODE</a> {</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *pub_key;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *priv_key;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;} <a class="code" href="structLC6__NODE.html">LC6_NODE</a>;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="structLC6__PEER.html"> 31</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structLC6__PEER.html">LC6_PEER</a> {</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keywordtype">int</span> sock;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <a class="code" href="structLC6__NODE.html">LC6_NODE</a> keys;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> bufi[65536];</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> bufo[65536];</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;} <a class="code" href="structLC6__PEER.html">LC6_PEER</a>;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="structLC6__USER.html"> 38</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structLC6__USER.html">LC6_USER</a> {</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keyword">struct </span><a class="code" href="structLC6__USER.html">LC6_USER</a> *prev;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">struct </span><a class="code" href="structLC6__USER.html">LC6_USER</a> *next;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> nickname[256];</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> pub_key[LC6_CRYPTO_PUBLEN];</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> priv_key[LC6_CRYPTO_PRIVLEN];</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; uint8_t status;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;} <a class="code" href="structLC6__USER.html">LC6_USER</a>;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="structLC6__FRIEND.html"> 47</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structLC6__FRIEND.html">LC6_FRIEND</a> {</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">struct </span><a class="code" href="structLC6__FRIEND.html">LC6_FRIEND</a> *prev;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">struct </span><a class="code" href="structLC6__FRIEND.html">LC6_FRIEND</a> *next;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> nickname[256];</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> pub_key[LC6_CRYPTO_PUBLEN];</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> key_rx[LC6_CRYPTO_RXLEN];</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> key_tx[LC6_CRYPTO_TXLEN];</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; uint8_t status;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;} <a class="code" href="structLC6__FRIEND.html">LC6_FRIEND</a>;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="structLC6__MSG__TLV.html"> 57</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structLC6__MSG__TLV.html">LC6_MSG_TLV</a> {</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordtype">int</span> type;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordtype">int</span> length;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *value;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;} <a class="code" href="structLC6__MSG__TLV.html">LC6_MSG_TLV</a>;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="structLC6__MSG.html"> 63</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structLC6__MSG.html">LC6_MSG</a> {</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; uint64_t timestamp;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordtype">int</span> type;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <a class="code" href="structLC6__MSG__TLV.html">LC6_MSG_TLV</a> **tlv;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;} <a class="code" href="structLC6__MSG.html">LC6_MSG</a>;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="keyword">enum</span> LC6_MSG_TYPE_ENUM {</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; LC6_MSG_TYPE_CLIENT_ONLINE,</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; LC6_MSG_TYPE_CLIENT_UPDATE,</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; LC6_MSG_TYPE_CLIENT_OFFLINE,</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; LC6_MSG_TYPE_KEEPALIVE_REQUEST,</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; LC6_MSG_TYPE_KEEPALIVE_RESPONSE,</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; LC6_MSG_TYPE_FRIEND_REQUEST,</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; LC6_MSG_TYPE_FRIEND_RESPONSE,</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; LC6_MSG_TYPE_MESSAGE_SEND,</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; LC6_MSG_TYPE_MESSAGE_RECV,</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; LC6_MSG_TYPE_MESSAGE_READ,</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; LC6_MSG_TYPE_NEIGHBOURS_REQUEST,</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; LC6_MSG_TYPE_NEIGHBOURS_RESPONSE</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;};</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="keyword">enum</span> LC6_MSG_TLV_ENUM {</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; LC6_MSG_TLV_NICKNAME,</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; LC6_MSG_TLV_KEY,</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; LC6_MSG_TLV_NONCE,</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; LC6_MSG_TLV_ICON,</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; LC6_MSG_TLV_METRIC,</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; LC6_MSG_TLV_MSGID,</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; LC6_MSG_TLV_CHATID,</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; LC6_MSG_TLV_NEIGHBOUR</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;};</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="keyword">enum</span> LC6_MSG_TLV_TYPE_ENUM {</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; LC6_MSG_TLV_TYPE_UTF8,</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; LC6_MSG_TLV_TYPE_BINARY,</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; LC6_MSG_TLV_TYPE_INTEGER,</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; LC6_MSG_TLV_TYPE_UUID,</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; LC6_MSG_TLV_TYPE_IPPORT</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;};</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; </div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="preprocessor">#define LC6_CONFIG_BOOTSTRAP &quot;bootstrap.bin&quot;</span></div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="preprocessor">#define LC6_CONFIG_USER &quot;user.bin&quot;</span></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="preprocessor">#define LC6_CONFIG_FRIEND &quot;friends.bin&quot;</span></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="preprocessor">#define LC6_CONFIG_MAXLEN 50</span></div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="structLC6__IPADDR.html"> 109</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structLC6__IPADDR.html">LC6_IPADDR</a> {</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; uint8_t af;</div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="unionLC6__IPADDR_1_1addr.html"> 111</a></span>&#160; <span class="keyword">union </span><a class="code" href="unionLC6__IPADDR_1_1addr.html">addr</a> {</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; uint32_t inet;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> inet6[16];</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; } <a class="code" href="unionLC6__IPADDR_1_1addr.html">addr</a>;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;} <a class="code" href="structLC6__IPADDR.html">LC6_IPADDR</a>;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="structLC6__BOOTSTRAP.html"> 117</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structLC6__BOOTSTRAP.html">LC6_BOOTSTRAP</a> {</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keyword">struct </span><a class="code" href="structLC6__BOOTSTRAP.html">LC6_BOOTSTRAP</a> *prev;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keyword">struct </span><a class="code" href="structLC6__BOOTSTRAP.html">LC6_BOOTSTRAP</a> *next;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; uint64_t last_contact;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; uint8_t hardcoded;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <a class="code" href="structLC6__IPADDR.html">LC6_IPADDR</a> ip;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;} <a class="code" href="structLC6__BOOTSTRAP.html">LC6_BOOTSTRAP</a>;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="structLC6__CTX.html"> 125</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structLC6__CTX.html">LC6_CTX</a> {</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordtype">char</span> path[MAXPATHLEN-LC6_CONFIG_MAXLEN];</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; LIBCHAT_CB *callback;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <a class="code" href="structLC6__USER.html">LC6_USER</a> *user;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <a class="code" href="structLC6__NODE.html">LC6_NODE</a> *node;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <a class="code" href="structLC6__FRIEND.html">LC6_FRIEND</a> *<span class="keyword">friend</span>;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <a class="code" href="structLC6__BOOTSTRAP.html">LC6_BOOTSTRAP</a> *bootstrap;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; pthread_t ev_thread;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;} <a class="code" href="structLC6__CTX.html">LC6_CTX</a>;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">int</span> LC6_MSG_TLV_TYPE_INT[8];</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> LC6_MSG_TYPE_STR[13][30];</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> LC6_MSG_TLV_STR[8][20];</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="preprocessor">#endif</span></div><div class="ttc" id="structLC6__IPADDR_html"><div class="ttname"><a href="structLC6__IPADDR.html">LC6_IPADDR</a></div><div class="ttdef"><b>Definition:</b> lc6_common.h:109</div></div>
  68. <div class="ttc" id="structLC6__MSG__TLV_html"><div class="ttname"><a href="structLC6__MSG__TLV.html">LC6_MSG_TLV</a></div><div class="ttdef"><b>Definition:</b> lc6_common.h:57</div></div>
  69. <div class="ttc" id="structLC6__PEER_html"><div class="ttname"><a href="structLC6__PEER.html">LC6_PEER</a></div><div class="ttdef"><b>Definition:</b> lc6_common.h:31</div></div>
  70. <div class="ttc" id="structLC6__CTX_html"><div class="ttname"><a href="structLC6__CTX.html">LC6_CTX</a></div><div class="ttdef"><b>Definition:</b> lc6_common.h:125</div></div>
  71. <div class="ttc" id="structLC6__BOOTSTRAP_html"><div class="ttname"><a href="structLC6__BOOTSTRAP.html">LC6_BOOTSTRAP</a></div><div class="ttdef"><b>Definition:</b> lc6_common.h:117</div></div>
  72. <div class="ttc" id="unionLC6__IPADDR_1_1addr_html"><div class="ttname"><a href="unionLC6__IPADDR_1_1addr.html">LC6_IPADDR::addr</a></div><div class="ttdef"><b>Definition:</b> lc6_common.h:111</div></div>
  73. <div class="ttc" id="structLC6__MSG_html"><div class="ttname"><a href="structLC6__MSG.html">LC6_MSG</a></div><div class="ttdef"><b>Definition:</b> lc6_common.h:63</div></div>
  74. <div class="ttc" id="structLC6__USER_html"><div class="ttname"><a href="structLC6__USER.html">LC6_USER</a></div><div class="ttdef"><b>Definition:</b> lc6_common.h:38</div></div>
  75. <div class="ttc" id="structLC6__FRIEND_html"><div class="ttname"><a href="structLC6__FRIEND.html">LC6_FRIEND</a></div><div class="ttdef"><b>Definition:</b> lc6_common.h:47</div></div>
  76. <div class="ttc" id="structLC6__NODE_html"><div class="ttname"><a href="structLC6__NODE.html">LC6_NODE</a></div><div class="ttdef"><b>Definition:</b> lc6_common.h:26</div></div>
  77. </div><!-- fragment --></div><!-- contents -->
  78. <!-- start footer part -->
  79. <hr class="footer"/><address class="footer"><small>
  80. Generated by &#160;<a href="http://www.doxygen.org/index.html">
  81. <img class="footer" src="doxygen.png" alt="doxygen"/>
  82. </a> 1.8.13
  83. </small></address>
  84. </body>
  85. </html>