]> jfr.im git - irc/evilnet/x3.git/blob - patches/ns_reclaim-flag102403.diff
fix a couple oversights in building ldap add structs
[irc/evilnet/x3.git] / patches / ns_reclaim-flag102403.diff
1 diff -urN services-dist/src/nickserv.c services/src/nickserv.c
2 --- services-dist/src/nickserv.c Fri Oct 24 20:05:25 2003
3 +++ services/src/nickserv.c Fri Oct 24 21:08:01 2003
4 @@ -1977,7 +1977,7 @@
5 unsigned int i;
6 char *set_display[] = {
7 "INFO", "WIDTH", "TABLEWIDTH", "COLOR", "PRIVMSG", "STYLE",
8 - "EMAIL", "ANNOUNCEMENTS", "MAXLOGINS"
9 + "EMAIL", "ANNOUNCEMENTS", "MAXLOGINS", "RECLAIM"
10 };
11
12 nickserv_notice(user, NSMSG_SETTING_LIST);
13 @@ -2094,6 +2094,27 @@
14 return 1;
15 }
16
17 +static OPTION_FUNC(opt_reclaim)
18 +{
19 + /* if nickserv's nick ownership functions are disabled, we don't want this. I wanted to send an error
20 + * message to the user, but there appears to be no quick & easy method of doing so, so we'll hide instead -akl */
21 + if (nickserv_conf.disable_nicks) return 1;
22 +
23 + if (argc > 1) {
24 + if (enabled_string(argv[1])) {
25 + HANDLE_SET_FLAG(hi, NICKRECLAIM);
26 + } else if (disabled_string(argv[1])) {
27 + HANDLE_CLEAR_FLAG(hi, NICKRECLAIM);
28 + } else {
29 + nickserv_notice(user, MSG_INVALID_BINARY, argv[1]);
30 + return 0;
31 + }
32 + }
33 +
34 + nickserv_notice (user, NSMSG_STR_SETTING, "RECLAIM:", HANDLE_FLAGGED(hi, NICKRECLAIM) ? "On - Your nicks are protected." : "Off.");
35 + return 1;
36 +}
37 +
38 static OPTION_FUNC(opt_privmsg)
39 {
40 if (argc > 1) {
41 @@ -3305,6 +3326,9 @@
42
43 assert(user);
44 assert(ni);
45 +
46 + if (!HANDLE_FLAGGED(ni->owner, NICKRECLAIM)) return;
47 +
48 switch (action) {
49 case RECLAIM_NONE:
50 /* do nothing */
51 @@ -3341,6 +3365,7 @@
52 irc_regnick(user);
53 return 0;
54 }
55 + if (ni && !HANDLE_FLAGGED(ni->owner, NICKRECLAIM)) return 0;
56 if (nickserv_conf.warn_nick_owned) {
57 send_message(user, nickserv, NSMSG_RECLAIM_WARN, ni->nick, ni->owner->handle);
58 }
59 @@ -3534,6 +3559,7 @@
60 dict_insert(nickserv_opt_dict, "EPITHET", opt_epithet);
61 dict_insert(nickserv_opt_dict, "ANNOUNCEMENTS", opt_announcements);
62 dict_insert(nickserv_opt_dict, "MAXLOGINS", opt_maxlogins);
63 + dict_insert(nickserv_opt_dict, "RECLAIM", opt_reclaim);
64
65 nickserv_handle_dict = dict_new();
66 dict_set_free_keys(nickserv_handle_dict, free);
67 diff -urN services-dist/src/nickserv.h services/src/nickserv.h
68 --- services-dist/src/nickserv.h Fri Oct 24 20:05:25 2003
69 +++ services/src/nickserv.h Fri Oct 24 20:29:40 2003
70 @@ -37,8 +37,9 @@
71 #define HI_FLAG_FROZEN 0x00000040
72 #define HI_FLAG_NODELETE 0x00000080
73 #define HI_FLAG_NETWORK_HELPER 0x00000100
74 +#define HI_FLAG_NICKRECLAIM 0x00000200
75 /* Flag characters for the above. First char is LSB, etc. */
76 -#define HANDLE_FLAGS "SphgscfnH"
77 +#define HANDLE_FLAGS "SphgscfnHR"
78
79 /* HI_STYLE_* go into handle_info.userlist_style */
80 #define HI_STYLE_DEF 'd'