Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 23 Jan 1998 20:41:07 -0500 (EST)
From:      wgianopoulos@raytheon.com
To:        FreeBSD-gnats-submit@FreeBSD.ORG
Subject:   bin/5557: /usr/sbin/ppp no longer works with SecurID cards
Message-ID:  <199801240141.UAA00453@wagpc.wagbbc>

next in thread | raw e-mail | index | archive | help

>Number:         5557
>Category:       bin
>Synopsis:       /usr/sbin/ppp no longer works with SecurID cards
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:
>Keywords:
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Fri Jan 23 18:30:00 PST 1998
>Last-Modified:
>Originator:     William A. Gianopoulos
>Organization:
Raytheon Company
>Release:        FreeBSD 2.2.5-RELEASE i386
>Environment:

	FreeBSD wagpc.wagbbc 2.2.5-RELEASE FreeBSD 2.2.5-RELEASE #0:
	Fri Jan 23 14:03:13 EST 1998
	root@myname.my.domain:/usr/src/sys/compile/WAGPC  i386

>Description:

	In version 2.1.7 and previous, it was possible to use /usr/sbin/ppp
	to automatically dial sites which required use of a on-time password
	device.  This was becuse the close command did not hang up the
	phone if PPP comunication was never established (this was probably a
	bug).  You used to be able to enter the dial command, and after the
	dial OK! and login OK! was received, and the remote access server was
	asking for the on-time key, you could enter the close command and then
	the term command, then enter the one-time key follwed by the '~p'
	and everything would work.  Now the connection drops when you enter the
	close command.

>How-To-Repeat:


>Fix:
	
	The follwing code adds a new command 'set mode' which allows you to
	specify wheteher you want the connection to be in packet mode (ppp)
	or terminal mode (term) after executing the dial command.  This allows
	automatic dialing to be used in conjuction with one-time password
	devices:

*** Makefile.orig	Fri Jan 23 17:33:33 1998
--- Makefile	Fri Jan 23 17:34:06 1998
***************
*** 12,16 ****
--- 12,17 ----
  BINMODE=4550
  BINOWN=	root
  BINGRP=	network
+ BINDIR= /usr/sbin
  
  .include <bsd.prog.mk>
*** command.c.orig	Fri Jan 23 17:21:19 1998
--- command.c	Fri Jan 23 17:20:52 1998
***************
*** 66,71 ****
--- 66,72 ----
  extern struct cmdtab const SetCommands[];
  
  extern char *IfDevName;
+ extern int DialTermMode;
  
  struct in_addr ifnetmask;
  
***************
*** 168,174 ****
      if ((res = DialModem()) == EX_DONE) {
        sleep(1);
        ModemTimeout();
!       PacketMode();
        break;
      } else if (res == EX_SIG)
        return 1;
--- 169,178 ----
      if ((res = DialModem()) == EX_DONE) {
        sleep(1);
        ModemTimeout();
!       if (IsInteractive && DialTermMode)
! 	TtyTermMode();
!       else
!         PacketMode();
        break;
      } else if (res == EX_SIG)
        return 1;
***************
*** 1263,1268 ****
--- 1267,1288 ----
  
  
  static int 
+ SetMode(struct cmdtab const * list, int argc, char **argv)
+ {
+   if (argc > 0) {
+     if (strcmp(*argv, "ppp") == 0)
+       DialTermMode = 0;
+     else if (strcmp(*argv, "term") == 0)
+       DialTermMode = 1;
+     else
+       return -1;
+     return 0;
+   }
+   return -1;
+ }
+ 
+ 
+ static int 
  SetOpenMode(struct cmdtab const * list, int argc, char **argv)
  {
    if (argc > 0) {
***************
*** 1310,1315 ****
--- 1330,1337 ----
    "Set log level", "set log [+|-]value..."},
    {"login", NULL, SetVariable, LOCAL_AUTH,
    "Set login script", "set login chat-script", (void *) VAR_LOGIN},
+   {"mode", NULL, SetMode, LOCAL_AUTH,
+   "Set mode", "set mode [ppp|term]"},
    {"mru", NULL, SetInitialMRU, LOCAL_AUTH,
    "Set Initial MRU value", "set mru value"},
    {"mtu", NULL, SetPreferredMTU, LOCAL_AUTH,
*** main.c.orig	Fri Jan 23 16:55:03 1998
--- main.c	Fri Jan 23 17:25:23 1998
***************
*** 79,84 ****
--- 79,85 ----
  static char if_filename[MAXPATHLEN];
  int tunno;
  static int dial_up;
+ int DialTermMode;
  
  static void
  TtyInit(int DontWantInt)
***************
*** 322,327 ****
--- 323,329 ----
    char *name;
  
    VarTerm = 0;
+   DialTermMode = 0;
    name = rindex(argv[0], '/');
    LogOpen(name ? name + 1 : argv[0]);
  
***************
*** 789,795 ****
  	if ((res = DialModem()) == EX_DONE) {
  	  sleep(1);		/* little pause to allow peer starts */
  	  ModemTimeout();
! 	  PacketMode();
  	  dial_up = FALSE;
  	  reconnectState = RECON_UNKNOWN;
  	  tries = 0;
--- 791,800 ----
  	if ((res = DialModem()) == EX_DONE) {
  	  sleep(1);		/* little pause to allow peer starts */
  	  ModemTimeout();
! 	  if (IsInteractive && DialTermMode)
! 	    TtyTermMode();
! 	  else
! 	    PacketMode();
  	  dial_up = FALSE;
  	  reconnectState = RECON_UNKNOWN;
  	  tries = 0;
*** systems.c.orig	Fri Jan 23 17:27:38 1998
--- systems.c	Fri Jan 23 17:29:09 1998
***************
*** 132,138 ****
--- 132,140 ----
    char line[200];
    char filename[200];
    int linenum;
+   extern int DialTermMode;
  
+   DialTermMode = 0;
    fp = NULL;
    cp = getenv("HOME");
    if (cp) {
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199801240141.UAA00453>