Remove Unixware and openserver support
This commit is contained in:
@@ -115,10 +115,6 @@ SYS_LIBRARIES = -lm -ldl -lgen -lresolv -lbsm -lcmd $(PAM_LIB)
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if defined(USLArchitecture)
|
||||
SYS_LIBRARIES = -lm -ldl -lgen -lresolv
|
||||
#endif
|
||||
|
||||
#if defined(RsArchitecture)
|
||||
SYS_LIBRARIES = -ls
|
||||
#endif
|
||||
@@ -167,14 +163,14 @@ INCLUDES = -I$(XPROJECTROOT)/include/freetype2
|
||||
dpylist.c error.c file.c mitauth.c protodpy.c policy.c \
|
||||
reset.c resource.c server.c session.c socket.c util.c \
|
||||
verify.c version.c apollo.c sysauth.c fontpath.c $(DESSRCS) \
|
||||
qualify.c usl_ptty.c choose.c netaddr.c xdmcp.c \
|
||||
qualify.c choose.c netaddr.c xdmcp.c \
|
||||
$(PAM_SRCS) $(SOLARIS_SRCS)
|
||||
|
||||
OBJS1 = access.o account.o auth.o genauth.o daemon.o dm.o \
|
||||
dpylist.o error.o file.o mitauth.o protodpy.o policy.o \
|
||||
reset.o resource.o server.o session.o socket.o util.o \
|
||||
verify.o version.o apollo.o sysauth.o fontpath.o $(DESOBJS) \
|
||||
qualify.o usl_ptty.o choose.o netaddr.o xdmcp.o \
|
||||
qualify.o choose.o netaddr.o xdmcp.o \
|
||||
$(PAM_OBJS) $(SOLARIS_OBJS)
|
||||
|
||||
PROG2 = dtgreet
|
||||
@@ -322,22 +318,6 @@ EXTRA_RES_DEFINES = \
|
||||
LOCAL_LIBRARIES2 = $(BASE_LIBS2)
|
||||
LOCAL_LIBRARIES3 = $(BASE_LIBS3)
|
||||
|
||||
|
||||
/* USL needs to resolve all Xt symbols invoked by Xmu at shared
|
||||
* library link time.
|
||||
* Likewise for the BMS references from libDt for vuegreet.
|
||||
*/
|
||||
#if defined(USLArchitecture)
|
||||
# if HasSharedLibraries
|
||||
BASE_LIBS1 = $(XAUTHLIB) $(LOGINXMULIB) $(XDMCPLIB) $(XTOOLLIB) \
|
||||
$(LOGINXLIB)
|
||||
BASE_LIBS2 = $(DTWIDGETLIB) $(DTSVCLIB) $(TTLIB) \
|
||||
$(XMLIB) $(XTOOLLIB) $(XLIB)
|
||||
# endif
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
/**************************************************************************
|
||||
*
|
||||
* Extra things for the HP-UX BLS version
|
||||
|
||||
@@ -131,9 +131,6 @@ extern int errno;
|
||||
#ifdef SVR4
|
||||
# include <netdb.h>
|
||||
# include <sys/sockio.h>
|
||||
#ifdef USL
|
||||
# include <sys/stropts.h>
|
||||
#endif
|
||||
#endif
|
||||
#ifdef __convex__
|
||||
# include <sync/queue.h>
|
||||
@@ -784,35 +781,6 @@ DefineLocal (FILE *file, Xauth *auth)
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef USL
|
||||
/* Deal with different SIOCGIFCONF ioctl semantics on UnixWare */
|
||||
static int
|
||||
ifioctl (int fd, int cmd, char *arg)
|
||||
{
|
||||
struct strioctl ioc;
|
||||
int ret;
|
||||
|
||||
bzero((char *) &ioc, sizeof(ioc));
|
||||
ioc.ic_cmd = cmd;
|
||||
ioc.ic_timout = 0;
|
||||
if (cmd == SIOCGIFCONF)
|
||||
{
|
||||
ioc.ic_len = ((struct ifconf *) arg)->ifc_len;
|
||||
ioc.ic_dp = ((struct ifconf *) arg)->ifc_buf;
|
||||
}
|
||||
else
|
||||
{
|
||||
ioc.ic_len = sizeof(struct ifreq);
|
||||
ioc.ic_dp = arg;
|
||||
}
|
||||
ret = ioctl(fd, I_STR, (char *) &ioc);
|
||||
if (ret >= 0 && cmd == SIOCGIFCONF)
|
||||
((struct ifconf *) arg)->ifc_len = ioc.ic_len;
|
||||
return(ret);
|
||||
}
|
||||
#endif /* USL */
|
||||
|
||||
|
||||
#ifdef WINTCP /* NCR with Wollongong TCP */
|
||||
|
||||
#include <sys/un.h>
|
||||
@@ -920,11 +888,7 @@ DefineSelf (fd, file, auth)
|
||||
ifc.ifc_len = sizeof (buf);
|
||||
ifc.ifc_buf = buf;
|
||||
|
||||
#ifdef USL
|
||||
if (ifioctl (fd, SIOCGIFCONF, (char *) &ifc) < 0)
|
||||
#else
|
||||
if (ioctl (fd, SIOCGIFCONF, (char *) &ifc) < 0)
|
||||
#endif
|
||||
#ifdef __osf__
|
||||
switch (addr_family)
|
||||
{
|
||||
|
||||
@@ -452,113 +452,6 @@ Dtlogin*tr_TR.ISO8859-9.languageName: %|nls-447-#Turkish#|
|
||||
|
||||
#endif /* __osf__ */
|
||||
|
||||
#if defined (USL)
|
||||
!!######################################################################
|
||||
!!
|
||||
!! LANGUAGE MENU NAME MAPPINGS
|
||||
|
||||
#undef C
|
||||
XCOMM undef C
|
||||
|
||||
Dtlogin*C.languageName: %|nls-600-##|
|
||||
Dtlogin*POSIX.languageName: %|nls-601-##|
|
||||
Dtlogin*da.languageName: %|nls-602-##|
|
||||
Dtlogin*da_DK.850.languageName: %|nls-603-##|
|
||||
Dtlogin*da_DK.865.languageName: %|nls-604-##|
|
||||
Dtlogin*de.languageName: %|nls-605-##|
|
||||
Dtlogin*de_DE.437.languageName: %|nls-606-##|
|
||||
Dtlogin*de_DE.850.languageName: %|nls-607-##|
|
||||
Dtlogin*de_AT.languageName: %|nls-608-##|
|
||||
Dtlogin*de_AT.437.languageName: %|nls-609-##|
|
||||
Dtlogin*de_AT.850.languageName: %|nls-610-##|
|
||||
Dtlogin*de_CH.languageName: %|nls-611-##|
|
||||
Dtlogin*de_CH.437.languageName: %|nls-612-##|
|
||||
Dtlogin*de_CH.850.languageName: %|nls-613-##|
|
||||
Dtlogin*el.languageName: %|nls-614-##|
|
||||
Dtlogin*en.languageName: %|nls-615-##|
|
||||
Dtlogin*en_GB.437.languageName: %|nls-616-##|
|
||||
Dtlogin*en_GB.646.languageName: %|nls-617-##|
|
||||
Dtlogin*en_GB.850.languageName: %|nls-618-##|
|
||||
Dtlogin*en_AU.languageName: %|nls-619-##|
|
||||
Dtlogin*en_AU.437.languageName: %|nls-620-##|
|
||||
Dtlogin*en_AU.646.languageName: %|nls-621-##|
|
||||
Dtlogin*en_AU.850.languageName: %|nls-622-##|
|
||||
Dtlogin*en_CA.languageName: %|nls-623-##|
|
||||
Dtlogin*en_CA.437.languageName: %|nls-624-##|
|
||||
Dtlogin*en_CA.646.languageName: %|nls-625-##|
|
||||
Dtlogin*en_CA.850.languageName: %|nls-626-##|
|
||||
Dtlogin*en_IR.languageName: %|nls-627-##|
|
||||
Dtlogin*en_IR.437.languageName: %|nls-628-##|
|
||||
Dtlogin*en_IR.850.languageName: %|nls-629-##|
|
||||
Dtlogin*en_IR.646.languageName: %|nls-630-##|
|
||||
Dtlogin*en_NZ.languageName: %|nls-631-##|
|
||||
Dtlogin*en_NZ.437.languageName: %|nls-632-##|
|
||||
Dtlogin*en_NZ.850.languageName: %|nls-633-##|
|
||||
Dtlogin*en_NZ.646.languageName: %|nls-634-##|
|
||||
Dtlogin*en_US.languageName: %|nls-635-##|
|
||||
Dtlogin*en_US.437.languageName: %|nls-636-##|
|
||||
Dtlogin*en_US.646.languageName: %|nls-637-##|
|
||||
Dtlogin*en_US.850.languageName: %|nls-638-##|
|
||||
Dtlogin*es.languageName: %|nls-639-##|
|
||||
Dtlogin*es_ES.437.languageName: %|nls-640-##|
|
||||
Dtlogin*es_ES.850.languageName: %|nls-641-##|
|
||||
Dtlogin*es_AR.languageName: %|nls-642-##|
|
||||
Dtlogin*es_AR.437.languageName: %|nls-643-##|
|
||||
Dtlogin*es_AR.850.languageName: %|nls-644-##|
|
||||
Dtlogin*es_CL.languageName: %|nls-645-##|
|
||||
Dtlogin*es_CL.437.languageName: %|nls-646-##|
|
||||
Dtlogin*es_CL.850.languageName: %|nls-647-##|
|
||||
Dtlogin*es_MX.languageName: %|nls-648-##|
|
||||
Dtlogin*es_MX.437.languageName: %|nls-649-##|
|
||||
Dtlogin*es_MX.850.languageName: %|nls-650-##|
|
||||
Dtlogin*es_VE.languageName: %|nls-651-##|
|
||||
Dtlogin*es_VE.437.languageName: %|nls-652-##|
|
||||
Dtlogin*es_VE.850.languageName: %|nls-653-##|
|
||||
Dtlogin*fi.languageName: %|nls-654-##|
|
||||
Dtlogin*fi_FI.437.languageName: %|nls-655-##|
|
||||
Dtlogin*fi_FI.850.languageName: %|nls-656-##|
|
||||
Dtlogin*fr.languageName: %|nls-657-##|
|
||||
Dtlogin*fr_FR.437.languageName: %|nls-658-##|
|
||||
Dtlogin*fr_FR.850.languageName: %|nls-659-##|
|
||||
Dtlogin*fr_BE.languageName: %|nls-660-##|
|
||||
Dtlogin*fr_BE.437.languageName: %|nls-661-##|
|
||||
Dtlogin*fr_BE.850.languageName: %|nls-662-##|
|
||||
Dtlogin*fr_CA.languageName: %|nls-663-##|
|
||||
Dtlogin*fr_CA.850.languageName: %|nls-664-##|
|
||||
Dtlogin*fr_CA.863.languageName: %|nls-665-##|
|
||||
Dtlogin*fr_CH.languageName: %|nls-666-##|
|
||||
Dtlogin*fr_CH.437.languageName: %|nls-667-##|
|
||||
Dtlogin*fr_CH.850.languageName: %|nls-668-##|
|
||||
Dtlogin*is.languageName: %|nls-669-##|
|
||||
Dtlogin*is_IS.850.languageName: %|nls-670-##|
|
||||
Dtlogin*it.languageName: %|nls-671-##|
|
||||
Dtlogin*it_IT.437.languageName: %|nls-672-##|
|
||||
Dtlogin*it_IT.850.languageName: %|nls-673-##|
|
||||
Dtlogin*it_CH.languageName: %|nls-674-##|
|
||||
Dtlogin*it_CH.437.languageName: %|nls-675-##|
|
||||
Dtlogin*it_CH.850.languageName: %|nls-676-##|
|
||||
Dtlogin*ja.languageName: %|nls-677-##|
|
||||
Dtlogin*ja_JP.EUC.languageName: %|nls-678-##|
|
||||
Dtlogin*nl.languageName: %|nls-679-##|
|
||||
Dtlogin*nl_NL.437.languageName: %|nls-680-##|
|
||||
Dtlogin*nl_NL.850.languageName: %|nls-681-##|
|
||||
Dtlogin*nl_BE.languageName: %|nls-682-##|
|
||||
Dtlogin*nl_BE.437.languageName: %|nls-683-##|
|
||||
Dtlogin*nl_BE.850.languageName: %|nls-684-##|
|
||||
Dtlogin*no.languageName: %|nls-685-##|
|
||||
Dtlogin*no_NO.850.languageName: %|nls-686-##|
|
||||
Dtlogin*no_NO.865.languageName: %|nls-687-##|
|
||||
Dtlogin*pt.languageName: %|nls-688-##|
|
||||
Dtlogin*pt_BR.languageName: %|nls-689-##|
|
||||
Dtlogin*pt_PT.850.languageName: %|nls-690-##|
|
||||
Dtlogin*pt_PT.860.languageName: %|nls-691-##|
|
||||
Dtlogin*sv.languageName: %|nls-692-##|
|
||||
Dtlogin*sv_SE.437.languageName: %|nls-693-##|
|
||||
Dtlogin*sv_SE.850.languageName: %|nls-694-##|
|
||||
|
||||
#endif /* USL */
|
||||
|
||||
|
||||
|
||||
!!######################################################################
|
||||
!!
|
||||
|
||||
@@ -357,7 +357,7 @@ XCOMM ##########################################################################
|
||||
dtdbcacherm="rm -f /tmp/dtdbcache_$DISPLAY"
|
||||
#endif
|
||||
dtstart_appgather="$DT_BINPATH/dtappgather &"
|
||||
#if defined(USL) || defined(sun)
|
||||
#if defined(sun)
|
||||
dtstart_dsdm="$DT_BINPATH/dsdm &"
|
||||
#endif
|
||||
|
||||
@@ -564,7 +564,7 @@ StartFirst()
|
||||
tooltalk=$(GetFirst dtstart_ttsession) # get tooltalk client
|
||||
dtdbcache=$(GetFirst dtstart_dtdbcache) # get dtdbcache client
|
||||
|
||||
#if defined(USL) || defined(sun)
|
||||
#if defined(sun)
|
||||
if [ -z "$SDT_NO_DSDM" ]; then
|
||||
StartFirst dtstart_dsdm # start drag and drop proxy
|
||||
fi
|
||||
|
||||
@@ -34,8 +34,6 @@
|
||||
HASH
|
||||
#if defined (__osf__) || defined(__OpenBSD__) || defined(__NetBSD__)
|
||||
pexec=$(LC_TIME=C ps -p $PPID | awk 'NR==2 {print $5}')
|
||||
#elif defined(USL) && (OSMAJORVERSION > 1)
|
||||
pexec=$(LC_TIME=C ps -p $PPID | awk 'NR==2 {print $6}')
|
||||
#elif defined(linux)
|
||||
pexec=$(LC_TIME=C /bin/ps -p $PPID 2>/dev/null | awk 'NR==2 {print $4}')
|
||||
#elif defined(__FreeBSD__)
|
||||
|
||||
@@ -85,18 +85,6 @@
|
||||
#define sigmask(m) (1 << (( m-1)))
|
||||
#endif
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
*
|
||||
* External variable declarations
|
||||
*
|
||||
***************************************************************************/
|
||||
|
||||
#if defined(USL)
|
||||
extern int makepttypair ();
|
||||
#endif
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
*
|
||||
* Local procedure declarations
|
||||
@@ -182,15 +170,6 @@ main( int argc, char **argv )
|
||||
if ( (progName = malloc(strlen(argv[0]) + 1)) != NULL )
|
||||
strcpy(progName, argv[0]);
|
||||
|
||||
#if defined(USL)
|
||||
/* create master slave pair for use in login */
|
||||
if (makepttypair () < 0)
|
||||
{
|
||||
Debug ("Could not create pty for use in login");
|
||||
exit (1);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
* Step 1 - load configuration parameters
|
||||
|
||||
@@ -117,8 +117,6 @@
|
||||
#define DEF_NLS_DIR "/usr/lib/nls/loc"
|
||||
#elif defined(hpV4)
|
||||
#define DEF_NLS_DIR "/usr/lib/nls/msg"
|
||||
#elif defined(USL)
|
||||
#define DEF_NLS_DIR "/usr/lib/locale"
|
||||
#else
|
||||
#define DEF_NLS_DIR CDE_INSTALLATION_TOP "/lib/nls/msg"
|
||||
#endif
|
||||
|
||||
@@ -1625,8 +1625,6 @@ StartClient( struct verify_info *verify, struct display *d, int *pidp )
|
||||
failsafeArgv[i++] = "/usr/bin/X11/aixterm";
|
||||
#elif defined(sun)
|
||||
failsafeArgv[i++] = "/usr/openwin/bin/xterm";
|
||||
#elif defined (USL)
|
||||
failsafeArgv[i++] = "/usr/X/bin/xterm";
|
||||
#elif defined(__hpux)
|
||||
failsafeArgv[i++] = "/usr/bin/X11/hpterm";
|
||||
#elif defined(__OpenBSD__)
|
||||
|
||||
@@ -67,8 +67,7 @@
|
||||
** __apollo Domain OS only
|
||||
** __hp_osf HP OSF/1 OS only
|
||||
** sun SUN OS only
|
||||
** USL USL OS only
|
||||
** SVR4 SUN OS and USL
|
||||
** SVR4 SUN OS et al.
|
||||
** _AIX AIX only
|
||||
** _POWER AIX version 4 only
|
||||
**
|
||||
@@ -109,10 +108,6 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(USL)
|
||||
#include <iaf.h>
|
||||
#endif
|
||||
|
||||
#include "dm.h"
|
||||
#include "vg.h"
|
||||
#include "vgmsg.h"
|
||||
@@ -124,8 +119,7 @@
|
||||
#if !(defined(__hpux) || \
|
||||
defined(__apollo) || \
|
||||
defined(_AIX) || \
|
||||
defined(sun) || \
|
||||
defined(USL))
|
||||
defined(sun))
|
||||
#define generic
|
||||
#endif
|
||||
|
||||
@@ -1809,209 +1803,6 @@ tsm_check_login(uid_t uid)
|
||||
***************************************************************************/
|
||||
|
||||
|
||||
#if defined(USL)
|
||||
/***************************************************************************
|
||||
*
|
||||
* Start authentication routines (USL)
|
||||
*
|
||||
***************************************************************************/
|
||||
|
||||
|
||||
#define LOGIN_SUCCESS 0
|
||||
#define LOGIN_FAIL 1
|
||||
#define INACTIVE 2
|
||||
#define EXPIRED 3
|
||||
#define IDLEWEEKS 4
|
||||
#define MANDATORY 5
|
||||
#define AGED 6
|
||||
#define BADSHELL 7
|
||||
#define NOHOME 8
|
||||
#define PFLAG 11
|
||||
|
||||
/***************************************************************************
|
||||
*
|
||||
* External declarations (USL)
|
||||
*
|
||||
***************************************************************************/
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
*
|
||||
* Procedure declarations (USL)
|
||||
*
|
||||
***************************************************************************/
|
||||
|
||||
|
||||
static void Audit( struct passwd *p, char *msg, int errnum) ;
|
||||
static int PasswordAged( register struct passwd *pw) ;
|
||||
static void WriteBtmp( char *name) ;
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
*
|
||||
* Global variables (USL)
|
||||
*
|
||||
***************************************************************************/
|
||||
|
||||
extern int Slaveptty_fd;
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
*
|
||||
* Audit (USL)
|
||||
*
|
||||
***************************************************************************/
|
||||
|
||||
static void
|
||||
Audit( struct passwd *p, char *msg, int errnum )
|
||||
{
|
||||
|
||||
/*
|
||||
* make sure program is back to super-user...
|
||||
*/
|
||||
|
||||
seteuid(0);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
*
|
||||
* WriteBtmp (USL)
|
||||
*
|
||||
* log bad login attempts
|
||||
*
|
||||
***************************************************************************/
|
||||
|
||||
static void
|
||||
WriteBtmp( char *name )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
*
|
||||
* Authenticate (USL)
|
||||
*
|
||||
* verify the user
|
||||
*
|
||||
* return codes indicate authentication results.
|
||||
***************************************************************************/
|
||||
|
||||
#define MAXATTEMPTS 3
|
||||
|
||||
int
|
||||
Authenticate( struct display *d, char *name, char *passwd, char **msg )
|
||||
{
|
||||
|
||||
int ret;
|
||||
char **ava, *tty;
|
||||
char *p;
|
||||
char xlogname[137];
|
||||
char xpasswd[137];
|
||||
char xtty[137];
|
||||
|
||||
char *origpw;
|
||||
|
||||
/*
|
||||
* Nothing to do if no name provided.
|
||||
*/
|
||||
if (!name)
|
||||
return(VF_INVALID);
|
||||
|
||||
/*
|
||||
* Save provided password.
|
||||
*/
|
||||
origpw = passwd;
|
||||
if (!passwd) passwd = "";
|
||||
|
||||
/*
|
||||
* Put the logname and the passwd on the ava stream
|
||||
*/
|
||||
if ((ret = dup2 (Slaveptty_fd, 0)) == -1)
|
||||
Debug ("Problem with dup2\n");
|
||||
|
||||
ava = retava(Slaveptty_fd);
|
||||
|
||||
(void) bzero (xlogname, strlen (xlogname));
|
||||
(void) sprintf (xlogname, "XLOGNAME=%s", name);
|
||||
if ((ava = putava (xlogname, ava)) == NULL)
|
||||
{
|
||||
Debug ("Could not set logname ava\n");
|
||||
}
|
||||
|
||||
(void) bzero (xpasswd, strlen (xpasswd));
|
||||
(void) sprintf (xpasswd, "XPASSWD=%s", passwd);
|
||||
if ((ava = putava (xpasswd, ava)) == NULL)
|
||||
{
|
||||
Debug ("Could not set passwd ava\n");
|
||||
}
|
||||
|
||||
(void) bzero (xtty, strlen (xtty));
|
||||
(void) sprintf (xtty, "XTTY=%s", ttyname(Slaveptty_fd));
|
||||
if ((ava = putava (xtty, ava)) == NULL)
|
||||
{
|
||||
Debug ("Could not set tty ava\n");
|
||||
}
|
||||
|
||||
if (setava (Slaveptty_fd, ava) != 0)
|
||||
{
|
||||
Debug ("Could not do setava\n");
|
||||
}
|
||||
|
||||
/*
|
||||
* invoke identification and authorizarion scheme
|
||||
*/
|
||||
|
||||
switch (ret = invoke (Slaveptty_fd, "login"))
|
||||
{
|
||||
|
||||
case LOGIN_SUCCESS:
|
||||
Audit(p, " Successful login", 0);
|
||||
return(VF_OK);
|
||||
case LOGIN_FAIL:
|
||||
return(origpw ? VF_INVALID : VF_CHALLENGE);
|
||||
|
||||
/* The next three cases need to define special return values */
|
||||
/* for the aged passwords and accounts. */
|
||||
|
||||
case INACTIVE:
|
||||
case IDLEWEEKS:
|
||||
/* PasswdAged (linfo); */
|
||||
return(VF_PASSWD_AGED);
|
||||
case EXPIRED: /* SS */
|
||||
/* AccountAged (linfo); */
|
||||
return(VF_PASSWD_AGED);
|
||||
|
||||
/* These 3 cases should allow user to select a new password */
|
||||
/* after displaying a warning, but current implementation */
|
||||
/* only displays the warning. */
|
||||
|
||||
case MANDATORY:
|
||||
case PFLAG:
|
||||
case AGED:
|
||||
return(VF_PASSWD_AGED);
|
||||
default:
|
||||
return(VF_INVALID); /* SS */
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
*
|
||||
* End authentication routines (USL)
|
||||
*
|
||||
***************************************************************************/
|
||||
#endif /* USL */
|
||||
|
||||
#ifdef generic
|
||||
/***************************************************************************
|
||||
*
|
||||
|
||||
@@ -1,160 +0,0 @@
|
||||
/*
|
||||
* CDE - Common Desktop Environment
|
||||
*
|
||||
* Copyright (c) 1993-2012, The Open Group. All rights reserved.
|
||||
*
|
||||
* These libraries and programs are free software; you can
|
||||
* redistribute them and/or modify them under the terms of the GNU
|
||||
* Lesser General Public License as published by the Free Software
|
||||
* Foundation; either version 2 of the License, or (at your option)
|
||||
* any later version.
|
||||
*
|
||||
* These libraries and programs are distributed in the hope that
|
||||
* they will be useful, but WITHOUT ANY WARRANTY; without even the
|
||||
* implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. See the GNU Lesser General Public License for more
|
||||
* details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with these libraries and programs; if not, write
|
||||
* to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
|
||||
* Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
/* $XConsortium: usl_ptty.c /main/3 1995/10/27 16:16:16 rswiston $ */
|
||||
/* *
|
||||
* (c) Copyright 1993, 1994 Hewlett-Packard Company *
|
||||
* (c) Copyright 1993, 1994 International Business Machines Corp. *
|
||||
* (c) Copyright 1993, 1994 Sun Microsystems, Inc. *
|
||||
* (c) Copyright 1993, 1994 Novell, Inc. *
|
||||
*/
|
||||
/* usl_ptty.c: routines to perform USL's password authentication */
|
||||
|
||||
#include <stdio.h> /* just so file isn't empty */
|
||||
|
||||
#if defined (USL)
|
||||
|
||||
#include <sys/byteorder.h>
|
||||
#include <termio.h>
|
||||
#include <stropts.h>
|
||||
#include <sys/stream.h>
|
||||
#include <fcntl.h>
|
||||
#include <utmpx.h>
|
||||
#include <sys/types.h>
|
||||
#include <pwd.h>
|
||||
#include <errno.h>
|
||||
#include <stdio.h>
|
||||
#include <rx.h>
|
||||
|
||||
|
||||
/* system calls */
|
||||
|
||||
extern int close();
|
||||
extern int ioctl();
|
||||
extern int getmsg();
|
||||
|
||||
|
||||
/* externally defined routines */
|
||||
|
||||
extern int grantpt();
|
||||
extern int unlockpt();
|
||||
extern char *ptsname();
|
||||
extern char *strncpy();
|
||||
|
||||
|
||||
|
||||
/* externally defined global variables */
|
||||
|
||||
int Termios_received = 0; /* received termios structure flag */
|
||||
struct termios Termios; /* termios buffer */
|
||||
|
||||
#define RX_SLAVENAMELEN 32
|
||||
|
||||
|
||||
/* locally defined global variables */
|
||||
|
||||
int Ptty_open; /* ptty open flag */
|
||||
int Ptty_fd; /* master ptty fd */
|
||||
int Slaveptty_fd; /* slave ptty fd */
|
||||
char Slaveptty_name[RX_SLAVENAMELEN]; /* slave ptty device file name */
|
||||
|
||||
|
||||
/*
|
||||
* makepttypair()
|
||||
*
|
||||
* This function creates and opens a master/slave pair of pseudo ttys.
|
||||
* It returns 0 for success, -1 for failure
|
||||
*
|
||||
*/
|
||||
|
||||
int
|
||||
makepttypair()
|
||||
{
|
||||
char *ttyname; /* file name of slave pseudo tty */
|
||||
pid_t mypid = getpid(); /* my process id */
|
||||
struct passwd *pwp; /* password file entry */
|
||||
|
||||
Debug("makettypair\n");
|
||||
if ((Ptty_fd = open("/dev/ptmx", O_RDWR)) == -1) {
|
||||
Debug ("ptty: open ptmx failed, errno = %d\n", errno);
|
||||
return(-1);
|
||||
}
|
||||
if (grantpt(Ptty_fd) == -1) {
|
||||
Debug ("ptty: grantpt failed\n");
|
||||
return(-1);
|
||||
}
|
||||
if (unlockpt(Ptty_fd) == -1) {
|
||||
Debug ("ptty: unlockpt failed\n");
|
||||
return(-1);
|
||||
}
|
||||
if ((ttyname = ptsname(Ptty_fd)) == NULL) {
|
||||
Debug ("ptty: ptsname failed\n");
|
||||
return(-1);
|
||||
}
|
||||
(void) strncpy(Slaveptty_name, ttyname, RX_SLAVENAMELEN);
|
||||
if ((Slaveptty_fd = open(Slaveptty_name, O_RDWR)) == -1) {
|
||||
Debug ("ptty: could not open pts %s, errno = %d\n",
|
||||
Slaveptty_name, errno);
|
||||
return(-1);
|
||||
}
|
||||
|
||||
if (ioctl(Slaveptty_fd, I_PUSH, "ptem") == -1) {
|
||||
Debug ("ptty: push ptem failed\n");
|
||||
return(-1);
|
||||
}
|
||||
if (ioctl(Slaveptty_fd, I_PUSH, "ldterm") == -1) {
|
||||
Debug ("ptty: push ldterm failed\n");
|
||||
return(-1);
|
||||
}
|
||||
|
||||
/*
|
||||
* Note that since the following ioctl() is performed
|
||||
* before the pckt module is pushed, it will not be sent back
|
||||
* to the client. This is what we want.
|
||||
*
|
||||
*/
|
||||
|
||||
if (Termios_received)
|
||||
if (ioctl(Slaveptty_fd, TCSETS, &Termios) == -1) {
|
||||
Debug ("ptty: TCSETS failed\n");
|
||||
return(-1);
|
||||
}
|
||||
|
||||
if (ioctl(Ptty_fd, I_PUSH, "pckt") == -1) {
|
||||
Debug ("ptty: push pckt failed\n");
|
||||
return(-1);
|
||||
}
|
||||
|
||||
/* disable ldterm input processing on server end */
|
||||
if (ioctl(Ptty_fd, TIOCREMOTE, 1) == -1) {
|
||||
Debug ("ptty: ioctl(TIOCREMOTE) failed\n");
|
||||
return(-1);
|
||||
}
|
||||
|
||||
Ptty_open = 1;
|
||||
|
||||
Debug ("ptty: pttys created\n");
|
||||
|
||||
return(0);
|
||||
}
|
||||
|
||||
#endif /* USL */
|
||||
@@ -349,9 +349,7 @@ CleanUpChild( void )
|
||||
sigsetmask(0);
|
||||
#else
|
||||
#if defined (SYSV) || defined (SVR4) || defined(linux)
|
||||
#if !defined (USL)
|
||||
setpgrp ();
|
||||
#endif /* USL */
|
||||
#else
|
||||
setpgrp (0, getpid ());
|
||||
sigsetmask (0);
|
||||
@@ -951,83 +949,7 @@ ScanNLSDir(char *dirname)
|
||||
}
|
||||
#endif /* __osf__obsoleted__ */
|
||||
|
||||
#elif defined(USL)
|
||||
|
||||
#define LC_COLLATE "LC_COLLATE"
|
||||
#define LC_CTYPE "LC_CTYPE"
|
||||
#define LC_MESSAGES "LC_MESSAGES"
|
||||
#define LC_MONETARY "LC_MONETARY"
|
||||
#define LC_NUMERIC "LC_NUMERIC"
|
||||
#define LC_TIME "LC_TIME"
|
||||
|
||||
/*
|
||||
* Scan for installed locales on Novell/SCO platforms.
|
||||
*/
|
||||
{
|
||||
DIR *nls_dirp, *locale_dirp;
|
||||
struct dirent *dp;
|
||||
char* locale;
|
||||
char locale_path[MAXPATHLEN];
|
||||
struct stat locale_stat;
|
||||
int retval;
|
||||
|
||||
/*
|
||||
* To determin the fully installed locale list, check several locations.
|
||||
*/
|
||||
if((nls_dirp = opendir(dirname)) != NULL)
|
||||
{
|
||||
while((dp = readdir(nls_dirp)) != NULL)
|
||||
{
|
||||
int is_locale = 0;
|
||||
|
||||
locale = dp->d_name;
|
||||
|
||||
/*
|
||||
* A locale is indicated by a directory which has one or more
|
||||
* of the following subdirectories:
|
||||
* LC_COLLATE
|
||||
* LC_CTYPE
|
||||
* LC_MESSAGES
|
||||
* LC_MONETARY
|
||||
* LC_NUMERIC
|
||||
* LC_TIME
|
||||
*/
|
||||
(void) sprintf(locale_path, "%s/%s", dirname, locale);
|
||||
retval = stat(locale_path, &locale_stat);
|
||||
if ( (0 != retval) || (! S_ISDIR(locale_stat.st_mode)) )
|
||||
continue;
|
||||
|
||||
if (NULL == (locale_dirp = opendir(locale_path)) )
|
||||
continue;
|
||||
|
||||
is_locale = FALSE;
|
||||
while (NULL != (dp = readdir(locale_dirp)) &&
|
||||
FALSE == is_locale)
|
||||
{
|
||||
if ((0 == strcmp(dp->d_name, LC_COLLATE)) ||
|
||||
(0 == strcmp(dp->d_name, LC_CTYPE)) ||
|
||||
(0 == strcmp(dp->d_name, LC_MESSAGES)) ||
|
||||
(0 == strcmp(dp->d_name, LC_MONETARY)) ||
|
||||
(0 == strcmp(dp->d_name, LC_NUMERIC)) ||
|
||||
(0 == strcmp(dp->d_name, LC_TIME)) )
|
||||
is_locale = 1;
|
||||
}
|
||||
|
||||
closedir(locale_dirp);
|
||||
|
||||
if (is_locale &&
|
||||
LANGLISTSIZE > (int) (strlen(languageList)+strlen(locale)+2) )
|
||||
{
|
||||
strcat(languageList, " ");
|
||||
strcat(languageList, locale);
|
||||
}
|
||||
}
|
||||
|
||||
closedir(nls_dirp);
|
||||
}
|
||||
}
|
||||
|
||||
#else /* !_AIX && !hpV4 && !__osf__ !sun && !USL */
|
||||
#else /* !_AIX && !hpV4 && !__osf__ !sun */
|
||||
/*
|
||||
* Scan for installed locales on generic platform
|
||||
*/
|
||||
|
||||
@@ -67,8 +67,7 @@
|
||||
** __apollo Domain OS only
|
||||
** __hp_osf HP OSF/1 OS only
|
||||
** sun SUN OS only
|
||||
** USL USL OS only
|
||||
** SVR4 SUN OS and USL
|
||||
** SVR4 SUN OS et al.
|
||||
** _AIX AIX only
|
||||
**
|
||||
****************************************************************************
|
||||
|
||||
Reference in New Issue
Block a user