|
|
@@ -614,6 +614,11 @@ int chk_devoice(struct flag_record fr, struct chanset_t *chan)
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
+int chk_noflood(struct flag_record fr, struct chanset_t *chan)
|
|
|
+{
|
|
|
+ return (chan_noflood(fr) || glob_noflood(fr));
|
|
|
+}
|
|
|
+
|
|
|
int isupdatehub()
|
|
|
{
|
|
|
#ifdef HUB
|
|
|
@@ -631,6 +636,7 @@ int ischanhub()
|
|
|
else
|
|
|
return 0;
|
|
|
}
|
|
|
+
|
|
|
int dovoice(struct chanset_t *chan)
|
|
|
{
|
|
|
struct flag_record fr = { FR_GLOBAL | FR_CHAN, 0, 0 };
|
|
|
@@ -655,3 +661,19 @@ int dolimit(struct chanset_t *chan)
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
+int whois_access(struct userrec *user, struct userrec *whois_user)
|
|
|
+{
|
|
|
+ struct flag_record fr = {FR_GLOBAL | FR_CHAN, 0, 0, 0, 0, 0};
|
|
|
+ struct flag_record whois = {FR_GLOBAL | FR_CHAN, 0, 0, 0, 0, 0};
|
|
|
+
|
|
|
+ get_user_flagrec(user, &fr, NULL);
|
|
|
+ get_user_flagrec(whois_user, &whois, NULL);
|
|
|
+
|
|
|
+ if ((glob_master(whois) && !glob_master(fr)) ||
|
|
|
+ (glob_owner(whois) && !glob_owner(fr)) ||
|
|
|
+ (glob_admin(whois) && !glob_admin(fr)) ||
|
|
|
+ (glob_bot(whois) && !glob_master(fr)))
|
|
|
+ return 0;
|
|
|
+ return 1;
|
|
|
+}
|
|
|
+
|