	     Microsoft Call Back Configuration Protocol.
			by Pedro Roque Marques
			(updated by Paul Mackerras)

The CBCP is a method by which the Microsoft Windows NT Server may
implement additional security. It is possible to configure the server
in such a manner so as to require that the client systems which
connect with it are required that following a valid authentication to
leave a method by which the number may be returned call.

It is a requirement of servers so configured that the protocol be
exchanged.

So, this set of patches may be applied to the pppd process to enable
the cbcp client *only* portion of the specification. It is primarily
meant to permit connection with Windows NT Servers.

The ietf-working specification may be obtained from ftp.microsoft.com
in the developr/rfc directory.

The ietf task group has decided to recommend that the LCP sequence be
extended to permit the callback operation. For this reason, these
patches are not 'part' of pppd but are an adjunct to the code.

To enable CBCP support, all that is required is to change the
appropriate Makefile in the pppd subdirectory to add "-DCBCP_SUPPORT"
to the CFLAGS definition and add cbcp.o to the list of object files,
and then recompile pppd.  The patch below does this for Makefile.bsd
and Makefile.linux.


--------------------------------cut here-------------------------------
diff -r -c ppp-2.3.orig/pppd/Makefile.bsd ppp-2.3/pppd/Makefile.bsd
*** ppp-2.3.orig/pppd/Makefile.bsd	Tue Oct  8 13:33:33 1996
--- ppp-2.3/pppd/Makefile.bsd	Fri Apr 11 23:59:15 1997
***************
*** 4,14 ****
  # -D_BITYPES is for FreeBSD, which doesn't define anything to
  # tell us that u_int32_t gets defined if <sys/types.h> is included.
  # Remove for older *BSD systems for which this isn't true.
! CFLAGS+= -g -I.. -DHAVE_PATHS_H -D_BITYPES
  
  PROG=	pppd
  SRCS=	main.c magic.c fsm.c lcp.c ipcp.c upap.c chap.c md5.c ccp.c \
! 	demand.c auth.c options.c sys-bsd.c
  MAN=	pppd.cat8
  MAN8=	pppd.8
  BINMODE=4555
--- 4,14 ----
  # -D_BITYPES is for FreeBSD, which doesn't define anything to
  # tell us that u_int32_t gets defined if <sys/types.h> is included.
  # Remove for older *BSD systems for which this isn't true.
! CFLAGS+= -I.. -DHAVE_PATHS_H -D_BITYPES -DCBCP_SUPPORT
  
  PROG=	pppd
  SRCS=	main.c magic.c fsm.c lcp.c ipcp.c upap.c chap.c md5.c ccp.c \
! 	demand.c auth.c options.c sys-bsd.c cbcp.c
  MAN=	pppd.cat8
  MAN8=	pppd.8
  BINMODE=4555
diff -r -c ppp-2.3.orig/pppd/Makefile.linux ppp-2.3/pppd/Makefile.linux
*** ppp-2.3.orig/pppd/Makefile.linux	Tue Oct  8 15:42:41 1996
--- ppp-2.3/pppd/Makefile.linux	Sat Apr 12 00:02:28 1997
***************
*** 14,20 ****
  	   ipxcp.h cbcp.h
  MANPAGES = pppd.8
  PPPDOBJS = main.o magic.o fsm.o lcp.o ipcp.o upap.o chap.o md5.o ccp.o \
! 	   auth.o options.o demand.o sys-linux.o ipxcp.o
  
  all: pppd
  
--- 14,20 ----
  	   ipxcp.h cbcp.h
  MANPAGES = pppd.8
  PPPDOBJS = main.o magic.o fsm.o lcp.o ipcp.o upap.o chap.o md5.o ccp.o \
! 	   auth.o options.o demand.o sys-linux.o ipxcp.o cbcp.o
  
  all: pppd
  
***************
*** 36,42 ****
  #INCLUDE_DIRS= -I/usr/include -I..
  INCLUDE_DIRS=
  
! COMPILE_FLAGS= -D_linux_=1 -DHAVE_PATHS_H -DIPX_CHANGE
  
  CFLAGS= $(COPTS) $(COMPILE_FLAGS) $(INCLUDE_DIRS)
  
--- 36,42 ----
  #INCLUDE_DIRS= -I/usr/include -I..
  INCLUDE_DIRS=
  
! COMPILE_FLAGS= -D_linux_=1 -DHAVE_PATHS_H -DIPX_CHANGE -DCBCP_SUPPORT
  
  CFLAGS= $(COPTS) $(COMPILE_FLAGS) $(INCLUDE_DIRS)
  
