int link_ShowLayers(struct cmdargs const *arg) { struct link *l = command_ChooseLink(arg); int layer; for (layer = l->nlayers; layer; layer--) prompt_Printf(arg->prompt, "%s%s", layer == l->nlayers ? "" : ", ", l->layer[layer - 1]->name); if (l->nlayers) prompt_Printf(arg->prompt, "\n"); return 0; }
int ccp_ReportStatus(struct cmdargs const *arg) { struct ccp_opt **o; struct link *l; struct ccp *ccp; int f; l = command_ChooseLink(arg); ccp = &l->ccp; prompt_Printf(arg->prompt, "%s: %s [%s]\n", l->name, ccp->fsm.name, State2Nam(ccp->fsm.state)); if (ccp->fsm.state == ST_OPENED) { prompt_Printf(arg->prompt, " My protocol = %s, His protocol = %s\n", protoname(ccp->my_proto), protoname(ccp->his_proto)); prompt_Printf(arg->prompt, " Output: %ld --> %ld, Input: %ld --> %ld\n", ccp->uncompout, ccp->compout, ccp->compin, ccp->uncompin); } if (ccp->in.algorithm != -1) prompt_Printf(arg->prompt, "\n Input Options: %s\n", (*algorithm[ccp->in.algorithm]->Disp)(&ccp->in.opt)); if (ccp->out.algorithm != -1) { o = &ccp->out.opt; for (f = 0; f < ccp->out.algorithm; f++) if (IsEnabled(ccp->cfg.neg[algorithm[f]->Neg])) o = &(*o)->next; prompt_Printf(arg->prompt, " Output Options: %s\n", (*algorithm[ccp->out.algorithm]->Disp)(&(*o)->val)); } prompt_Printf(arg->prompt, "\n Defaults: "); prompt_Printf(arg->prompt, "FSM retry = %us, max %u Config" " REQ%s, %u Term REQ%s\n", ccp->cfg.fsm.timeout, ccp->cfg.fsm.maxreq, ccp->cfg.fsm.maxreq == 1 ? "" : "s", ccp->cfg.fsm.maxtrm, ccp->cfg.fsm.maxtrm == 1 ? "" : "s"); prompt_Printf(arg->prompt, " deflate windows: "); prompt_Printf(arg->prompt, "incoming = %d, ", ccp->cfg.deflate.in.winsize); prompt_Printf(arg->prompt, "outgoing = %d\n", ccp->cfg.deflate.out.winsize); #ifndef NODES prompt_Printf(arg->prompt, " MPPE: "); if (ccp->cfg.mppe.keybits) prompt_Printf(arg->prompt, "%d bits, ", ccp->cfg.mppe.keybits); else prompt_Printf(arg->prompt, "any bits, "); switch (ccp->cfg.mppe.state) { case MPPE_STATEFUL: prompt_Printf(arg->prompt, "stateful"); break; case MPPE_STATELESS: prompt_Printf(arg->prompt, "stateless"); break; case MPPE_ANYSTATE: prompt_Printf(arg->prompt, "any state"); break; } prompt_Printf(arg->prompt, "%s\n", ccp->cfg.mppe.required ? ", required" : ""); #endif prompt_Printf(arg->prompt, "\n DEFLATE: %s\n", command_ShowNegval(ccp->cfg.neg[CCP_NEG_DEFLATE])); prompt_Printf(arg->prompt, " PREDICTOR1: %s\n", command_ShowNegval(ccp->cfg.neg[CCP_NEG_PRED1])); prompt_Printf(arg->prompt, " DEFLATE24: %s\n", command_ShowNegval(ccp->cfg.neg[CCP_NEG_DEFLATE24])); #ifndef NODES prompt_Printf(arg->prompt, " MPPE: %s\n", command_ShowNegval(ccp->cfg.neg[CCP_NEG_MPPE])); #endif return 0; }