]>
jfr.im git - irc/quakenet/snircd.git/blob - include/s_user.h
9565a6f5a7b03182bac3e6667d41ad9b95323bef
2 * @brief Miscellaneous user-related helper functions.
3 * @version $Id: s_user.h,v 1.20 2004/11/07 19:34:15 entrope Exp $
5 #ifndef INCLUDED_s_user_h
6 #define INCLUDED_s_user_h
7 #ifndef INCLUDED_sys_types_h
9 #define INCLUDED_sys_types_h
24 * Minimum time between nick changes.
25 * (The first two changes are allowed quickly after another however).
31 * Minimum time between target changes.
32 * (MAXTARGETS are allowed simultaneously however).
33 * Its set to a power of 2 because we devide through it quite a lot.
35 #define TARGET_DELAY 128
37 /* return values for hunt_server() */
39 #define HUNTED_NOSUCH (-1) /**< if the hunted server is not found */
40 #define HUNTED_ISME 0 /**< if this server should execute the command */
41 #define HUNTED_PASS 1 /**< if message passed onwards successfully */
43 /* send sets for send_umode() */
44 #define ALL_UMODES 0 /**< both local and global user modes */
45 #define SEND_UMODES 1 /**< global user modes only */
46 #define SEND_UMODES_BUT_OPER 2 /**< global user modes except for FLAG_OPER */
48 /* used when sending to #mask or $mask */
50 #define MATCH_SERVER 1 /**< flag for relay_masked_message (etc) to indicate the mask matches a server name */
51 #define MATCH_HOST 2 /**< flag for relay_masked_message (etc) to indicate the mask matches host name */
53 #define COOKIE_VERIFIED 0xffffffff /**< value for cli_cookie() to show completion */
55 /** Formatter function for send_user_info().
56 * @param who Client being displayed.
57 * @param sptr Client requesting information.
58 * @param buf Message buffer that should receive the response text.
60 typedef void (*InfoFormatter
)(struct Client
* who
, struct Client
*sptr
, struct MsgBuf
* buf
);
65 extern struct User
* make_user(struct Client
*cptr
);
66 extern void free_user(struct User
*user
);
67 extern int register_user(struct Client
* cptr
, struct Client
* sptr
,
68 const char* nick
, char* username
);
70 extern void user_count_memory(size_t* count_out
, size_t* bytes_out
);
72 extern int set_nick_name(struct Client
* cptr
, struct Client
* sptr
,
73 const char* nick
, int parc
, char* parv
[]);
74 extern void send_umode_out(struct Client
* cptr
, struct Client
* sptr
,
75 struct Flags
* old
, int prop
);
76 extern int whisper(struct Client
* source
, const char* nick
,
77 const char* channel
, const char* text
, int is_notice
);
78 extern void send_user_info(struct Client
* to
, char* names
, int rpl
,
81 extern int hide_hostmask(struct Client
*cptr
, unsigned int flags
);
82 extern int set_user_mode(struct Client
*cptr
, struct Client
*sptr
,
83 int parc
, char *parv
[]);
84 extern int is_silenced(struct Client
*sptr
, struct Client
*acptr
);
85 extern int hunt_server_cmd(struct Client
*from
, const char *cmd
,
86 const char *tok
, struct Client
*one
,
87 int MustBeOper
, const char *pattern
, int server
,
88 int parc
, char *parv
[]);
89 extern int hunt_server_prio_cmd(struct Client
*from
, const char *cmd
,
90 const char *tok
, struct Client
*one
,
91 int MustBeOper
, const char *pattern
,
92 int server
, int parc
, char *parv
[]);
93 extern struct Client
* next_client(struct Client
* next
, const char* ch
);
94 extern char *umode_str(struct Client
*cptr
);
95 extern void send_umode(struct Client
*cptr
, struct Client
*sptr
,
96 struct Flags
*old
, int sendset
);
97 extern void set_snomask(struct Client
*, unsigned int, int);
98 extern int is_snomask(char *);
99 extern int check_target_limit(struct Client
*sptr
, void *target
, const char *name
,
101 extern void add_target(struct Client
*sptr
, void *target
);
102 extern unsigned int umode_make_snomask(unsigned int oldmask
, char *arg
,
104 extern int send_supported(struct Client
*cptr
);
106 #define NAMES_ALL 1 /**< List all users in channel */
107 #define NAMES_VIS 2 /**< List only visible users in non-secret channels */
108 #define NAMES_EON 4 /**< Add an 'End Of Names' reply to the end */
109 #define NAMES_DEL 8 /**< Show delayed joined users only */
111 void do_names(struct Client
* sptr
, struct Channel
* chptr
, int filter
);
113 #endif /* INCLUDED_s_user_h */