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

Comparing ircd-hybrid-7.2/include/client.h (file contents):
Revision 34 by lusky, Sun Oct 2 21:05:51 2005 UTC vs.
Revision 856 by db, Tue Feb 27 02:58:49 2007 UTC

# Line 156 | Line 156 | struct Client
156     * gcos field in /etc/passwd but anything can go here.
157     */
158    char              info[REALLEN + 1]; /* Free form additional client info */
159 +  char              client_host[HOSTLEN + 1];
160 +  char              client_server[HOSTLEN + 1];
161  
162    /* client->sockhost contains the ip address gotten from the socket as a
163     * string, this field should be considered read-only once the connection
# Line 171 | Line 173 | struct Client
173    dlink_list    on_allow_list;  /* clients that have =me= on their allow list*/
174  
175    dlink_list     channel;   /* chain of channel pointer blocks */
174 –  dlink_list     invited;   /* chain of invite pointer blocks */
176  
177    struct LocalUser *localClient;
178   };
# Line 182 | Line 183 | struct LocalUser
183     * The following fields are allocated only for local clients
184     * (directly connected to *this* server with a socket.
185     */
186 +  unsigned int registration;
187 +  unsigned int cap_client;    /* Client capabilities (from us) */
188 +  unsigned int cap_active;    /* Active capabilities (to us) */
189 +
190    /* Anti flooding part, all because of lamers... */
191    time_t            last_away; /* Away since... */
192    time_t            last_join_time;   /* when this client last
# Line 213 | Line 218 | struct LocalUser
218    } recv, send;
219  
220    struct Listener *listener;   /* listener accepted from */
221 <  dlink_list        confs;      /* Configuration record associated */
222 <
221 >  dlink_list        confs;     /* Configuration record associated */
222 >  dlink_list        invited;   /* chain of invite pointer blocks */
223    struct irc_ssaddr ip;
219 –  unsigned short    port;       /* and the remote port# too :-) */
224    int               aftype;     /* Makes life easier for DNS res in IPV6 */
225 <  struct DNSQuery   *dns_query;  /* result returned from resolver query */
225 >  struct DNSQuery   *dns_query; /* result returned from resolver query */
226    unsigned long     serverMask; /* Only used for Lazy Links */
227    time_t last; /* Last time we got a PRIVMSG */
228    time_t            last_nick_change;
# Line 271 | Line 275 | struct LocalUser
275   #define STAT_SERVER             0x10
276   #define STAT_CLIENT             0x20
277  
278 + #define REG_NEED_USER 0x1
279 + #define REG_NEED_NICK 0x2
280 + #define REG_NEED_CAP  0x4
281 + #define REG_INIT (REG_NEED_USER|REG_NEED_NICK)
282 +
283   #define HasID(x)                ((x)->id[0] != '\0')
284   #define ID(x)                   (HasID(x) ? (x)->id : (x)->name)
285   #define ID_or_name(x,client_p)  ((IsCapable(client_p, CAP_TS6) && HasID(x)) ? (x)->id : (x)->name)
# Line 321 | Line 330 | struct LocalUser
330   #define DoesTS(x)       ((x)->tsinfo == TS_DOESTS)
331  
332  
333 +
334 + #define CAP_MULTI_PREFIX  0x00000001
335 +
336   /* housekeeping flags */
337 < #define FLAGS_PINGSENT    0x00000001 /* Unreplied ping sent                      */
338 < #define FLAGS_DEADSOCKET  0x00000002 /* Local socket is dead--Exiting soon       */
339 < #define FLAGS_KILLED      0x00000004 /* Prevents "QUIT" from being sent for this */
340 < #define FLAGS_CLOSING     0x00000008 /* set when closing to suppress errors      */
341 < #define FLAGS_GOTID       0x00000010 /* successful ident lookup achieved         */
342 < #define FLAGS_NEEDID      0x00000020 /* I-lines say must use ident return        */
343 < #define FLAGS_SENDQEX     0x00000040 /* Sendq exceeded                           */
344 < #define FLAGS_IPHASH      0x00000080 /* iphashed this client                     */
345 < #define FLAGS_CRYPTIN     0x00000100 /* incoming data must be decrypted          */
346 < #define FLAGS_CRYPTOUT    0x00000200 /* outgoing data must be encrypted          */
347 < #define FLAGS_WAITAUTH    0x00000400 /* waiting for CRYPTLINK AUTH command       */
348 < #define FLAGS_SERVLINK    0x00000800 /* servlink has servlink process            */
349 < #define FLAGS_MARK        0x00001000 /* marked client                            */
350 < #define FLAGS_CANFLOOD    0x00002000 /* client has the ability to flood          */
351 < #define FLAGS_EXEMPTGLINE 0x00004000 /* client can't be G-lined                  */
352 < #define FLAGS_EXEMPTKLINE 0x00008000 /* client is exempt from kline              */
353 < #define FLAGS_NOLIMIT     0x00010000 /* client is exempt from limits             */
354 < #define FLAGS_RESTRICTED  0x00020000 /* client cannot op others                  */
355 < #define FLAGS_PING_COOKIE 0x00040000 /* PING Cookie                              */
356 < #define FLAGS_IDLE_LINED  0x00080000 /* client is exempt from idle-time limits   */
357 < #define FLAGS_IP_SPOOFING 0x00100000 /* client IP is spoofed                     */
358 < #define FLAGS_FLOODDONE   0x00200000 /* Flood grace period has been ended.       */
359 < #define FLAGS_EOB         0x00400000 /* server has received EOB                  */
360 < #define FLAGS_HIDDEN      0x00800000 /* a hidden server. not shown in /links     */
361 < #define FLAGS_BLOCKED     0x01000000 /* must wait for COMM_SELECT_WRITE          */
362 < #define FLAGS_SBLOCKED    0x02000000 /* slinkq is blocked                        */
363 < #define FLAGS_USERHOST    0x04000000 /* client is in userhost hash               */
364 < #define FLAGS_BURSTED     0x08000000 /* user was already bursted                 */
365 < #define FLAGS_EXEMPTRESV  0x10000000 /* client is exempt from RESV               */
366 < #define FLAGS_GOTUSER     0x20000000 /* if we received a USER command            */
367 < #define FLAGS_PINGWARNING 0x40000000 /* unreplied ping warning already sent      */
368 < /*                        0x80000000  */
337 > #define FLAGS_PINGSENT      0x00000001 /* Unreplied ping sent                      */
338 > #define FLAGS_DEADSOCKET    0x00000002 /* Local socket is dead--Exiting soon       */
339 > #define FLAGS_KILLED        0x00000004 /* Prevents "QUIT" from being sent for this */
340 > #define FLAGS_CLOSING       0x00000008 /* set when closing to suppress errors      */
341 > #define FLAGS_GOTID         0x00000010 /* successful ident lookup achieved         */
342 > #define FLAGS_NEEDID        0x00000020 /* I-lines say must use ident return        */
343 > #define FLAGS_SENDQEX       0x00000040 /* Sendq exceeded                           */
344 > #define FLAGS_IPHASH        0x00000080 /* iphashed this client                     */
345 > #define FLAGS_CRYPTIN       0x00000100 /* incoming data must be decrypted          */
346 > #define FLAGS_CRYPTOUT      0x00000200 /* outgoing data must be encrypted          */
347 > #define FLAGS_WAITAUTH      0x00000400 /* waiting for CRYPTLINK AUTH command       */
348 > #define FLAGS_SERVLINK      0x00000800 /* servlink has servlink process            */
349 > #define FLAGS_MARK          0x00001000 /* marked client                            */
350 > #define FLAGS_CANFLOOD      0x00002000 /* client has the ability to flood          */
351 > #define FLAGS_EXEMPTGLINE   0x00004000 /* client can't be G-lined                  */
352 > #define FLAGS_EXEMPTKLINE   0x00008000 /* client is exempt from kline              */
353 > #define FLAGS_NOLIMIT       0x00010000 /* client is exempt from limits             */
354 > #define FLAGS_RESTRICTED    0x00020000 /* client cannot op others                  */
355 > #define FLAGS_PING_COOKIE   0x00040000 /* PING Cookie                              */
356 > #define FLAGS_IDLE_LINED    0x00080000 /* client is exempt from idle-time limits   */
357 > #define FLAGS_IP_SPOOFING   0x00100000 /* client IP is spoofed                     */
358 > #define FLAGS_FLOODDONE     0x00200000 /* Flood grace period has been ended.       */
359 > #define FLAGS_EOB           0x00400000 /* server has received EOB                  */
360 > #define FLAGS_HIDDEN        0x00800000 /* a hidden server. not shown in /links     */
361 > #define FLAGS_BLOCKED       0x01000000 /* must wait for COMM_SELECT_WRITE          */
362 > #define FLAGS_SBLOCKED      0x02000000 /* slinkq is blocked                        */
363 > #define FLAGS_USERHOST      0x04000000 /* client is in userhost hash               */
364 > #define FLAGS_BURSTED       0x08000000 /* user was already bursted                 */
365 > #define FLAGS_EXEMPTRESV    0x10000000 /* client is exempt from RESV               */
366 > #define FLAGS_GOTUSER       0x20000000 /* if we received a USER command            */
367 > #define FLAGS_PINGWARNING   0x40000000 /* unreplied ping warning already sent      */
368 > #define FLAGS_FINISHED_AUTH 0x80000000 /* Client has been released from auth       */
369  
370  
371   /* umodes, settable flags */
372 < #define UMODE_SERVNOTICE   0x00001 /* server notices such as kill */
373 < #define UMODE_CCONN        0x00002 /* Client Connections */
374 < #define UMODE_REJ          0x00004 /* Bot Rejections */
375 < #define UMODE_SKILL        0x00008 /* Server Killed */
376 < #define UMODE_FULL         0x00010 /* Full messages */
377 < #define UMODE_SPY          0x00020 /* see STATS / LINKS */
378 < #define UMODE_DEBUG        0x00040 /* 'debugging' info */
379 < #define UMODE_NCHANGE      0x00080 /* Nick change notice */
380 < #define UMODE_WALLOP       0x00100 /* send wallops to them */
381 < #define UMODE_OPERWALL     0x00200 /* Operwalls */
382 < #define UMODE_INVISIBLE    0x00400 /* makes user invisible */
383 < #define UMODE_BOTS         0x00800 /* shows bots */
384 < #define UMODE_EXTERNAL     0x01000 /* show servers introduced and splitting */
385 < #define UMODE_CALLERID     0x02000 /* block unless caller id's */
386 < #define UMODE_SOFTCALLERID 0x04000 /* block unless on common channel */
387 < #define UMODE_UNAUTH       0x08000 /* show unauth connects here */
388 < #define UMODE_LOCOPS       0x10000 /* show locops */
389 < #define UMODE_DEAF         0x20000 /* don't receive channel messages */
372 > #define UMODE_SERVNOTICE   0x00000001 /* server notices such as kill */
373 > #define UMODE_CCONN        0x00000002 /* Client Connections */
374 > #define UMODE_REJ          0x00000004 /* Bot Rejections */
375 > #define UMODE_SKILL        0x00000008 /* Server Killed */
376 > #define UMODE_FULL         0x00000010 /* Full messages */
377 > #define UMODE_SPY          0x00000020 /* see STATS / LINKS */
378 > #define UMODE_DEBUG        0x00000040 /* 'debugging' info */
379 > #define UMODE_NCHANGE      0x00000080 /* Nick change notice */
380 > #define UMODE_WALLOP       0x00000100 /* send wallops to them */
381 > #define UMODE_OPERWALL     0x00000200 /* Operwalls */
382 > #define UMODE_INVISIBLE    0x00000400 /* makes user invisible */
383 > #define UMODE_BOTS         0x00000800 /* shows bots */
384 > #define UMODE_EXTERNAL     0x00001000 /* show servers introduced and splitting */
385 > #define UMODE_CALLERID     0x00002000 /* block unless caller id's */
386 > #define UMODE_SOFTCALLERID 0x00004000 /* block unless on common channel */
387 > #define UMODE_UNAUTH       0x00008000 /* show unauth connects here */
388 > #define UMODE_LOCOPS       0x00010000 /* show locops */
389 > #define UMODE_DEAF         0x00020000 /* don't receive channel messages */
390 > #define UMODE_CCONN_FULL   0x00040000 /* add unused fields to connection monitoring */
391  
392   /* user information flags, only settable by remote mode or local oper */
393 < #define UMODE_OPER         0x40000 /* Operator */
394 < #define UMODE_ADMIN        0x80000 /* Admin on server */
393 > #define UMODE_OPER         0x40000000 /* Operator */
394 > #define UMODE_ADMIN        0x80000000 /* Admin on server */
395 >
396   #define UMODE_ALL          UMODE_SERVNOTICE
397  
398   #define SEND_UMODES  (UMODE_INVISIBLE | UMODE_OPER | UMODE_WALLOP | \
# Line 406 | Line 420 | struct LocalUser
420  
421  
422   /* flags macros. */
423 + #define IsAuthFinished(x)       ((x)->flags & FLAGS_FINISHED_AUTH)
424   #define IsDead(x)               ((x)->flags & FLAGS_DEADSOCKET)
425   #define SetDead(x)              ((x)->flags |= FLAGS_DEADSOCKET)
426   #define IsClosing(x)            ((x)->flags & FLAGS_CLOSING)
# Line 450 | Line 465 | struct LocalUser
465                                   (UMODE_CALLERID|UMODE_SOFTCALLERID))
466   #define IsSoftCallerId(x)       ((x)->umodes & UMODE_SOFTCALLERID)
467   #define IsDeaf(x)               ((x)->umodes & UMODE_DEAF)
468 + #define IsFull(x)               ((x)->umodes & UMODE_CCONN_FULL)
469  
470   #define SetSendQExceeded(x)     ((x)->flags |= FLAGS_SENDQEX)
471   #define IsSendQExceeded(x)      ((x)->flags &  FLAGS_SENDQEX)

Diff Legend

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