]> git.netwichtig.de Git - user/henk/code/inspircd.git/blob - docs/module-doc/classircd__connector.html
Added final documentation for inspircd Beta 4
[user/henk/code/inspircd.git] / docs / module-doc / classircd__connector.html
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
2 <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
3 <title>InspIRCd: ircd_connector class Reference</title>
4 <link href="inspircd.css" rel="stylesheet" type="text/css">
5 </head><body>
6 <!-- Generated by Doxygen 1.3.3 -->
7 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Compound&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Compound&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
8 <h1>ircd_connector Class Reference</h1>Each connection has one or more of these each represents ONE outbound connection to another ircd so each inbound has multiple outbounds.  
9 <a href="#_details">More...</a>
10 <p>
11 <code>#include &lt;<a class="el" href="connection_8h-source.html">connection.h</a>&gt;</code>
12 <p>
13 Inherits <a class="el" href="classExtensible.html">Extensible</a>.
14 <p>
15 <a href="classircd__connector-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0>
16 <tr><td></td></tr>
17 <tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr>
18 <tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classircd__connector.html#a0">MakeOutboundConnection</a> (char *newhost, int newport)</td></tr>
19
20 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create an outbound connection to a listening socket. </em> <a href="#a0"></a><em><br><br></td></tr>
21 <tr><td class="memItemLeft" nowrap align=right valign=top>std::string&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classircd__connector.html#a1">GetServerName</a> ()</td></tr>
22
23 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the servername on this established connection. </em> <a href="#a1"></a><em><br><br></td></tr>
24 <tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classircd__connector.html#a2">SetServerName</a> (std::string serv)</td></tr>
25
26 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the server name of this connection. </em> <a href="#a2"></a><em><br><br></td></tr>
27 <tr><td class="memItemLeft" nowrap align=right valign=top>int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classircd__connector.html#a3">GetDescriptor</a> ()</td></tr>
28
29 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the file descriptor associated with this connection. </em> <a href="#a3"></a><em><br><br></td></tr>
30 <tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classircd__connector.html#a4">SetDescriptor</a> (int <a class="el" href="classircd__connector.html#r1">fd</a>)</td></tr>
31
32 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the file descriptor for this connection. </em> <a href="#a4"></a><em><br><br></td></tr>
33 <tr><td class="memItemLeft" nowrap align=right valign=top>int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classircd__connector.html#a5">GetState</a> ()</td></tr>
34
35 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the state flags for this connection. </em> <a href="#a5"></a><em><br><br></td></tr>
36 <tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classircd__connector.html#a6">SetState</a> (int <a class="el" href="classircd__connector.html#r4">state</a>)</td></tr>
37
38 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the state flags for this connection. </em> <a href="#a6"></a><em><br><br></td></tr>
39 <tr><td class="memItemLeft" nowrap align=right valign=top>char *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classircd__connector.html#a7">GetServerIP</a> ()</td></tr>
40
41 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the ip address (not servername) associated with this connection. </em> <a href="#a7"></a><em><br><br></td></tr>
42 <tr><td class="memItemLeft" nowrap align=right valign=top>std::string&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classircd__connector.html#a8">GetDescription</a> ()</td></tr>
43
44 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the server description of this connection. </em> <a href="#a8"></a><em><br><br></td></tr>
45 <tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classircd__connector.html#a9">SetDescription</a> (std::string desc)</td></tr>
46
47 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the server description of this connection. </em> <a href="#a9"></a><em><br><br></td></tr>
48 <tr><td class="memItemLeft" nowrap align=right valign=top>int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classircd__connector.html#a10">GetServerPort</a> ()</td></tr>
49
50 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the port number being used for this connection If the connection is outbound this will be the remote port otherwise it will be the local port, so it can always be gautanteed as open at the address given in <a class="el" href="classircd__connector.html#a7">GetServerIP()</a>. </em> <a href="#a10"></a><em><br><br></td></tr>
51 <tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classircd__connector.html#a11">SetServerPort</a> (int p)</td></tr>
52
53 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the port used by this connection. </em> <a href="#a11"></a><em><br><br></td></tr>
54 <tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classircd__connector.html#a12">SetHostAndPort</a> (char *newhost, int newport)</td></tr>
55
56 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set both the host and the port in one operation for this connection. </em> <a href="#a12"></a><em><br><br></td></tr>
57 <tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classircd__connector.html#a13">CloseConnection</a> ()</td></tr>
58
59 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Close the connection by calling close() on its file descriptor This function call updates no other data. </em> <a href="#a13"></a><em><br><br></td></tr>
60 <tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classircd__connector.html#a14">AddBuffer</a> (std::string a)</td></tr>
61
62 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This method adds text to the ircd connection's buffer There is no limitation on how much text of what line width may be added to this buffer. </em> <a href="#a14"></a><em><br><br></td></tr>
63 <tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classircd__connector.html#a15">BufferIsComplete</a> ()</td></tr>
64
65 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This method returns true if the buffer contains at least one carriage return character, e.g. </em> <a href="#a15"></a><em><br><br></td></tr>
66 <tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classircd__connector.html#a16">ClearBuffer</a> ()</td></tr>
67
68 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This method clears the server's buffer by setting it to an empty string. </em> <a href="#a16"></a><em><br><br></td></tr>
69 <tr><td class="memItemLeft" nowrap align=right valign=top>std::string&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classircd__connector.html#a17">GetBuffer</a> ()</td></tr>
70
71 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This method retrieves the first string from the tail end of the buffer and advances the tail end of the buffer past the returned string, in a similar manner to strtok(). </em> <a href="#a17"></a><em><br><br></td></tr>
72 <tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classircd__connector.html#a18">SetVersionString</a> (std::string newversion)</td></tr>
73
74 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This method sets the version string of the remote server. </em> <a href="#a18"></a><em><br><br></td></tr>
75 <tr><td class="memItemLeft" nowrap align=right valign=top>std::string&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classircd__connector.html#a19">GetVersionString</a> ()</td></tr>
76
77 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This method returns the version string of the remote server. </em> <a href="#a19"></a><em><br><br></td></tr>
78 <tr><td colspan=2><br><h2>Public Attributes</h2></td></tr>
79 <tr><td class="memItemLeft" nowrap align=right valign=top>std::string&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classircd__connector.html#o0">ircdbuffer</a></td></tr>
80
81 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">IRCD Buffer for input characters, holds as many lines as are pending - Note that the final line may not be complete and should only be read when there is a <br>
82  seperator. </em> <a href="#o0"></a><em><br><br></td></tr>
83 <tr><td class="memItemLeft" nowrap align=right valign=top>char&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classircd__connector.html#o1">host</a> [MAXBUF]</td></tr>
84
85 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">When MakeOutboundConnection is called, these public members are filled with the details passed to the function, for future reference. </em> <a href="#o1"></a><em><br><br></td></tr>
86 <tr><td class="memItemLeft" nowrap align=right valign=top>int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classircd__connector.html#o2">port</a></td></tr>
87
88 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">When MakeOutboundConnection is called, these public members are filled with the details passed to the function, for future reference. </em> <a href="#o2"></a><em><br><br></td></tr>
89 <tr><td class="memItemLeft" nowrap align=right valign=top>std::vector&lt; std::string &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classircd__connector.html#o3">routes</a></td></tr>
90
91 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classServer.html">Server</a> names of servers that this server is linked to So for A-&gt;B-&gt;C, if this was the record for B it would contain A and C whilever both servers are connected to B. </em> <a href="#o3"></a><em><br><br></td></tr>
92 <tr><td colspan=2><br><h2>Private Member Functions</h2></td></tr>
93 <tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classircd__connector.html#d0">SetHostAddress</a> (char *<a class="el" href="classircd__connector.html#o1">host</a>, int <a class="el" href="classircd__connector.html#o2">port</a>)</td></tr>
94
95 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">PRIVATE function to set the host address and port to connect to. </em> <a href="#d0"></a><em><br><br></td></tr>
96 <tr><td colspan=2><br><h2>Private Attributes</h2></td></tr>
97 <tr><td class="memItemLeft" nowrap align=right valign=top>sockaddr_in&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classircd__connector.html#r0">addr</a></td></tr>
98
99 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sockaddr of the outbound ip and port. </em> <a href="#r0"></a><em><br><br></td></tr>
100 <tr><td class="memItemLeft" nowrap align=right valign=top>int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classircd__connector.html#r1">fd</a></td></tr>
101
102 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">File descriptor of the connection. </em> <a href="#r1"></a><em><br><br></td></tr>
103 <tr><td class="memItemLeft" nowrap align=right valign=top>std::string&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classircd__connector.html#r2">servername</a></td></tr>
104
105 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classServer.html">Server</a> name. </em> <a href="#r2"></a><em><br><br></td></tr>
106 <tr><td class="memItemLeft" nowrap align=right valign=top>std::string&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classircd__connector.html#r3">description</a></td></tr>
107
108 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classServer.html">Server</a> 'GECOS'. </em> <a href="#r3"></a><em><br><br></td></tr>
109 <tr><td class="memItemLeft" nowrap align=right valign=top>int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classircd__connector.html#r4">state</a></td></tr>
110
111 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">State. </em> <a href="#r4"></a><em><br><br></td></tr>
112 <tr><td class="memItemLeft" nowrap align=right valign=top>std::string&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classircd__connector.html#r5">version</a></td></tr>
113
114 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This string holds the ircd's version response. </em> <a href="#r5"></a><em><br><br></td></tr>
115 </table>
116 <hr><a name="_details"></a><h2>Detailed Description</h2>
117 Each connection has one or more of these each represents ONE outbound connection to another ircd so each inbound has multiple outbounds. 
118 <p>
119 A listening socket that accepts server type connections is represented by one class serverrec. Class serverrec will instantiate several objects of type ircd_connector to represent each established connection, inbound or outbound. So, to determine all linked servers you must walk through all the serverrecs that the core defines, and in each one iterate through until you find connection(s) relating to the server you want information on. The core and module API provide functions for this. 
120 <p>
121
122 <p>
123 Definition at line <a class="el" href="connection_8h-source.html#l00054">54</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.<hr><h2>Member Function Documentation</h2>
124 <a name="a14" doxytag="ircd_connector::AddBuffer"></a><p>
125 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
126   <tr>
127     <td class="mdRow">
128       <table cellpadding="0" cellspacing="0" border="0">
129         <tr>
130           <td class="md" nowrap valign="top"> void ircd_connector::AddBuffer </td>
131           <td class="md" valign="top">(&nbsp;</td>
132           <td class="md" nowrap valign="top">std::string&nbsp;</td>
133           <td class="mdname1" valign="top" nowrap> <em>a</em>          </td>
134           <td class="md" valign="top">&nbsp;)&nbsp;</td>
135           <td class="md" nowrap></td>
136         </tr>
137
138       </table>
139     </td>
140   </tr>
141 </table>
142 <table cellspacing=5 cellpadding=0 border=0>
143   <tr>
144     <td>
145       &nbsp;
146     </td>
147     <td>
148
149 <p>
150 This method adds text to the ircd connection's buffer There is no limitation on how much text of what line width may be added to this buffer. 
151 <p>
152 It is the sending server's responsibility to ensure sent data is kept within reasonable quanities.    </td>
153   </tr>
154 </table>
155 <a name="a15" doxytag="ircd_connector::BufferIsComplete"></a><p>
156 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
157   <tr>
158     <td class="mdRow">
159       <table cellpadding="0" cellspacing="0" border="0">
160         <tr>
161           <td class="md" nowrap valign="top"> bool ircd_connector::BufferIsComplete </td>
162           <td class="md" valign="top">(&nbsp;</td>
163           <td class="mdname1" valign="top" nowrap>          </td>
164           <td class="md" valign="top">&nbsp;)&nbsp;</td>
165           <td class="md" nowrap></td>
166         </tr>
167
168       </table>
169     </td>
170   </tr>
171 </table>
172 <table cellspacing=5 cellpadding=0 border=0>
173   <tr>
174     <td>
175       &nbsp;
176     </td>
177     <td>
178
179 <p>
180 This method returns true if the buffer contains at least one carriage return character, e.g. 
181 <p>
182 one line can be read from the buffer successfully.    </td>
183   </tr>
184 </table>
185 <a name="a16" doxytag="ircd_connector::ClearBuffer"></a><p>
186 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
187   <tr>
188     <td class="mdRow">
189       <table cellpadding="0" cellspacing="0" border="0">
190         <tr>
191           <td class="md" nowrap valign="top"> void ircd_connector::ClearBuffer </td>
192           <td class="md" valign="top">(&nbsp;</td>
193           <td class="mdname1" valign="top" nowrap>          </td>
194           <td class="md" valign="top">&nbsp;)&nbsp;</td>
195           <td class="md" nowrap></td>
196         </tr>
197
198       </table>
199     </td>
200   </tr>
201 </table>
202 <table cellspacing=5 cellpadding=0 border=0>
203   <tr>
204     <td>
205       &nbsp;
206     </td>
207     <td>
208
209 <p>
210 This method clears the server's buffer by setting it to an empty string. 
211 <p>
212     </td>
213   </tr>
214 </table>
215 <a name="a13" doxytag="ircd_connector::CloseConnection"></a><p>
216 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
217   <tr>
218     <td class="mdRow">
219       <table cellpadding="0" cellspacing="0" border="0">
220         <tr>
221           <td class="md" nowrap valign="top"> void ircd_connector::CloseConnection </td>
222           <td class="md" valign="top">(&nbsp;</td>
223           <td class="mdname1" valign="top" nowrap>          </td>
224           <td class="md" valign="top">&nbsp;)&nbsp;</td>
225           <td class="md" nowrap></td>
226         </tr>
227
228       </table>
229     </td>
230   </tr>
231 </table>
232 <table cellspacing=5 cellpadding=0 border=0>
233   <tr>
234     <td>
235       &nbsp;
236     </td>
237     <td>
238
239 <p>
240 Close the connection by calling close() on its file descriptor This function call updates no other data. 
241 <p>
242     </td>
243   </tr>
244 </table>
245 <a name="a17" doxytag="ircd_connector::GetBuffer"></a><p>
246 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
247   <tr>
248     <td class="mdRow">
249       <table cellpadding="0" cellspacing="0" border="0">
250         <tr>
251           <td class="md" nowrap valign="top"> std::string ircd_connector::GetBuffer </td>
252           <td class="md" valign="top">(&nbsp;</td>
253           <td class="mdname1" valign="top" nowrap>          </td>
254           <td class="md" valign="top">&nbsp;)&nbsp;</td>
255           <td class="md" nowrap></td>
256         </tr>
257
258       </table>
259     </td>
260   </tr>
261 </table>
262 <table cellspacing=5 cellpadding=0 border=0>
263   <tr>
264     <td>
265       &nbsp;
266     </td>
267     <td>
268
269 <p>
270 This method retrieves the first string from the tail end of the buffer and advances the tail end of the buffer past the returned string, in a similar manner to strtok(). 
271 <p>
272     </td>
273   </tr>
274 </table>
275 <a name="a8" doxytag="ircd_connector::GetDescription"></a><p>
276 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
277   <tr>
278     <td class="mdRow">
279       <table cellpadding="0" cellspacing="0" border="0">
280         <tr>
281           <td class="md" nowrap valign="top"> std::string ircd_connector::GetDescription </td>
282           <td class="md" valign="top">(&nbsp;</td>
283           <td class="mdname1" valign="top" nowrap>          </td>
284           <td class="md" valign="top">&nbsp;)&nbsp;</td>
285           <td class="md" nowrap></td>
286         </tr>
287
288       </table>
289     </td>
290   </tr>
291 </table>
292 <table cellspacing=5 cellpadding=0 border=0>
293   <tr>
294     <td>
295       &nbsp;
296     </td>
297     <td>
298
299 <p>
300 Get the server description of this connection. 
301 <p>
302     </td>
303   </tr>
304 </table>
305 <a name="a3" doxytag="ircd_connector::GetDescriptor"></a><p>
306 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
307   <tr>
308     <td class="mdRow">
309       <table cellpadding="0" cellspacing="0" border="0">
310         <tr>
311           <td class="md" nowrap valign="top"> int ircd_connector::GetDescriptor </td>
312           <td class="md" valign="top">(&nbsp;</td>
313           <td class="mdname1" valign="top" nowrap>          </td>
314           <td class="md" valign="top">&nbsp;)&nbsp;</td>
315           <td class="md" nowrap></td>
316         </tr>
317
318       </table>
319     </td>
320   </tr>
321 </table>
322 <table cellspacing=5 cellpadding=0 border=0>
323   <tr>
324     <td>
325       &nbsp;
326     </td>
327     <td>
328
329 <p>
330 Get the file descriptor associated with this connection. 
331 <p>
332     </td>
333   </tr>
334 </table>
335 <a name="a7" doxytag="ircd_connector::GetServerIP"></a><p>
336 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
337   <tr>
338     <td class="mdRow">
339       <table cellpadding="0" cellspacing="0" border="0">
340         <tr>
341           <td class="md" nowrap valign="top"> char* ircd_connector::GetServerIP </td>
342           <td class="md" valign="top">(&nbsp;</td>
343           <td class="mdname1" valign="top" nowrap>          </td>
344           <td class="md" valign="top">&nbsp;)&nbsp;</td>
345           <td class="md" nowrap></td>
346         </tr>
347
348       </table>
349     </td>
350   </tr>
351 </table>
352 <table cellspacing=5 cellpadding=0 border=0>
353   <tr>
354     <td>
355       &nbsp;
356     </td>
357     <td>
358
359 <p>
360 Get the ip address (not servername) associated with this connection. 
361 <p>
362     </td>
363   </tr>
364 </table>
365 <a name="a1" doxytag="ircd_connector::GetServerName"></a><p>
366 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
367   <tr>
368     <td class="mdRow">
369       <table cellpadding="0" cellspacing="0" border="0">
370         <tr>
371           <td class="md" nowrap valign="top"> std::string ircd_connector::GetServerName </td>
372           <td class="md" valign="top">(&nbsp;</td>
373           <td class="mdname1" valign="top" nowrap>          </td>
374           <td class="md" valign="top">&nbsp;)&nbsp;</td>
375           <td class="md" nowrap></td>
376         </tr>
377
378       </table>
379     </td>
380   </tr>
381 </table>
382 <table cellspacing=5 cellpadding=0 border=0>
383   <tr>
384     <td>
385       &nbsp;
386     </td>
387     <td>
388
389 <p>
390 Return the servername on this established connection. 
391 <p>
392     </td>
393   </tr>
394 </table>
395 <a name="a10" doxytag="ircd_connector::GetServerPort"></a><p>
396 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
397   <tr>
398     <td class="mdRow">
399       <table cellpadding="0" cellspacing="0" border="0">
400         <tr>
401           <td class="md" nowrap valign="top"> int ircd_connector::GetServerPort </td>
402           <td class="md" valign="top">(&nbsp;</td>
403           <td class="mdname1" valign="top" nowrap>          </td>
404           <td class="md" valign="top">&nbsp;)&nbsp;</td>
405           <td class="md" nowrap></td>
406         </tr>
407
408       </table>
409     </td>
410   </tr>
411 </table>
412 <table cellspacing=5 cellpadding=0 border=0>
413   <tr>
414     <td>
415       &nbsp;
416     </td>
417     <td>
418
419 <p>
420 Get the port number being used for this connection If the connection is outbound this will be the remote port otherwise it will be the local port, so it can always be gautanteed as open at the address given in <a class="el" href="classircd__connector.html#a7">GetServerIP()</a>. 
421 <p>
422     </td>
423   </tr>
424 </table>
425 <a name="a5" doxytag="ircd_connector::GetState"></a><p>
426 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
427   <tr>
428     <td class="mdRow">
429       <table cellpadding="0" cellspacing="0" border="0">
430         <tr>
431           <td class="md" nowrap valign="top"> int ircd_connector::GetState </td>
432           <td class="md" valign="top">(&nbsp;</td>
433           <td class="mdname1" valign="top" nowrap>          </td>
434           <td class="md" valign="top">&nbsp;)&nbsp;</td>
435           <td class="md" nowrap></td>
436         </tr>
437
438       </table>
439     </td>
440   </tr>
441 </table>
442 <table cellspacing=5 cellpadding=0 border=0>
443   <tr>
444     <td>
445       &nbsp;
446     </td>
447     <td>
448
449 <p>
450 Get the state flags for this connection. 
451 <p>
452     </td>
453   </tr>
454 </table>
455 <a name="a19" doxytag="ircd_connector::GetVersionString"></a><p>
456 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
457   <tr>
458     <td class="mdRow">
459       <table cellpadding="0" cellspacing="0" border="0">
460         <tr>
461           <td class="md" nowrap valign="top"> std::string ircd_connector::GetVersionString </td>
462           <td class="md" valign="top">(&nbsp;</td>
463           <td class="mdname1" valign="top" nowrap>          </td>
464           <td class="md" valign="top">&nbsp;)&nbsp;</td>
465           <td class="md" nowrap></td>
466         </tr>
467
468       </table>
469     </td>
470   </tr>
471 </table>
472 <table cellspacing=5 cellpadding=0 border=0>
473   <tr>
474     <td>
475       &nbsp;
476     </td>
477     <td>
478
479 <p>
480 This method returns the version string of the remote server. 
481 <p>
482 If the server has no version string an empty string is returned.    </td>
483   </tr>
484 </table>
485 <a name="a0" doxytag="ircd_connector::MakeOutboundConnection"></a><p>
486 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
487   <tr>
488     <td class="mdRow">
489       <table cellpadding="0" cellspacing="0" border="0">
490         <tr>
491           <td class="md" nowrap valign="top"> bool ircd_connector::MakeOutboundConnection </td>
492           <td class="md" valign="top">(&nbsp;</td>
493           <td class="md" nowrap valign="top">char *&nbsp;</td>
494           <td class="mdname" nowrap> <em>newhost</em>, </td>
495         </tr>
496         <tr>
497           <td></td>
498           <td></td>
499           <td class="md" nowrap>int&nbsp;</td>
500           <td class="mdname" nowrap> <em>newport</em></td>
501         </tr>
502         <tr>
503           <td></td>
504           <td class="md">)&nbsp;</td>
505           <td class="md" colspan="2"></td>
506         </tr>
507
508       </table>
509     </td>
510   </tr>
511 </table>
512 <table cellspacing=5 cellpadding=0 border=0>
513   <tr>
514     <td>
515       &nbsp;
516     </td>
517     <td>
518
519 <p>
520 Create an outbound connection to a listening socket. 
521 <p>
522     </td>
523   </tr>
524 </table>
525 <a name="a9" doxytag="ircd_connector::SetDescription"></a><p>
526 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
527   <tr>
528     <td class="mdRow">
529       <table cellpadding="0" cellspacing="0" border="0">
530         <tr>
531           <td class="md" nowrap valign="top"> void ircd_connector::SetDescription </td>
532           <td class="md" valign="top">(&nbsp;</td>
533           <td class="md" nowrap valign="top">std::string&nbsp;</td>
534           <td class="mdname1" valign="top" nowrap> <em>desc</em>          </td>
535           <td class="md" valign="top">&nbsp;)&nbsp;</td>
536           <td class="md" nowrap></td>
537         </tr>
538
539       </table>
540     </td>
541   </tr>
542 </table>
543 <table cellspacing=5 cellpadding=0 border=0>
544   <tr>
545     <td>
546       &nbsp;
547     </td>
548     <td>
549
550 <p>
551 Set the server description of this connection. 
552 <p>
553     </td>
554   </tr>
555 </table>
556 <a name="a4" doxytag="ircd_connector::SetDescriptor"></a><p>
557 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
558   <tr>
559     <td class="mdRow">
560       <table cellpadding="0" cellspacing="0" border="0">
561         <tr>
562           <td class="md" nowrap valign="top"> void ircd_connector::SetDescriptor </td>
563           <td class="md" valign="top">(&nbsp;</td>
564           <td class="md" nowrap valign="top">int&nbsp;</td>
565           <td class="mdname1" valign="top" nowrap> <em>fd</em>          </td>
566           <td class="md" valign="top">&nbsp;)&nbsp;</td>
567           <td class="md" nowrap></td>
568         </tr>
569
570       </table>
571     </td>
572   </tr>
573 </table>
574 <table cellspacing=5 cellpadding=0 border=0>
575   <tr>
576     <td>
577       &nbsp;
578     </td>
579     <td>
580
581 <p>
582 Set the file descriptor for this connection. 
583 <p>
584     </td>
585   </tr>
586 </table>
587 <a name="d0" doxytag="ircd_connector::SetHostAddress"></a><p>
588 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
589   <tr>
590     <td class="mdRow">
591       <table cellpadding="0" cellspacing="0" border="0">
592         <tr>
593           <td class="md" nowrap valign="top"> bool ircd_connector::SetHostAddress </td>
594           <td class="md" valign="top">(&nbsp;</td>
595           <td class="md" nowrap valign="top">char *&nbsp;</td>
596           <td class="mdname" nowrap> <em>host</em>, </td>
597         </tr>
598         <tr>
599           <td></td>
600           <td></td>
601           <td class="md" nowrap>int&nbsp;</td>
602           <td class="mdname" nowrap> <em>port</em></td>
603         </tr>
604         <tr>
605           <td></td>
606           <td class="md">)&nbsp;</td>
607           <td class="md" colspan="2"><code> [private]</code></td>
608         </tr>
609
610       </table>
611     </td>
612   </tr>
613 </table>
614 <table cellspacing=5 cellpadding=0 border=0>
615   <tr>
616     <td>
617       &nbsp;
618     </td>
619     <td>
620
621 <p>
622 PRIVATE function to set the host address and port to connect to. 
623 <p>
624     </td>
625   </tr>
626 </table>
627 <a name="a12" doxytag="ircd_connector::SetHostAndPort"></a><p>
628 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
629   <tr>
630     <td class="mdRow">
631       <table cellpadding="0" cellspacing="0" border="0">
632         <tr>
633           <td class="md" nowrap valign="top"> bool ircd_connector::SetHostAndPort </td>
634           <td class="md" valign="top">(&nbsp;</td>
635           <td class="md" nowrap valign="top">char *&nbsp;</td>
636           <td class="mdname" nowrap> <em>newhost</em>, </td>
637         </tr>
638         <tr>
639           <td></td>
640           <td></td>
641           <td class="md" nowrap>int&nbsp;</td>
642           <td class="mdname" nowrap> <em>newport</em></td>
643         </tr>
644         <tr>
645           <td></td>
646           <td class="md">)&nbsp;</td>
647           <td class="md" colspan="2"></td>
648         </tr>
649
650       </table>
651     </td>
652   </tr>
653 </table>
654 <table cellspacing=5 cellpadding=0 border=0>
655   <tr>
656     <td>
657       &nbsp;
658     </td>
659     <td>
660
661 <p>
662 Set both the host and the port in one operation for this connection. 
663 <p>
664     </td>
665   </tr>
666 </table>
667 <a name="a2" doxytag="ircd_connector::SetServerName"></a><p>
668 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
669   <tr>
670     <td class="mdRow">
671       <table cellpadding="0" cellspacing="0" border="0">
672         <tr>
673           <td class="md" nowrap valign="top"> void ircd_connector::SetServerName </td>
674           <td class="md" valign="top">(&nbsp;</td>
675           <td class="md" nowrap valign="top">std::string&nbsp;</td>
676           <td class="mdname1" valign="top" nowrap> <em>serv</em>          </td>
677           <td class="md" valign="top">&nbsp;)&nbsp;</td>
678           <td class="md" nowrap></td>
679         </tr>
680
681       </table>
682     </td>
683   </tr>
684 </table>
685 <table cellspacing=5 cellpadding=0 border=0>
686   <tr>
687     <td>
688       &nbsp;
689     </td>
690     <td>
691
692 <p>
693 Set the server name of this connection. 
694 <p>
695     </td>
696   </tr>
697 </table>
698 <a name="a11" doxytag="ircd_connector::SetServerPort"></a><p>
699 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
700   <tr>
701     <td class="mdRow">
702       <table cellpadding="0" cellspacing="0" border="0">
703         <tr>
704           <td class="md" nowrap valign="top"> void ircd_connector::SetServerPort </td>
705           <td class="md" valign="top">(&nbsp;</td>
706           <td class="md" nowrap valign="top">int&nbsp;</td>
707           <td class="mdname1" valign="top" nowrap> <em>p</em>          </td>
708           <td class="md" valign="top">&nbsp;)&nbsp;</td>
709           <td class="md" nowrap></td>
710         </tr>
711
712       </table>
713     </td>
714   </tr>
715 </table>
716 <table cellspacing=5 cellpadding=0 border=0>
717   <tr>
718     <td>
719       &nbsp;
720     </td>
721     <td>
722
723 <p>
724 Set the port used by this connection. 
725 <p>
726     </td>
727   </tr>
728 </table>
729 <a name="a6" doxytag="ircd_connector::SetState"></a><p>
730 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
731   <tr>
732     <td class="mdRow">
733       <table cellpadding="0" cellspacing="0" border="0">
734         <tr>
735           <td class="md" nowrap valign="top"> void ircd_connector::SetState </td>
736           <td class="md" valign="top">(&nbsp;</td>
737           <td class="md" nowrap valign="top">int&nbsp;</td>
738           <td class="mdname1" valign="top" nowrap> <em>state</em>          </td>
739           <td class="md" valign="top">&nbsp;)&nbsp;</td>
740           <td class="md" nowrap></td>
741         </tr>
742
743       </table>
744     </td>
745   </tr>
746 </table>
747 <table cellspacing=5 cellpadding=0 border=0>
748   <tr>
749     <td>
750       &nbsp;
751     </td>
752     <td>
753
754 <p>
755 Set the state flags for this connection. 
756 <p>
757     </td>
758   </tr>
759 </table>
760 <a name="a18" doxytag="ircd_connector::SetVersionString"></a><p>
761 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
762   <tr>
763     <td class="mdRow">
764       <table cellpadding="0" cellspacing="0" border="0">
765         <tr>
766           <td class="md" nowrap valign="top"> void ircd_connector::SetVersionString </td>
767           <td class="md" valign="top">(&nbsp;</td>
768           <td class="md" nowrap valign="top">std::string&nbsp;</td>
769           <td class="mdname1" valign="top" nowrap> <em>newversion</em>          </td>
770           <td class="md" valign="top">&nbsp;)&nbsp;</td>
771           <td class="md" nowrap></td>
772         </tr>
773
774       </table>
775     </td>
776   </tr>
777 </table>
778 <table cellspacing=5 cellpadding=0 border=0>
779   <tr>
780     <td>
781       &nbsp;
782     </td>
783     <td>
784
785 <p>
786 This method sets the version string of the remote server. 
787 <p>
788     </td>
789   </tr>
790 </table>
791 <hr><h2>Member Data Documentation</h2>
792 <a name="r0" doxytag="ircd_connector::addr"></a><p>
793 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
794   <tr>
795     <td class="mdRow">
796       <table cellpadding="0" cellspacing="0" border="0">
797         <tr>
798           <td class="md" nowrap valign="top"> sockaddr_in <a class="el" href="classircd__connector.html#r0">ircd_connector::addr</a><code> [private]</code>
799       </table>
800     </td>
801   </tr>
802 </table>
803 <table cellspacing=5 cellpadding=0 border=0>
804   <tr>
805     <td>
806       &nbsp;
807     </td>
808     <td>
809
810 <p>
811 Sockaddr of the outbound ip and port. 
812 <p>
813
814 <p>
815 Definition at line <a class="el" href="connection_8h-source.html#l00059">59</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.    </td>
816   </tr>
817 </table>
818 <a name="r3" doxytag="ircd_connector::description"></a><p>
819 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
820   <tr>
821     <td class="mdRow">
822       <table cellpadding="0" cellspacing="0" border="0">
823         <tr>
824           <td class="md" nowrap valign="top"> std::string <a class="el" href="classircd__connector.html#r3">ircd_connector::description</a><code> [private]</code>
825       </table>
826     </td>
827   </tr>
828 </table>
829 <table cellspacing=5 cellpadding=0 border=0>
830   <tr>
831     <td>
832       &nbsp;
833     </td>
834     <td>
835
836 <p>
837 <a class="el" href="classServer.html">Server</a> 'GECOS'. 
838 <p>
839
840 <p>
841 Definition at line <a class="el" href="connection_8h-source.html#l00071">71</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.    </td>
842   </tr>
843 </table>
844 <a name="r1" doxytag="ircd_connector::fd"></a><p>
845 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
846   <tr>
847     <td class="mdRow">
848       <table cellpadding="0" cellspacing="0" border="0">
849         <tr>
850           <td class="md" nowrap valign="top"> int <a class="el" href="classircd__connector.html#r1">ircd_connector::fd</a><code> [private]</code>
851       </table>
852     </td>
853   </tr>
854 </table>
855 <table cellspacing=5 cellpadding=0 border=0>
856   <tr>
857     <td>
858       &nbsp;
859     </td>
860     <td>
861
862 <p>
863 File descriptor of the connection. 
864 <p>
865
866 <p>
867 Definition at line <a class="el" href="connection_8h-source.html#l00063">63</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.    </td>
868   </tr>
869 </table>
870 <a name="o1" doxytag="ircd_connector::host"></a><p>
871 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
872   <tr>
873     <td class="mdRow">
874       <table cellpadding="0" cellspacing="0" border="0">
875         <tr>
876           <td class="md" nowrap valign="top"> char <a class="el" href="classircd__connector.html#o1">ircd_connector::host</a>[MAXBUF]
877       </table>
878     </td>
879   </tr>
880 </table>
881 <table cellspacing=5 cellpadding=0 border=0>
882   <tr>
883     <td>
884       &nbsp;
885     </td>
886     <td>
887
888 <p>
889 When MakeOutboundConnection is called, these public members are filled with the details passed to the function, for future reference. 
890 <p>
891
892 <p>
893 Definition at line <a class="el" href="connection_8h-source.html#l00099">99</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.    </td>
894   </tr>
895 </table>
896 <a name="o0" doxytag="ircd_connector::ircdbuffer"></a><p>
897 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
898   <tr>
899     <td class="mdRow">
900       <table cellpadding="0" cellspacing="0" border="0">
901         <tr>
902           <td class="md" nowrap valign="top"> std::string <a class="el" href="classircd__connector.html#o0">ircd_connector::ircdbuffer</a>
903       </table>
904     </td>
905   </tr>
906 </table>
907 <table cellspacing=5 cellpadding=0 border=0>
908   <tr>
909     <td>
910       &nbsp;
911     </td>
912     <td>
913
914 <p>
915 IRCD Buffer for input characters, holds as many lines as are pending - Note that the final line may not be complete and should only be read when there is a <br>
916  seperator. 
917 <p>
918
919 <p>
920 Definition at line <a class="el" href="connection_8h-source.html#l00092">92</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.    </td>
921   </tr>
922 </table>
923 <a name="o2" doxytag="ircd_connector::port"></a><p>
924 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
925   <tr>
926     <td class="mdRow">
927       <table cellpadding="0" cellspacing="0" border="0">
928         <tr>
929           <td class="md" nowrap valign="top"> int <a class="el" href="classircd__connector.html#o2">ircd_connector::port</a>
930       </table>
931     </td>
932   </tr>
933 </table>
934 <table cellspacing=5 cellpadding=0 border=0>
935   <tr>
936     <td>
937       &nbsp;
938     </td>
939     <td>
940
941 <p>
942 When MakeOutboundConnection is called, these public members are filled with the details passed to the function, for future reference. 
943 <p>
944
945 <p>
946 Definition at line <a class="el" href="connection_8h-source.html#l00105">105</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.    </td>
947   </tr>
948 </table>
949 <a name="o3" doxytag="ircd_connector::routes"></a><p>
950 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
951   <tr>
952     <td class="mdRow">
953       <table cellpadding="0" cellspacing="0" border="0">
954         <tr>
955           <td class="md" nowrap valign="top"> std::vector&lt;std::string&gt; <a class="el" href="classircd__connector.html#o3">ircd_connector::routes</a>
956       </table>
957     </td>
958   </tr>
959 </table>
960 <table cellspacing=5 cellpadding=0 border=0>
961   <tr>
962     <td>
963       &nbsp;
964     </td>
965     <td>
966
967 <p>
968 <a class="el" href="classServer.html">Server</a> names of servers that this server is linked to So for A-&gt;B-&gt;C, if this was the record for B it would contain A and C whilever both servers are connected to B. 
969 <p>
970
971 <p>
972 Definition at line <a class="el" href="connection_8h-source.html#l00111">111</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.    </td>
973   </tr>
974 </table>
975 <a name="r2" doxytag="ircd_connector::servername"></a><p>
976 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
977   <tr>
978     <td class="mdRow">
979       <table cellpadding="0" cellspacing="0" border="0">
980         <tr>
981           <td class="md" nowrap valign="top"> std::string <a class="el" href="classircd__connector.html#r2">ircd_connector::servername</a><code> [private]</code>
982       </table>
983     </td>
984   </tr>
985 </table>
986 <table cellspacing=5 cellpadding=0 border=0>
987   <tr>
988     <td>
989       &nbsp;
990     </td>
991     <td>
992
993 <p>
994 <a class="el" href="classServer.html">Server</a> name. 
995 <p>
996
997 <p>
998 Definition at line <a class="el" href="connection_8h-source.html#l00067">67</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.    </td>
999   </tr>
1000 </table>
1001 <a name="r4" doxytag="ircd_connector::state"></a><p>
1002 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
1003   <tr>
1004     <td class="mdRow">
1005       <table cellpadding="0" cellspacing="0" border="0">
1006         <tr>
1007           <td class="md" nowrap valign="top"> int <a class="el" href="classircd__connector.html#r4">ircd_connector::state</a><code> [private]</code>
1008       </table>
1009     </td>
1010   </tr>
1011 </table>
1012 <table cellspacing=5 cellpadding=0 border=0>
1013   <tr>
1014     <td>
1015       &nbsp;
1016     </td>
1017     <td>
1018
1019 <p>
1020 State. 
1021 <p>
1022 STATE_NOAUTH_INBOUND, STATE_NOAUTH_OUTBOUND STATE_SYNC, STATE_DISCONNECTED, STATE_CONNECTED
1023 <p>
1024 Definition at line <a class="el" href="connection_8h-source.html#l00076">76</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.    </td>
1025   </tr>
1026 </table>
1027 <a name="r5" doxytag="ircd_connector::version"></a><p>
1028 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
1029   <tr>
1030     <td class="mdRow">
1031       <table cellpadding="0" cellspacing="0" border="0">
1032         <tr>
1033           <td class="md" nowrap valign="top"> std::string <a class="el" href="classircd__connector.html#r5">ircd_connector::version</a><code> [private]</code>
1034       </table>
1035     </td>
1036   </tr>
1037 </table>
1038 <table cellspacing=5 cellpadding=0 border=0>
1039   <tr>
1040     <td>
1041       &nbsp;
1042     </td>
1043     <td>
1044
1045 <p>
1046 This string holds the ircd's version response. 
1047 <p>
1048
1049 <p>
1050 Definition at line <a class="el" href="connection_8h-source.html#l00084">84</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.    </td>
1051   </tr>
1052 </table>
1053 <hr>The documentation for this class was generated from the following file:<ul>
1054 <li><a class="el" href="connection_8h-source.html">connection.h</a></ul>
1055 <hr size="1"><address style="align: right;"><small>Generated on Sat May 7 15:34:25 2005 for InspIRCd by
1056 <a href="http://www.doxygen.org/index.html">
1057 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
1058 </a>1.3.3 </small></address>
1059 </body>
1060 </html>