- find_channel:
- discrim->chan_no_modes &= ~discrim->chan_req_modes;
- if (!(discrim->channel = GetChannel(argv[i]+j))) {
- /* secretly "allow_channel" now means "if a channel name is
- * specified, require that it currently exist" */
- if (allow_channel) {
- send_message(user, opserv, "MSG_CHANNEL_UNKNOWN", argv[i]);
- goto fail;
- } else {
- discrim->channel = AddChannel(argv[i]+j, now, NULL, NULL);
- }
- }
- LockChannel(discrim->channel);
- } else if (irccasecmp(argv[i], "numchannels") == 0) {
- discrim->min_channels = discrim->max_channels = strtoul(argv[++i], NULL, 10);
- } else if (irccasecmp(argv[i], "limit") == 0) {
- discrim->limit = strtoul(argv[++i], NULL, 10);
+ }
+ find_channel:
+ discrim->chan_no_modes[discrim->channel_count] &= ~discrim->chan_req_modes[discrim->channel_count];
+ if (!(discrim->channels[discrim->channel_count] = GetChannel(argv[i]+j))) {
+ /* secretly "allow_channel" now means "if a channel name is
+ * specified, require that it currently exist" */
+ if (allow_channel) {
+ send_message(user, opserv, "MSG_CHANNEL_UNKNOWN", argv[i]);
+ goto fail;
+ } else {
+ discrim->channels[discrim->channel_count] = AddChannel(argv[i]+j, now, NULL, NULL);
+ }
+ }
+ LockChannel(discrim->channels[discrim->channel_count]);
+ discrim->channel_count++;
+ } else if (irccasecmp(argv[i], "numchannels") == 0) {
+ discrim->min_channels = discrim->max_channels = strtoul(argv[++i], NULL, 10);
+ } else if (irccasecmp(argv[i], "limit") == 0) {
+ discrim->limit = strtoul(argv[++i], NULL, 10);