nargv[arg] = subst(nargv[arg], "MYADDR6", ncpaddr_ntoa(&bundle->ncp.ipv6cp.myaddr));
nargv[arg] = substull(nargv[arg], "IPV6OCTETSIN", bundle->ncp.ipv6cp.throughput.OctetsIn); nargv[arg] = substull(nargv[arg], "IPV6OCTETSOUT", bundle->ncp.ipv6cp.throughput.OctetsOut); nargv[arg] = substull(nargv[arg], "IPV6PACKETSIN", bundle->ncp.ipv6cp.throughput.PacketsIn); nargv[arg] = substull(nargv[arg], "IPV6PACKETSOUT", bundle->ncp.ipv6cp.throughput.PacketsOut);
command_Expand(char **nargv, int argc, char const *const *oargv,               struct bundle *bundle, int inc0, pid_t pid){  int arg, secs;  char buf[20];  char pidstr[12];  if (inc0)    arg = 0;		/* Start at arg 0 */  else {    nargv[0] = strdup(oargv[0]);    arg = 1;  }  snprintf(pidstr, sizeof pidstr, "%d", (int)pid);  for (; arg < argc; arg++) {    nargv[arg] = strdup(oargv[arg]);    nargv[arg] = subst(nargv[arg], "HISADDR",                       inet_ntoa(bundle->ncp.ipcp.peer_ip));#ifndef NOINET6    nargv[arg] = subst(nargv[arg], "HISADDR6",                       ncpaddr_ntoa(&bundle->ncp.ipv6cp.hisaddr));#endif    nargv[arg] = subst(nargv[arg], "AUTHNAME", bundle->cfg.auth.name);    nargv[arg] = subst(nargv[arg], "INTERFACE", bundle->iface->name);    nargv[arg] = subst(nargv[arg], "MYADDR", inet_ntoa(bundle->ncp.ipcp.my_ip));#ifndef NOINET6    nargv[arg] = subst(nargv[arg], "MYADDR6",                       ncpaddr_ntoa(&bundle->ncp.ipv6cp.myaddr));#endif    nargv[arg] = subst(nargv[arg], "USER", bundle->ncp.mp.peer.authname);    nargv[arg] = subst(nargv[arg], "PEER_ENDDISC",                       mp_Enddisc(bundle->ncp.mp.peer.enddisc.class,                                  bundle->ncp.mp.peer.enddisc.address,                                  bundle->ncp.mp.peer.enddisc.len));    nargv[arg] = subst(nargv[arg], "ENDDISC",                        mp_Enddisc(bundle->ncp.mp.cfg.enddisc.class,                                  bundle->ncp.mp.cfg.enddisc.address,                                  bundle->ncp.mp.cfg.enddisc.len));    nargv[arg] = subst(nargv[arg], "PROCESSID", pidstr);    nargv[arg] = subst(nargv[arg], "LABEL", bundle_GetLabel(bundle));    nargv[arg] = subst(nargv[arg], "DNS0",                       inet_ntoa(bundle->ncp.ipcp.ns.dns[0]));    nargv[arg] = subst(nargv[arg], "DNS1",                       inet_ntoa(bundle->ncp.ipcp.ns.dns[1]));    nargv[arg] = subst(nargv[arg], "VERSION", Version);    nargv[arg] = subst(nargv[arg], "COMPILATIONDATE", __DATE__);    secs = bundle_Uptime(bundle);    snprintf(buf, sizeof buf, "%d:%02d:%02d", secs / 3600, (secs / 60) % 60,             secs % 60);    nargv[arg] = subst(nargv[arg], "UPTIME", buf);  }  nargv[arg] = NULL;}