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
6 char *set_display[] = {
7 "INFO", "WIDTH", "TABLEWIDTH", "COLOR", "PRIVMSG", "STYLE",
8 - "EMAIL", "ANNOUNCEMENTS", "MAXLOGINS"
9 + "EMAIL", "ANNOUNCEMENTS", "MAXLOGINS", "RECLAIM"
12 nickserv_notice(user, NSMSG_SETTING_LIST);
13 @@ -2094,6 +2094,27 @@
17 +static OPTION_FUNC(opt_reclaim)
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;
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);
29 + nickserv_notice(user, MSG_INVALID_BINARY, argv[1]);
34 + nickserv_notice (user, NSMSG_STR_SETTING, "RECLAIM:", HANDLE_FLAGGED(hi, NICKRECLAIM) ? "On - Your nicks are protected." : "Off.");
38 static OPTION_FUNC(opt_privmsg)
46 + if (!HANDLE_FLAGGED(ni->owner, NICKRECLAIM)) return;
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);
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);
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
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"
79 /* HI_STYLE_* go into handle_info.userlist_style */
80 #define HI_STYLE_DEF 'd'