]>
Commit | Line | Data |
---|---|---|
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' |