diff options
| author | rburchell <rburchell@5417fbe8-f217-4b02-8779-1006273d7864> | 2009-02-15 22:29:18 +0000 |
|---|---|---|
| committer | rburchell <rburchell@5417fbe8-f217-4b02-8779-1006273d7864> | 2009-02-15 22:29:18 +0000 |
| commit | d1611b640bcd27e1a91a99ef32127bc722e50a36 (patch) | |
| tree | b18c77b07b74b70f5613b106aa2a81baa6227f35 /src | |
| parent | 0e5b71923b25d908167e7ef9d07c6c217827e901 (diff) | |
Remove User::na, use User::nc everywhere. Will probably break everything, but opens the door to decoupling NC from NA, and means commands can now be run without bothering about changinc nick :)
More tweaking for na/nc usage.
It compiles, but it's still a work in progress.
Again, this compiles, but I *bet* there's no chance in hell it'll work. :)
Slightly better.
Set User::nc correctly.
Fix crash with unregistered nicks in core and ns_access.
Fix glist to work when you're not on that particular nick.
Fix ns_set to not crash and burn horribly.
Fix ns_set and ns_logout to not do bad things.
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@2076 5417fbe8-f217-4b02-8779-1006273d7864
Diffstat (limited to 'src')
62 files changed, 421 insertions, 657 deletions
diff --git a/src/botserv.c b/src/botserv.c index 96b017bcd..1f0a13421 100644 --- a/src/botserv.c +++ b/src/botserv.c @@ -803,7 +803,7 @@ static void bot_kick(ChannelInfo * ci, User * u, int message, ...) return; va_start(args, message); - fmt = getstring(u->na, message); + fmt = getstring(u, message); if (!fmt) return; vsnprintf(buf, sizeof(buf), fmt, args); @@ -837,7 +837,7 @@ void bot_raw_ban(User * requester, ChannelInfo * ci, char *nick, if (ircd->protectedumode) { if (is_protected(u) && (requester != u)) { ircdproto->SendPrivmsg(ci->bi, ci->name, "%s", - getstring2(NULL, PERMISSION_DENIED)); + getstring(PERMISSION_DENIED)); return; } } @@ -849,7 +849,7 @@ void bot_raw_ban(User * requester, ChannelInfo * ci, char *nick, if (ircd->except) { if (is_excepted(ci, u) == 1) { ircdproto->SendPrivmsg(ci->bi, ci->name, "%s", - getstring2(NULL, BOT_EXCEPT)); + getstring(BOT_EXCEPT)); return; } } @@ -913,7 +913,7 @@ void bot_raw_kick(User * requester, ChannelInfo * ci, char *nick, if (ircd->protectedumode) { if (is_protected(u) && (requester != u)) { ircdproto->SendPrivmsg(ci->bi, ci->name, "%s", - getstring2(NULL, PERMISSION_DENIED)); + getstring(PERMISSION_DENIED)); return; } } @@ -967,7 +967,7 @@ void bot_raw_mode(User * requester, ChannelInfo * ci, const char *mode, if (ircd->protectedumode) { if (is_protected(u) && *mode == '-' && (requester != u)) { ircdproto->SendPrivmsg(ci->bi, ci->name, "%s", - getstring2(NULL, PERMISSION_DENIED)); + getstring(PERMISSION_DENIED)); return; } } diff --git a/src/channels.c b/src/channels.c index 85f17785e..6e52139f7 100644 --- a/src/channels.c +++ b/src/channels.c @@ -499,7 +499,7 @@ User *nc_on_chan(Channel * c, NickCore * nc) return NULL; for (u = c->users; u; u = u->next) { - if (u->user->na && u->user->na->nc == nc + if (u->user->nc == nc && nick_recognized(u->user)) return u->user; } @@ -1390,7 +1390,7 @@ void chan_set_correct_modes(User * user, Channel * c, int give_modes) * to receive modes. I wonder who added that... *looks at Rob* ;) -GD */ if (give_modes && (get_ignore(user->nick) == NULL) - && (!user->na || !(user->na->nc->flags & NI_AUTOOP))) { + && (!user->nc || !(user->nc->flags & NI_AUTOOP))) { if (ircd->owner && is_founder(user, ci)) add_modes |= CUS_OWNER; else if ((ircd->protect || ircd->admin) @@ -1569,7 +1569,7 @@ void chan_adduser2(User * user, Channel * c) if (c->usercount == BSMinUsers) bot_join(c->ci); if (c->usercount >= BSMinUsers && (c->ci->botflags & BS_GREET) - && user->na && user->na->nc->greet + && user->nc && user->nc->greet && check_access(user, c->ci, CA_GREET)) { /* Only display the greet if the main uplink we're connected * to has synced, or we'll get greet-floods when the net @@ -1577,7 +1577,7 @@ void chan_adduser2(User * user, Channel * c) */ if (is_sync(user->server)) { ircdproto->SendPrivmsg(c->ci->bi, c->name, "[%s] %s", - user->na->nick, user->na->nc->greet); + user->nc->display, user->nc->greet); c->ci->bi->lastmsg = time(NULL); } } diff --git a/src/chanserv.c b/src/chanserv.c index 79824a008..393a5831b 100644 --- a/src/chanserv.c +++ b/src/chanserv.c @@ -1142,13 +1142,13 @@ int check_kick(User * user, const char *chan, time_t chants) if (ci->flags & CI_SUSPENDED || ci->flags & CI_FORBIDDEN) { get_idealban(ci, user, mask, sizeof(mask)); - reason = ci->forbidreason ? ci->forbidreason : getstring(user->na, CHAN_MAY_NOT_BE_USED); + reason = ci->forbidreason ? ci->forbidreason : getstring(user, CHAN_MAY_NOT_BE_USED); set_modes = true; goto kick; } if (nick_recognized(user)) - nc = user->na->nc; + nc = user->nc; else nc = NULL; @@ -1188,7 +1188,7 @@ int check_kick(User * user, const char *chan, time_t chants) if (check_access(user, ci, CA_NOJOIN)) { get_idealban(ci, user, mask, sizeof(mask)); - reason = getstring(user->na, CHAN_NOT_ALLOWED_TO_JOIN); + reason = getstring(user, CHAN_NOT_ALLOWED_TO_JOIN); goto kick; } @@ -1846,7 +1846,7 @@ int is_founder(User * user, ChannelInfo * ci) return 1; } - if (user->na && user->na->nc == ci->founder) { + if (user->nc && user->nc == ci->founder) { if ((nick_identified(user) || (nick_recognized(user) && !(ci->flags & CI_SECURE)))) return 1; @@ -1864,7 +1864,7 @@ int is_real_founder(User * user, ChannelInfo * ci) return 1; } - if (user->na && user->na->nc == ci->founder) { + if (user->nc && user->nc == ci->founder) { if ((nick_identified(user) || (nick_recognized(user) && !(ci->flags & CI_SECURE)))) return 1; @@ -1927,12 +1927,12 @@ int get_access(User * user, ChannelInfo * ci) if (is_founder(user, ci)) return ACCESS_FOUNDER; - if (!user->na) + if (!user->nc) return 0; if (nick_identified(user) || (nick_recognized(user) && !(ci->flags & CI_SECURE))) - if ((access = get_access_entry(user->na->nc, ci))) + if ((access = get_access_entry(user->nc, ci))) return access->level; if (nick_identified(user)) @@ -1947,12 +1947,12 @@ void update_cs_lastseen(User * user, ChannelInfo * ci) { ChanAccess *access; - if (!ci || !user || !user->na) + if (!ci || !user || !user->nc) return; if (is_founder(user, ci) || nick_identified(user) || (nick_recognized(user) && !(ci->flags & CI_SECURE))) - if ((access = get_access_entry(user->na->nc, ci))) + if ((access = get_access_entry(user->nc, ci))) access->last_seen = time(NULL); } diff --git a/src/commands.c b/src/commands.c index 9501640c7..018ca6897 100644 --- a/src/commands.c +++ b/src/commands.c @@ -77,8 +77,7 @@ void mod_run_cmd(char *service, User * u, CommandHash * cmdTable[], const char * // Command requires registered users only if (!nick_identified(u)) { - // XXX: we should have a new string for this - notice_lang(service, u, ACCESS_DENIED); + notice_lang(service, u, NICK_IDENTIFY_REQUIRED, service); alog("Access denied for unregistered user %s with service %s and command %s", u->nick, service, cmd); return; } diff --git a/src/core/bs_info.c b/src/core/bs_info.c index 4f65d990d..ff7c2c932 100644 --- a/src/core/bs_info.c +++ b/src/core/bs_info.c @@ -61,7 +61,7 @@ class CommandBSInfo : public Command int need_comma = 0; char buf[BUFSIZE], *end; - const char *commastr = getstring(u->na, COMMA_SPACE); + const char *commastr = getstring(u, COMMA_SPACE); if ((bi = findbot(query))) { @@ -74,7 +74,7 @@ class CommandBSInfo : public Command strftime_lang(buf, sizeof(buf), u, STRFTIME_DATE_TIME_FORMAT, tm); notice_lang(s_BotServ, u, BOT_INFO_BOT_CREATED, buf); notice_lang(s_BotServ, u, BOT_INFO_BOT_OPTIONS, - getstring(u->na, + getstring(u, (bi-> flags & BI_PRIVATE) ? BOT_INFO_OPT_PRIVATE : BOT_INFO_OPT_NONE)); @@ -104,137 +104,137 @@ class CommandBSInfo : public Command if (ci->botflags & BS_KICK_BADWORDS) { if (ci->ttb[TTB_BADWORDS]) notice_lang(s_BotServ, u, BOT_INFO_CHAN_KICK_BADWORDS_BAN, - getstring(u->na, BOT_INFO_ACTIVE), + getstring(u, BOT_INFO_ACTIVE), ci->ttb[TTB_BADWORDS]); else notice_lang(s_BotServ, u, BOT_INFO_CHAN_KICK_BADWORDS, - getstring(u->na, BOT_INFO_ACTIVE)); + getstring(u, BOT_INFO_ACTIVE)); } else notice_lang(s_BotServ, u, BOT_INFO_CHAN_KICK_BADWORDS, - getstring(u->na, BOT_INFO_INACTIVE)); + getstring(u, BOT_INFO_INACTIVE)); if (ci->botflags & BS_KICK_BOLDS) { if (ci->ttb[TTB_BOLDS]) notice_lang(s_BotServ, u, BOT_INFO_CHAN_KICK_BOLDS_BAN, - getstring(u->na, BOT_INFO_ACTIVE), + getstring(u, BOT_INFO_ACTIVE), ci->ttb[TTB_BOLDS]); else notice_lang(s_BotServ, u, BOT_INFO_CHAN_KICK_BOLDS, - getstring(u->na, BOT_INFO_ACTIVE)); + getstring(u, BOT_INFO_ACTIVE)); } else notice_lang(s_BotServ, u, BOT_INFO_CHAN_KICK_BOLDS, - getstring(u->na, BOT_INFO_INACTIVE)); + getstring(u, BOT_INFO_INACTIVE)); if (ci->botflags & BS_KICK_CAPS) { if (ci->ttb[TTB_CAPS]) notice_lang(s_BotServ, u, BOT_INFO_CHAN_KICK_CAPS_BAN, - getstring(u->na, BOT_INFO_ACTIVE), + getstring(u, BOT_INFO_ACTIVE), ci->ttb[TTB_CAPS], ci->capsmin, ci->capspercent); else notice_lang(s_BotServ, u, BOT_INFO_CHAN_KICK_CAPS_ON, - getstring(u->na, BOT_INFO_ACTIVE), ci->capsmin, + getstring(u, BOT_INFO_ACTIVE), ci->capsmin, ci->capspercent); } else notice_lang(s_BotServ, u, BOT_INFO_CHAN_KICK_CAPS_OFF, - getstring(u->na, BOT_INFO_INACTIVE)); + getstring(u, BOT_INFO_INACTIVE)); if (ci->botflags & BS_KICK_COLORS) { if (ci->ttb[TTB_COLORS]) notice_lang(s_BotServ, u, BOT_INFO_CHAN_KICK_COLORS_BAN, - getstring(u->na, BOT_INFO_ACTIVE), + getstring(u, BOT_INFO_ACTIVE), ci->ttb[TTB_COLORS]); else notice_lang(s_BotServ, u, BOT_INFO_CHAN_KICK_COLORS, - getstring(u->na, BOT_INFO_ACTIVE)); + getstring(u, BOT_INFO_ACTIVE)); } else notice_lang(s_BotServ, u, BOT_INFO_CHAN_KICK_COLORS, - getstring(u->na, BOT_INFO_INACTIVE)); + getstring(u, BOT_INFO_INACTIVE)); if (ci->botflags & BS_KICK_FLOOD) { if (ci->ttb[TTB_FLOOD]) notice_lang(s_BotServ, u, BOT_INFO_CHAN_KICK_FLOOD_BAN, - getstring(u->na, BOT_INFO_ACTIVE), + getstring(u, BOT_INFO_ACTIVE), ci->ttb[TTB_FLOOD], ci->floodlines, ci->floodsecs); else notice_lang(s_BotServ, u, BOT_INFO_CHAN_KICK_FLOOD_ON, - getstring(u->na, BOT_INFO_ACTIVE), + getstring(u, BOT_INFO_ACTIVE), ci->floodlines, ci->floodsecs); } else notice_lang(s_BotServ, u, BOT_INFO_CHAN_KICK_FLOOD_OFF, - getstring(u->na, BOT_INFO_INACTIVE)); + getstring(u, BOT_INFO_INACTIVE)); if (ci->botflags & BS_KICK_REPEAT) { if (ci->ttb[TTB_REPEAT]) notice_lang(s_BotServ, u, BOT_INFO_CHAN_KICK_REPEAT_BAN, - getstring(u->na, BOT_INFO_ACTIVE), + getstring(u, BOT_INFO_ACTIVE), ci->ttb[TTB_REPEAT], ci->repeattimes); else notice_lang(s_BotServ, u, BOT_INFO_CHAN_KICK_REPEAT_ON, - getstring(u->na, BOT_INFO_ACTIVE), + getstring(u, BOT_INFO_ACTIVE), ci->repeattimes); } else notice_lang(s_BotServ, u, BOT_INFO_CHAN_KICK_REPEAT_OFF, - getstring(u->na, BOT_INFO_INACTIVE)); + getstring(u, BOT_INFO_INACTIVE)); if (ci->botflags & BS_KICK_REVERSES) { if (ci->ttb[TTB_REVERSES]) notice_lang(s_BotServ, u, BOT_INFO_CHAN_KICK_REVERSES_BAN, - getstring(u->na, BOT_INFO_ACTIVE), + getstring(u, BOT_INFO_ACTIVE), ci->ttb[TTB_REVERSES]); else notice_lang(s_BotServ, u, BOT_INFO_CHAN_KICK_REVERSES, - getstring(u->na, BOT_INFO_ACTIVE)); + getstring(u, BOT_INFO_ACTIVE)); } else notice_lang(s_BotServ, u, BOT_INFO_CHAN_KICK_REVERSES, - getstring(u->na, BOT_INFO_INACTIVE)); + getstring(u, BOT_INFO_INACTIVE)); if (ci->botflags & BS_KICK_UNDERLINES) { if (ci->ttb[TTB_UNDERLINES]) notice_lang(s_BotServ, u, BOT_INFO_CHAN_KICK_UNDERLINES_BAN, - getstring(u->na, BOT_INFO_ACTIVE), + getstring(u, BOT_INFO_ACTIVE), ci->ttb[TTB_UNDERLINES]); else notice_lang(s_BotServ, u, BOT_INFO_CHAN_KICK_UNDERLINES, - getstring(u->na, BOT_INFO_ACTIVE)); + getstring(u, BOT_INFO_ACTIVE)); } else notice_lang(s_BotServ, u, BOT_INFO_CHAN_KICK_UNDERLINES, - getstring(u->na, BOT_INFO_INACTIVE)); + getstring(u, BOT_INFO_INACTIVE)); end = buf; *end = 0; if (ci->botflags & BS_DONTKICKOPS) { end += snprintf(end, sizeof(buf) - (end - buf), "%s", - getstring(u->na, BOT_INFO_OPT_DONTKICKOPS)); + getstring(u, BOT_INFO_OPT_DONTKICKOPS)); need_comma = 1; } if (ci->botflags & BS_DONTKICKVOICES) { end += snprintf(end, sizeof(buf) - (end - buf), "%s%s", need_comma ? commastr : "", - getstring(u->na, BOT_INFO_OPT_DONTKICKVOICES)); + getstring(u, BOT_INFO_OPT_DONTKICKVOICES)); need_comma = 1; } if (ci->botflags & BS_FANTASY) { end += snprintf(end, sizeof(buf) - (end - buf), "%s%s", need_comma ? commastr : "", - getstring(u->na, BOT_INFO_OPT_FANTASY)); + getstring(u, BOT_INFO_OPT_FANTASY)); need_comma = 1; } if (ci->botflags & BS_GREET) { end += snprintf(end, sizeof(buf) - (end - buf), "%s%s", need_comma ? commastr : "", - getstring(u->na, BOT_INFO_OPT_GREET)); + getstring(u, BOT_INFO_OPT_GREET)); need_comma = 1; } if (ci->botflags & BS_NOBOT) { end += snprintf(end, sizeof(buf) - (end - buf), "%s%s", need_comma ? commastr : "", - getstring(u->na, BOT_INFO_OPT_NOBOT)); + getstring(u, BOT_INFO_OPT_NOBOT)); need_comma = 1; } if (ci->botflags & BS_SYMBIOSIS) { end += snprintf(end, sizeof(buf) - (end - buf), "%s%s", need_comma ? commastr : "", - getstring(u->na, BOT_INFO_OPT_SYMBIOSIS)); + getstring(u, BOT_INFO_OPT_SYMBIOSIS)); need_comma = 1; } notice_lang(s_BotServ, u, BOT_INFO_CHAN_OPTIONS, - *buf ? buf : getstring(u->na, BOT_INFO_OPT_NONE)); + *buf ? buf : getstring(u, BOT_INFO_OPT_NONE)); } else notice_lang(s_BotServ, u, BOT_INFO_NOT_FOUND, query); diff --git a/src/core/bs_kick.c b/src/core/bs_kick.c index 87ef4111a..53485f011 100644 --- a/src/core/bs_kick.c +++ b/src/core/bs_kick.c @@ -44,7 +44,7 @@ class CommandBSKick : public Command notice_lang(s_BotServ, u, CHAN_X_NOT_REGISTERED, chan); else if (ci->flags & CI_FORBIDDEN) notice_lang(s_BotServ, u, CHAN_X_FORBIDDEN, chan); - else if (!check_access(u, ci, CA_SET) && !u->na->nc->HasCommand("botserv/administration")) + else if (!check_access(u, ci, CA_SET) && !u->nc->HasCommand("botserv/administration")) notice_lang(s_BotServ, u, ACCESS_DENIED); else if (!ci->bi) notice_help(s_BotServ, u, BOT_NOT_ASSIGNED); diff --git a/src/core/cs_akick.c b/src/core/cs_akick.c index 4bd2b10bd..a0efdc067 100644 --- a/src/core/cs_akick.c +++ b/src/core/cs_akick.c @@ -82,7 +82,7 @@ int akick_list(User * u, int index, ChannelInfo * ci, int *sent_header) ((akick->flags & AK_ISNICK) ? akick->u.nc-> display : akick->u.mask), (akick->reason ? akick-> - reason : getstring(u->na, NO_REASON))); + reason : getstring(u, NO_REASON))); return 1; } @@ -113,7 +113,7 @@ int akick_view(User * u, int index, ChannelInfo * ci, int *sent_header) strftime_lang(timebuf, sizeof(timebuf), u, STRFTIME_SHORT_DATE_FORMAT, &tm); } else { - snprintf(timebuf, sizeof(timebuf), "%s", getstring(u->na, UNKNOWN)); + snprintf(timebuf, sizeof(timebuf), "%s", getstring(u, UNKNOWN)); } notice_lang(s_ChanServ, u, @@ -122,11 +122,11 @@ int akick_view(User * u, int index, ChannelInfo * ci, int *sent_header) CHAN_AKICK_VIEW_FORMAT), index + 1, ((akick->flags & AK_ISNICK) ? akick->u.nc-> display : akick->u.mask), - akick->creator ? akick->creator : getstring(u->na, + akick->creator ? akick->creator : getstring(u, UNKNOWN), timebuf, (akick->reason ? akick-> - reason : getstring(u->na, NO_REASON))); + reason : getstring(u, NO_REASON))); return 1; } diff --git a/src/core/cs_help.c b/src/core/cs_help.c index eadc0ea8f..17ec5fe4c 100644 --- a/src/core/cs_help.c +++ b/src/core/cs_help.c @@ -52,7 +52,7 @@ class CommandCSHelp : public Command { notice_help(s_ChanServ, u, CHAN_HELP_LEVELS_DESC_FORMAT, levelinfo_maxwidth, levelinfo[i].name, - getstring(u->na, levelinfo[i].desc)); + getstring(u, levelinfo[i].desc)); } } else diff --git a/src/core/cs_info.c b/src/core/cs_info.c index 4bb8495e4..09d92e84f 100644 --- a/src/core/cs_info.c +++ b/src/core/cs_info.c @@ -28,11 +28,11 @@ void myChanServHelp(User * u) class CommandCSInfo : public Command { // cannot be const, as it is modified. - void CheckOptStr(std::string &buf, int opt, const std::string &str, ChannelInfo *ci, NickAlias *na) + void CheckOptStr(std::string &buf, int opt, const std::string &str, ChannelInfo *ci, NickCore *nc) { if (ci->flags & opt) { - const char *commastr = getstring(na, COMMA_SPACE); + const char *commastr = getstring(nc, COMMA_SPACE); if (!buf.empty()) buf += commastr; @@ -69,7 +69,7 @@ class CommandCSInfo : public Command notice_lang(s_ChanServ, u, CHAN_X_FORBIDDEN_OPER, chan, ci->forbidby, (ci->forbidreason ? ci-> - forbidreason : getstring(u->na, NO_REASON))); + forbidreason : getstring(u, NO_REASON))); else notice_lang(s_ChanServ, u, CHAN_X_FORBIDDEN, chan); @@ -115,19 +115,19 @@ class CommandCSInfo : public Command notice_lang(s_ChanServ, u, CHAN_INFO_BANTYPE, ci->bantype); std::string optbuf; - CheckOptStr(optbuf, CI_KEEPTOPIC, getstring(u->na, CHAN_INFO_OPT_KEEPTOPIC), ci, u->na); - CheckOptStr(optbuf, CI_OPNOTICE, getstring(u->na, CHAN_INFO_OPT_OPNOTICE), ci, u->na); - CheckOptStr(optbuf, CI_PEACE, getstring(u->na, CHAN_INFO_OPT_PEACE), ci, u->na); - CheckOptStr(optbuf, CI_PRIVATE, getstring(u->na, CHAN_INFO_OPT_PRIVATE), ci, u->na); - CheckOptStr(optbuf, CI_RESTRICTED, getstring(u->na, CHAN_INFO_OPT_RESTRICTED), ci, u->na); - CheckOptStr(optbuf, CI_SECURE, getstring(u->na, CHAN_INFO_OPT_SECURE), ci, u->na); - CheckOptStr(optbuf, CI_SECUREFOUNDER, getstring(u->na, CHAN_INFO_OPT_SECUREFOUNDER), ci, u->na); - CheckOptStr(optbuf, CI_SECUREOPS, getstring(u->na, CHAN_INFO_OPT_SECUREOPS), ci, u->na); - CheckOptStr(optbuf, CI_SIGNKICK | CI_SIGNKICK_LEVEL, getstring(u->na, CHAN_INFO_OPT_SIGNKICK), ci, u->na); - CheckOptStr(optbuf, CI_TOPICLOCK, getstring(u->na, CHAN_INFO_OPT_TOPICLOCK), ci, u->na); - CheckOptStr(optbuf, CI_XOP, getstring(u->na, CHAN_INFO_OPT_XOP), ci, u->na); - - notice_lang(s_ChanServ, u, CHAN_INFO_OPTIONS, optbuf.empty() ? getstring(u->na, CHAN_INFO_OPT_NONE) : optbuf.c_str()); + CheckOptStr(optbuf, CI_KEEPTOPIC, getstring(u, CHAN_INFO_OPT_KEEPTOPIC), ci, u->nc); + CheckOptStr(optbuf, CI_OPNOTICE, getstring(u, CHAN_INFO_OPT_OPNOTICE), ci, u->nc); + CheckOptStr(optbuf, CI_PEACE, getstring(u, CHAN_INFO_OPT_PEACE), ci, u->nc); + CheckOptStr(optbuf, CI_PRIVATE, getstring(u, CHAN_INFO_OPT_PRIVATE), ci, u->nc); + CheckOptStr(optbuf, CI_RESTRICTED, getstring(u, CHAN_INFO_OPT_RESTRICTED), ci, u->nc); + CheckOptStr(optbuf, CI_SECURE, getstring(u, CHAN_INFO_OPT_SECURE), ci, u->nc); + CheckOptStr(optbuf, CI_SECUREFOUNDER, getstring(u, CHAN_INFO_OPT_SECUREFOU |
