ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/ircd-hybrid/branches/8.2.x/include/client.h
(Generate patch)

Comparing ircd-hybrid-8/include/client.h (file contents):
Revision 1398 by michael, Sun May 6 10:57:06 2012 UTC vs.
Revision 1427 by michael, Thu Jun 7 11:36:21 2012 UTC

# Line 40 | Line 40
40   #define IDLEN           12 /* this is the maximum length, not the actual
41                                generated length; DO NOT CHANGE! */
42  
43 /*
44 * pre declare structs
45 */
46 struct AccessItem;
47 struct Listener;
48 struct Client;
49 struct LocalUser;
50
51
43  
44   /*! \brief addr_mask_type enumeration */
45   enum addr_mask_type
# Line 81 | Line 72 | struct ListTask
72    unsigned int topicts_max;
73   };
74  
84 /*! \brief Client structure */
85 struct Client
86 {
87  dlink_node node;
88  dlink_node lnode;             /**< Used for Server->servers/users */
89
90  struct LocalUser *localClient;
91  struct Client    *hnext;      /**< For client hash table lookups by name */
92  struct Client    *idhnext;    /**< For SID hash table lookups by sid */
93  struct Server    *serv;       /**< ...defined, if this is a server */
94  struct Client    *servptr;    /**< Points to server this Client is on */
95  struct Client    *from;       /**< == self, if Local Client, *NEVER* NULL! */
96  char             *away;       /**< Client's AWAY message. Can be set/unset via AWAY command */
97
98  time_t            tsinfo;     /**< TS on the nick, SVINFO on server */
99  time_t            servicestamp; /**< Last time client has been identified for its nick */
100
101  unsigned int      flags;      /**< client flags */
102  unsigned int      umodes;     /**< opers, normal users subset */
103  unsigned int      hopcount;   /**< number of servers to this 0 = local */
104  unsigned int      status;     /**< Client type */
105  unsigned int      handler;    /**< Handler index */
106
107  dlink_list        whowas;
108  dlink_list        channel;   /**< chain of channel pointer blocks */
109
110  char name[HOSTLEN + 1]; /**< unique name for a client nick or host */
111  char id[IDLEN + 1];       /**< client ID, unique ID per client */
112
113  /*
114   * client->username is the username from ident or the USER message,
115   * If the client is idented the USER message is ignored, otherwise
116   * the username part of the USER message is put here prefixed with a
117   * tilde depending on the auth{} block. Once a client has registered,
118   * this field should be considered read-only.
119   */
120  char              username[USERLEN + 1]; /* client's username */
121
122  /*
123   * client->host contains the resolved name or ip address
124   * as a string for the user, it may be fiddled with for oper spoofing etc.
125   * once it's changed the *real* address goes away. This should be
126   * considered a read-only field after the client has registered.
127   */
128  char              host[HOSTLEN + 1];     /* client's hostname */
129
130  /*
131   * client->info for unix clients will normally contain the info from the
132   * gcos field in /etc/passwd but anything can go here.
133   */
134  char              info[REALLEN + 1]; /* Free form additional client info */
135
136  /*
137   * client->sockhost contains the ip address gotten from the socket as a
138   * string, this field should be considered read-only once the connection
139   * has been made. (set in s_bsd.c only)
140   */
141  char              sockhost[HOSTIPLEN + 1]; /* This is the host name from the
142                                                socket ip address as string */
143 };
144
75   /*! \brief LocalUser structure
76   *
77   * Allocated only for local clients, that are directly connected
# Line 220 | Line 150 | struct LocalUser
150    char*          auth_oper; /**< Operator to become if they supply the response.*/
151   };
152  
153 + /*! \brief Client structure */
154 + struct Client
155 + {
156 +  dlink_node node;
157 +  dlink_node lnode;             /**< Used for Server->servers/users */
158 +
159 +  struct LocalUser *localClient;
160 +  struct Client    *hnext;      /**< For client hash table lookups by name */
161 +  struct Client    *idhnext;    /**< For SID hash table lookups by sid */
162 +  struct Server    *serv;       /**< ...defined, if this is a server */
163 +  struct Client    *servptr;    /**< Points to server this Client is on */
164 +  struct Client    *from;       /**< == self, if Local Client, *NEVER* NULL! */
165 +  char             *away;       /**< Client's AWAY message. Can be set/unset via AWAY command */
166 +
167 +  time_t            tsinfo;     /**< TS on the nick, SVINFO on server */
168 +  time_t            servicestamp; /**< Last time client has been identified for its nick */
169 +
170 +  unsigned int      flags;      /**< client flags */
171 +  unsigned int      umodes;     /**< opers, normal users subset */
172 +  unsigned int      hopcount;   /**< number of servers to this 0 = local */
173 +  unsigned int      status;     /**< Client type */
174 +  unsigned int      handler;    /**< Handler index */
175 +
176 +  dlink_list        whowas;
177 +  dlink_list        channel;   /**< chain of channel pointer blocks */
178 +
179 +  char name[HOSTLEN + 1]; /**< unique name for a client nick or host */
180 +  char id[IDLEN + 1];       /**< client ID, unique ID per client */
181 +
182 +  /*
183 +   * client->username is the username from ident or the USER message,
184 +   * If the client is idented the USER message is ignored, otherwise
185 +   * the username part of the USER message is put here prefixed with a
186 +   * tilde depending on the auth{} block. Once a client has registered,
187 +   * this field should be considered read-only.
188 +   */
189 +  char              username[USERLEN + 1]; /* client's username */
190 +
191 +  /*
192 +   * client->host contains the resolved name or ip address
193 +   * as a string for the user, it may be fiddled with for oper spoofing etc.
194 +   * once it's changed the *real* address goes away. This should be
195 +   * considered a read-only field after the client has registered.
196 +   */
197 +  char              host[HOSTLEN + 1];     /* client's hostname */
198 +
199 +  /*
200 +   * client->info for unix clients will normally contain the info from the
201 +   * gcos field in /etc/passwd but anything can go here.
202 +   */
203 +  char              info[REALLEN + 1]; /* Free form additional client info */
204 +
205 +  /*
206 +   * client->sockhost contains the ip address gotten from the socket as a
207 +   * string, this field should be considered read-only once the connection
208 +   * has been made. (set in s_bsd.c only)
209 +   */
210 +  char              sockhost[HOSTIPLEN + 1]; /* This is the host name from the
211 +                                                socket ip address as string */
212 + };
213 +
214   /*
215   * status macros.
216   */

Diff Legend

Removed lines
+ Added lines
< Changed lines (old)
> Changed lines (new)