+static
+SPAMSERV_FUNC(opt_capsmin)
+{
+ struct chanInfo *cInfo;
+
+ cInfo = get_chanInfo(channel->name);
+
+ if(argc > 1)
+ {
+ char *mask = strdup(argv[1]);
+ unsigned int old = cInfo->capsmin;
+
+ if (isdigit(*mask) && strspn(mask, "1234567890,-") == strlen(mask)) {
+ cInfo->capsmin = mask ? strtoul(mask, NULL, 0) : 10;
+
+ if (cInfo->capsmin < 0) {
+ cInfo->capsmin = old;
+ reply("SSMSG_BAD_SETLEVEL");
+ return 0;
+ }
+ } else {
+ reply("SSMSG_BAD_SETLEVEL");
+ return 0;
+ }
+ }
+ reply("SSMSG_SET_CAPSMIN", cInfo->capsmin);
+ return 0;
+}
+
+static
+SPAMSERV_FUNC(opt_capspercent)
+{
+ struct chanInfo *cInfo;
+
+ cInfo = get_chanInfo(channel->name);
+
+ if(argc > 1)
+ {
+ char *mask = strdup(argv[1]);
+ unsigned int old = cInfo->capspercent;
+
+ if (isdigit(*mask) && strspn(mask, "1234567890,-") == strlen(mask)) {
+ cInfo->capspercent = mask ? strtoul(mask, NULL, 0) : 10;
+
+ if ((cInfo->capspercent < 0) || (cInfo->capspercent > 100)) {
+ cInfo->capspercent = old;
+ reply("SSMSG_BAD_SETLEVEL");
+ return 0;
+ }
+ } else {
+ reply("SSMSG_BAD_SETLEVEL");
+ return 0;
+ }
+ }
+ reply("SSMSG_SET_CAPSPERCENT", cInfo->capspercent);
+ return 0;
+}
+