- send_message(user, opserv, "OSMSG_INVALID_IRCMASK", argv[i]);
- goto fail;
- }
- } else if (irccasecmp(argv[i], "nick") == 0) {
- discrim->mask_nick = argv[++i];
- } else if (irccasecmp(argv[i], "ident") == 0) {
- discrim->mask_ident = argv[++i];
- } else if (irccasecmp(argv[i], "host") == 0) {
- discrim->mask_host = argv[++i];
- } else if (irccasecmp(argv[i], "info") == 0) {
- discrim->mask_info = argv[++i];
- } else if (irccasecmp(argv[i], "server") == 0) {
- discrim->server = argv[++i];
- } else if (irccasecmp(argv[i], "ip") == 0) {
- j = parse_ipmask(argv[++i], &discrim->ip_addr, &discrim->ip_mask);
- if (!j) discrim->ip_mask_str = argv[i];
- } else if (irccasecmp(argv[i], "account") == 0) {
- if (discrim->authed == 0) {
- send_message(user, opserv, "OSMSG_ACCOUNTMASK_AUTHED");
- goto fail;
- }
- discrim->accountmask = argv[++i];
- discrim->authed = 1;
- } else if (irccasecmp(argv[i], "authed") == 0) {
- i++; /* true_string and false_string are macros! */
- if (true_string(argv[i])) {
- discrim->authed = 1;
- } else if (false_string(argv[i])) {
- if (discrim->accountmask) {
+ send_message(user, opserv, "OSMSG_INVALID_IRCMASK", argv[i]);
+ goto fail;
+ }
+ } else if (irccasecmp(argv[i], "nick") == 0) {
+ discrim->mask_nick = argv[++i];
+ } else if (irccasecmp(argv[i], "ident") == 0) {
+ discrim->mask_ident = argv[++i];
+ } else if (irccasecmp(argv[i], "host") == 0) {
+ discrim->mask_host = argv[++i];
+ } else if (irccasecmp(argv[i], "info") == 0) {
+ discrim->mask_info = argv[++i];
+ } else if (irccasecmp(argv[i], "server") == 0) {
+ discrim->server = argv[++i];
+ } else if (irccasecmp(argv[i], "ip") == 0) {
+ j = irc_pton(&discrim->ip_mask, &discrim->ip_mask_bits, argv[++i]);
+ if (!j) {
+ send_message(user, opserv, "OSMSG_BAD_IP", argv[i]);
+ goto fail;
+ }
+ } else if (irccasecmp(argv[i], "account") == 0) {
+ if (discrim->authed == 0) {