Date: Mon, 03 Feb 2003 14:45:37 -0800 From: Maksim Yevmenkin <myevmenk@exodus.net> To: hackers@FreeBSD.ORG, questions@FreeBSD.ORG, brian@FreeBSD.ORG, brian@Awfulhak.org Cc: Terry Lambert <tlambert2@mindspring.com>, doconnor@gsoft.com.au, imp@bsdimp.com Subject: [PATCH2] PPP in -direct mode does not execute any chat scripts Message-ID: <3E3EF111.5050401@exodus.net> References: <45258A4365C6B24A9832BFE224837D552B1283@sjdcex01.int.exodus.net> <3E3ED4DF.7090904@exodus.net> <3E3EDE11.192ABC3F@mindspring.com>
next in thread | previous in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format. --------------030201070700020102030102 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Dear Brian and Hackers, Please find updated proposed version of the patch. As suggested by Warner option has been renamed to 'force-sripts' and now works for both 'direct' and 'dedicated' modes. Also as suggested by Terry the man page has been updated to document side effect of 'direct'. -direct This is used for receiving incoming connections. ppp ignores the ``set device'' line and uses descriptor 0 as the link. ppp will never use any configured chat scripts unless ``force-scripts'' option has been enabled. If callback is configured, ppp will use the ``set device'' infor- mation when dialing back. -dedicated This option is designed for machines connected with a dedicated wire. ppp will always keep the device open and will never use any configured chat scripts unless ``force-scripts'' option has been enabled. force-scripts Default: Disabled. Forces execution of the configured chat scripts in direct and dedicated modes. >>Please find attached patch that adds new option to the PPP. >> >>run-scripts-in-direct-mode >> Default: Disabled. This allows to run chat scripts in >> direct mode. >> >>did i miss anything? objections? comments? reviews? > > > First comment: run it past Brian Somers <brian@Awfulhak.org>; it's > his baby, and he's the active maintainer. I have sent him e-mail. > Rest of comments: > > Actually, why doesn't "-direct" allow a chat script by default? > The man page doesn't document that as a side-effect of "-direct", > only of "-dedicated", but it's been there since the import. > > Should this really be a "negotiate" section command, rather than > just a command or a "set" command? > > Also, there are only two other commands even have a "-" in them, > and both of them only have one (just seems a little long, compared > to, say, "rsid" or "direct-with-script", or even "force-script"). > > Personal preference: don't make it conditional on "-direct", let > it also work with "-dedicated", and call it "force-script" or > something, instead. done > The man page should be updated -- including the undocumented > side-effect of "-direct" disabling scripts). done thanks max --------------030201070700020102030102 Content-Type: text/plain; name="ppp.diff" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="ppp.diff" diff -ru8 ppp.orig/bundle.h ppp/bundle.h --- ppp.orig/bundle.h Mon Feb 3 10:34:44 2003 +++ ppp/bundle.h Mon Feb 3 14:08:06 2003 @@ -44,16 +44,17 @@ #define OPT_LOOPBACK 0x0040 #define OPT_PASSWDAUTH 0x0080 #define OPT_PROXY 0x0100 #define OPT_PROXYALL 0x0200 #define OPT_SROUTES 0x0400 #define OPT_TCPMSSFIXUP 0x0800 #define OPT_THROUGHPUT 0x1000 #define OPT_UTMP 0x2000 +#define OPT_FORCE_SCRIPTS 0x4000 /* force chat scripts */ #define MAX_ENDDISC_CLASS 5 #define Enabled(b, o) ((b)->cfg.opt & (o)) /* AutoAdjust() values */ #define AUTO_UP 1 #define AUTO_DOWN 2 diff -ru8 ppp.orig/command.c ppp/command.c --- ppp.orig/command.c Mon Feb 3 10:34:45 2003 +++ ppp/command.c Mon Feb 3 14:26:37 2003 @@ -2830,16 +2830,19 @@ return 0; } static struct cmdtab const NegotiateCommands[] = { {"filter-decapsulation", NULL, OptSet, LOCAL_AUTH, "filter on PPPoUDP payloads", "disable|enable", (const void *)OPT_FILTERDECAP}, + {"force-scripts", NULL, OptSet, LOCAL_AUTH, + "Force execution of the configured chat scripts", "disable|enable", + (const void *)OPT_FORCE_SCRIPTS}, {"idcheck", NULL, OptSet, LOCAL_AUTH, "Check FSM reply ids", "disable|enable", (const void *)OPT_IDCHECK}, {"iface-alias", NULL, IfaceAliasOptSet, LOCAL_AUTH, "retain interface addresses", "disable|enable", (const void *)OPT_IFACEALIAS}, #ifndef NOINET6 {"ipcp", NULL, OptSet, LOCAL_AUTH, "IP Network Control Protocol", "disable|enable", (const void *)OPT_IPCP}, @@ -2861,19 +2864,19 @@ {"tcpmssfixup", "mssfixup", OptSet, LOCAL_AUTH, "Modify MSS options", "disable|enable", (const void *)OPT_TCPMSSFIXUP}, {"throughput", NULL, OptSet, LOCAL_AUTH, "Rolling throughput", "disable|enable", (const void *)OPT_THROUGHPUT}, {"utmp", NULL, OptSet, LOCAL_AUTH, "Log connections in utmp", "disable|enable", (const void *)OPT_UTMP}, #ifndef NOINET6 -#define OPT_MAX 13 /* accept/deny allowed below and not above */ +#define OPT_MAX 14 /* accept/deny allowed below and not above */ #else -#define OPT_MAX 11 +#define OPT_MAX 12 #endif {"acfcomp", NULL, NegotiateSet, LOCAL_AUTH | LOCAL_CX, "Address & Control field compression", "accept|deny|disable|enable", (const void *)NEG_ACFCOMP}, {"chap", "chap05", NegotiateSet, LOCAL_AUTH | LOCAL_CX, "Challenge Handshake Authentication Protocol", "accept|deny|disable|enable", (const void *)NEG_CHAP05}, diff -ru8 ppp.orig/datalink.c ppp/datalink.c --- ppp.orig/datalink.c Mon Feb 3 10:34:45 2003 +++ ppp/datalink.c Mon Feb 3 14:17:52 2003 @@ -956,17 +956,18 @@ free(dl); return result; } void datalink_Up(struct datalink *dl, int runscripts, int packetmode) { - if (dl->physical->type & (PHYS_DIRECT|PHYS_DEDICATED)) + if (!Enabled(dl->bundle, OPT_FORCE_SCRIPTS) && + (dl->physical->type & (PHYS_DIRECT|PHYS_DEDICATED))) /* Ignore scripts */ runscripts = 0; switch (dl->state) { case DATALINK_CLOSED: if (bundle_Phase(dl->bundle) == PHASE_DEAD || bundle_Phase(dl->bundle) == PHASE_TERMINATE) bundle_NewPhase(dl->bundle, PHASE_ESTABLISH); diff -ru8 ppp.orig/ppp.8.m4 ppp/ppp.8.m4 --- ppp.orig/ppp.8.m4 Mon Feb 3 10:34:46 2003 +++ ppp/ppp.8.m4 Mon Feb 3 14:22:21 2003 @@ -154,28 +154,34 @@ .Nm Ns No 's invocation from another process. .It Fl direct This is used for receiving incoming connections. .Nm ignores the .Dq set device line and uses descriptor 0 as the link. +.Nm +will never use any configured chat scripts unless +.Dq force-scripts +option has been enabled. .Pp If callback is configured, .Nm will use the .Dq set device information when dialing back. .It Fl dedicated This option is designed for machines connected with a dedicated wire. .Nm will always keep the device open and will never use any configured -chat scripts. +chat scripts unless +.Dq force-scripts +option has been enabled. .It Fl ddial This mode is equivalent to .Fl auto mode except that .Nm will bring the link back up any time it's dropped for any reason. .It Fl interactive This is a no-op, and gives the same behaviour as if none of the above @@ -2931,16 +2937,22 @@ will not be able to interpret it. It's therefore recommended that you .Ic disable vj pred1 deflate and .Ic deny vj pred1 deflate in the configuration for the .Nm invocation with the udp link. +.It force-scripts +Default: Disabled. Forces execution of the configured chat scripts in +.Dv direct +and +.Dv dedicated +modes. .It idcheck Default: Enabled. When .Nm exchanges low-level LCP, CCP and IPCP configuration traffic, the .Em Identifier field of any replies is expected to be the same as that of the request. By default, --------------030201070700020102030102-- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-questions" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3E3EF111.5050401>