--- vtun-2.5b1/configure.in Thu Nov 8 10:04:44 2001 +++ vtun-2.5b1-p/configure.in Thu Nov 8 13:04:35 2001 @@ -166,6 +166,8 @@ AC_MSG_RESULT() +AC_CHECK_FUNCS([getpt grantpt unlockpt ptsname]) + OS_REL=`uname -r | tr -d '[A-Za-z\-\_\.]'` case $host_os in *linux*) --- vtun-2.5b1/generic/pty_dev.c Mon Nov 20 08:57:33 2000 +++ vtun-2.5b1-p/generic/pty_dev.c Thu Nov 8 10:11:44 2001 @@ -38,11 +38,27 @@ */ int pty_open(char *sl_name) { + int mr_fd; +#ifdef HAVE_GETPT && HAVE_GRANTPT && HAVE_UNLOCKPT && HAVE_PTSNAME + char *ptyname; + + if((mr_fd=getpt()) < 0) + return -1; + if(grantpt(mr_fd) != 0) + return -1; + if(unlockpt(mr_fd) != 0) + return -1; + if ((ptyname = (char*)ptsname(mr_fd)) == NULL) + return -1; + strcpy(sl_name, ptyname); + return mr_fd; + +#else + char ptyname[] = "/dev/ptyXY"; char ch[] = "pqrstuvwxyz"; char digit[] = "0123456789abcdefghijklmnopqrstuv"; int l, m; - int mr_fd; /* This algorithm should work for almost all standard Unices */ for(l=0; ch[l]; l++ ) { @@ -64,6 +80,7 @@ } } return -1; +#endif } /* Write frames to PTY device */