command.c (49978) | command.c (50059) |
---|---|
1/* 2 * PPP User command processing module 3 * 4 * Written by Toshiharu OHNO (tony-o@iij.ad.jp) 5 * 6 * Copyright (C) 1993, Internet Initiative Japan, Inc. All rights reserverd. 7 * 8 * Redistribution and use in source and binary forms are permitted 9 * provided that the above copyright notice and this paragraph are 10 * duplicated in all such forms and that any documentation, 11 * advertising materials, and other materials related to such 12 * distribution and use acknowledge that the software was developed 13 * by the Internet Initiative Japan, Inc. The name of the 14 * IIJ may not be used to endorse or promote products derived 15 * from this software without specific prior written permission. 16 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR 17 * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED 18 * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. 19 * | 1/* 2 * PPP User command processing module 3 * 4 * Written by Toshiharu OHNO (tony-o@iij.ad.jp) 5 * 6 * Copyright (C) 1993, Internet Initiative Japan, Inc. All rights reserverd. 7 * 8 * Redistribution and use in source and binary forms are permitted 9 * provided that the above copyright notice and this paragraph are 10 * duplicated in all such forms and that any documentation, 11 * advertising materials, and other materials related to such 12 * distribution and use acknowledge that the software was developed 13 * by the Internet Initiative Japan, Inc. The name of the 14 * IIJ may not be used to endorse or promote products derived 15 * from this software without specific prior written permission. 16 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR 17 * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED 18 * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. 19 * |
20 * $Id: command.c,v 1.206 1999/08/17 14:59:05 brian Exp $ | 20 * $Id: command.c,v 1.207 1999/08/17 17:22:44 brian Exp $ |
21 * 22 */ 23#include <sys/param.h> 24#include <netinet/in_systm.h> 25#include <netinet/in.h> 26#include <netinet/ip.h> 27#include <arpa/inet.h> 28#include <sys/socket.h> --- 7 unchanged lines hidden (view full) --- 36#include <paths.h> 37#include <stdio.h> 38#include <stdlib.h> 39#include <string.h> 40#include <sys/wait.h> 41#include <termios.h> 42#include <unistd.h> 43 | 21 * 22 */ 23#include <sys/param.h> 24#include <netinet/in_systm.h> 25#include <netinet/in.h> 26#include <netinet/ip.h> 27#include <arpa/inet.h> 28#include <sys/socket.h> --- 7 unchanged lines hidden (view full) --- 36#include <paths.h> 37#include <stdio.h> 38#include <stdlib.h> 39#include <string.h> 40#include <sys/wait.h> 41#include <termios.h> 42#include <unistd.h> 43 |
44#ifndef NOALIAS | 44#ifndef NONAT |
45#ifdef __FreeBSD__ 46#include <alias.h> 47#else 48#include "alias.h" 49#endif 50#endif 51#include "layer.h" 52#include "defs.h" --- 4 unchanged lines hidden (view full) --- 57#include "fsm.h" 58#include "lcp.h" 59#include "iplist.h" 60#include "throughput.h" 61#include "slcompress.h" 62#include "lqr.h" 63#include "hdlc.h" 64#include "ipcp.h" | 45#ifdef __FreeBSD__ 46#include <alias.h> 47#else 48#include "alias.h" 49#endif 50#endif 51#include "layer.h" 52#include "defs.h" --- 4 unchanged lines hidden (view full) --- 57#include "fsm.h" 58#include "lcp.h" 59#include "iplist.h" 60#include "throughput.h" 61#include "slcompress.h" 62#include "lqr.h" 63#include "hdlc.h" 64#include "ipcp.h" |
65#ifndef NOALIAS | 65#ifndef NONAT |
66#include "alias_cmd.h" 67#endif 68#include "systems.h" 69#include "filter.h" 70#include "descriptor.h" 71#include "main.h" 72#include "route.h" 73#include "ccp.h" --- 65 unchanged lines hidden (view full) --- 139#define NEG_PAP 48 140#define NEG_PPPDDEFLATE 49 141#define NEG_PRED1 50 142#define NEG_PROTOCOMP 51 143#define NEG_SHORTSEQ 52 144#define NEG_VJCOMP 53 145 146const char Version[] = "2.23"; | 66#include "alias_cmd.h" 67#endif 68#include "systems.h" 69#include "filter.h" 70#include "descriptor.h" 71#include "main.h" 72#include "route.h" 73#include "ccp.h" --- 65 unchanged lines hidden (view full) --- 139#define NEG_PAP 48 140#define NEG_PPPDDEFLATE 49 141#define NEG_PRED1 50 142#define NEG_PROTOCOMP 51 143#define NEG_SHORTSEQ 52 144#define NEG_VJCOMP 53 145 146const char Version[] = "2.23"; |
147const char VersionDate[] = "$Date: 1999/08/17 14:59:05 $"; | 147const char VersionDate[] = "$Date: 1999/08/17 17:22:44 $"; |
148 149static int ShowCommand(struct cmdargs const *); 150static int TerminalCommand(struct cmdargs const *); 151static int QuitCommand(struct cmdargs const *); 152static int OpenCommand(struct cmdargs const *); 153static int CloseCommand(struct cmdargs const *); 154static int DownCommand(struct cmdargs const *); 155static int SetCommand(struct cmdargs const *); 156static int LinkCommand(struct cmdargs const *); 157static int AddCommand(struct cmdargs const *); 158static int DeleteCommand(struct cmdargs const *); 159static int NegotiateCommand(struct cmdargs const *); 160static int ClearCommand(struct cmdargs const *); 161static int RunListCommand(struct cmdargs const *); 162static int IfaceAddCommand(struct cmdargs const *); 163static int IfaceDeleteCommand(struct cmdargs const *); 164static int IfaceClearCommand(struct cmdargs const *); 165static int SetProcTitle(struct cmdargs const *); | 148 149static int ShowCommand(struct cmdargs const *); 150static int TerminalCommand(struct cmdargs const *); 151static int QuitCommand(struct cmdargs const *); 152static int OpenCommand(struct cmdargs const *); 153static int CloseCommand(struct cmdargs const *); 154static int DownCommand(struct cmdargs const *); 155static int SetCommand(struct cmdargs const *); 156static int LinkCommand(struct cmdargs const *); 157static int AddCommand(struct cmdargs const *); 158static int DeleteCommand(struct cmdargs const *); 159static int NegotiateCommand(struct cmdargs const *); 160static int ClearCommand(struct cmdargs const *); 161static int RunListCommand(struct cmdargs const *); 162static int IfaceAddCommand(struct cmdargs const *); 163static int IfaceDeleteCommand(struct cmdargs const *); 164static int IfaceClearCommand(struct cmdargs const *); 165static int SetProcTitle(struct cmdargs const *); |
166#ifndef NOALIAS | 166#ifndef NONAT |
167static int AliasEnable(struct cmdargs const *); 168static int AliasOption(struct cmdargs const *); 169#endif 170 171static const char * 172showcx(struct cmdtab const *cmd) 173{ 174 if (cmd->lauth & LOCAL_CX) --- 366 unchanged lines hidden (view full) --- 541} 542 543static int 544FgShellCommand(struct cmdargs const *arg) 545{ 546 return ShellCommand(arg, 0); 547} 548 | 167static int AliasEnable(struct cmdargs const *); 168static int AliasOption(struct cmdargs const *); 169#endif 170 171static const char * 172showcx(struct cmdtab const *cmd) 173{ 174 if (cmd->lauth & LOCAL_CX) --- 366 unchanged lines hidden (view full) --- 541} 542 543static int 544FgShellCommand(struct cmdargs const *arg) 545{ 546 return ShellCommand(arg, 0); 547} 548 |
549#ifndef NOALIAS | 549#ifndef NONAT |
550static struct cmdtab const AliasCommands[] = 551{ | 550static struct cmdtab const AliasCommands[] = 551{ |
552 {"addr", NULL, alias_RedirectAddr, LOCAL_AUTH, 553 "static address translation", "alias addr [addr_local addr_alias]"}, | 552 {"addr", NULL, nat_RedirectAddr, LOCAL_AUTH, 553 "static address translation", "nat addr [addr_local addr_alias]"}, |
554 {"deny_incoming", NULL, AliasOption, LOCAL_AUTH, | 554 {"deny_incoming", NULL, AliasOption, LOCAL_AUTH, |
555 "stop incoming connections", "alias deny_incoming [yes|no]", | 555 "stop incoming connections", "nat deny_incoming yes|no", |
556 (const void *) PKT_ALIAS_DENY_INCOMING}, 557 {"enable", NULL, AliasEnable, LOCAL_AUTH, | 556 (const void *) PKT_ALIAS_DENY_INCOMING}, 557 {"enable", NULL, AliasEnable, LOCAL_AUTH, |
558 "enable IP aliasing", "alias enable [yes|no]"}, | 558 "enable NAT", "nat enable yes|no"}, |
559 {"log", NULL, AliasOption, LOCAL_AUTH, | 559 {"log", NULL, AliasOption, LOCAL_AUTH, |
560 "log aliasing link creation", "alias log [yes|no]", | 560 "log NAT link creation", "nat log yes|no", |
561 (const void *) PKT_ALIAS_LOG}, | 561 (const void *) PKT_ALIAS_LOG}, |
562 {"port", NULL, alias_RedirectPort, LOCAL_AUTH, "port redirection", 563 "alias port proto localaddr:port[-port] aliasport[-aliasport]"}, 564 {"pptp", NULL, alias_Pptp, LOCAL_AUTH, 565 "Set the PPTP address", "alias pptp IP"}, 566 {"proxy", NULL, alias_ProxyRule, LOCAL_AUTH, 567 "proxy control", "alias proxy server host[:port] ..."}, | 562 {"port", NULL, nat_RedirectPort, LOCAL_AUTH, "port redirection", 563 "nat port proto localaddr:port[-port] aliasport[-aliasport]"}, 564 {"pptp", NULL, nat_Pptp, LOCAL_AUTH, 565 "Set the PPTP address", "nat pptp IP"}, 566 {"proxy", NULL, nat_ProxyRule, LOCAL_AUTH, 567 "proxy control", "nat proxy server host[:port] ..."}, |
568 {"same_ports", NULL, AliasOption, LOCAL_AUTH, | 568 {"same_ports", NULL, AliasOption, LOCAL_AUTH, |
569 "try to leave port numbers unchanged", "alias same_ports [yes|no]", | 569 "try to leave port numbers unchanged", "nat same_ports yes|no", |
570 (const void *) PKT_ALIAS_SAME_PORTS}, 571 {"unregistered_only", NULL, AliasOption, LOCAL_AUTH, | 570 (const void *) PKT_ALIAS_SAME_PORTS}, 571 {"unregistered_only", NULL, AliasOption, LOCAL_AUTH, |
572 "alias unregistered (private) IP address space only", 573 "alias unregistered_only [yes|no]", | 572 "translate unregistered (private) IP address space only", 573 "nat unregistered_only yes|no", |
574 (const void *) PKT_ALIAS_UNREGISTERED_ONLY}, 575 {"use_sockets", NULL, AliasOption, LOCAL_AUTH, | 574 (const void *) PKT_ALIAS_UNREGISTERED_ONLY}, 575 {"use_sockets", NULL, AliasOption, LOCAL_AUTH, |
576 "allocate host sockets", "alias use_sockets [yes|no]", | 576 "allocate host sockets", "nat use_sockets yes|no", |
577 (const void *) PKT_ALIAS_USE_SOCKETS}, 578 {"help", "?", HelpCommand, LOCAL_AUTH | LOCAL_NO_AUTH, | 577 (const void *) PKT_ALIAS_USE_SOCKETS}, 578 {"help", "?", HelpCommand, LOCAL_AUTH | LOCAL_NO_AUTH, |
579 "Display this message", "alias help|? [command]", AliasCommands}, | 579 "Display this message", "nat help|? [command]", AliasCommands}, |
580 {NULL, NULL, NULL}, 581}; 582#endif 583 584static struct cmdtab const AllowCommands[] = { 585 {"modes", "mode", AllowModes, LOCAL_AUTH, 586 "Only allow certain ppp modes", "allow modes mode..."}, 587 {"users", "user", AllowUsers, LOCAL_AUTH, --- 16 unchanged lines hidden (view full) --- 604 "Delete iface address", "iface delete addr", NULL}, 605 {NULL, "rm!", IfaceDeleteCommand, LOCAL_AUTH, 606 "Delete iface address", "iface delete addr", (void *)1}, 607 {NULL, "delete!", IfaceDeleteCommand, LOCAL_AUTH, 608 "Delete iface address", "iface delete addr", (void *)1}, 609 {"show", NULL, iface_Show, LOCAL_AUTH, 610 "Show iface address(es)", "iface show"}, 611 {"help", "?", HelpCommand, LOCAL_AUTH | LOCAL_NO_AUTH, | 580 {NULL, NULL, NULL}, 581}; 582#endif 583 584static struct cmdtab const AllowCommands[] = { 585 {"modes", "mode", AllowModes, LOCAL_AUTH, 586 "Only allow certain ppp modes", "allow modes mode..."}, 587 {"users", "user", AllowUsers, LOCAL_AUTH, --- 16 unchanged lines hidden (view full) --- 604 "Delete iface address", "iface delete addr", NULL}, 605 {NULL, "rm!", IfaceDeleteCommand, LOCAL_AUTH, 606 "Delete iface address", "iface delete addr", (void *)1}, 607 {NULL, "delete!", IfaceDeleteCommand, LOCAL_AUTH, 608 "Delete iface address", "iface delete addr", (void *)1}, 609 {"show", NULL, iface_Show, LOCAL_AUTH, 610 "Show iface address(es)", "iface show"}, 611 {"help", "?", HelpCommand, LOCAL_AUTH | LOCAL_NO_AUTH, |
612 "Display this message", "alias help|? [command]", IfaceCommands}, | 612 "Display this message", "nat help|? [command]", IfaceCommands}, |
613 {NULL, NULL, NULL}, 614}; 615 616static struct cmdtab const Commands[] = { 617 {"accept", NULL, NegotiateCommand, LOCAL_AUTH | LOCAL_CX_OPT, 618 "accept option request", "accept option .."}, 619 {"add", NULL, AddCommand, LOCAL_AUTH, 620 "add route", "add dest mask gateway", NULL}, 621 {NULL, "add!", AddCommand, LOCAL_AUTH, 622 "add or change route", "add! dest mask gateway", (void *)1}, | 613 {NULL, NULL, NULL}, 614}; 615 616static struct cmdtab const Commands[] = { 617 {"accept", NULL, NegotiateCommand, LOCAL_AUTH | LOCAL_CX_OPT, 618 "accept option request", "accept option .."}, 619 {"add", NULL, AddCommand, LOCAL_AUTH, 620 "add route", "add dest mask gateway", NULL}, 621 {NULL, "add!", AddCommand, LOCAL_AUTH, 622 "add or change route", "add! dest mask gateway", (void *)1}, |
623#ifndef NOALIAS 624 {"alias", NULL, RunListCommand, LOCAL_AUTH, 625 "alias control", "alias option [yes|no]", AliasCommands}, 626#endif | |
627 {"allow", "auth", RunListCommand, LOCAL_AUTH, 628 "Allow ppp access", "allow users|modes ....", AllowCommands}, 629 {"bg", "!bg", BgShellCommand, LOCAL_AUTH, 630 "Run a background command", "[!]bg command"}, 631 {"clear", NULL, ClearCommand, LOCAL_AUTH | LOCAL_CX_OPT, 632 "Clear throughput statistics", 633 "clear ipcp|physical [current|overall|peak]..."}, 634 {"clone", NULL, CloneCommand, LOCAL_AUTH | LOCAL_CX, --- 15 unchanged lines hidden (view full) --- 650 {"enable", NULL, NegotiateCommand, LOCAL_AUTH | LOCAL_CX_OPT, 651 "Enable option", "enable option .."}, 652 {"iface", "interface", RunListCommand, LOCAL_AUTH, 653 "interface control", "iface option ...", IfaceCommands}, 654 {"link", "datalink", LinkCommand, LOCAL_AUTH, 655 "Link specific commands", "link name command ..."}, 656 {"load", NULL, LoadCommand, LOCAL_AUTH | LOCAL_CX_OPT, 657 "Load settings", "load [system ...]"}, | 623 {"allow", "auth", RunListCommand, LOCAL_AUTH, 624 "Allow ppp access", "allow users|modes ....", AllowCommands}, 625 {"bg", "!bg", BgShellCommand, LOCAL_AUTH, 626 "Run a background command", "[!]bg command"}, 627 {"clear", NULL, ClearCommand, LOCAL_AUTH | LOCAL_CX_OPT, 628 "Clear throughput statistics", 629 "clear ipcp|physical [current|overall|peak]..."}, 630 {"clone", NULL, CloneCommand, LOCAL_AUTH | LOCAL_CX, --- 15 unchanged lines hidden (view full) --- 646 {"enable", NULL, NegotiateCommand, LOCAL_AUTH | LOCAL_CX_OPT, 647 "Enable option", "enable option .."}, 648 {"iface", "interface", RunListCommand, LOCAL_AUTH, 649 "interface control", "iface option ...", IfaceCommands}, 650 {"link", "datalink", LinkCommand, LOCAL_AUTH, 651 "Link specific commands", "link name command ..."}, 652 {"load", NULL, LoadCommand, LOCAL_AUTH | LOCAL_CX_OPT, 653 "Load settings", "load [system ...]"}, |
654#ifndef NONAT 655 {"nat", "alias", RunListCommand, LOCAL_AUTH, 656 "NAT control", "nat option yes|no", AliasCommands}, 657#endif |
|
658 {"open", NULL, OpenCommand, LOCAL_AUTH | LOCAL_CX_OPT, 659 "Open an FSM", "open! [lcp|ccp|ipcp]", (void *)1}, 660 {"passwd", NULL, PasswdCommand, LOCAL_NO_AUTH, 661 "Password for manipulation", "passwd LocalPassword"}, 662 {"quit", "bye", QuitCommand, LOCAL_AUTH | LOCAL_NO_AUTH, 663 "Quit PPP program", "quit|bye [all]"}, 664 {"remove", "rm", RemoveCommand, LOCAL_AUTH | LOCAL_CX, 665 "Remove a link", "remove"}, --- 1344 unchanged lines hidden (view full) --- 2010 route_Delete(&arg->bundle->ncp.ipcp.route, addrs, dest); 2011 } 2012 } else 2013 return -1; 2014 2015 return 0; 2016} 2017 | 658 {"open", NULL, OpenCommand, LOCAL_AUTH | LOCAL_CX_OPT, 659 "Open an FSM", "open! [lcp|ccp|ipcp]", (void *)1}, 660 {"passwd", NULL, PasswdCommand, LOCAL_NO_AUTH, 661 "Password for manipulation", "passwd LocalPassword"}, 662 {"quit", "bye", QuitCommand, LOCAL_AUTH | LOCAL_NO_AUTH, 663 "Quit PPP program", "quit|bye [all]"}, 664 {"remove", "rm", RemoveCommand, LOCAL_AUTH | LOCAL_CX, 665 "Remove a link", "remove"}, --- 1344 unchanged lines hidden (view full) --- 2010 route_Delete(&arg->bundle->ncp.ipcp.route, addrs, dest); 2011 } 2012 } else 2013 return -1; 2014 2015 return 0; 2016} 2017 |
2018#ifndef NOALIAS | 2018#ifndef NONAT |
2019static int 2020AliasEnable(struct cmdargs const *arg) 2021{ 2022 if (arg->argc == arg->argn+1) { 2023 if (strcasecmp(arg->argv[arg->argn], "yes") == 0) { | 2019static int 2020AliasEnable(struct cmdargs const *arg) 2021{ 2022 if (arg->argc == arg->argn+1) { 2023 if (strcasecmp(arg->argv[arg->argn], "yes") == 0) { |
2024 if (!arg->bundle->AliasEnabled) { | 2024 if (!arg->bundle->NatEnabled) { |
2025 if (arg->bundle->ncp.ipcp.fsm.state == ST_OPENED) 2026 PacketAliasSetAddress(arg->bundle->ncp.ipcp.my_ip); | 2025 if (arg->bundle->ncp.ipcp.fsm.state == ST_OPENED) 2026 PacketAliasSetAddress(arg->bundle->ncp.ipcp.my_ip); |
2027 arg->bundle->AliasEnabled = 1; | 2027 arg->bundle->NatEnabled = 1; |
2028 } 2029 return 0; 2030 } else if (strcasecmp(arg->argv[arg->argn], "no") == 0) { | 2028 } 2029 return 0; 2030 } else if (strcasecmp(arg->argv[arg->argn], "no") == 0) { |
2031 arg->bundle->AliasEnabled = 0; | 2031 arg->bundle->NatEnabled = 0; |
2032 arg->bundle->cfg.opt &= ~OPT_IFACEALIAS; 2033 /* Don't iface_Clear() - there may be manually configured addresses */ 2034 return 0; 2035 } 2036 } 2037 2038 return -1; 2039} 2040 2041 2042static int 2043AliasOption(struct cmdargs const *arg) 2044{ 2045 long param = (long)arg->cmd->args; 2046 2047 if (arg->argc == arg->argn+1) { 2048 if (strcasecmp(arg->argv[arg->argn], "yes") == 0) { | 2032 arg->bundle->cfg.opt &= ~OPT_IFACEALIAS; 2033 /* Don't iface_Clear() - there may be manually configured addresses */ 2034 return 0; 2035 } 2036 } 2037 2038 return -1; 2039} 2040 2041 2042static int 2043AliasOption(struct cmdargs const *arg) 2044{ 2045 long param = (long)arg->cmd->args; 2046 2047 if (arg->argc == arg->argn+1) { 2048 if (strcasecmp(arg->argv[arg->argn], "yes") == 0) { |
2049 if (arg->bundle->AliasEnabled) { | 2049 if (arg->bundle->NatEnabled) { |
2050 PacketAliasSetMode(param, param); 2051 return 0; 2052 } | 2050 PacketAliasSetMode(param, param); 2051 return 0; 2052 } |
2053 log_Printf(LogWARN, "alias not enabled\n"); | 2053 log_Printf(LogWARN, "nat not enabled\n"); |
2054 } else if (strcmp(arg->argv[arg->argn], "no") == 0) { | 2054 } else if (strcmp(arg->argv[arg->argn], "no") == 0) { |
2055 if (arg->bundle->AliasEnabled) { | 2055 if (arg->bundle->NatEnabled) { |
2056 PacketAliasSetMode(0, param); 2057 return 0; 2058 } | 2056 PacketAliasSetMode(0, param); 2057 return 0; 2058 } |
2059 log_Printf(LogWARN, "alias not enabled\n"); | 2059 log_Printf(LogWARN, "nat not enabled\n"); |
2060 } 2061 } 2062 return -1; 2063} | 2060 } 2061 } 2062 return -1; 2063} |
2064#endif /* #ifndef NOALIAS */ | 2064#endif /* #ifndef NONAT */ |
2065 2066static int 2067LinkCommand(struct cmdargs const *arg) 2068{ 2069 if (arg->argc > arg->argn+1) { 2070 char namelist[LINE_LEN]; 2071 struct datalink *cx; 2072 char *name; --- 118 unchanged lines hidden (view full) --- 2191 2192static int 2193IfaceAliasOptSet(struct cmdargs const *arg) 2194{ 2195 unsigned save = arg->bundle->cfg.opt; 2196 int result = OptSet(arg); 2197 2198 if (result == 0) | 2065 2066static int 2067LinkCommand(struct cmdargs const *arg) 2068{ 2069 if (arg->argc > arg->argn+1) { 2070 char namelist[LINE_LEN]; 2071 struct datalink *cx; 2072 char *name; --- 118 unchanged lines hidden (view full) --- 2191 2192static int 2193IfaceAliasOptSet(struct cmdargs const *arg) 2194{ 2195 unsigned save = arg->bundle->cfg.opt; 2196 int result = OptSet(arg); 2197 2198 if (result == 0) |
2199 if (Enabled(arg->bundle, OPT_IFACEALIAS) && !arg->bundle->AliasEnabled) { | 2199 if (Enabled(arg->bundle, OPT_IFACEALIAS) && !arg->bundle->NatEnabled) { |
2200 arg->bundle->cfg.opt = save; | 2200 arg->bundle->cfg.opt = save; |
2201 log_Printf(LogWARN, "Cannot enable iface-alias without IP aliasing\n"); | 2201 log_Printf(LogWARN, "Cannot enable iface-alias without NAT\n"); |
2202 result = 2; 2203 } 2204 2205 return result; 2206} 2207 2208static int 2209NegotiateSet(struct cmdargs const *arg) --- 394 unchanged lines hidden --- | 2202 result = 2; 2203 } 2204 2205 return result; 2206} 2207 2208static int 2209NegotiateSet(struct cmdargs const *arg) --- 394 unchanged lines hidden --- |