summaryrefslogtreecommitdiffstats
path: root/sal/osl/os2/security.c
diff options
context:
space:
mode:
Diffstat (limited to 'sal/osl/os2/security.c')
-rw-r--r--sal/osl/os2/security.c315
1 files changed, 0 insertions, 315 deletions
diff --git a/sal/osl/os2/security.c b/sal/osl/os2/security.c
deleted file mode 100644
index c0e7f5ae8e4f..000000000000
--- a/sal/osl/os2/security.c
+++ /dev/null
@@ -1,315 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it 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 version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-
-#include "system.h"
-
-#include <osl/security.h>
-#include <osl/diagnose.h>
-#include <osl/module.h>
-
-#include "osl/thread.h"
-#include "osl/file.h"
-
-#ifdef SOLARIS
-#include <crypt.h>
-#endif
-
-#include "secimpl.h"
-
-extern oslModule SAL_CALL osl_psz_loadModule(const sal_Char *pszModuleName, sal_Int32 nRtldMode);
-extern void* SAL_CALL osl_psz_getSymbol(oslModule hModule, const sal_Char* pszSymbolName);
-extern oslSecurityError SAL_CALL
-osl_psz_loginUser(const sal_Char* pszUserName, const sal_Char* pszPasswd,
- oslSecurity* pSecurity);
-sal_Bool SAL_CALL osl_psz_getUserIdent(oslSecurity Security, sal_Char *pszIdent, sal_uInt32 nMax);
-sal_Bool SAL_CALL osl_psz_getUserName(oslSecurity Security, sal_Char* pszName, sal_uInt32 nMax);
-sal_Bool SAL_CALL osl_psz_getHomeDir(oslSecurity Security, sal_Char* pszDirectory, sal_uInt32 nMax);
-sal_Bool SAL_CALL osl_psz_getConfigDir(oslSecurity Security, sal_Char* pszDirectory, sal_uInt32 nMax);
-
-
-
-oslSecurity SAL_CALL osl_getCurrentSecurity()
-{
-
- oslSecurityImpl *pSecImpl = (oslSecurityImpl*) malloc(sizeof(oslSecurityImpl));
- struct passwd *pPasswd = getpwuid(getuid());
-
- if (pPasswd)
- {
- memcpy(&pSecImpl->m_pPasswd, pPasswd, sizeof(pSecImpl->m_pPasswd));
- pSecImpl->m_isValid = sal_True;
- }
- else
- {
- /* Some UNIX-OS don't implement getpwuid, e.g. NC OS (special NetBSD) 1.2.1 */
- /* so we have to catch this in this else branch */
- pSecImpl->m_pPasswd.pw_name = getenv("USER");
- pSecImpl->m_pPasswd.pw_dir = getenv("HOME");
- if (pSecImpl->m_pPasswd.pw_name && pSecImpl->m_pPasswd.pw_dir)
- pSecImpl->m_isValid = sal_True;
- else
- {
- pSecImpl->m_pPasswd.pw_name = "unknown";
- pSecImpl->m_pPasswd.pw_dir = "/tmp";
- pSecImpl->m_isValid = sal_False;
- }
- pSecImpl->m_pPasswd.pw_passwd = NULL;
- pSecImpl->m_pPasswd.pw_uid = getuid();
- pSecImpl->m_pPasswd.pw_gid = getgid();
- pSecImpl->m_pPasswd.pw_gecos = "unknown";
- pSecImpl->m_pPasswd.pw_shell = "unknown";
- }
-
-
- return ((oslSecurity)pSecImpl);
-}
-
-
-oslSecurityError SAL_CALL osl_loginUser(
- rtl_uString *ustrUserName,
- rtl_uString *ustrPassword,
- oslSecurity *pSecurity
- )
-{
- oslSecurityError ret;
-
- *pSecurity = osl_getCurrentSecurity();
- ret = osl_Security_E_None;
-
- return ret;
-}
-
-
-
-oslSecurityError SAL_CALL osl_loginUserOnFileServer(
- rtl_uString *strUserName,
- rtl_uString *strPasswd,
- rtl_uString *strFileServer,
- oslSecurity *pSecurity
- )
-{
- oslSecurityError erg;
- return erg = osl_Security_E_UserUnknown;
-}
-
-
-oslSecurityError SAL_CALL osl_psz_loginUserOnFileServer( const sal_Char* pszUserName,
- const sal_Char* pszPasswd,
- const sal_Char* pszFileServer,
- oslSecurity* pSecurity )
-{
- oslSecurityError erg;
- return erg = osl_Security_E_UserUnknown;
-}
-
-sal_Bool SAL_CALL osl_getUserIdent(oslSecurity Security, rtl_uString **ustrIdent)
-{
- sal_Bool bRet=sal_False;
- sal_Char pszIdent[1024];
-
- pszIdent[0] = '\0';
-
- bRet = osl_psz_getUserIdent(Security,pszIdent,sizeof(pszIdent));
-
- rtl_string2UString( ustrIdent, pszIdent, rtl_str_getLength( pszIdent ), osl_getThreadTextEncoding(), OUSTRING_TO_OSTRING_CVTFLAGS );
- OSL_ASSERT(*ustrIdent != NULL);
-
- return bRet;
-}
-
-
-sal_Bool SAL_CALL osl_psz_getUserIdent(oslSecurity Security, sal_Char *pszIdent, sal_uInt32 nMax)
-{
- sal_Char buffer[32];
- sal_Int32 nChr;
-
- oslSecurityImpl *pSecImpl = (oslSecurityImpl *)Security;
-
- if (pSecImpl == NULL)
- return sal_False;
-
- nChr = snprintf(buffer, sizeof(buffer), "%u", pSecImpl->m_pPasswd.pw_uid);
- if ( nChr < 0 || nChr >= sizeof(buffer) || nChr >= nMax )
- return sal_False; /* leave *pszIdent unmodified in case of failure */
-
- memcpy(pszIdent, buffer, nChr+1);
- return sal_True;
-}
-
-sal_Bool SAL_CALL osl_getUserName(oslSecurity Security, rtl_uString **ustrName)
-{
- sal_Bool bRet=sal_False;
- sal_Char pszName[1024];
-
- pszName[0] = '\0';
-
- bRet = osl_psz_getUserName(Security,pszName,sizeof(pszName));
-
- rtl_string2UString( ustrName, pszName, rtl_str_getLength( pszName ), osl_getThreadTextEncoding(), OUSTRING_TO_OSTRING_CVTFLAGS );
- OSL_ASSERT(*ustrName != NULL);
-
- return bRet;
-}
-
-
-
-sal_Bool SAL_CALL osl_psz_getUserName(oslSecurity Security, sal_Char* pszName, sal_uInt32 nMax)
-{
- oslSecurityImpl *pSecImpl = (oslSecurityImpl *)Security;
-
- if ((pSecImpl == NULL) || (! pSecImpl->m_isValid))
- return sal_False;
-
- strncpy(pszName, pSecImpl->m_pPasswd.pw_name, nMax);
-
- return sal_True;
-}
-
-sal_Bool SAL_CALL osl_getHomeDir(oslSecurity Security, rtl_uString **pustrDirectory)
-{
- sal_Bool bRet=sal_False;
- sal_Char pszDirectory[PATH_MAX];
-
- pszDirectory[0] = '\0';
-
- bRet = osl_psz_getHomeDir(Security,pszDirectory,sizeof(pszDirectory));
-
- if ( bRet == sal_True )
- {
- rtl_string2UString( pustrDirectory, pszDirectory, rtl_str_getLength( pszDirectory ), osl_getThreadTextEncoding(), OUSTRING_TO_OSTRING_CVTFLAGS );
- OSL_ASSERT(*pustrDirectory != NULL);
- osl_getFileURLFromSystemPath( *pustrDirectory, pustrDirectory );
- }
-
- return bRet;
-}
-
-
-sal_Bool SAL_CALL osl_psz_getHomeDir(oslSecurity Security, sal_Char* pszDirectory, sal_uInt32 nMax)
-{
- oslSecurityImpl *pSecImpl = (oslSecurityImpl *)Security;
-
- if (pSecImpl == NULL)
- return sal_False;
-
- /* if current user, check also environment for HOME */
- if (getuid() == pSecImpl->m_pPasswd.pw_uid)
- {
- sal_Char *pStr = NULL;
-#ifdef SOLARIS
- char buffer[8192];
-
- struct passwd pwd;
- struct passwd *ppwd;
-
-#ifdef _POSIX_PTHREAD_SEMANTICS
- if ( 0 != getpwuid_r(getuid(), &pwd, buffer, sizeof(buffer), &ppwd ) )
- ppwd = NULL;
-#else
- ppwd = getpwuid_r(getuid(), &pwd, buffer, sizeof(buffer) );
-#endif
-
- if ( ppwd )
- pStr = ppwd->pw_dir;
-#else
- pStr = getenv("HOME");
-#endif
-
- if ((pStr != NULL) && (strlen(pStr) > 0) &&
- (access(pStr, 0) == 0))
- strncpy(pszDirectory, pStr, nMax);
- else
- if (pSecImpl->m_isValid)
- strncpy(pszDirectory, pSecImpl->m_pPasswd.pw_dir, nMax);
- else
- return sal_False;
- }
- else
- strncpy(pszDirectory, pSecImpl->m_pPasswd.pw_dir, nMax);
-
- return sal_True;
-}
-
-sal_Bool SAL_CALL osl_getConfigDir(oslSecurity Security, rtl_uString **pustrDirectory)
-{
- sal_Bool bRet = sal_False;
- sal_Char pszDirectory[PATH_MAX];
-
- pszDirectory[0] = '\0';
-
- bRet = osl_psz_getConfigDir(Security,pszDirectory,sizeof(pszDirectory));
-
- if ( bRet == sal_True )
- {
- rtl_string2UString( pustrDirectory, pszDirectory, rtl_str_getLength( pszDirectory ), osl_getThreadTextEncoding(), OUSTRING_TO_OSTRING_CVTFLAGS );
- OSL_ASSERT(*pustrDirectory != NULL);
- osl_getFileURLFromSystemPath( *pustrDirectory, pustrDirectory );
- }
-
- return bRet;
-}
-
-
-sal_Bool SAL_CALL osl_psz_getConfigDir(oslSecurity Security, sal_Char* pszDirectory, sal_uInt32 nMax)
-{
- return (osl_psz_getHomeDir(Security, pszDirectory, nMax));
-}
-
-sal_Bool SAL_CALL osl_isAdministrator(oslSecurity Security)
-{
- oslSecurityImpl *pSecImpl = (oslSecurityImpl *)Security;
-
- if (pSecImpl == NULL)
- return sal_False;
-
- if (pSecImpl->m_pPasswd.pw_uid != 0)
- return (sal_False);
-
- return (sal_True);
-}
-
-void SAL_CALL osl_freeSecurityHandle(oslSecurity Security)
-{
- if (Security)
- free ((oslSecurityImpl*)Security);
-}
-
-
-sal_Bool SAL_CALL osl_loadUserProfile(oslSecurity Security)
-{
- return sal_False;
-}
-
-void SAL_CALL osl_unloadUserProfile(oslSecurity Security)
-{
- return;
-}
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */