From bab9f4b4bc0f6aa0e1377745fd216ef9874b3f27 Mon Sep 17 00:00:00 2001 From: brain Date: Fri, 9 Dec 2005 20:21:39 +0000 Subject: Added new module docs git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@2301 e03df62e-2008-0410-955e-edbf42e46eb7 --- docs/module-doc/classInspSocket.html | 505 ++++++++++++++++++++--------------- 1 file changed, 292 insertions(+), 213 deletions(-) (limited to 'docs/module-doc/classInspSocket.html') diff --git a/docs/module-doc/classInspSocket.html b/docs/module-doc/classInspSocket.html index ba3112cbe..6aee4b7e0 100644 --- a/docs/module-doc/classInspSocket.html +++ b/docs/module-doc/classInspSocket.html @@ -13,7 +13,7 @@ Collaboration diagram for InspSocket:


Public Member Functions

 InspSocket () - InspSocket (int newfd) + InspSocket (int newfd, char *ip)  InspSocket (std::string host, int port, bool listening, unsigned long maxtime) @@ -31,6 +31,8 @@ Collaboration diagram for InspSocket:

virtual char * Read () +std::string GetIP () + virtual int Write (std::string data) virtual int OnIncomingConnection (int newfd, char *ip) @@ -64,7 +66,9 @@ Collaboration diagram for InspSocket:

pollfd polls -char ibuf [1024] +char ibuf [16384] + +std::string IP sockaddr_in client @@ -115,7 +119,7 @@ References I -

+

- - - + + + + + + + + + + + +
@@ -124,9 +128,18 @@ References I InspSocket::InspSocket int  newfd  )  newfd,
char *  ip
@@ -144,10 +157,11 @@ References I

Definition at line 51 of file socket.cpp.

-References fd, I_CONNECTED, and state.

00052 {
+References fd, I_CONNECTED, IP, and state.
00052 {
 00053         this->fd = newfd;
 00054         this->state = I_CONNECTED;
-00055 }
+00055         this->IP = ip;
+00056 }
 

@@ -201,79 +215,81 @@ References fd, 57 of file socket.cpp. -

-References addr, addy, Close(), DEBUG, fd, I_CONNECTING, I_ERR_BIND, I_ERR_CONNECT, I_ERR_SOCKET, I_ERROR, I_LISTENING, OnError(), state, timeout, and timeout_end.

00058 {
-00059         if (listening) {
-00060                 if ((this->fd = OpenTCPSocket()) == ERROR)
-00061                 {
-00062                         this->fd = -1;
-00063                         this->state = I_ERROR;
-00064                         this->OnError(I_ERR_SOCKET);
-00065                         log(DEBUG,"OpenTCPSocket() error");
-00066                         return;
-00067                 }
-00068                 else
-00069                 {
-00070                         if (BindSocket(this->fd,this->client,this->server,port,(char*)host.c_str()) == ERROR)
-00071                         {
-00072                                 this->Close();
-00073                                 this->fd = -1;
-00074                                 this->state = I_ERROR;
-00075                                 this->OnError(I_ERR_BIND);
-00076                                 log(DEBUG,"BindSocket() error %s",strerror(errno));
-00077                                 return;
-00078                         }
-00079                         else
-00080                         {
-00081                                 this->state = I_LISTENING;
-00082                                 log(DEBUG,"New socket now in I_LISTENING state");
-00083                                 return;
-00084                         }
-00085                 }                       
-00086         } else {
-00087                 char* ip;
-00088                 this->host = host;
-00089                 hostent* hoste = gethostbyname(host.c_str());
-00090                 if (!hoste) {
-00091                         ip = (char*)host.c_str();
-00092                 } else {
-00093                         struct in_addr* ia = (in_addr*)hoste->h_addr;
-00094                         ip = inet_ntoa(*ia);
-00095                 }
-00096 
-00097                 timeout_end = time(NULL)+maxtime;
-00098                 timeout = false;
-00099                 if ((this->fd = socket(AF_INET, SOCK_STREAM, 0)) == -1)
-00100                 {
-00101                         this->state = I_ERROR;
-00102                         this->OnError(I_ERR_SOCKET);
-00103                         return;
-00104                 }
-00105                 this->port = port;
-00106                 inet_aton(ip,&addy);
-00107                 addr.sin_family = AF_INET;
-00108                 addr.sin_addr = addy;
-00109                 addr.sin_port = htons(this->port);
-00110 
-00111                 int flags;
-00112                 flags = fcntl(this->fd, F_GETFL, 0);
-00113                 fcntl(this->fd, F_SETFL, flags | O_NONBLOCK);
-00114 
-00115                 if(connect(this->fd, (sockaddr*)&this->addr,sizeof(this->addr)) == -1)
-00116                 {
-00117                         if (errno != EINPROGRESS)
-00118                         {
-00119                                 this->Close();
-00120                                 this->OnError(I_ERR_CONNECT);
-00121                                 this->state = I_ERROR;
-00122                                 return;
-00123                         }
-00124                 }
-00125                 this->state = I_CONNECTING;
-00126                 return;
-00127         }
-00128 }
+Definition at line 58 of file socket.cpp.
+

+References addr, addy, Close(), DEBUG, fd, I_CONNECTING, I_ERR_BIND, I_ERR_CONNECT, I_ERR_SOCKET, I_ERROR, I_LISTENING, IP, OnError(), state, timeout, and timeout_end.

00059 {
+00060         if (listening) {
+00061                 if ((this->fd = OpenTCPSocket()) == ERROR)
+00062                 {
+00063                         this->fd = -1;
+00064                         this->state = I_ERROR;
+00065                         this->OnError(I_ERR_SOCKET);
+00066                         log(DEBUG,"OpenTCPSocket() error");
+00067                         return;
+00068                 }
+00069                 else
+00070                 {
+00071                         if (BindSocket(this->fd,this->client,this->server,port,(char*)host.c_str()) == ERROR)
+00072                         {
+00073                                 this->Close();
+00074                                 this->fd = -1;
+00075                                 this->state = I_ERROR;
+00076                                 this->OnError(I_ERR_BIND);
+00077                                 log(DEBUG,"BindSocket() error %s",strerror(errno));
+00078                                 return;
+00079                         }
+00080                         else
+00081                         {
+00082                                 this->state = I_LISTENING;
+00083                                 log(DEBUG,"New socket now in I_LISTENING state");
+00084                                 return;
+00085                         }
+00086                 }                       
+00087         } else {
+00088                 char* ip;
+00089                 this->host = host;
+00090                 hostent* hoste = gethostbyname(host.c_str());
+00091                 if (!hoste) {
+00092                         ip = (char*)host.c_str();
+00093                 } else {
+00094                         struct in_addr* ia = (in_addr*)hoste->h_addr;
+00095                         ip = inet_ntoa(*ia);
+00096                 }
+00097 
+00098                 this->IP = ip;
+00099 
+00100                 timeout_end = time(NULL)+maxtime;
+00101                 timeout = false;
+00102                 if ((this->fd = socket(AF_INET, SOCK_STREAM, 0)) == -1)
+00103                 {
+00104                         this->state = I_ERROR;
+00105                         this->OnError(I_ERR_SOCKET);
+00106                         return;
+00107                 }
+00108                 this->port = port;
+00109                 inet_aton(ip,&addy);
+00110                 addr.sin_family = AF_INET;
+00111                 addr.sin_addr = addy;
+00112                 addr.sin_port = htons(this->port);
+00113 
+00114                 int flags;
+00115                 flags = fcntl(this->fd, F_GETFL, 0);
+00116                 fcntl(this->fd, F_SETFL, flags | O_NONBLOCK);
+00117 
+00118                 if(connect(this->fd, (sockaddr*)&this->addr,sizeof(this->addr)) == -1)
+00119                 {
+00120                         if (errno != EINPROGRESS)
+00121                         {
+00122                                 this->Close();
+00123                                 this->OnError(I_ERR_CONNECT);
+00124                                 this->state = I_ERROR;
+00125                                 return;
+00126                         }
+00127                 }
+00128                 this->state = I_CONNECTING;
+00129                 return;
+00130         }
+00131 }
 

@@ -305,11 +321,11 @@ References addr,

-Definition at line 246 of file socket.cpp. +Definition at line 254 of file socket.cpp.

-References Close().

00247 {
-00248         this->Close();
-00249 }
+References Close().
00255 {
+00256         this->Close();
+00257 }
 

@@ -342,19 +358,55 @@ References Close().

-Definition at line 130 of file socket.cpp. +Definition at line 133 of file socket.cpp.

-References fd, and OnClose(). +References fd, and OnClose().

-Referenced by InspSocket(), and ~InspSocket().

00131 {
-00132         if (this->fd != -1)
-00133         {
-00134                 this->OnClose();
-00135                 shutdown(this->fd,2);
-00136                 close(this->fd);
-00137                 this->fd = -1;
-00138         }
-00139 }
+Referenced by InspSocket(), and ~InspSocket().
00134 {
+00135         if (this->fd != -1)
+00136         {
+00137                 this->OnClose();
+00138                 shutdown(this->fd,2);
+00139                 close(this->fd);
+00140                 this->fd = -1;
+00141         }
+00142 }
+
+

+ + + +

+ + + + +
+ + + + + + + + +
std::string InspSocket::GetIP  ) 
+
+ + + + @@ -386,11 +438,11 @@ Referenced by InspSocket()

-Definition at line 233 of file socket.cpp. +Definition at line 241 of file socket.cpp.

-References state.

00234 {
-00235         return this->state;
-00236 }
+References state.
00242 {
+00243         return this->state;
+00244 }
 

@@ -422,9 +474,9 @@ References state.

-Definition at line 244 of file socket.cpp. +Definition at line 252 of file socket.cpp.

-Referenced by Close().

00244 { return; }
+Referenced by Close().
00252 { return; }
 

@@ -456,9 +508,9 @@ Referenced by Close().

-Definition at line 238 of file socket.cpp. +Definition at line 246 of file socket.cpp.

-Referenced by Poll().

00238 { return true; }
+Referenced by Poll().
00246 { return true; }
 

@@ -490,9 +542,9 @@ Referenced by Poll().

-Definition at line 242 of file socket.cpp. +Definition at line 250 of file socket.cpp.

-Referenced by Poll().

00242 { return true; }
+Referenced by Poll().
00250 { return true; }
 

@@ -524,7 +576,7 @@ Referenced by Poll().

-Definition at line 240 of file socket.cpp.

00240 { return 0; }
+Definition at line 248 of file socket.cpp.
00248 { return 0; }
 

@@ -557,9 +609,9 @@ Definition at line 240 o

-Definition at line 239 of file socket.cpp. +Definition at line 247 of file socket.cpp.

-Referenced by InspSocket(), and Poll().

00239 { return; }
+Referenced by InspSocket(), and Poll().
00247 { return; }
 

@@ -601,9 +653,9 @@ Referenced by InspSocket()

-Definition at line 241 of file socket.cpp. +Definition at line 249 of file socket.cpp.

-Referenced by Poll().

00241 { return 0; }
+Referenced by Poll().
00249 { return 0; }
 

@@ -635,9 +687,9 @@ Referenced by Poll().

-Definition at line 243 of file socket.cpp. +Definition at line 251 of file socket.cpp.

-Referenced by Poll().

00243 { return; }
+Referenced by Poll().
00251 { return; }
 

@@ -669,50 +721,50 @@ Referenced by Poll().

-Definition at line 183 of file socket.cpp. -

-References client, fd, I_CONNECTED, I_CONNECTING, I_ERR_TIMEOUT, I_ERROR, I_LISTENING, length, OnConnected(), OnDataReady(), OnError(), OnIncomingConnection(), OnTimeout(), polls, SetState(), state, timeout, and timeout_end.

00184 {
-00185         if ((time(NULL) > timeout_end) && (this->state == I_CONNECTING))
-00186         {
-00187                 // for non-listening sockets, the timeout can occur
-00188                 // which causes termination of the connection after
-00189                 // the given number of seconds without a successful
-00190                 // connection.
-00191                 this->OnTimeout();
-00192                 this->OnError(I_ERR_TIMEOUT);
-00193                 timeout = true;
-00194                 this->state = I_ERROR;
-00195                 return false;
-00196         }
-00197         polls.fd = this->fd;
-00198         state == I_CONNECTING ? polls.events = POLLOUT : polls.events = POLLIN;
-00199         int ret = poll(&polls,1,1);
-00200 
-00201         if (ret > 0)
-00202         {
-00203                 int incoming = -1;
-00204                 
-00205                 switch (this->state)
-00206                 {
-00207                         case I_CONNECTING:
-00208                                 this->SetState(I_CONNECTED);
-00209                                 return this->OnConnected();
-00210                         break;
-00211                         case I_LISTENING:
-00212                                 length = sizeof (client);
-00213                                 incoming = accept (this->fd, (sockaddr*)&client,&length);
-00214                                 this->OnIncomingConnection(incoming,inet_ntoa(client.sin_addr));
-00215                                 return true;
-00216                         break;
-00217                         case I_CONNECTED:
-00218                                 return this->OnDataReady();
-00219                         break;
-00220                         default:
-00221                         break;
-00222                 }
-00223         }
-00224         return true;
-00225 }
+Definition at line 191 of file socket.cpp.
+

+References client, fd, I_CONNECTED, I_CONNECTING, I_ERR_TIMEOUT, I_ERROR, I_LISTENING, length, OnConnected(), OnDataReady(), OnError(), OnIncomingConnection(), OnTimeout(), polls, SetState(), state, timeout, and timeout_end.

00192 {
+00193         if ((time(NULL) > timeout_end) && (this->state == I_CONNECTING))
+00194         {
+00195                 // for non-listening sockets, the timeout can occur
+00196                 // which causes termination of the connection after
+00197                 // the given number of seconds without a successful
+00198                 // connection.
+00199                 this->OnTimeout();
+00200                 this->OnError(I_ERR_TIMEOUT);
+00201                 timeout = true;
+00202                 this->state = I_ERROR;
+00203                 return false;
+00204         }
+00205         polls.fd = this->fd;
+00206         state == I_CONNECTING ? polls.events = POLLOUT : polls.events = POLLIN;
+00207         int ret = poll(&polls,1,1);
+00208 
+00209         if (ret > 0)
+00210         {
+00211                 int incoming = -1;
+00212                 
+00213                 switch (this->state)
+00214                 {
+00215                         case I_CONNECTING:
+00216                                 this->SetState(I_CONNECTED);
+00217                                 return this->OnConnected();
+00218                         break;
+00219                         case I_LISTENING:
+00220                                 length = sizeof (client);
+00221                                 incoming = accept (this->fd, (sockaddr*)&client,&length);
+00222                                 this->OnIncomingConnection(incoming,inet_ntoa(client.sin_addr));
+00223                                 return true;
+00224                         break;
+00225                         case I_CONNECTED:
+00226                                 return this->OnDataReady();
+00227                         break;
+00228                         default:
+00229                         break;
+00230                 }
+00231         }
+00232         return true;
+00233 }
 

@@ -744,21 +796,21 @@ References client,

-Definition at line 141 of file socket.cpp. +Definition at line 149 of file socket.cpp.

-References DEBUG, and ibuf.

00142 {
-00143         int n = recv(this->fd,this->ibuf,sizeof(this->ibuf),0);
-00144         if (n > 0)
-00145         {
-00146                 ibuf[n] = 0;
-00147                 return ibuf;
-00148         }
-00149         else
-00150         {
-00151                 log(DEBUG,"EOF or error on socket");
-00152                 return NULL;
-00153         }
-00154 }
+References DEBUG, and ibuf.
00150 {
+00151         int n = recv(this->fd,this->ibuf,sizeof(this->ibuf),0);
+00152         if (n > 0)
+00153         {
+00154                 ibuf[n] = 0;
+00155                 return ibuf;
+00156         }
+00157         else
+00158         {
+00159                 log(DEBUG,"EOF or error on socket");
+00160                 return NULL;
+00161         }
+00162 }
 

@@ -791,14 +843,14 @@ References DEBUG, and

-Definition at line 227 of file socket.cpp. +Definition at line 235 of file socket.cpp.

References DEBUG, and state.

-Referenced by Poll().

00228 {
-00229         log(DEBUG,"Socket state change");
-00230         this->state = s;
-00231 }
+Referenced by Poll().
00236 {
+00237         log(DEBUG,"Socket state change");
+00238         this->state = s;
+00239 }
 

@@ -831,27 +883,27 @@ Referenced by Poll().

-Definition at line 160 of file socket.cpp.

00161 {
-00162         char* d = (char*)data.c_str();
-00163         unsigned int written = 0;
-00164         int n = 0;
-00165         int s = data.length();
-00166         while ((written < data.length()) && (n >= 0))
-00167         {
-00168                 n = send(this->fd,d,s,0);
-00169                 if (n > 0)
-00170                 {
-00171                         // If we didnt write everything, advance
-00172                         // the pointers so that when we retry
-00173                         // the next time around the loop, we try
-00174                         // to write what we failed to write before.
-00175                         written += n;
-00176                         s -= n;
-00177                         d += n;
-00178                 }
-00179         }
-00180         return written;
-00181 }
+Definition at line 168 of file socket.cpp.
00169 {
+00170         char* d = (char*)data.c_str();
+00171         unsigned int written = 0;
+00172         int n = 0;
+00173         int s = data.length();
+00174         while ((written < data.length()) && (n >= 0))
+00175         {
+00176                 n = send(this->fd,d,s,0);
+00177                 if (n > 0)
+00178                 {
+00179                         // If we didnt write everything, advance
+00180                         // the pointers so that when we retry
+00181                         // the next time around the loop, we try
+00182                         // to write what we failed to write before.
+00183                         written += n;
+00184                         s -= n;
+00185                         d += n;
+00186                 }
+00187         }
+00188         return written;
+00189 }
 

@@ -882,7 +934,7 @@ Definition at line 160 o

Definition at line 37 of file socket.h.

-Referenced by InspSocket(). +Referenced by InspSocket().

+   + + +

+ +

+Definition at line 144 of file socket.cpp. +

+References IP.

00145 {
+00146         return this->IP;
+00147 }
 

@@ -909,7 +961,7 @@ Referenced by InspSocket() Definition at line 38 of file socket.h.

-Referenced by InspSocket(). +Referenced by InspSocket().

@@ -934,9 +986,9 @@ Referenced by InspSocket()

-Definition at line 43 of file socket.h. +Definition at line 44 of file socket.h.

-Referenced by Poll(). +Referenced by Poll().

@@ -963,7 +1015,7 @@ Referenced by Poll().

Definition at line 33 of file socket.h.

-Referenced by Close(), InspSocket(), and Poll(). +Referenced by Close(), InspSocket(), and Poll().

@@ -991,13 +1043,13 @@ Referenced by Close(), < Definition at line 34 of file socket.h. -

+

@@ -1015,7 +1067,34 @@ Definition at line 34 of f

Definition at line 42 of file socket.h.

-Referenced by Read(). +Referenced by Read(). +

+
- +
char InspSocket::ibuf[1024] [private] char InspSocket::ibuf[16384] [private]
+

+ + + + +
+ + + + +
std::string InspSocket::IP [private]
+
+ + + +
+   + + +

+ +

+Definition at line 43 of file socket.h. +

+Referenced by GetIP(), and InspSocket().

@@ -1040,9 +1119,9 @@ Referenced by Read().

-Definition at line 45 of file socket.h. +Definition at line 46 of file socket.h.

-Referenced by Poll(). +Referenced by Poll().

@@ -1069,7 +1148,7 @@ Referenced by Poll().

Definition at line 41 of file socket.h.

-Referenced by Poll(). +Referenced by Poll().

@@ -1119,7 +1198,7 @@ Definition at line 35 of f

-Definition at line 44 of file socket.h. +Definition at line 45 of file socket.h.

@@ -1146,7 +1225,7 @@ Definition at line 44 of f

Definition at line 36 of file socket.h.

-Referenced by GetState(), InspSocket(), Poll(), and SetState(). +Referenced by GetState(), InspSocket(), Poll(), and SetState().

@@ -1173,7 +1252,7 @@ Referenced by GetState()

Definition at line 40 of file socket.h.

-Referenced by InspSocket(), and Poll(). +Referenced by InspSocket(), and Poll().

@@ -1200,12 +1279,12 @@ Referenced by InspSocket() Definition at line 39 of file socket.h.

-Referenced by InspSocket(), and Poll(). +Referenced by InspSocket(), and Poll().


The documentation for this class was generated from the following files: -
Generated on Sun Nov 27 01:43:25 2005 for InspIRCd by  +
Generated on Fri Dec 9 20:20:12 2005 for InspIRCd by  doxygen 1.4.4-20050815
-- cgit v1.2.3