update to 2.6.1, fix wrong init script (#245339)
This commit is contained in:
parent
1ceb8218cf
commit
58c05bca8c
@ -1,11 +0,0 @@
|
|||||||
--- pegasus-2.5/src/Pegasus/Config/FixedPropertyTableLinux.h.add_cmpi_provider_lib 2005-10-03 17:15:32.000000000 -0400
|
|
||||||
+++ pegasus-2.5/src/Pegasus/Config/FixedPropertyTableLinux.h 2005-10-31 12:58:45.000000000 -0500
|
|
||||||
@@ -56,7 +56,7 @@
|
|
||||||
{"exportSSLTrustStore", "/etc/Pegasus/indication_trust"},
|
|
||||||
{"crlStore", "/etc/Pegasus/crl"},
|
|
||||||
{"repositoryDir", "/var/lib/Pegasus/repository"},
|
|
||||||
- {"providerDir", PEGASUS_DEST_LIB_DIR "/Pegasus/providers"},
|
|
||||||
+ {"providerDir", PEGASUS_DEST_LIB_DIR "/Pegasus/providers:" PEGASUS_DEST_LIB_DIR "/cmpi" },
|
|
||||||
{"messageDir", "/usr/share/locale"},
|
|
||||||
#endif
|
|
||||||
#if defined(PEGASUS_USE_RELEASE_DIRS) && defined(PEGASUS_OS_LSB)
|
|
@ -1,25 +0,0 @@
|
|||||||
--- pegasus-2.5/src/Pegasus/Common/SSLContext.cpp.bz173401 2005-11-16 14:53:24.000000000 -0500
|
|
||||||
+++ pegasus-2.5/src/Pegasus/Common/SSLContext.cpp 2005-11-16 18:12:59.000000000 -0500
|
|
||||||
@@ -810,7 +810,8 @@
|
|
||||||
// create SSL Context Area
|
|
||||||
//
|
|
||||||
|
|
||||||
- if (!( sslContext = SSL_CTX_new(SSLv23_method()) ))
|
|
||||||
+// if (!( sslContext = SSL_CTX_new(SSLv23_method()) ))
|
|
||||||
+ if (!( sslContext = SSL_CTX_new(SSLv3_method()) ))
|
|
||||||
{
|
|
||||||
PEG_METHOD_EXIT();
|
|
||||||
//l10n
|
|
||||||
@@ -839,9 +840,9 @@
|
|
||||||
SSL_CTX_set_session_cache_mode(sslContext, SSL_SESS_CACHE_OFF);
|
|
||||||
|
|
||||||
int options = SSL_OP_ALL;
|
|
||||||
-#ifndef PEGASUS_ENABLE_SSLV2 //SSLv2 is disabled by default
|
|
||||||
- options |= SSL_OP_NO_SSLv2;
|
|
||||||
-#endif
|
|
||||||
+//#ifndef PEGASUS_ENABLE_SSLV2 //SSLv2 is disabled by default
|
|
||||||
+// options |= SSL_OP_NO_SSLv2;
|
|
||||||
+//#endif
|
|
||||||
SSL_CTX_set_options(sslContext, options);
|
|
||||||
|
|
||||||
if (_verifyPeer)
|
|
@ -1,11 +0,0 @@
|
|||||||
--- pegasus-2.5/env_var_Linux.status.ENABLE_CQL 2005-10-31 13:05:39.000000000 -0500
|
|
||||||
+++ pegasus-2.5/env_var_Linux.status 2005-11-09 19:40:03.000000000 -0500
|
|
||||||
@@ -18,7 +18,7 @@
|
|
||||||
PEGASUS_STAGING_DIR = $(PEGASUS_HOME)/stagingDir
|
|
||||||
endif
|
|
||||||
|
|
||||||
-PEGASUS_DISABLE_CQL=true
|
|
||||||
+PEGASUS_ENABLE_CQL=true
|
|
||||||
PEGASUS_DISABLE_OBJECT_NORMALIZATION=true
|
|
||||||
PEGASUS_ENABLE_CMPI_PROVIDER_MANAGER=true
|
|
||||||
PEGASUS_ENABLE_USERGROUP_AUTHORIZATION=true
|
|
@ -1,25 +0,0 @@
|
|||||||
--- pegasus-2.5/rpm/Makefile.install_id 2006-02-07 17:37:39.000000000 -0500
|
|
||||||
+++ pegasus-2.5/rpm/Makefile 2006-02-07 18:39:05.000000000 -0500
|
|
||||||
@@ -30,6 +30,9 @@
|
|
||||||
|
|
||||||
include $(ROOT)/mak/config.mak
|
|
||||||
|
|
||||||
+INSTALL_USER?=root
|
|
||||||
+INSTALL_GROUP?=root
|
|
||||||
+
|
|
||||||
#Defines subdirectories to go to recursively
|
|
||||||
|
|
||||||
DIRS = manLinux
|
|
||||||
@@ -53,9 +56,9 @@
|
|
||||||
|
|
||||||
install: tog-pegasus.rc wbem cimserver_planned.conf
|
|
||||||
ifdef PEGASUS_INSTALL
|
|
||||||
- $(PEGASUS_INSTALL) -D -o root -g root -m 0550 tog-pegasus.rc $(PEGASUS_DESTDIR)/etc/rc.d/init.d/tog-pegasus
|
|
||||||
- $(PEGASUS_INSTALL) -D -o root -g root -m 0660 cimserver_planned.conf $(PEGASUS_DESTDIR)/$(PEGASUS_CONFIG_DIR)/cimserver_planned.conf
|
|
||||||
- $(PEGASUS_INSTALL) -D -o root -g root -m 0660 wbem $(PEGASUS_DESTDIR)/etc/pam.d/wbem
|
|
||||||
+ $(PEGASUS_INSTALL) -D -o $(INSTALL_USER) -g $(INSTALL_GROUP) -m 0550 tog-pegasus.rc $(PEGASUS_DESTDIR)/etc/rc.d/init.d/tog-pegasus
|
|
||||||
+ $(PEGASUS_INSTALL) -D -o $(INSTALL_USER) -g $(INSTALL_GROUP) -m 0660 cimserver_planned.conf $(PEGASUS_DESTDIR)/$(PEGASUS_CONFIG_DIR)/cimserver_planned.conf
|
|
||||||
+ $(PEGASUS_INSTALL) -D -o $(INSTALL_USER) -g $(INSTALL_GROUP) -m 0660 wbem $(PEGASUS_DESTDIR)/etc/pam.d/wbem
|
|
||||||
mkdir -p $(PEGASUS_DESTDIR)/$(PEGASUS_MANUSER_DIR) $(PEGASUS_DESTDIR)/$(PEGASUS_MANADMIN_DIR)
|
|
||||||
cp -fp manLinux/man1.Z/*.1 $(PEGASUS_DESTDIR)/$(PEGASUS_MANUSER_DIR)/
|
|
||||||
cp -fp manLinux/man8.Z/*.8 $(PEGASUS_DESTDIR)/$(PEGASUS_MANADMIN_DIR)/
|
|
@ -1,429 +0,0 @@
|
|||||||
--- pegasus-2.5/src/Pegasus/Server/HTTPAuthenticatorDelegator.cpp.local_or_remote_auth 2005-08-13 20:28:32.000000000 -0400
|
|
||||||
+++ pegasus-2.5/src/Pegasus/Server/HTTPAuthenticatorDelegator.cpp 2005-09-28 16:18:58.000000000 -0400
|
|
||||||
@@ -364,6 +364,9 @@
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
+ // Let Authenticators know whether this user is Local or Remote:
|
|
||||||
+ httpMessage->authInfo->setRemoteUser( httpMessage->fromRemoteHost );
|
|
||||||
+
|
|
||||||
//
|
|
||||||
// Handle authentication:
|
|
||||||
//
|
|
||||||
--- pegasus-2.5/src/Pegasus/Security/Authentication/PAMBasicAuthenticatorStub.cpp.local_or_remote_auth 2005-07-12 14:05:09.000000000 -0400
|
|
||||||
+++ pegasus-2.5/src/Pegasus/Security/Authentication/PAMBasicAuthenticatorStub.cpp 2005-09-28 16:18:58.000000000 -0400
|
|
||||||
@@ -90,7 +90,8 @@
|
|
||||||
|
|
||||||
Boolean PAMBasicAuthenticator::authenticate(
|
|
||||||
const String& userName,
|
|
||||||
- const String& password)
|
|
||||||
+ const String& password,
|
|
||||||
+ Boolean isRemoteUser)
|
|
||||||
{
|
|
||||||
PEG_METHOD_ENTER(TRC_AUTHENTICATION,
|
|
||||||
"PAMBasicAuthenticator::authenticate()");
|
|
||||||
--- pegasus-2.5/src/Pegasus/Security/Authentication/PAMBasicAuthenticator.h.local_or_remote_auth 2005-07-12 14:05:09.000000000 -0400
|
|
||||||
+++ pegasus-2.5/src/Pegasus/Security/Authentication/PAMBasicAuthenticator.h 2005-09-28 16:18:58.000000000 -0400
|
|
||||||
@@ -71,7 +71,8 @@
|
|
||||||
*/
|
|
||||||
Boolean authenticate(
|
|
||||||
const String& userName,
|
|
||||||
- const String& password);
|
|
||||||
+ const String& password,
|
|
||||||
+ Boolean isRemoteUser);
|
|
||||||
|
|
||||||
/** Verify PAM account management for the requesting user.
|
|
||||||
@param userName String containing the user name
|
|
||||||
@@ -100,7 +101,8 @@
|
|
||||||
|
|
||||||
Boolean _authenticateByPAM(
|
|
||||||
const String& userName,
|
|
||||||
- const String& password);
|
|
||||||
+ const String& password,
|
|
||||||
+ Boolean isRemoteUser);
|
|
||||||
|
|
||||||
void _createPAMStandalone();
|
|
||||||
|
|
||||||
@@ -156,7 +158,8 @@
|
|
||||||
*/
|
|
||||||
Boolean authenticate(
|
|
||||||
const String& userName,
|
|
||||||
- const String& password);
|
|
||||||
+ const String& password,
|
|
||||||
+ Boolean isRemoteUser);
|
|
||||||
|
|
||||||
/** Verify whether the user is valid.
|
|
||||||
@param userName String containing the user name
|
|
||||||
@@ -218,7 +221,8 @@
|
|
||||||
|
|
||||||
Boolean _authenticateByPAM(
|
|
||||||
const String& userName,
|
|
||||||
- const String& password);
|
|
||||||
+ const String& password,
|
|
||||||
+ Boolean isRemoteUser);
|
|
||||||
|
|
||||||
#if defined(PEGASUS_USE_PAM_STANDALONE_PROC)
|
|
||||||
PAMBasicAuthenticatorStandAlone _pamBasicAuthenticatorStandAlone;
|
|
||||||
--- pegasus-2.5/src/Pegasus/Security/Authentication/BasicAuthenticationHandler.cpp.local_or_remote_auth 2005-07-12 14:05:09.000000000 -0400
|
|
||||||
+++ pegasus-2.5/src/Pegasus/Security/Authentication/BasicAuthenticationHandler.cpp 2005-09-28 16:18:58.000000000 -0400
|
|
||||||
@@ -136,7 +136,7 @@
|
|
||||||
authInfo->setAuthenticatedUser(userName);
|
|
||||||
authInfo->setAuthenticatedPassword(password);
|
|
||||||
#else
|
|
||||||
- authenticated = _basicAuthenticator->authenticate(userName, password);
|
|
||||||
+ authenticated = _basicAuthenticator->authenticate(userName, password, authInfo->isRemoteUser());
|
|
||||||
|
|
||||||
if (authenticated)
|
|
||||||
{
|
|
||||||
--- pegasus-2.5/src/Pegasus/Security/Authentication/PAMBasicAuthenticatorUnix.cpp.local_or_remote_auth 2005-07-19 15:14:48.000000000 -0400
|
|
||||||
+++ pegasus-2.5/src/Pegasus/Security/Authentication/PAMBasicAuthenticatorUnix.cpp 2005-09-28 16:47:55.000000000 -0400
|
|
||||||
@@ -129,7 +129,8 @@
|
|
||||||
|
|
||||||
Boolean PAMBasicAuthenticator::authenticate(
|
|
||||||
const String& userName,
|
|
||||||
- const String& password)
|
|
||||||
+ const String& password,
|
|
||||||
+ Boolean isRemoteUser)
|
|
||||||
{
|
|
||||||
PEG_METHOD_ENTER(TRC_AUTHENTICATION,
|
|
||||||
"PAMBasicAuthenticator::authenticate()");
|
|
||||||
@@ -137,7 +138,7 @@
|
|
||||||
Boolean authenticated;
|
|
||||||
|
|
||||||
#if !defined(PEGASUS_USE_PAM_STANDALONE_PROC)
|
|
||||||
- authenticated = _authenticateByPAM(userName, password);
|
|
||||||
+ authenticated = _authenticateByPAM(userName, password, isRemoteUser);
|
|
||||||
#else
|
|
||||||
//
|
|
||||||
// Mutex to Serialize Authentication calls.
|
|
||||||
@@ -145,8 +146,9 @@
|
|
||||||
Tracer::trace(TRC_AUTHENTICATION, Tracer::LEVEL4,
|
|
||||||
"Authentication Mutex lock.");
|
|
||||||
AutoMutex lock(_authSerializeMutex);
|
|
||||||
- authenticated = _pamBasicAuthenticatorStandAlone.authenticate(
|
|
||||||
- userName, password);
|
|
||||||
+ authenticated =
|
|
||||||
+ _pamBasicAuthenticatorStandAlone->authenticate(userName,
|
|
||||||
+ password);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
PEG_METHOD_EXIT();
|
|
||||||
@@ -155,7 +157,8 @@
|
|
||||||
|
|
||||||
Boolean PAMBasicAuthenticator::_authenticateByPAM(
|
|
||||||
const String& userName,
|
|
||||||
- const String& password)
|
|
||||||
+ const String& password,
|
|
||||||
+ Boolean isRemoteUser)
|
|
||||||
{
|
|
||||||
PEG_METHOD_ENTER(TRC_AUTHENTICATION,
|
|
||||||
"PAMBasicAuthenticator::_authenticateByPAM()");
|
|
||||||
@@ -165,6 +168,7 @@
|
|
||||||
pam_handle_t *phandle;
|
|
||||||
char *name;
|
|
||||||
APP_DATA mydata;
|
|
||||||
+ int retcode;
|
|
||||||
|
|
||||||
//
|
|
||||||
// Store the password for PAM authentication
|
|
||||||
@@ -178,21 +182,38 @@
|
|
||||||
// Tracer::trace(TRC_AUTHENTICATION, Tracer::LEVEL4,
|
|
||||||
// "PAMBasicAuthenticator::_authenticateByPAM() - userName = %s; userPassword = %s",
|
|
||||||
// (const char *)userName.getCString(), (const char *)password.getCString());
|
|
||||||
+
|
|
||||||
+ // NOTE: if any pam call should log anything, our syslog socket will be redirected
|
|
||||||
+ // to the AUTH facility, so we need to redirect it back after each pam call.
|
|
||||||
|
|
||||||
//
|
|
||||||
//Call pam_start since you need to before making any other PAM calls
|
|
||||||
//
|
|
||||||
- if ( ( pam_start(service,
|
|
||||||
+
|
|
||||||
+ if ( (retcode = pam_start(service,
|
|
||||||
(const char *)userName.getCString(), &pconv, &phandle) ) != PAM_SUCCESS )
|
|
||||||
{
|
|
||||||
+ closelog();
|
|
||||||
+ openlog("cimserver", LOG_PID, LOG_DAEMON);
|
|
||||||
+ syslog( LOG_ERR, "pam_start failed: %s", pam_strerror(phandle, retcode));
|
|
||||||
PEG_METHOD_EXIT();
|
|
||||||
return (authenticated);
|
|
||||||
}
|
|
||||||
+
|
|
||||||
|
|
||||||
+ if ( (retcode = pam_set_item(phandle, PAM_TTY, isRemoteUser ? "wbemNetwork" : "wbemLocal")) != PAM_SUCCESS )
|
|
||||||
+ {
|
|
||||||
+ pam_end(phandle, 0);
|
|
||||||
+ closelog();
|
|
||||||
+ openlog("cimserver", LOG_PID, LOG_DAEMON);
|
|
||||||
+ syslog( LOG_ERR, "pam_set_item(PAM_TTY=wbem) failed: %s", pam_strerror(phandle, retcode));
|
|
||||||
+ PEG_METHOD_EXIT();
|
|
||||||
+ return (authenticated);
|
|
||||||
+ }
|
|
||||||
//
|
|
||||||
//Call pam_authenticate to authenticate the user
|
|
||||||
//
|
|
||||||
- if ( ( pam_authenticate(phandle, 0) ) == PAM_SUCCESS )
|
|
||||||
+ if ( ( retcode = pam_authenticate(phandle, 0) ) == PAM_SUCCESS )
|
|
||||||
{
|
|
||||||
Tracer::trace(TRC_AUTHENTICATION, Tracer::LEVEL4,
|
|
||||||
"pam_authenticate successful.");
|
|
||||||
@@ -201,22 +222,40 @@
|
|
||||||
//checking for password and account expiration, as well as verifying access
|
|
||||||
//hour restrictions.
|
|
||||||
//
|
|
||||||
- if ( ( pam_acct_mgmt(phandle, 0) ) == PAM_SUCCESS )
|
|
||||||
+
|
|
||||||
+ if ( ( retcode = pam_acct_mgmt(phandle, 0) ) == PAM_SUCCESS )
|
|
||||||
{
|
|
||||||
Tracer::trace(TRC_AUTHENTICATION, Tracer::LEVEL4,
|
|
||||||
"pam_acct_mgmt successful.");
|
|
||||||
authenticated = true;
|
|
||||||
- }
|
|
||||||
+ }else
|
|
||||||
+ {
|
|
||||||
+ closelog();
|
|
||||||
+ openlog("cimserver", LOG_PID, LOG_DAEMON);
|
|
||||||
+ syslog(LOG_ERR, "pam_acct_mgmt failed: %s",pam_strerror(phandle, retcode));
|
|
||||||
+ }
|
|
||||||
+ }else
|
|
||||||
+ {
|
|
||||||
+ closelog();
|
|
||||||
+ openlog("cimserver", LOG_PID, LOG_DAEMON);
|
|
||||||
+ syslog(LOG_ERR, "pam_authenticate failed: %s",pam_strerror(phandle, retcode));
|
|
||||||
}
|
|
||||||
-
|
|
||||||
//
|
|
||||||
//Call pam_end to end our PAM work
|
|
||||||
//
|
|
||||||
pam_end(phandle, 0);
|
|
||||||
+ closelog();
|
|
||||||
+ openlog("cimserver", LOG_PID, LOG_DAEMON);
|
|
||||||
|
|
||||||
- PEG_METHOD_EXIT();
|
|
||||||
+ if ( ! authenticated )
|
|
||||||
+ syslog(LOG_ERR, "PAM authentication failed for %s user: %s",
|
|
||||||
+ isRemoteUser ? "remote" : "local",
|
|
||||||
+ (const char*)userName.getCString()
|
|
||||||
+ );
|
|
||||||
|
|
||||||
+ PEG_METHOD_EXIT();
|
|
||||||
return (authenticated);
|
|
||||||
+
|
|
||||||
}
|
|
||||||
|
|
||||||
Boolean PAMBasicAuthenticator::validateUser(const String& userName)
|
|
||||||
@@ -231,6 +270,7 @@
|
|
||||||
pam_handle_t *phandle;
|
|
||||||
char *name;
|
|
||||||
APP_DATA mydata;
|
|
||||||
+ int retcode;
|
|
||||||
|
|
||||||
const char *service = "wbem";
|
|
||||||
pconv.conv = PAMBasicAuthenticator::pamValidateUserCallback;
|
|
||||||
@@ -239,21 +279,43 @@
|
|
||||||
//
|
|
||||||
// Call pam_start since you need to before making any other PAM calls
|
|
||||||
//
|
|
||||||
- if ( pam_start(service,
|
|
||||||
- (const char *)userName.getCString(), &pconv, &phandle) != PAM_SUCCESS)
|
|
||||||
- {
|
|
||||||
+ if ( (retcode =
|
|
||||||
+ pam_start(service,(const char *)userName.getCString(), &pconv, &phandle)
|
|
||||||
+ ) != PAM_SUCCESS
|
|
||||||
+ )
|
|
||||||
+ {
|
|
||||||
+ closelog();
|
|
||||||
+ openlog("cimserver", LOG_PID, LOG_DAEMON);
|
|
||||||
+ syslog( LOG_ERR, "pam_start() failed: %s", pam_strerror(phandle, retcode));
|
|
||||||
PEG_METHOD_EXIT();
|
|
||||||
return (authenticated);
|
|
||||||
}
|
|
||||||
|
|
||||||
+ if ( (retcode = pam_set_item(phandle, PAM_TTY, "wbemLocal")) != PAM_SUCCESS )
|
|
||||||
+ {
|
|
||||||
+ pam_end(phandle, 0);
|
|
||||||
+ closelog();
|
|
||||||
+ openlog("cimserver", LOG_PID, LOG_DAEMON);
|
|
||||||
+ syslog( LOG_ERR, "pam_set_item(PAM_TTY=wbemLocal) failed: %s", pam_strerror(phandle, retcode));
|
|
||||||
+ PEG_METHOD_EXIT();
|
|
||||||
+ return (authenticated);
|
|
||||||
+ }
|
|
||||||
//
|
|
||||||
// Call pam_acct_mgmt, to check if the user account is valid. This includes
|
|
||||||
// checking for account expiration, as well as verifying access
|
|
||||||
// hour restrictions.
|
|
||||||
//
|
|
||||||
- if ( pam_acct_mgmt(phandle, 0) == PAM_SUCCESS )
|
|
||||||
- {
|
|
||||||
+ if ( (retcode = pam_acct_mgmt(phandle, 0)) == PAM_SUCCESS )
|
|
||||||
+ {
|
|
||||||
authenticated = true;
|
|
||||||
+ }else
|
|
||||||
+ {
|
|
||||||
+ pam_end(phandle, 0);
|
|
||||||
+ closelog();
|
|
||||||
+ openlog("cimserver", LOG_PID, LOG_DAEMON);
|
|
||||||
+ syslog( LOG_ERR, "pam_acct_mgmt() failed: %s", pam_strerror(phandle, retcode));
|
|
||||||
+ PEG_METHOD_EXIT();
|
|
||||||
+ return (authenticated);
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
@@ -261,6 +323,9 @@
|
|
||||||
//
|
|
||||||
pam_end(phandle, 0);
|
|
||||||
|
|
||||||
+ closelog();
|
|
||||||
+ openlog("cimserver", LOG_PID, LOG_DAEMON);
|
|
||||||
+
|
|
||||||
#else
|
|
||||||
//
|
|
||||||
// Mutex to Serialize Authentication calls.
|
|
||||||
--- pegasus-2.5/src/Pegasus/Security/Authentication/BasicAuthenticator.h.local_or_remote_auth 2005-07-12 14:05:09.000000000 -0400
|
|
||||||
+++ pegasus-2.5/src/Pegasus/Security/Authentication/BasicAuthenticator.h 2005-09-28 16:18:58.000000000 -0400
|
|
||||||
@@ -65,7 +65,8 @@
|
|
||||||
*/
|
|
||||||
virtual Boolean authenticate(
|
|
||||||
const String& userName,
|
|
||||||
- const String& password) = 0;
|
|
||||||
+ const String& password,
|
|
||||||
+ Boolean isRemoteUser) = 0;
|
|
||||||
|
|
||||||
/** Construct and return the HTTP Basic authentication challenge header
|
|
||||||
@return A string containing the authentication challenge header.
|
|
||||||
--- pegasus-2.5/src/Pegasus/Common/HTTPMessage.cpp.local_or_remote_auth 2005-05-31 21:51:53.000000000 -0400
|
|
||||||
+++ pegasus-2.5/src/Pegasus/Common/HTTPMessage.cpp 2005-09-28 16:18:58.000000000 -0400
|
|
||||||
@@ -101,7 +101,8 @@
|
|
||||||
message(message_),
|
|
||||||
queueId(queueId_),
|
|
||||||
acceptLanguagesDecoded(false),
|
|
||||||
- contentLanguagesDecoded(false)
|
|
||||||
+ contentLanguagesDecoded(false),
|
|
||||||
+ fromRemoteHost(true)
|
|
||||||
{
|
|
||||||
if (cimException_)
|
|
||||||
cimException = *cimException_;
|
|
||||||
--- pegasus-2.5/src/Pegasus/Common/HTTPMessage.h.local_or_remote_auth 2005-05-12 02:59:56.000000000 -0400
|
|
||||||
+++ pegasus-2.5/src/Pegasus/Common/HTTPMessage.h 2005-09-28 16:18:58.000000000 -0400
|
|
||||||
@@ -77,7 +77,8 @@
|
|
||||||
ContentLanguages contentLanguages;
|
|
||||||
Boolean acceptLanguagesDecoded;
|
|
||||||
Boolean contentLanguagesDecoded;
|
|
||||||
- CIMException cimException;
|
|
||||||
+ Boolean fromRemoteHost;
|
|
||||||
+ CIMException cimException;
|
|
||||||
|
|
||||||
void parse(
|
|
||||||
String& startLine,
|
|
||||||
--- pegasus-2.5/src/Pegasus/Common/AuthenticationInfoRep.cpp.local_or_remote_auth 2005-02-05 17:59:23.000000000 -0500
|
|
||||||
+++ pegasus-2.5/src/Pegasus/Common/AuthenticationInfoRep.cpp 2005-09-28 16:18:58.000000000 -0400
|
|
||||||
@@ -55,7 +55,8 @@
|
|
||||||
_privileged(false),
|
|
||||||
_authType(String::EMPTY),
|
|
||||||
_authStatus(NEW_REQUEST),
|
|
||||||
- _exportConnection(false)
|
|
||||||
+ _exportConnection(false),
|
|
||||||
+ _remoteUser(true)
|
|
||||||
{
|
|
||||||
PEG_METHOD_ENTER(
|
|
||||||
TRC_AUTHENTICATION, "AuthenticationInfoRep::AuthenticationInfoRep");
|
|
||||||
@@ -178,5 +179,14 @@
|
|
||||||
PEG_METHOD_EXIT();
|
|
||||||
}
|
|
||||||
|
|
||||||
+void AuthenticationInfoRep::setRemoteUser(Boolean remoteUser)
|
|
||||||
+{
|
|
||||||
+ PEG_METHOD_ENTER(TRC_AUTHENTICATION,
|
|
||||||
+ "AuthenticationInfoRep::setRemoteUser");
|
|
||||||
+
|
|
||||||
+ _remoteUser = remoteUser;
|
|
||||||
+
|
|
||||||
+ PEG_METHOD_EXIT();
|
|
||||||
+}
|
|
||||||
|
|
||||||
PEGASUS_NAMESPACE_END
|
|
||||||
--- pegasus-2.5/src/Pegasus/Common/AuthenticationInfo.h.local_or_remote_auth 2005-02-05 17:59:23.000000000 -0500
|
|
||||||
+++ pegasus-2.5/src/Pegasus/Common/AuthenticationInfo.h 2005-09-28 16:18:58.000000000 -0400
|
|
||||||
@@ -329,6 +329,22 @@
|
|
||||||
_rep->setClientCertificate(clientCertificate);
|
|
||||||
}
|
|
||||||
|
|
||||||
+ /** Indicate whether the user is Remote
|
|
||||||
+ */
|
|
||||||
+ Boolean isRemoteUser() const
|
|
||||||
+ {
|
|
||||||
+ _checkRep();
|
|
||||||
+ return _rep->isRemoteUser();
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /** Set the Remote User flag
|
|
||||||
+ */
|
|
||||||
+ void setRemoteUser(Boolean remoteUser)
|
|
||||||
+ {
|
|
||||||
+ _checkRep();
|
|
||||||
+ _rep->setRemoteUser(remoteUser);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
private:
|
|
||||||
|
|
||||||
AuthenticationInfo(AuthenticationInfoRep* rep) : _rep(rep)
|
|
||||||
--- pegasus-2.5/src/Pegasus/Common/AuthenticationInfoRep.h.local_or_remote_auth 2005-02-05 17:59:23.000000000 -0500
|
|
||||||
+++ pegasus-2.5/src/Pegasus/Common/AuthenticationInfoRep.h 2005-09-28 16:18:58.000000000 -0400
|
|
||||||
@@ -140,6 +140,14 @@
|
|
||||||
|
|
||||||
void setExportConnection(Boolean exportConnection);
|
|
||||||
|
|
||||||
+ Boolean isRemoteUser() const
|
|
||||||
+ {
|
|
||||||
+ return _remoteUser;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ void setRemoteUser(Boolean remoteUser);
|
|
||||||
+
|
|
||||||
+
|
|
||||||
//PEP187
|
|
||||||
SSLCertificateInfo* getClientCertificate()
|
|
||||||
{
|
|
||||||
@@ -170,7 +178,8 @@
|
|
||||||
#endif
|
|
||||||
|
|
||||||
Boolean _exportConnection;
|
|
||||||
- SSLCertificateInfo* _clientCertificate;
|
|
||||||
+ SSLCertificateInfo* _clientCertificate;
|
|
||||||
+ Boolean _remoteUser;
|
|
||||||
};
|
|
||||||
|
|
||||||
PEGASUS_NAMESPACE_END
|
|
||||||
--- pegasus-2.5/src/Pegasus/Common/HTTPConnection.cpp.local_or_remote_auth 2005-08-18 20:24:32.000000000 -0400
|
|
||||||
+++ pegasus-2.5/src/Pegasus/Common/HTTPConnection.cpp 2005-09-28 16:18:58.000000000 -0400
|
|
||||||
@@ -1807,6 +1807,30 @@
|
|
||||||
"_requestCount = %d", _requestCount.value());
|
|
||||||
message->dest = _outputMessageQueue->getQueueId();
|
|
||||||
// SendForget(message);
|
|
||||||
+
|
|
||||||
+ // Allow authenticators to differentiate Remote and Local users:
|
|
||||||
+ struct sockaddr_in sin_peer, sin_svr; // don't need to worry about IPv6 yet ...
|
|
||||||
+ socklen_t slen1=sizeof(struct sockaddr_in), slen2=sizeof(struct sockaddr_in);
|
|
||||||
+ uint32_t sock = _socket.get()->getSocket() ;
|
|
||||||
+ memset(&sin_peer,'\0',slen1);
|
|
||||||
+ memset(&sin_svr, '\0',slen2);
|
|
||||||
+ if ( ( ::getpeername( sock, (struct sockaddr*)&sin_peer, &slen1) == 0 )
|
|
||||||
+ ||( ::getsockname( sock, (struct sockaddr*)&sin_svr, &slen2) == 0 )
|
|
||||||
+ )
|
|
||||||
+ {
|
|
||||||
+ if( sin_peer.sin_family == AF_INET )
|
|
||||||
+ {
|
|
||||||
+ if( ((ntohl( sin_peer.sin_addr.s_addr ) >> 24) & 0xff) == 127 )
|
|
||||||
+ // message was sent FROM localhost interface
|
|
||||||
+ message->fromRemoteHost = false;
|
|
||||||
+ }
|
|
||||||
+ if( sin_svr.sin_family == AF_INET )
|
|
||||||
+ {
|
|
||||||
+ if( ((ntohl( sin_svr.sin_addr.s_addr ) >> 24) & 0xff) == 127 )
|
|
||||||
+ // message was sent TO localhost interface
|
|
||||||
+ message->fromRemoteHost = false;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
|
|
||||||
//
|
|
||||||
// Set the entry status to BUSY.
|
|
File diff suppressed because it is too large
Load Diff
@ -1,778 +0,0 @@
|
|||||||
--- pegasus-2.5/Makefile.ReleaseTest.redhat 2005-05-27 13:29:01.000000000 -0400
|
|
||||||
+++ pegasus-2.5/Makefile.ReleaseTest 2005-10-03 17:12:17.000000000 -0400
|
|
||||||
@@ -54,7 +54,7 @@
|
|
||||||
endif
|
|
||||||
|
|
||||||
TEST_BIN_FILES_SRCPATH = $(PEGASUS_HOME)/bin
|
|
||||||
-TEST_LIB_FILES_SRCPATH = $(PEGASUS_HOME)/lib
|
|
||||||
+TEST_LIB_FILES_SRCPATH = $(PEGASUS_HOME)/$(PEGASUS_ARCH_LIB_DIR)
|
|
||||||
TEST_MAK_FILES_SRCPATH = $(ROOT)/mak
|
|
||||||
|
|
||||||
MAK_FILES = \
|
|
||||||
@@ -121,7 +121,7 @@
|
|
||||||
stageTEST:
|
|
||||||
@$(RMDIRHIER) $(PEGASUS_STAGING_DIR)$(PEGASUS_TEST_DIR)
|
|
||||||
@$(MKDIRHIER) $(PEGASUS_STAGING_DIR)$(PEGASUS_TEST_DIR)/bin
|
|
||||||
- @$(MKDIRHIER) $(PEGASUS_STAGING_DIR)$(PEGASUS_TEST_DIR)/lib
|
|
||||||
+ @$(MKDIRHIER) $(PEGASUS_STAGING_DIR)$(PEGASUS_TEST_DIR)/$(PEGASUS_ARCH_LIB_DIR)
|
|
||||||
@$(MKDIRHIER) $(PEGASUS_STAGING_DIR)$(PEGASUS_TEST_DIR)/mak
|
|
||||||
@$(MAKE) --directory=$(ROOT) -f Makefile.ReleaseTest -s stage_makfiles
|
|
||||||
@$(MAKE) --directory=$(ROOT) -f Makefile.ReleaseTest -s stage_testproviderfiles
|
|
||||||
@@ -134,7 +134,7 @@
|
|
||||||
@$(foreach i, $(MAK_FILES), $(COPY) $(TEST_MAK_FILES_SRCPATH)/$(i) $(PEGASUS_STAGING_DIR)$(PEGASUS_TEST_DIR)/mak/$(i);)
|
|
||||||
|
|
||||||
stage_testproviderfiles:
|
|
||||||
- @$(foreach i, $(PEGASUS_TEST_PROVIDERS), $(COPY) $(TEST_LIB_FILES_SRCPATH)/$(i)$(LIB_SUFFIX) $(PEGASUS_STAGING_DIR)$(PEGASUS_TEST_DIR)/lib/$(i)$(LIB_SUFFIX);)
|
|
||||||
+ @$(foreach i, $(PEGASUS_TEST_PROVIDERS), $(COPY) $(TEST_LIB_FILES_SRCPATH)/$(i)$(LIB_SUFFIX) $(PEGASUS_STAGING_DIR)$(PEGASUS_TEST_DIR)/$(PEGASUS_ARCH_LIB_DIR)/$(i)$(LIB_SUFFIX);)
|
|
||||||
|
|
||||||
stage_prestarttests:
|
|
||||||
@$(foreach i, $(PRESTARTTEST_FILES), $(COPY) $(TEST_BIN_FILES_SRCPATH)/$(i) $(PEGASUS_STAGING_DIR)$(PEGASUS_TEST_DIR)/bin/$(i);)
|
|
||||||
@@ -157,7 +157,7 @@
|
|
||||||
|
|
||||||
createMakefile_providerlinks:
|
|
||||||
@$(ECHO-E) "create_providerlinks:" >> $(PEGASUS_STAGING_DIR)$(PEGASUS_TEST_DIR)/Makefile
|
|
||||||
- @$(foreach i, $(PEGASUS_TEST_PROVIDERS), $(ECHO-E) "\t@$(MAKE) createlink OBJECT=$(PEGASUS_TEST_DIR)/lib/$(i)$(LIB_SUFFIX) LINKNAME=$(PEGASUS_PROVIDER_LIB_DIR)/$(i)$(LIB_LINK_SUFFIX)" >> $(PEGASUS_STAGING_DIR)$(PEGASUS_TEST_DIR)/Makefile ;)
|
|
||||||
+ @$(foreach i, $(PEGASUS_TEST_PROVIDERS), $(ECHO-E) "\t@$(MAKE) createlink OBJECT=$(PEGASUS_TEST_DIR)/$(PEGASUS_ARCH_LIB_DIR)/$(i)$(LIB_SUFFIX) LINKNAME=$(PEGASUS_PROVIDER_LIB_DIR)/$(i)$(LIB_LINK_SUFFIX)" >> $(PEGASUS_STAGING_DIR)$(PEGASUS_TEST_DIR)/Makefile ;)
|
|
||||||
@$(ECHO-E) "" >> $(PEGASUS_STAGING_DIR)$(PEGASUS_TEST_DIR)/Makefile
|
|
||||||
@$(ECHO-E) "remove_providerlinks:" >> $(PEGASUS_STAGING_DIR)$(PEGASUS_TEST_DIR)/Makefile
|
|
||||||
@$(foreach i, $(PEGASUS_TEST_PROVIDERS), $(ECHO-E) "\trm -f $(PEGASUS_PROVIDER_LIB_DIR)/$(i)$(LIB_LINK_SUFFIX)" >> $(PEGASUS_STAGING_DIR)$(PEGASUS_TEST_DIR)/Makefile ;)
|
|
||||||
@@ -234,7 +234,7 @@
|
|
||||||
@$(MAKE) --directory=$(ROOT) -f Makefile.ReleaseTest -s preinstall_setreleasepermissions
|
|
||||||
|
|
||||||
preinstall_setreleasepermissions:
|
|
||||||
- @$(foreach i, $(PEGASUS_TEST_PROVIDERS), $(MAKE) -f $(ROOT)/Makefile.ReleaseTest setpermissions PERMISSIONS="$(Prwxr_xr_x)" OWNER="$(INSTALL_USR)" GROUP="$(INSTALL_GRP)" OBJECT=$(PEGASUS_STAGING_DIR)$(PEGASUS_TEST_DIR)/lib/$(i)$(LIB_SUFFIX);)
|
|
||||||
+ @$(foreach i, $(PEGASUS_TEST_PROVIDERS), $(MAKE) -f $(ROOT)/Makefile.ReleaseTest setpermissions PERMISSIONS="$(Prwxr_xr_x)" OWNER="$(INSTALL_USR)" GROUP="$(INSTALL_GRP)" OBJECT=$(PEGASUS_STAGING_DIR)$(PEGASUS_TEST_DIR)/$(PEGASUS_ARCH_LIB_DIR)/$(i)$(LIB_SUFFIX);)
|
|
||||||
|
|
||||||
_append_preunSectionToSpecFile:
|
|
||||||
@$(ECHO-E) "%if %{PEGASUS_BUILD_TEST_RPM}" >> $(PEGASUS_RPM_SPEC_FILE_PATH)
|
|
||||||
@@ -253,13 +253,13 @@
|
|
||||||
@$(ECHO-E) "# Test Files" >> $(PEGASUS_RPM_SPEC_FILE_PATH)
|
|
||||||
@$(ECHO-E) "#" >> $(PEGASUS_RPM_SPEC_FILE_PATH)
|
|
||||||
@$(ECHO-E) "%dir %attr($(Pr_xr_xr_x), $(INSTALL_USR),$(INSTALL_GRP)) $(PEGASUS_TEST_DIR)" >> $(PEGASUS_RPM_SPEC_FILE_PATH)
|
|
||||||
- @$(ECHO-E) "%dir %attr($(Pr_xr_xr_x), $(INSTALL_USR),$(INSTALL_GRP)) $(PEGASUS_TEST_DIR)/lib" >> $(PEGASUS_RPM_SPEC_FILE_PATH)
|
|
||||||
+ @$(ECHO-E) "%dir %attr($(Pr_xr_xr_x), $(INSTALL_USR),$(INSTALL_GRP)) $(PEGASUS_TEST_DIR)/$(PEGASUS_ARCH_LIB_DIR)" >> $(PEGASUS_RPM_SPEC_FILE_PATH)
|
|
||||||
@$(ECHO-E) "%dir %attr($(Pr_xr_xr_x), $(INSTALL_USR),$(INSTALL_GRP)) $(PEGASUS_TEST_DIR)/bin" >> $(PEGASUS_RPM_SPEC_FILE_PATH)
|
|
||||||
@$(ECHO-E) "%dir %attr($(Pr_xr_xr_x), $(INSTALL_USR),$(INSTALL_GRP)) $(PEGASUS_TEST_DIR)/mak" >> $(PEGASUS_RPM_SPEC_FILE_PATH)
|
|
||||||
@$(foreach i, $(MAK_FILES), $(ECHO-E) \
|
|
||||||
"%attr($(Pr__r__r__),$(INSTALL_USR),$(INSTALL_GRP)) $(PEGASUS_TEST_DIR)/mak/$(i)" >> $(PEGASUS_RPM_SPEC_FILE_PATH);)
|
|
||||||
@$(foreach i, $(PEGASUS_TEST_PROVIDERS), $(ECHO-E) \
|
|
||||||
- "%attr($(Pr_xr_xr_x),$(INSTALL_USR),$(INSTALL_GRP)) $(PEGASUS_TEST_DIR)/lib/$(i)$(LIB_SUFFIX)" >> $(PEGASUS_RPM_SPEC_FILE_PATH);)
|
|
||||||
+ "%attr($(Pr_xr_xr_x),$(INSTALL_USR),$(INSTALL_GRP)) $(PEGASUS_TEST_DIR)/$(PEGASUS_ARCH_LIB_DIR)/$(i)$(LIB_SUFFIX)" >> $(PEGASUS_RPM_SPEC_FILE_PATH);)
|
|
||||||
@$(foreach i, $(PRESTARTTEST_FILES), $(ECHO-E) \
|
|
||||||
"%attr($(Pr_xr_xr_x),$(INSTALL_USR),$(INSTALL_GRP)) $(PEGASUS_TEST_DIR)/bin/$(i)" >> $(PEGASUS_RPM_SPEC_FILE_PATH);)
|
|
||||||
@$(foreach i, $(POSTSTARTTEST_FILES), $(ECHO-E) \
|
|
||||||
--- pegasus-2.5/Makefile.Release.redhat 2005-08-17 17:00:43.000000000 -0400
|
|
||||||
+++ pegasus-2.5/Makefile.Release 2005-10-03 17:12:17.000000000 -0400
|
|
||||||
@@ -481,13 +481,13 @@
|
|
||||||
$(MAKE) -f $(ROOT)/Makefile.Release setpermissions PERMISSIONS="$(Prwxr_xr_x)" OWNER="$(INSTALL_USR)" GROUP="$(INSTALL_GRP)" OBJECT=$(PEGASUS_STAGING_DIR)$(PEGASUS_LOCAL_AUTH_DIR)
|
|
||||||
|
|
||||||
stage_PegasusLibraryDirectoryFiles: FORCE
|
|
||||||
- $(foreach i, $(PEGASUS_LIBRARIES), $(COPY) $(PEGASUS_HOME)/lib/$(i)$(LIB_SUFFIX) $(PEGASUS_STAGING_DIR)$(PEGASUS_DEST_LIB_DIR)/$(i)$(LIB_SUFFIX);)
|
|
||||||
+ $(foreach i, $(PEGASUS_LIBRARIES), $(COPY) $(PEGASUS_HOME)/$(PEGASUS_ARCH_LIB_DIR)/$(i)$(LIB_SUFFIX) $(PEGASUS_STAGING_DIR)$(PEGASUS_DEST_LIB_DIR)/$(i)$(LIB_SUFFIX);)
|
|
||||||
$(foreach i, $(PEGASUS_LIBRARY_LINKS), $(MAKE) -f $(ROOT)/Makefile.Release createlink OBJECT=$(i)$(LIB_SUFFIX) LINKNAME=$(PEGASUS_STAGING_DIR)$(PEGASUS_DEST_LIB_DIR)/$(i)$(LIB_LINK_SUFFIX);)
|
|
||||||
|
|
||||||
setpermissions_PegasusLibraryDirectoryFiles: FORCE
|
|
||||||
$(foreach i, $(PEGASUS_LIBRARIES), $(MAKE) -f $(ROOT)/Makefile.Release setpermissions PERMISSIONS="$(Prwxr_xr_x)" OWNER="$(INSTALL_USR)" GROUP="$(INSTALL_GRP)" OBJECT=$(PEGASUS_STAGING_DIR)$(PEGASUS_DEST_LIB_DIR)/$(i)$(LIB_SUFFIX);)
|
|
||||||
stage_PegasusProviderLibraryDirectoryFiles: FORCE
|
|
||||||
- $(foreach i, $(PEGASUS_PROVIDERS), $(COPY) $(PEGASUS_HOME)/lib/$(i)$(LIB_SUFFIX) $(PEGASUS_STAGING_DIR)$(PEGASUS_PROVIDER_LIB_DIR)/$(i)$(LIB_SUFFIX);)
|
|
||||||
+ $(foreach i, $(PEGASUS_PROVIDERS), $(COPY) $(PEGASUS_HOME)/$(PEGASUS_ARCH_LIB_DIR)/$(i)$(LIB_SUFFIX) $(PEGASUS_STAGING_DIR)$(PEGASUS_PROVIDER_LIB_DIR)/$(i)$(LIB_SUFFIX);)
|
|
||||||
$(foreach i, $(PEGASUS_PROVIDERS), $(MAKE) -f $(ROOT)/Makefile.Release createlink OBJECT=$(i)$(LIB_SUFFIX) LINKNAME=$(PEGASUS_STAGING_DIR)$(PEGASUS_PROVIDER_LIB_DIR)/$(i)$(LIB_LINK_SUFFIX);)
|
|
||||||
|
|
||||||
setpermissions_PegasusProviderLibraryDirectoryFiles: FORCE
|
|
||||||
--- pegasus-2.5/env_var_Linux.status.redhat 2005-09-02 14:40:58.000000000 -0400
|
|
||||||
+++ pegasus-2.5/env_var_Linux.status 2005-10-03 17:12:17.000000000 -0400
|
|
||||||
@@ -9,6 +9,7 @@
|
|
||||||
PEGASUS_OVERRIDE_PRODUCT_ID=yes
|
|
||||||
PEGASUS_PRODUCT_NAME="OpenPegasus"
|
|
||||||
PEGASUS_PRODUCT_VERSION="2.5.0"
|
|
||||||
+PEGASUS_RPM_VERSION="2.5"
|
|
||||||
PEGASUS_PRODUCT_STATUS=""
|
|
||||||
|
|
||||||
PAM_CONFIG_DIR=/etc/pam.d
|
|
||||||
@@ -25,32 +26,31 @@
|
|
||||||
PEGASUS_HAS_SSL=yes
|
|
||||||
PEGASUS_NOASSERTS=yes
|
|
||||||
PEGASUS_PAM_AUTHENTICATION=true
|
|
||||||
-PEGASUS_USE_PAM_STANDALONE_PROC=true
|
|
||||||
PEGASUS_USE_RELEASE_CONFIG_OPTIONS=true
|
|
||||||
PEGASUS_USE_RELEASE_DIRS=true
|
|
||||||
PEGASUS_USE_SYSLOGS=true
|
|
||||||
PEGASUS_CIM_SCHEMA=CIM29
|
|
||||||
|
|
||||||
-PEGASUS_PROD_DIR = /opt/tog-pegasus
|
|
||||||
-PEGASUS_PRODSHARE_DIR = $(PEGASUS_PROD_DIR)/share
|
|
||||||
-PEGASUS_DOC_DIR = $(PEGASUS_PRODSHARE_DIR)/doc
|
|
||||||
-PEGASUS_MAN_DIR = $(PEGASUS_PRODSHARE_DIR)/man
|
|
||||||
+PEGASUS_PROD_DIR = /usr
|
|
||||||
+PEGASUS_PRODSHARE_DIR = $(PEGASUS_PROD_DIR)/share/Pegasus
|
|
||||||
+PEGASUS_DOC_DIR = /usr/share/doc/tog-pegasus-$(PEGASUS_RPM_VERSION)
|
|
||||||
+PEGASUS_MAN_DIR = /usr/share/man
|
|
||||||
PEGASUS_MANUSER_DIR = $(PEGASUS_MAN_DIR)/man1
|
|
||||||
PEGASUS_MANADMIN_DIR = $(PEGASUS_MAN_DIR)/man8
|
|
||||||
-PEGASUS_MOF_DIR = $(PEGASUS_PROD_DIR)/mof
|
|
||||||
-PEGASUS_DEST_LIB_DIR = $(PEGASUS_PROD_DIR)/lib
|
|
||||||
-PEGASUS_PROVIDER_DIR = $(PEGASUS_PROD_DIR)/providers
|
|
||||||
-PEGASUS_PROVIDER_LIB_DIR = $(PEGASUS_PROVIDER_DIR)/lib
|
|
||||||
+PEGASUS_MOF_DIR = $(PEGASUS_PRODSHARE_DIR)/mof
|
|
||||||
+PEGASUS_DEST_LIB_DIR = $(PEGASUS_PROD_DIR)/$(PEGASUS_ARCH_LIB_DIR)
|
|
||||||
+PEGASUS_PROVIDER_DIR = $(PEGASUS_DEST_LIB_DIR)/Pegasus/providers
|
|
||||||
+PEGASUS_PROVIDER_LIB_DIR = $(PEGASUS_PROVIDER_DIR)
|
|
||||||
PEGASUS_SBIN_DIR = $(PEGASUS_PROD_DIR)/sbin
|
|
||||||
PEGASUS_BIN_DIR = $(PEGASUS_PROD_DIR)/bin
|
|
||||||
-PEGASUS_VARDATA_DIR = /var/opt/tog-pegasus
|
|
||||||
+PEGASUS_VARDATA_DIR = /var/lib/Pegasus
|
|
||||||
PEGASUS_REPOSITORY_PARENT_DIR = $(PEGASUS_VARDATA_DIR)
|
|
||||||
PEGASUS_REPOSITORY_DIR = $(PEGASUS_REPOSITORY_PARENT_DIR)/repository
|
|
||||||
PEGASUS_PREV_REPOSITORY_DIR = $(PEGASUS_REPOSITORY_PARENT_DIR)/prev_repository
|
|
||||||
-PEGASUS_CONFIG_DIR = /etc/opt/tog-pegasus
|
|
||||||
+PEGASUS_CONFIG_DIR = /etc/Pegasus
|
|
||||||
PEGASUS_VARRUN_DIR = /var/run/tog-pegasus
|
|
||||||
PEGASUS_CIMSERVER_START_FILE = $(PEGASUS_VARRUN_DIR)/cimserver.pid
|
|
||||||
-PEGASUS_LOCAL_DOMAIN_SOCKET_DIR = $(PEGASUS_VARRUN_DIR)/socket
|
|
||||||
+PEGASUS_LOCAL_DOMAIN_SOCKET_DIR = $(PEGASUS_VARRUN_DIR)
|
|
||||||
PEGASUS_LOCAL_DOMAIN_SOCKET_PATH = $(PEGASUS_LOCAL_DOMAIN_SOCKET_DIR)/cimxml.socket
|
|
||||||
PEGASUS_VARDATA_CACHE_DIR = $(PEGASUS_VARDATA_DIR)/cache
|
|
||||||
PEGASUS_LOCAL_AUTH_DIR = $(PEGASUS_VARDATA_CACHE_DIR)/localauth
|
|
||||||
@@ -63,11 +63,11 @@
|
|
||||||
PEGASUS_SSL_CERT_FILE = server.pem
|
|
||||||
PEGASUS_SSL_TRUSTSTORE = client.pem
|
|
||||||
|
|
||||||
-PEGASUS_SAMPLES_DIR = $(PEGASUS_PROD_DIR)/samples
|
|
||||||
+PEGASUS_SAMPLES_DIR = $(PEGASUS_PRODSHARE_DIR)/samples
|
|
||||||
PEGASUS_INCLUDE_DIR = $(PEGASUS_PROD_DIR)/include
|
|
||||||
-PEGASUS_HTML_DIR = $(PEGASUS_PROD_DIR)/html
|
|
||||||
+PEGASUS_HTML_DIR = $(PEGASUS_PRODSHARE_DIR)/html
|
|
||||||
|
|
||||||
-PEGASUS_TEST_DIR = $(PEGASUS_PROD_DIR)/test
|
|
||||||
+PEGASUS_TEST_DIR = $(PEGASUS_PRODSHARE_DIR)/test
|
|
||||||
PEGASUS_TEST_REPOSITORY_DIR = $(PEGASUS_VARDATA_DIR)
|
|
||||||
PEGASUS_TEST_REPOSITORY_NAME = testrepository
|
|
||||||
|
|
||||||
--- pegasus-2.5/mak/objects-unix.mak.redhat 2005-05-12 11:27:28.000000000 -0400
|
|
||||||
+++ pegasus-2.5/mak/objects-unix.mak 2005-10-03 17:12:17.000000000 -0400
|
|
||||||
@@ -50,12 +50,12 @@
|
|
||||||
|
|
||||||
ifeq ($(_NO_TMP_O), yes)
|
|
||||||
$(OBJ_DIR)/%.o: %.cpp $(ERROR)
|
|
||||||
- $(CXX) -c -o $@ $(FLAGS) $(EXTRA_CXX_FLAGS) $(LOCAL_DEFINES) $(DEFINES) $(SYS_INCLUDES) $(INCLUDES) $*.cpp
|
|
||||||
+ $(CXX) -c -o $@ $(FLAGS) $(EXTRA_CXX_FLAGS) $(LOCAL_DEFINES) $(DEFINES) $(INCLUDES) $(SYS_INCLUDES) $*.cpp
|
|
||||||
@ $(TOUCH) $@
|
|
||||||
@ $(ECHO)
|
|
||||||
else
|
|
||||||
$(OBJ_DIR)/%.o: %.cpp $(ERROR)
|
|
||||||
- $(CXX) -c -o $(_TMP_O) $(FLAGS) $(EXTRA_CXX_FLAGS) $(LOCAL_DEFINES) $(DEFINES) $(SYS_INCLUDES) $(INCLUDES) $*.cpp
|
|
||||||
+ $(CXX) -c -o $(_TMP_O) $(FLAGS) $(EXTRA_CXX_FLAGS) $(LOCAL_DEFINES) $(DEFINES) $(INCLUDES) $(SYS_INCLUDES) $*.cpp
|
|
||||||
@ $(COPY) $(_TMP_O) $@
|
|
||||||
@ $(RM) $(_TMP_O)
|
|
||||||
@ $(TOUCH) $@
|
|
||||||
@@ -64,12 +64,12 @@
|
|
||||||
|
|
||||||
ifeq ($(_NO_TMP_O), yes)
|
|
||||||
$(OBJ_DIR)/%.o: %.c $(ERROR)
|
|
||||||
- $(CC) -c -o $@ $(FLAGS) $(EXTRA_C_FLAGS) $(LOCAL_DEFINES) $(DEFINES) $(SYS_INCLUDES) $(INCLUDES) $*.c
|
|
||||||
+ $(CC) -c -o $@ $(FLAGS) $(EXTRA_C_FLAGS) $(LOCAL_DEFINES) $(DEFINES) $(INCLUDES) $(SYS_INCLUDES) $*.c
|
|
||||||
@ $(TOUCH) $@
|
|
||||||
@ $(ECHO)
|
|
||||||
else
|
|
||||||
$(OBJ_DIR)/%.o: %.c $(ERROR)
|
|
||||||
- $(CC) -c -o $(_TMP_O) $(FLAGS) $(EXTRA_C_FLAGS) $(LOCAL_DEFINES) $(DEFINES) $(SYS_INCLUDES) $(INCLUDES) $*.c
|
|
||||||
+ $(CC) -c -o $(_TMP_O) $(FLAGS) $(EXTRA_C_FLAGS) $(LOCAL_DEFINES) $(DEFINES) $(INCLUDES) $(SYS_INCLUDES) $*.c
|
|
||||||
@ $(COPY) $(_TMP_O) $@
|
|
||||||
@ $(RM) $(_TMP_O)
|
|
||||||
@ $(TOUCH) $@
|
|
||||||
--- pegasus-2.5/mak/config-linux.mak.redhat 2005-05-12 11:27:28.000000000 -0400
|
|
||||||
+++ pegasus-2.5/mak/config-linux.mak 2005-10-03 17:12:17.000000000 -0400
|
|
||||||
@@ -76,10 +76,12 @@
|
|
||||||
|
|
||||||
SYS_LIBS = -ldl -lpthread
|
|
||||||
|
|
||||||
+PEGASUS_INSTALL = /usr/bin/install
|
|
||||||
+
|
|
||||||
# Build using fixed release settings
|
|
||||||
#
|
|
||||||
ifdef PEGASUS_USE_RELEASE_DIRS
|
|
||||||
- PEGASUS_DEST_LIB_DIR=/opt/tog-pegasus/lib
|
|
||||||
+ PEGASUS_DEST_LIB_DIR=/usr/$(PEGASUS_ARCH_LIB_DIR)
|
|
||||||
endif
|
|
||||||
|
|
||||||
# PAM support
|
|
||||||
@@ -102,7 +104,7 @@
|
|
||||||
ifdef PEGASUS_DEBUG
|
|
||||||
FLAGS += -g -fPIC -W -Wall -Wno-unused -D_GNU_SOURCE -DTHREAD_SAFE -D_REENTRANT
|
|
||||||
else
|
|
||||||
-FLAGS += -fPIC -W -Wall -Wno-unused -D_GNU_SOURCE -DTHREAD_SAFE -D_REENTRANT -s -fno-enforce-eh-specs
|
|
||||||
+FLAGS += -fPIC -W -Wall -Wno-unused -D_GNU_SOURCE -DTHREAD_SAFE -D_REENTRANT -fno-enforce-eh-specs
|
|
||||||
ifdef PEGASUS_OPTIMIZE_FOR_SIZE
|
|
||||||
FLAGS += -Os
|
|
||||||
else
|
|
||||||
@@ -152,7 +154,7 @@
|
|
||||||
|
|
||||||
SYS_INCLUDES += -I${ICU_ROOT}/source/common -I${ICU_ROOT}/source/i18n
|
|
||||||
DEFINES += -DPEGASUS_HAS_ICU
|
|
||||||
- EXTRA_LIBRARIES += -L$(ICU_INSTALL)/lib -licuuc -licui18n -licudata
|
|
||||||
+ EXTRA_LIBRARIES += -L$(ICU_INSTALL)/$(PEGASUS_ARCH_LIB_DIR) -licuuc -licui18n -licudata
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
--- pegasus-2.5/mak/SDKMakefile.redhat 2005-07-15 15:46:17.000000000 -0400
|
|
||||||
+++ pegasus-2.5/mak/SDKMakefile 2005-10-03 17:12:17.000000000 -0400
|
|
||||||
@@ -382,10 +382,10 @@
|
|
||||||
@$(MAKE) --directory=$(PEGASUS_ROOT)/mak -f SDKMakefile -i deregisterproviders
|
|
||||||
@$(MAKE) --directory=$(PEGASUS_STAGING_DIR)$(PEGASUS_SAMPLES_DIR) -f Makefile clean \
|
|
||||||
PEGASUS_SAMPLES_DIR=$(PEGASUS_STAGING_DIR)$(PEGASUS_SAMPLES_DIR) \
|
|
||||||
- PEGASUS_PROVIDER_LIB_DIR=$(PEGASUS_HOME)/lib
|
|
||||||
+ PEGASUS_PROVIDER_LIB_DIR=$(PEGASUS_HOME)/$(PEGASUS_ARCH_LIB_DIR)
|
|
||||||
@$(MAKE) --directory=$(PEGASUS_STAGING_DIR)$(PEGASUS_SAMPLES_DIR) -f Makefile all \
|
|
||||||
- PEGASUS_PROVIDER_LIB_DIR=$(PEGASUS_HOME)/lib PEGASUS_INCLUDE_DIR=$(PEGASUS_STAGING_DIR)$(PEGASUS_INCLUDE_DIR) \
|
|
||||||
- PEGASUS_DEST_LIB_DIR=$(PEGASUS_HOME)/lib PEGASUS_SAMPLES_DIR=$(PEGASUS_STAGING_DIR)$(PEGASUS_SAMPLES_DIR) \
|
|
||||||
+ PEGASUS_PROVIDER_LIB_DIR=$(PEGASUS_HOME)/$(PEGASUS_ARCH_LIB_DIR) PEGASUS_INCLUDE_DIR=$(PEGASUS_STAGING_DIR)$(PEGASUS_INCLUDE_DIR) \
|
|
||||||
+ PEGASUS_DEST_LIB_DIR=$(PEGASUS_HOME)/$(PEGASUS_ARCH_LIB_DIR) PEGASUS_SAMPLES_DIR=$(PEGASUS_STAGING_DIR)$(PEGASUS_SAMPLES_DIR) \
|
|
||||||
PEGASUS_INDICATION_CONSUMER_LOG_DIR=$(PEGASUS_STAGING_DIR)$(PEGASUS_SAMPLES_DIR)/Providers/DefaultC++/SimpleDisplayConsumer
|
|
||||||
@$(MAKE) --directory=$(PEGASUS_STAGING_DIR)$(PEGASUS_SAMPLES_DIR)/Providers/Load -f Makefile createrepository \
|
|
||||||
PEGASUS_MOF_DIR=$(PEGASUS_ROOT)/Schemas PEGASUS_BIN_DIR=$(PEGASUS_HOME)bin
|
|
||||||
--- pegasus-2.5/mak/config.mak.redhat 2005-08-12 13:52:31.000000000 -0400
|
|
||||||
+++ pegasus-2.5/mak/config.mak 2005-10-03 17:12:17.000000000 -0400
|
|
||||||
@@ -85,7 +85,7 @@
|
|
||||||
|
|
||||||
OBJ_DIR = $(HOME_DIR)/obj/$(DIR)
|
|
||||||
BIN_DIR = $(HOME_DIR)/bin
|
|
||||||
-LIB_DIR = $(HOME_DIR)/lib
|
|
||||||
+LIB_DIR = $(HOME_DIR)/$(PEGASUS_ARCH_LIB_DIR)
|
|
||||||
|
|
||||||
# l10n
|
|
||||||
# define the location for the compiled messages
|
|
||||||
@@ -544,7 +544,7 @@
|
|
||||||
|
|
||||||
# Unless otherwise specified, Pegasus libraries go in $(PEGASUS_HOME)/lib
|
|
||||||
ifndef PEGASUS_DEST_LIB_DIR
|
|
||||||
- PEGASUS_DEST_LIB_DIR = lib
|
|
||||||
+ PEGASUS_DEST_LIB_DIR = $(PEGASUS_ARCH_LIB_DIR)
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(OS),VMS)
|
|
||||||
--- pegasus-2.5/mak/program-unix.mak.redhat 2005-05-12 11:27:28.000000000 -0400
|
|
||||||
+++ pegasus-2.5/mak/program-unix.mak 2005-10-03 17:14:17.000000000 -0400
|
|
||||||
@@ -28,6 +28,12 @@
|
|
||||||
#//==============================================================================
|
|
||||||
INCLUDES = -I$(ROOT)/src $(EXTRA_INCLUDES)
|
|
||||||
|
|
||||||
+ifdef PEGASUS_PLATFORM_LINUX_GENERIC_GNU
|
|
||||||
+ ifdef PEGASUS_EXE_LINK_FLAGS
|
|
||||||
+ EXTRA_LINK_FLAGS += $(PEGASUS_EXE_LINK_FLAGS)
|
|
||||||
+ endif
|
|
||||||
+endif
|
|
||||||
+
|
|
||||||
TMP_OBJECTS = $(foreach i,$(SOURCES),$(OBJ_DIR)/$i)
|
|
||||||
|
|
||||||
ifeq ($(OS_TYPE),windows)
|
|
||||||
@@ -56,7 +62,7 @@
|
|
||||||
ifdef PEGASUS_HAS_MESSAGES
|
|
||||||
ifdef ICU_ROOT
|
|
||||||
ifdef ICU_INSTALL
|
|
||||||
- SYS_LIBS += -L${ICU_INSTALL}/lib -licui18n -licuuc
|
|
||||||
+ SYS_LIBS += -L${ICU_INSTALL}/$(PEGASUS_ARCH_LIB_DIR) -licui18n -licuuc
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
@@ -90,17 +96,17 @@
|
|
||||||
ifdef ICU_ROOT
|
|
||||||
ifdef ICU_INSTALL
|
|
||||||
ifdef PEGASUS_USE_RELEASE_DIRS
|
|
||||||
- $(LINK_WRAPPER) $(CXX) $(FLAGS) $(EXTRA_LINK_FLAGS) -Xlinker -rpath -Xlinker $(PEGASUS_DEST_LIB_DIR) -Xlinker -rpath-link -Xlinker $(LIB_DIR) -Xlinker -rpath -Xlinker ${ICU_INSTALL}/lib -L$(LIB_DIR) $(EXE_OUTPUT) $(OBJECTS) $(DYNAMIC_LIBRARIES) $(SYS_LIBS)
|
|
||||||
+ $(LINK_WRAPPER) $(CXX) $(FLAGS) $(EXTRA_LINK_FLAGS) -Xlinker -rpath -Xlinker $(PEGASUS_DEST_LIB_DIR) -Xlinker -rpath-link -Xlinker $(LIB_DIR) -Xlinker -rpath -Xlinker ${ICU_INSTALL}/$(PEGASUS_ARCH_LIB_DIR) -L$(LIB_DIR) $(EXE_OUTPUT) $(OBJECTS) $(DYNAMIC_LIBRARIES) $(SYS_LIBS)
|
|
||||||
else
|
|
||||||
- $(LINK_WRAPPER) $(CXX) $(FLAGS) $(EXTRA_LINK_FLAGS) -Xlinker -rpath -Xlinker $(LIB_DIR) -Xlinker -rpath -Xlinker ${ICU_INSTALL}/lib -L$(LIB_DIR) $(EXE_OUTPUT) $(OBJECTS) $(DYNAMIC_LIBRARIES) $(SYS_LIBS)
|
|
||||||
+ $(LINK_WRAPPER) $(CXX) $(FLAGS) $(EXTRA_LINK_FLAGS) -Xlinker -rpath -Xlinker $(LIB_DIR) -Xlinker -rpath -Xlinker ${ICU_INSTALL}/$(PEGASUS_ARCH_LIB_DIR) -L$(LIB_DIR) $(EXE_OUTPUT) $(OBJECTS) $(DYNAMIC_LIBRARIES) $(SYS_LIBS)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
else
|
|
||||||
ifdef PEGASUS_USE_RELEASE_DIRS
|
|
||||||
- $(LINK_WRAPPER) $(CXX) $(FLAGS) $(EXTRA_LINK_FLAGS) -Xlinker -rpath -Xlinker $(PEGASUS_DEST_LIB_DIR) -Xlinker -rpath-link -Xlinker $(LIB_DIR) -L$(LIB_DIR) $(EXE_OUTPUT) $(OBJECTS) $(DYNAMIC_LIBRARIES) $(SYS_LIBS)
|
|
||||||
+ $(LINK_WRAPPER) $(CXX) $(FLAGS) $(EXTRA_LINK_FLAGS) -L$(PEGASUS_HOME)/$(PEGASUS_ARCH_LIB_DIR) -Xlinker -rpath-link -Xlinker $(PEGASUS_HOME)/$(PEGASUS_ARCH_LIB_DIR) $(EXE_OUTPUT) $(OBJECTS) $(DYNAMIC_LIBRARIES) $(SYS_LIBS)
|
|
||||||
else
|
|
||||||
- $(LINK_WRAPPER) $(CXX) $(FLAGS) $(EXTRA_LINK_FLAGS) -Xlinker -rpath -Xlinker $(LIB_DIR) -L$(LIB_DIR) $(EXE_OUTPUT) $(OBJECTS) $(DYNAMIC_LIBRARIES) $(SYS_LIBS)
|
|
||||||
+ $(LINK_WRAPPER) $(CXX) $(FLAGS) $(EXTRA_LINK_FLAGS) -L$(PEGASUS_HOME)/$(PEGASUS_ARCH_LIB_DIR) -Xlinker -rpath-link -Xlinker $(PEGASUS_HOME)/$(PEGASUS_ARCH_LIB_DIR) $(EXE_OUTPUT) $(OBJECTS) $(DYNAMIC_LIBRARIES) $(SYS_LIBS)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
else
|
|
||||||
@@ -109,11 +115,11 @@
|
|
||||||
ifdef PEGASUS_HAS_MESSAGES
|
|
||||||
ifdef ICU_ROOT
|
|
||||||
ifdef ICU_INSTALL
|
|
||||||
- $(LINK_WRAPPER) $(CXX) -Wl,-brtl -blibpath:/usr/linux/lib:/usr/lib:/lib:$(ICU_INSTALL)/lib -Wl,-bhalt:$(AIX_LD_HALT) $(FLAGS) $(EXTRA_LINK_FLAGS) -L$(LIB_DIR) $(EXE_OUTPUT) $(OBJECTS) $(DYNAMIC_LIBRARIES) $(SYS_LIBS)
|
|
||||||
+ $(LINK_WRAPPER) $(CXX) -Wl,-brtl -blibpath:/usr/linux/$(PEGASUS_ARCH_LIB_DIR):/usr/$(PEGASUS_ARCH_LIB_DIR):/$(PEGASUS_ARCH_LIB_DIR):$(ICU_INSTALL)/$(PEGASUS_ARCH_LIB_DIR) -Wl,-bhalt:$(AIX_LD_HALT) $(FLAGS) $(EXTRA_LINK_FLAGS) -L$(LIB_DIR) $(EXE_OUTPUT) $(OBJECTS) $(DYNAMIC_LIBRARIES) $(SYS_LIBS)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
else
|
|
||||||
- $(LINK_WRAPPER) $(CXX) -Wl,-brtl -blibpath:/usr/linux/lib:/usr/lib:/lib -Wl,-bhalt:$(AIX_LD_HALT) $(FLAGS) $(EXTRA_LINK_FLAGS) -L$(LIB_DIR) $(EXE_OUTPUT) $(OBJECTS) $(DYNAMIC_LIBRARIES) $(SYS_LIBS)
|
|
||||||
+ $(LINK_WRAPPER) $(CXX) -Wl,-brtl -blibpath:/usr/linux/$(PEGASUS_ARCH_LIB_DIR):/usr/$(PEGASUS_ARCH_LIB_DIR):/$(PEGASUS_ARCH_LIB_DIR):$(ICU_INSTALL)/$(PEGASUS_ARCH_LIB_DIR) -Wl,-bhalt:$(AIX_LD_HALT) $(FLAGS) $(EXTRA_LINK_FLAGS) -L$(LIB_DIR) $(EXE_OUTPUT) $(OBJECTS) $(DYNAMIC_LIBRARIES) $(SYS_LIBS)
|
|
||||||
endif
|
|
||||||
else
|
|
||||||
$(LINK_WRAPPER) $(CXX) -Wl,-brtl -Wl,-bhalt:$(AIX_LD_HALT) $(FLAGS) $(EXTRA_LINK_FLAGS) -L$(LIB_DIR) $(EXE_OUTPUT) $(OBJECTS) $(DYNAMIC_LIBRARIES) $(SYS_LIBS)
|
|
||||||
@@ -147,3 +153,5 @@
|
|
||||||
-include $(OBJ_DIR)/depend.mak
|
|
||||||
|
|
||||||
include $(ROOT)/mak/misc.mak
|
|
||||||
+
|
|
||||||
+include $(ROOT)/mak/install-program-unix.mak
|
|
||||||
--- pegasus-2.5/mak/library-unix.mak.redhat 2005-05-12 11:27:28.000000000 -0400
|
|
||||||
+++ pegasus-2.5/mak/library-unix.mak 2005-10-03 17:14:54.000000000 -0400
|
|
||||||
@@ -32,11 +32,11 @@
|
|
||||||
ifdef PEGASUS_HAS_MESSAGES
|
|
||||||
ifdef ICU_ROOT
|
|
||||||
ifdef ICU_INSTALL
|
|
||||||
- LINK_ARGUMENTS = -qmkshrobj=$(AIX_LIB_PRIORITY) -blibpath:/usr/linux/lib:/usr/lib:/lib:$(ICU_INSTALL)/lib -Wl,-bhalt:$(AIX_LD_HALT)
|
|
||||||
+ LINK_ARGUMENTS = -qmkshrobj=$(AIX_LIB_PRIORITY) -blibpath:/usr/linux/$(PEGASUS_ARCH_LIB_DIR):/usr/$(PEGASUS_ARCH_LIB_DIR):/$(PEGASUS_ARCH_LIB_DIR):$(ICU_INSTALL)/$(PEGASUS_ARCH_LIB_DIR) -Wl,-bhalt:$(AIX_LD_HALT)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
else
|
|
||||||
- LINK_ARGUMENTS = -qmkshrobj=$(AIX_LIB_PRIORITY) -blibpath:/usr/linux/lib:/usr/lib:/lib -Wl,-bhalt:$(AIX_LD_HALT)
|
|
||||||
+ LINK_ARGUMENTS = -qmkshrobj=$(AIX_LIB_PRIORITY) -blibpath:/usr/linux/$(PEGASUS_ARCH_LIB_DIR):/usr/$(PEGASUS_ARCH_LIB_DIR):/$(PEGASUS_ARCH_LIB_DIR) -Wl,-bhalt:$(AIX_LD_HALT)
|
|
||||||
endif
|
|
||||||
else
|
|
||||||
LINK_ARGUMENTS = -qmkshrobj=$(AIX_LIB_PRIORITY) -Wl,-bhalt:$(AIX_LD_HALT)
|
|
||||||
@@ -56,12 +56,12 @@
|
|
||||||
endif
|
|
||||||
ifeq ($(PEGASUS_SUPPORTS_DYNLIB),yes)
|
|
||||||
ifdef PEGASUS_USE_RELEASE_DIRS
|
|
||||||
- LINK_COMMAND += -Wl,+b$(PEGASUS_DEST_LIB_DIR):/usr/lib
|
|
||||||
+ LINK_COMMAND += -Wl,+b$(PEGASUS_DEST_LIB_DIR):/usr/$(PEGASUS_ARCH_LIB_DIR)
|
|
||||||
ifeq ($(PEGASUS_PLATFORM), HPUX_PARISC_ACC)
|
|
||||||
- LINK_COMMAND += -Wl,+cdp,$(PEGASUS_PLATFORM_SDKROOT)/usr/lib:/usr/lib -Wl,+cdp,$(PEGASUS_HOME)/lib:$(PEGASUS_DEST_LIB_DIR)
|
|
||||||
+ LINK_COMMAND += -Wl,+cdp,$(PEGASUS_PLATFORM_SDKROOT)/usr/$(PEGASUS_ARCH_LIB_DIR):/usr/$(PEGASUS_ARCH_LIB_DIR) -Wl,+cdp,$(PEGASUS_HOME)/$(PEGASUS_ARCH_LIB_DIR):$(PEGASUS_DEST_LIB_DIR)
|
|
||||||
endif
|
|
||||||
else
|
|
||||||
- LINK_COMMAND += -Wl,+b$(LIB_DIR):/usr/lib
|
|
||||||
+ LINK_COMMAND += -Wl,+b$(LIB_DIR):/usr/$(PEGASUS_ARCH_LIB_DIR)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
LINK_COMMAND += -Wl,+s
|
|
||||||
@@ -79,10 +79,10 @@
|
|
||||||
ifneq ($(PEGASUS_PLATFORM),DARWIN_PPC_GNU)
|
|
||||||
ifdef PEGASUS_USE_RELEASE_DIRS
|
|
||||||
LINK_COMMAND = $(CXX) -shared
|
|
||||||
- LINK_ARGUMENTS = -Wl,-hlib$(LIBRARY)$(LIB_SUFFIX) -Xlinker -rpath -Xlinker $(PEGASUS_DEST_LIB_DIR)
|
|
||||||
+ LINK_ARGUMENTS = -Wl,-hlib$(LIBRARY)$(LIB_SUFFIX) -L$(PEGASUS_HOME)/$(PEGASUS_ARCH_LIB_DIR) -Xlinker -rpath-link -Xlinker $(PEGASUS_HOME)/$(PEGASUS_ARCH_LIB_DIR) $(EXTRA_LINK_ARGUMENTS)
|
|
||||||
else
|
|
||||||
LINK_COMMAND = $(CXX) -shared
|
|
||||||
- LINK_ARGUMENTS = -Wl,-hlib$(LIBRARY)$(LIB_SUFFIX) -Xlinker -rpath -Xlinker $(LIB_DIR) $(EXTRA_LINK_ARGUMENTS)
|
|
||||||
+ LINK_ARGUMENTS = -Wl,-hlib$(LIBRARY)$(LIB_SUFFIX) -L$(PEGASUS_HOME)/$(PEGASUS_ARCH_LIB_DIR) -Xlinker -rpath-link -Xlinker $(PEGASUS_HOME)/$(PEGASUS_ARCH_LIB_DIR) $(EXTRA_LINK_ARGUMENTS)
|
|
||||||
endif
|
|
||||||
else
|
|
||||||
LINK_COMMAND = $(CXX) -dynamiclib
|
|
||||||
@@ -164,3 +164,5 @@
|
|
||||||
ln -f -s $(LIBRARY)$(SUFFIX) $(LIBRARY).$(PLATFORM_SUFFIX)
|
|
||||||
|
|
||||||
FILES_TO_CLEAN = $(OBJECTS) $(FULL_LIB)
|
|
||||||
+
|
|
||||||
+include $(ROOT)/mak/install-library-unix.mak
|
|
||||||
--- pegasus-2.5/rpm/wbem.redhat 2003-03-13 12:25:15.000000000 -0500
|
|
||||||
+++ pegasus-2.5/rpm/wbem 2005-10-03 17:12:17.000000000 -0400
|
|
||||||
@@ -1,13 +1,7 @@
|
|
||||||
#%PAM-1.0
|
|
||||||
-auth required /lib/security/pam_env.so
|
|
||||||
-auth sufficient /lib/security/pam_unix.so likeauth nullok
|
|
||||||
-auth required /lib/security/pam_deny.so
|
|
||||||
-
|
|
||||||
-account required /lib/security/pam_unix.so
|
|
||||||
-
|
|
||||||
-password required /lib/security/pam_cracklib.so retry=3 type=
|
|
||||||
-password sufficient /lib/security/pam_unix.so nullok use_authtok md5 shadow
|
|
||||||
-password required /lib/security/pam_deny.so
|
|
||||||
-
|
|
||||||
-session required /lib/security/pam_limits.so
|
|
||||||
-session required /lib/security/pam_unix.so
|
|
||||||
+auth include system-auth
|
|
||||||
+account required pam_access.so accessfile=/etc/Pegasus/access.conf
|
|
||||||
+account include system-auth
|
|
||||||
+password include system-auth
|
|
||||||
+session include system-auth
|
|
||||||
+session required pam_loginuid.so
|
|
||||||
--- pegasus-2.5/rpm/tog-pegasus.rc.redhat 2005-05-29 02:43:30.000000000 -0400
|
|
||||||
+++ pegasus-2.5/rpm/tog-pegasus.rc 2005-10-03 17:12:17.000000000 -0400
|
|
||||||
@@ -1,34 +1,28 @@
|
|
||||||
#! /bin/sh
|
|
||||||
-#//%2005////////////////////////////////////////////////////////////////////////
|
|
||||||
-#//
|
|
||||||
-#// Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development
|
|
||||||
-#// Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems.
|
|
||||||
-#// Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L.P.;
|
|
||||||
-#// IBM Corp.; EMC Corporation, The Open Group.
|
|
||||||
-#// Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;
|
|
||||||
-#// IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.
|
|
||||||
-#// Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
|
|
||||||
-#// EMC Corporation; VERITAS Software Corporation; The Open Group.
|
|
||||||
-#//
|
|
||||||
-#// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
-#// of this software and associated documentation files (the "Software"), to
|
|
||||||
-#// deal in the Software without restriction, including without limitation the
|
|
||||||
-#// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
|
||||||
-#// sell copies of the Software, and to permit persons to whom the Software is
|
|
||||||
-#// furnished to do so, subject to the following conditions:
|
|
||||||
-#//
|
|
||||||
-#// THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
|
|
||||||
-#// ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
|
|
||||||
-#// "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
|
|
||||||
-#// LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
|
|
||||||
-#// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
|
||||||
-#// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
|
||||||
-#// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
||||||
-#// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
||||||
-#//
|
|
||||||
-#//==============================================================================
|
|
||||||
-#//
|
|
||||||
-#//%/////////////////////////////////////////////////////////////////////////////
|
|
||||||
+#%/////////////////////////////////////////////////////////////////////////////
|
|
||||||
+#
|
|
||||||
+# Copyright (c) 2004 BMC Software, Hewlett-Packard Company, IBM,
|
|
||||||
+# The Open Group, Tivoli Systems
|
|
||||||
+#
|
|
||||||
+# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
+# of this software and associated documentation files (the "Software"), to
|
|
||||||
+# deal in the Software without restriction, including without limitation the
|
|
||||||
+# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
|
||||||
+# sell copies of the Software, and to permit persons to whom the Software is
|
|
||||||
+# furnished to do so, subject to the following conditions:
|
|
||||||
+#
|
|
||||||
+# THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
|
|
||||||
+# ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
|
|
||||||
+# "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
|
|
||||||
+# LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
|
|
||||||
+# PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
|
||||||
+# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
|
||||||
+# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
||||||
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
||||||
+#
|
|
||||||
+#==============================================================================
|
|
||||||
+#
|
|
||||||
+#%/////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
### BEGIN INIT INFO
|
|
||||||
# Provides: tog-pegasus
|
|
||||||
@@ -40,7 +34,10 @@
|
|
||||||
# Description: init script for Pegasus CIM server
|
|
||||||
### END INIT INFO
|
|
||||||
|
|
||||||
-CIMSERVER_BIN=/opt/tog-pegasus/sbin/cimserver
|
|
||||||
+CIMSERVER_BIN=/usr/sbin/cimserver
|
|
||||||
+PEGASUS_SSL_CERT_FILE=${PEGASUS_SSL_CERT_FILE:=server.pem}
|
|
||||||
+PEGASUS_SSL_KEY_FILE=${PEGASUS_SSL_KEY_FILE:=file.pem}
|
|
||||||
+PEGASUS_SSL_TRUSTSTORE=${PEGASUS_SSL_TRUSTSTORE:=client.pem}
|
|
||||||
prog=cimserver
|
|
||||||
|
|
||||||
test -x $CIMSERVER_BIN || exit 5
|
|
||||||
@@ -50,19 +47,22 @@
|
|
||||||
|
|
||||||
case "$1" in
|
|
||||||
start)
|
|
||||||
+ [ -e /var/run/tog-pegasus/cimxml.socket ] && rm -f /var/run/tog-pegasus/cimxml.socket
|
|
||||||
echo -n $"Starting up CIM server: "
|
|
||||||
+ if [ ! -e /etc/Pegasus/ssl.cnf ] || [ ! -e /etc/Pegasus/$PEGASUS_SSL_CERT_FILE ] || [ ! -e /etc/Pegasus/$PEGASUS_SSL_KEY_FILE ] || [ ! -e /etc/Pegasus/$PEGASUS_SSL_TRUSTSTORE ]; then
|
|
||||||
+ echo "Generating SSL certificates...";
|
|
||||||
+ /usr/share/Pegasus/scripts/genSSLcerts;
|
|
||||||
+ fi;
|
|
||||||
$CIMSERVER_BIN
|
|
||||||
RETVAL=$?
|
|
||||||
[ "$RETVAL" -eq 0 ] && log_success_msg $"$prog start" || log_failure_msg $"$prog start"
|
|
||||||
- echo
|
|
||||||
;;
|
|
||||||
-
|
|
||||||
stop)
|
|
||||||
echo -n $"Shutting down CIM server: "
|
|
||||||
killproc cimserver
|
|
||||||
RETVAL=$?
|
|
||||||
[ "$RETVAL" -eq 0 ] && log_success_msg $"$prog stop" || log_failure_msg $"$prog stop"
|
|
||||||
- echo
|
|
||||||
+ [ "$RETVAL" -eq 0 ] && [ -e /var/run/tog-pegasus/cimxml.socket ] && rm -f /var/run/tog-pegasus/cimxml.socket
|
|
||||||
;;
|
|
||||||
status)
|
|
||||||
pid=`pidofproc $CIMSERVER_BIN`
|
|
||||||
--- pegasus-2.5/src/Pegasus/ProviderManager2/tests/ProviderManagerModule/ProviderManagerModule.cpp.redhat 2005-04-18 17:18:24.000000000 -0400
|
|
||||||
+++ pegasus-2.5/src/Pegasus/ProviderManager2/tests/ProviderManagerModule/ProviderManagerModule.cpp 2005-10-03 17:12:17.000000000 -0400
|
|
||||||
@@ -134,7 +134,7 @@
|
|
||||||
|
|
||||||
int main(int argc, char** argv)
|
|
||||||
{
|
|
||||||
- const char * verbose = getenv("PEGASUS_TEST_VERBOSE");
|
|
||||||
+ const char * verbose = getenv("PEGASUS_TEST_VERBOSE"), *p;
|
|
||||||
|
|
||||||
const String FILE_NAME =
|
|
||||||
FileSystem::buildLibraryFileName("TestProviderManager");
|
|
||||||
@@ -146,7 +146,11 @@
|
|
||||||
#elif defined (PEGASUS_OS_VMS)
|
|
||||||
fileName= FILE_NAME;
|
|
||||||
#else
|
|
||||||
- fileName=String(getenv("PEGASUS_HOME"))+String("/lib/")+FILE_NAME;
|
|
||||||
+ fileName= String(getenv("PEGASUS_HOME"))
|
|
||||||
+ + String("/")
|
|
||||||
+ + String(((p = getenv("PEGASUS_ARCH_LIB_DIR")) == 0L) ? "lib" : p)
|
|
||||||
+ + String("/")
|
|
||||||
+ + FILE_NAME;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
Test1();
|
|
||||||
--- pegasus-2.5/src/Pegasus/ProviderManager2/CMPI/samples/ProcessIndication/Makefile.redhat 2005-05-12 11:30:52.000000000 -0400
|
|
||||||
+++ pegasus-2.5/src/Pegasus/ProviderManager2/CMPI/samples/ProcessIndication/Makefile 2005-10-03 17:12:17.000000000 -0400
|
|
||||||
@@ -29,7 +29,7 @@
|
|
||||||
# Makefile for CMPIRT_SampleClass library
|
|
||||||
|
|
||||||
# Change the following lines to match the values on your system
|
|
||||||
-PEGDIRLIB=$(PEGASUS_HOME)/lib
|
|
||||||
+PEGDIRLIB=$(PEGASUS_HOME)/$(PEGASUS_ARCH_LIB_DIR)
|
|
||||||
|
|
||||||
# Changes shouldn't be necessary below this line
|
|
||||||
CFLAGS=-Wall -D_COMPILE_UNIX -g -I. -I../..
|
|
||||||
--- pegasus-2.5/src/Pegasus/Config/FixedPropertyTableLinux.h.redhat 2005-07-15 19:02:21.000000000 -0400
|
|
||||||
+++ pegasus-2.5/src/Pegasus/Config/FixedPropertyTableLinux.h 2005-10-03 17:12:17.000000000 -0400
|
|
||||||
@@ -45,19 +45,19 @@
|
|
||||||
{"enableBinaryRepository", "false"},
|
|
||||||
#endif
|
|
||||||
#if defined(PEGASUS_USE_RELEASE_DIRS) && !defined(PEGASUS_OS_LSB)
|
|
||||||
- {"traceFilePath", "/var/opt/tog-pegasus/cache/trace/cimserver.trc"},
|
|
||||||
+ {"traceFilePath", "/var/lib/Pegasus/cache/cimserver.trc"},
|
|
||||||
#if !defined(PEGASUS_USE_SYSLOGS)
|
|
||||||
- {"logdir", "/var/opt/tog-pegasus/log"},
|
|
||||||
+ {"logdir", "/var/log/Pegasus"},
|
|
||||||
#endif
|
|
||||||
- {"passwordFilePath", "/etc/opt/tog-pegasus/cimserver.passwd"},
|
|
||||||
- {"sslCertificateFilePath", "/etc/opt/tog-pegasus/server.pem"},
|
|
||||||
- {"sslKeyFilePath", "/etc/opt/tog-pegasus/file.pem"},
|
|
||||||
- {"sslTrustStore", "/etc/opt/tog-pegasus/cimserver_trust"},
|
|
||||||
- {"exportSSLTrustStore", "/etc/opt/tog-pegasus/indication_trust"},
|
|
||||||
- {"crlStore", "/etc/opt/tog-pegasus/crl"},
|
|
||||||
- {"repositoryDir", "/var/opt/tog-pegasus/repository"},
|
|
||||||
- {"providerDir", "/opt/tog-pegasus/providers/lib:/usr/lib/cmpi"},
|
|
||||||
- {"messageDir", "/opt/tog-pegasus/share/locale/ICU_Messages"},
|
|
||||||
+ {"passwordFilePath", "/etc/Pegasus/cimserver.passwd"},
|
|
||||||
+ {"sslCertificateFilePath", "/etc/Pegasus/server.pem"},
|
|
||||||
+ {"sslKeyFilePath", "/etc/Pegasus/file.pem"},
|
|
||||||
+ {"sslTrustStore", "/etc/Pegasus/cimserver_trust"},
|
|
||||||
+ {"exportSSLTrustStore", "/etc/Pegasus/indication_trust"},
|
|
||||||
+ {"crlStore", "/etc/Pegasus/crl"},
|
|
||||||
+ {"repositoryDir", "/var/lib/Pegasus/repository"},
|
|
||||||
+ {"providerDir", PEGASUS_DEST_LIB_DIR "/Pegasus/providers"},
|
|
||||||
+ {"messageDir", "/usr/share/locale"},
|
|
||||||
#endif
|
|
||||||
#if defined(PEGASUS_USE_RELEASE_DIRS) && defined(PEGASUS_OS_LSB)
|
|
||||||
{"traceFilePath", "/var/opt/lsb-pegasus/cache/cimserver.trc"},
|
|
||||||
--- pegasus-2.5/src/Pegasus/Config/ConfigFileDirLinux.h.redhat 2005-02-05 18:00:07.000000000 -0500
|
|
||||||
+++ pegasus-2.5/src/Pegasus/Config/ConfigFileDirLinux.h 2005-10-03 17:12:17.000000000 -0400
|
|
||||||
@@ -37,12 +37,12 @@
|
|
||||||
/**
|
|
||||||
Default file name for the current configuration.
|
|
||||||
*/
|
|
||||||
-static char CURRENT_CONFIG_FILE [] = "/var/opt/tog-pegasus/cimserver_current.conf";
|
|
||||||
+static char CURRENT_CONFIG_FILE [] = "/etc/Pegasus/cimserver_current.conf";
|
|
||||||
|
|
||||||
/**
|
|
||||||
Default file name for the planned configuration.
|
|
||||||
*/
|
|
||||||
-static char PLANNED_CONFIG_FILE [] = "/var/opt/tog-pegasus/cimserver_planned.conf";
|
|
||||||
+static char PLANNED_CONFIG_FILE [] = "/etc/Pegasus/cimserver_planned.conf";
|
|
||||||
|
|
||||||
/**
|
|
||||||
Default file name for the cimserver startup file containing the PID.
|
|
||||||
--- pegasus-2.5/src/Pegasus/ControlProviders/CertificateProvider/Makefile.redhat 2005-05-12 11:29:46.000000000 -0400
|
|
||||||
+++ pegasus-2.5/src/Pegasus/ControlProviders/CertificateProvider/Makefile 2005-10-03 17:12:17.000000000 -0400
|
|
||||||
@@ -56,8 +56,8 @@
|
|
||||||
ifeq ($(OS),linux)
|
|
||||||
EXTRA_LIBRARIES += -lcrypt
|
|
||||||
ifdef PEGASUS_HAS_SSL
|
|
||||||
- EXTRA_LIBRARIES += -L$(OPENSSL_HOME)/lib -lssl -lcrypto
|
|
||||||
- EXTRA_LINK_ARGUMENTS = -Xlinker -rpath -Xlinker $(OPENSSL_HOME)/lib
|
|
||||||
+ EXTRA_LIBRARIES += -L$(OPENSSL_HOME)/$(PEGASUS_ARCH_LIB_DIR) -lssl -lcrypto
|
|
||||||
+ EXTRA_LINK_ARGUMENTS = -Xlinker -rpath -Xlinker $(OPENSSL_HOME)/$(PEGASUS_ARCH_LIB_DIR)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
--- pegasus-2.5/src/Pegasus/Common/tests/DynLoad/Makefile.redhat 2005-05-12 11:28:46.000000000 -0400
|
|
||||||
+++ pegasus-2.5/src/Pegasus/Common/tests/DynLoad/Makefile 2005-10-03 17:12:17.000000000 -0400
|
|
||||||
@@ -45,7 +45,7 @@
|
|
||||||
ifeq ($(PEGASUS_OS_TYPE),VMS)
|
|
||||||
$(PROGRAM) libTestDynLib
|
|
||||||
else
|
|
||||||
- $(PROGRAM) $(HOME_DIR)/lib/libTestDynLib$(LIB_SUFFIX)
|
|
||||||
+ $(PROGRAM) $(HOME_DIR)/$(PEGASUS_ARCH_LIB_DIR)/libTestDynLib$(LIB_SUFFIX)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
--- pegasus-2.5/src/Pegasus/Common/MessageQueueService.cpp.redhat 2005-08-16 18:46:53.000000000 -0400
|
|
||||||
+++ pegasus-2.5/src/Pegasus/Common/MessageQueueService.cpp 2005-10-03 17:12:17.000000000 -0400
|
|
||||||
@@ -68,7 +68,9 @@
|
|
||||||
|
|
||||||
#define MAX_THREADS_PER_SVC_QUEUE_LIMIT 5000
|
|
||||||
#define MAX_THREADS_PER_SVC_QUEUE_DEFAULT 5
|
|
||||||
-
|
|
||||||
+#ifndef MAX_THREADS_PER_SVC_QUEUE
|
|
||||||
+#define MAX_THREADS_PER_SVC_QUEUE MAX_THREADS_PER_SVC_QUEUE_DEFAULT
|
|
||||||
+#endif
|
|
||||||
Uint32 max_threads_per_svc_queue;
|
|
||||||
|
|
||||||
PEGASUS_THREAD_RETURN PEGASUS_THREAD_CDECL
|
|
||||||
--- pegasus-2.5/src/Pegasus/Common/Makefile.redhat 2005-06-12 18:31:19.000000000 -0400
|
|
||||||
+++ pegasus-2.5/src/Pegasus/Common/Makefile 2005-10-03 17:12:17.000000000 -0400
|
|
||||||
@@ -165,8 +165,8 @@
|
|
||||||
ifeq ($(OS),linux)
|
|
||||||
EXTRA_LIBRARIES += -lcrypt
|
|
||||||
ifdef PEGASUS_HAS_SSL
|
|
||||||
- EXTRA_LIBRARIES += -L$(OPENSSL_HOME)/lib -lssl -lcrypto
|
|
||||||
- EXTRA_LINK_ARGUMENTS = -Xlinker -rpath -Xlinker $(OPENSSL_HOME)/lib
|
|
||||||
+ EXTRA_LIBRARIES += -L$(OPENSSL_HOME)/$(PEGASUS_ARCH_LIB_DIR) -lssl -lcrypto
|
|
||||||
+ EXTRA_LINK_ARGUMENTS = -Xlinker -rpath -Xlinker $(OPENSSL_HOME)/$(PEGASUS_ARCH_LIB_DIR)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
@@ -206,11 +206,11 @@
|
|
||||||
ifeq ($(PEGASUS_PLATFORM),WIN32_IX86_MSVC)
|
|
||||||
SYS_LIBS = ws2_32.lib advapi32.lib netapi32.lib
|
|
||||||
ifdef PEGASUS_HAS_SSL
|
|
||||||
- SYS_LIBS += /libpath:$(OPENSSL_HOME)/lib libeay32.lib ssleay32.lib
|
|
||||||
+ SYS_LIBS += /libpath:$(OPENSSL_HOME)/$(PEGASUS_ARCH_LIB_DIR) libeay32.lib ssleay32.lib
|
|
||||||
endif
|
|
||||||
ifdef PEGASUS_WINDOWS_SDK_HOME
|
|
||||||
FLAGS += -DPEGASUS_WINDOWS_SDK_HOME
|
|
||||||
- SYS_LIBS += /libpath:$(PEGASUS_WINDOWS_SDK_HOME)/lib secur32.lib
|
|
||||||
+ SYS_LIBS += /libpath:$(PEGASUS_WINDOWS_SDK_HOME)/$(PEGASUS_ARCH_LIB_DIR) secur32.lib
|
|
||||||
else
|
|
||||||
ifneq ($(CL_MAJOR_VERSION), 12)
|
|
||||||
SYS_LIBS += secur32.lib
|
|
||||||
--- pegasus-2.5/src/Pegasus/Common/Constants.h.redhat 2005-07-27 17:02:36.000000000 -0400
|
|
||||||
+++ pegasus-2.5/src/Pegasus/Common/Constants.h 2005-10-03 17:12:17.000000000 -0400
|
|
||||||
@@ -380,21 +380,21 @@
|
|
||||||
# define PEGASUS_PAM_STANDALONE_PROC_NAME "/opt/freeware/cimom/pegasus/bin/cimservera"
|
|
||||||
# elif defined(PEGASUS_OS_LINUX) && !defined(PEGASUS_OS_LSB)
|
|
||||||
# undef PEGASUS_SSLCLIENT_CERTIFICATEFILE
|
|
||||||
-# define PEGASUS_SSLCLIENT_CERTIFICATEFILE "/etc/opt/tog-pegasus/client.pem"
|
|
||||||
+# define PEGASUS_SSLCLIENT_CERTIFICATEFILE "/etc/Pegasus/client.pem"
|
|
||||||
# undef PEGASUS_SSLCLIENT_RANDOMFILE
|
|
||||||
-# define PEGASUS_SSLCLIENT_RANDOMFILE "/var/opt/tog-pegasus/ssl.rnd"
|
|
||||||
+# define PEGASUS_SSLCLIENT_RANDOMFILE "/var/lib/Pegasus/ssl.rnd"
|
|
||||||
# undef PEGASUS_SSLSERVER_RANDOMFILE
|
|
||||||
-# define PEGASUS_SSLSERVER_RANDOMFILE "/var/opt/tog-pegasus/cimserver.rnd"
|
|
||||||
+# define PEGASUS_SSLSERVER_RANDOMFILE "/var/lib/Pegasus/cimserver.rnd"
|
|
||||||
# undef PEGASUS_LOCAL_AUTH_DIR
|
|
||||||
-# define PEGASUS_LOCAL_AUTH_DIR "/var/opt/tog-pegasus/cache/localauth"
|
|
||||||
+# define PEGASUS_LOCAL_AUTH_DIR "/var/lib/Pegasus/cache/localauth"
|
|
||||||
# undef PEGASUS_LOCAL_DOMAIN_SOCKET_PATH
|
|
||||||
-# define PEGASUS_LOCAL_DOMAIN_SOCKET_PATH "/var/run/tog-pegasus/socket/cimxml.socket"
|
|
||||||
+# define PEGASUS_LOCAL_DOMAIN_SOCKET_PATH "/var/run/tog-pegasus/cimxml.socket"
|
|
||||||
# undef PEGASUS_CORE_DIR
|
|
||||||
-# define PEGASUS_CORE_DIR "/var/opt/tog-pegasus/cache"
|
|
||||||
+# define PEGASUS_CORE_DIR "/var/lib/Pegasus/cache"
|
|
||||||
# undef PEGASUS_PAM_STANDALONE_PROC_NAME
|
|
||||||
-# define PEGASUS_PAM_STANDALONE_PROC_NAME "/opt/tog-pegasus/sbin/cimservera"
|
|
||||||
+# define PEGASUS_PAM_STANDALONE_PROC_NAME "/usr/sbin/cimservera"
|
|
||||||
# undef PEGASUS_PROVIDER_AGENT_PROC_NAME
|
|
||||||
-# define PEGASUS_PROVIDER_AGENT_PROC_NAME "/opt/tog-pegasus/sbin/cimprovagt"
|
|
||||||
+# define PEGASUS_PROVIDER_AGENT_PROC_NAME "/usr/sbin/cimprovagt"
|
|
||||||
# elif defined(PEGASUS_OS_LSB)
|
|
||||||
# define PEGASUS_SSLCLIENT_CERTIFICATEFILE "/etc/opt/lsb-pegasus/client.pem"
|
|
||||||
# undef PEGASUS_SSLCLIENT_RANDOMFILE
|
|
||||||
--- pegasus-2.5/src/Pegasus/Common/System.cpp.redhat 2005-06-06 10:27:55.000000000 -0400
|
|
||||||
+++ pegasus-2.5/src/Pegasus/Common/System.cpp 2005-10-03 17:12:17.000000000 -0400
|
|
||||||
@@ -144,13 +144,13 @@
|
|
||||||
char *System::extract_file_path(const char *fullpath, char *dirname)
|
|
||||||
{
|
|
||||||
char *p;
|
|
||||||
- char buff[2048];
|
|
||||||
+ char buff[PEGASUS_PATH_MAX];
|
|
||||||
if (fullpath == NULL)
|
|
||||||
{
|
|
||||||
dirname[0] = '\0';
|
|
||||||
return dirname;
|
|
||||||
}
|
|
||||||
- strcpy(buff, fullpath);
|
|
||||||
+ strncpy(buff, fullpath, PEGASUS_PATH_MAX);
|
|
||||||
for(p = buff + strlen(buff); p >= buff; p--)
|
|
||||||
{
|
|
||||||
if (*p == '\\' || *p == '/')
|
|
||||||
--- pegasus-2.5/src/Pegasus/Common/Platform_LINUX_IX86_GNU.h.redhat 2005-02-26 00:22:13.000000000 -0500
|
|
||||||
+++ pegasus-2.5/src/Pegasus/Common/Platform_LINUX_IX86_GNU.h 2005-10-03 17:12:17.000000000 -0400
|
|
||||||
@@ -72,9 +72,12 @@
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <sys/param.h> // For MAXHOSTNAMELEN
|
|
||||||
-
|
|
||||||
+#include <limits.h> // For _POSIX_HOST_NAME_LEN
|
|
||||||
#if defined(PEGASUS_OS_LSB) && !defined(MAXHOSTNAMELEN)
|
|
||||||
-#define PEGASUS_MAXHOSTNAMELEN 64
|
|
||||||
+#if defined(_POSIX_HOST_NAME_MAX)
|
|
||||||
+#define PEGASUS_MAXHOSTNAMELEN (_POSIX_HOST_NAME_MAX+1)
|
|
||||||
+#else
|
|
||||||
+#define PEGASUS_MAXHOSTNAMELEN 256
|
|
||||||
+#endif
|
|
||||||
#endif
|
|
||||||
-
|
|
||||||
#endif /* Pegasus_Platform_LINUX_IX86_GNU_h */
|
|
||||||
--- pegasus-2.5/src/Pegasus/Common/SystemUnix.cpp.redhat 2005-07-19 15:31:26.000000000 -0400
|
|
||||||
+++ pegasus-2.5/src/Pegasus/Common/SystemUnix.cpp 2005-10-03 17:12:17.000000000 -0400
|
|
||||||
@@ -566,7 +566,7 @@
|
|
||||||
|
|
||||||
if ((he = gethostbyname (hostName)))
|
|
||||||
{
|
|
||||||
- strcpy (hostName, he->h_name);
|
|
||||||
+ strncpy (hostName, he->h_name, PEGASUS_MAXHOSTNAMELEN);
|
|
||||||
}
|
|
||||||
|
|
||||||
#if defined(PEGASUS_OS_OS400)
|
|
||||||
--- pegasus-2.5/src/Pegasus/Common/Config.h.redhat 2005-05-05 14:18:42.000000000 -0400
|
|
||||||
+++ pegasus-2.5/src/Pegasus/Common/Config.h 2005-10-03 17:12:17.000000000 -0400
|
|
||||||
@@ -182,6 +182,13 @@
|
|
||||||
#define PEGASUS_MAXHOSTNAMELEN MAXHOSTNAMELEN
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+#ifndef PEGASUS_PATH_MAX
|
|
||||||
+#ifndef PATH_MAX
|
|
||||||
+#define PEGASUS_PATH_MAX 4096
|
|
||||||
+#else
|
|
||||||
+#define PEGASUS_PATH_MAX PATH_MAX
|
|
||||||
+#endif
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
PEGASUS_NAMESPACE_BEGIN
|
|
||||||
--- pegasus-2.5/src/Providers/ManagedSystem/ComputerSystem/ComputerSystem_Linux.cpp.redhat 2005-03-02 13:17:32.000000000 -0500
|
|
||||||
+++ pegasus-2.5/src/Providers/ManagedSystem/ComputerSystem/ComputerSystem_Linux.cpp 2005-10-03 17:12:17.000000000 -0400
|
|
||||||
@@ -310,7 +310,7 @@
|
|
||||||
he=gethostbyname(hostName);
|
|
||||||
if (he)
|
|
||||||
{
|
|
||||||
- strcpy(hostName, he->h_name);
|
|
||||||
+ strncpy(hostName, he->h_name, PEGASUS_MAXHOSTNAMELEN);
|
|
||||||
}
|
|
||||||
|
|
||||||
_hostName.assign(hostName);
|
|
||||||
--- pegasus-2.5/src/Providers/ManagedSystem/OperatingSystem/OperatingSystem_Linux.cpp.redhat 2005-02-05 18:01:03.000000000 -0500
|
|
||||||
+++ pegasus-2.5/src/Providers/ManagedSystem/OperatingSystem/OperatingSystem_Linux.cpp 2005-10-03 17:12:17.000000000 -0400
|
|
||||||
@@ -172,7 +172,7 @@
|
|
||||||
he=gethostbyname(hostName);
|
|
||||||
if (he)
|
|
||||||
{
|
|
||||||
- strcpy(hostName, he->h_name);
|
|
||||||
+ strncpy(hostName, he->h_name, PEGASUS_MAXHOSTNAMELEN);
|
|
||||||
}
|
|
||||||
|
|
||||||
csName.assign(hostName);
|
|
||||||
--- pegasus-2.5/src/Providers/ManagedSystem/Process/Process_Linux.cpp.redhat 2005-07-15 16:46:54.000000000 -0400
|
|
||||||
+++ pegasus-2.5/src/Providers/ManagedSystem/Process/Process_Linux.cpp 2005-10-03 17:12:17.000000000 -0400
|
|
||||||
@@ -782,7 +782,7 @@
|
|
||||||
he=gethostbyname(hostName);
|
|
||||||
if (he)
|
|
||||||
{
|
|
||||||
- strcpy(hostName, he->h_name);
|
|
||||||
+ strncpy(hostName, he->h_name, PEGASUS_MAXHOSTNAMELEN);
|
|
||||||
}
|
|
||||||
|
|
||||||
csName.assign(hostName);
|
|
||||||
--- pegasus-2.5/src/Clients/repupgrade/RepositoryUpgrade.cpp.redhat 2005-06-03 16:04:34.000000000 -0400
|
|
||||||
+++ pegasus-2.5/src/Clients/repupgrade/RepositoryUpgrade.cpp 2005-10-03 17:12:17.000000000 -0400
|
|
||||||
@@ -2075,7 +2075,7 @@
|
|
||||||
fileName = _pegasusHome + "/bin/" +
|
|
||||||
FileSystem::buildLibraryFileName(moduleName);
|
|
||||||
#else
|
|
||||||
- fileName = _pegasusHome + "/lib/" +
|
|
||||||
+ fileName = _pegasusHome + PEGASUS_DEST_LIB_DIR +
|
|
||||||
FileSystem::buildLibraryFileName(moduleName);
|
|
||||||
#endif
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
|||||||
--- pegasus-2.5/src/Pegasus/Security/Authentication/PAMBasicAuthenticatorUnix.cpp.syslog_h 2006-02-07 17:31:36.000000000 -0500
|
|
||||||
+++ pegasus-2.5/src/Pegasus/Security/Authentication/PAMBasicAuthenticatorUnix.cpp 2006-02-07 17:34:57.000000000 -0500
|
|
||||||
@@ -46,6 +46,8 @@
|
|
||||||
#include <prot.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+#include <syslog.h>
|
|
||||||
+
|
|
||||||
#if defined (PEGASUS_USE_PAM_STANDALONE_PROC)
|
|
||||||
#include <Pegasus/Common/Logger.h>
|
|
||||||
#include <Pegasus/Common/IPC.h>
|
|
@ -1,12 +0,0 @@
|
|||||||
--- pegasus/src/Pegasus/Common/AutoPtr.h.AutoPtr-Core 2006-01-30 11:16:46.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/Common/AutoPtr.h 2006-04-11 15:01:43.000000000 -0400
|
|
||||||
@@ -200,7 +200,8 @@
|
|
||||||
{
|
|
||||||
if (p != _ptr)
|
|
||||||
{
|
|
||||||
- delete _ptr;
|
|
||||||
+ if ( _ptr != 0 )
|
|
||||||
+ delete _ptr;
|
|
||||||
_ptr = p;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,136 +0,0 @@
|
|||||||
--- pegasus/src/Pegasus/Common/Platform_LINUX_XSCALE_GNU.h.HOSTNAME_MAX 2006-01-30 11:17:07.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/Common/Platform_LINUX_XSCALE_GNU.h 2006-04-14 18:41:28.000000000 -0400
|
|
||||||
@@ -72,9 +72,12 @@
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <sys/param.h> // For MAXHOSTNAMELEN
|
|
||||||
+#include <limits.h>
|
|
||||||
|
|
||||||
-#if defined(PEGASUS_OS_LSB) && !defined(MAXHOSTNAMELEN)
|
|
||||||
-#define PEGASUS_MAXHOSTNAMELEN 64
|
|
||||||
+#ifdef _POSIX_HOST_NAME_MAX
|
|
||||||
+#define PEGASUS_MAXHOSTNAMELEN (_POSIX_HOST_NAME_MAX)
|
|
||||||
+#else
|
|
||||||
+#define PEGASUS_MAXHOSTNAMELEN 255
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define PEGASUS_SOCKLEN_T socklen_t
|
|
||||||
--- pegasus/src/Pegasus/Common/Platform_LINUX_IA64_GNU.h.HOSTNAME_MAX 2006-01-30 11:17:07.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/Common/Platform_LINUX_IA64_GNU.h 2006-04-14 18:37:02.000000000 -0400
|
|
||||||
@@ -69,9 +69,12 @@
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <sys/param.h> // For MAXHOSTNAMELEN
|
|
||||||
+#include <limits.h>
|
|
||||||
|
|
||||||
-#if defined(PEGASUS_OS_LSB) && !defined(MAXHOSTNAMELEN)
|
|
||||||
-#define PEGASUS_MAXHOSTNAMELEN 64
|
|
||||||
+#ifdef _POSIX_HOST_NAME_MAX
|
|
||||||
+#define PEGASUS_MAXHOSTNAMELEN (_POSIX_HOST_NAME_MAX)
|
|
||||||
+#else
|
|
||||||
+#define PEGASUS_MAXHOSTNAMELEN 255
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define PEGASUS_SOCKLEN_T socklen_t
|
|
||||||
--- pegasus/src/Pegasus/Common/Platform_LINUX_ZSERIES_GNU.h.HOSTNAME_MAX 2006-01-30 11:17:07.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/Common/Platform_LINUX_ZSERIES_GNU.h 2006-04-14 18:40:02.000000000 -0400
|
|
||||||
@@ -69,9 +69,12 @@
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <sys/param.h> // For MAXHOSTNAMELEN
|
|
||||||
+#include <limits.h>
|
|
||||||
|
|
||||||
-#if defined(PEGASUS_OS_LSB) && !defined(MAXHOSTNAMELEN)
|
|
||||||
-#define PEGASUS_MAXHOSTNAMELEN 64
|
|
||||||
+#ifdef _POSIX_HOST_NAME_MAX
|
|
||||||
+#define PEGASUS_MAXHOSTNAMELEN (_POSIX_HOST_NAME_MAX)
|
|
||||||
+#else
|
|
||||||
+#define PEGASUS_MAXHOSTNAMELEN 255
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define PEGASUS_SOCKLEN_T socklen_t
|
|
||||||
--- pegasus/src/Pegasus/Common/Platform_LINUX_X86_64_GNU.h.HOSTNAME_MAX 2006-01-30 11:17:07.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/Common/Platform_LINUX_X86_64_GNU.h 2006-04-14 18:38:18.000000000 -0400
|
|
||||||
@@ -73,9 +73,12 @@
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <sys/param.h> // For MAXHOSTNAMELEN
|
|
||||||
+#include <limits.h>
|
|
||||||
|
|
||||||
-#if defined(PEGASUS_OS_LSB) && !defined(MAXHOSTNAMELEN)
|
|
||||||
-#define PEGASUS_MAXHOSTNAMELEN 64
|
|
||||||
+#ifdef _POSIX_HOST_NAME_MAX
|
|
||||||
+#define PEGASUS_MAXHOSTNAMELEN (_POSIX_HOST_NAME_MAX)
|
|
||||||
+#else
|
|
||||||
+#define PEGASUS_MAXHOSTNAMELEN 255
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define PEGASUS_SOCKLEN_T socklen_t
|
|
||||||
--- pegasus/src/Pegasus/Common/Platform_LINUX_PPC_GNU.h.HOSTNAME_MAX 2006-01-30 11:17:07.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/Common/Platform_LINUX_PPC_GNU.h 2006-04-14 18:38:50.000000000 -0400
|
|
||||||
@@ -73,9 +73,12 @@
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <sys/param.h> // For MAXHOSTNAMELEN
|
|
||||||
+#include <limits.h>
|
|
||||||
|
|
||||||
-#if defined(PEGASUS_OS_LSB) && !defined(MAXHOSTNAMELEN)
|
|
||||||
-#define PEGASUS_MAXHOSTNAMELEN 64
|
|
||||||
+#ifdef _POSIX_HOST_NAME_MAX
|
|
||||||
+#define PEGASUS_MAXHOSTNAMELEN (_POSIX_HOST_NAME_MAX)
|
|
||||||
+#else
|
|
||||||
+#define PEGASUS_MAXHOSTNAMELEN 255
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define PEGASUS_SOCKLEN_T socklen_t
|
|
||||||
--- pegasus/src/Pegasus/Common/Platform_LINUX_IX86_GNU.h.HOSTNAME_MAX 2006-01-30 11:17:07.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/Common/Platform_LINUX_IX86_GNU.h 2006-04-14 18:37:23.000000000 -0400
|
|
||||||
@@ -74,9 +74,12 @@
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <sys/param.h> // For MAXHOSTNAMELEN
|
|
||||||
+#include <limits.h>
|
|
||||||
|
|
||||||
-#if defined(PEGASUS_OS_LSB) && !defined(MAXHOSTNAMELEN)
|
|
||||||
-#define PEGASUS_MAXHOSTNAMELEN 64
|
|
||||||
+#ifdef _POSIX_HOST_NAME_MAX
|
|
||||||
+#define PEGASUS_MAXHOSTNAMELEN (_POSIX_HOST_NAME_MAX)
|
|
||||||
+#else
|
|
||||||
+#define PEGASUS_MAXHOSTNAMELEN 255
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define PEGASUS_SOCKLEN_T socklen_t
|
|
||||||
--- pegasus/src/Pegasus/Common/Platform_LINUX_ZSERIES64_GNU.h.HOSTNAME_MAX 2006-01-30 11:17:07.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/Common/Platform_LINUX_ZSERIES64_GNU.h 2006-04-14 18:40:30.000000000 -0400
|
|
||||||
@@ -70,8 +70,12 @@
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <sys/param.h> // For MAXHOSTNAMELEN
|
|
||||||
|
|
||||||
-#if defined(PEGASUS_OS_LSB) && !defined(MAXHOSTNAMELEN)
|
|
||||||
-#define PEGASUS_MAXHOSTNAMELEN 64
|
|
||||||
+#include <limits.h>
|
|
||||||
+
|
|
||||||
+#ifdef _POSIX_HOST_NAME_MAX
|
|
||||||
+#define PEGASUS_MAXHOSTNAMELEN (_POSIX_HOST_NAME_MAX)
|
|
||||||
+#else
|
|
||||||
+#define PEGASUS_MAXHOSTNAMELEN 255
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define PEGASUS_SOCKLEN_T socklen_t
|
|
||||||
--- pegasus/src/Pegasus/Common/Platform_LINUX_PPC64_GNU.h.HOSTNAME_MAX 2006-01-30 11:17:07.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/Common/Platform_LINUX_PPC64_GNU.h 2006-04-14 18:39:13.000000000 -0400
|
|
||||||
@@ -73,9 +73,12 @@
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <sys/param.h> // For MAXHOSTNAMELEN
|
|
||||||
+#include <limits.h>
|
|
||||||
|
|
||||||
-#if defined(PEGASUS_OS_LSB) && !defined(MAXHOSTNAMELEN)
|
|
||||||
-#define PEGASUS_MAXHOSTNAMELEN 64
|
|
||||||
+#ifdef _POSIX_HOST_NAME_MAX
|
|
||||||
+#define PEGASUS_MAXHOSTNAMELEN (_POSIX_HOST_NAME_MAX)
|
|
||||||
+#else
|
|
||||||
+#define PEGASUS_MAXHOSTNAMELEN 255
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define PEGASUS_SOCKLEN_T socklen_t
|
|
@ -1,18 +0,0 @@
|
|||||||
--- pegasus/src/Pegasus/Common/System.cpp.PATH_MAX 2006-01-30 11:17:08.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/Common/System.cpp 2006-04-14 18:19:27.000000000 -0400
|
|
||||||
@@ -185,13 +185,13 @@
|
|
||||||
char *System::extract_file_path(const char *fullpath, char *dirname)
|
|
||||||
{
|
|
||||||
char *p;
|
|
||||||
- char buff[2048];
|
|
||||||
+ char buff[PATH_MAX];
|
|
||||||
if (fullpath == NULL)
|
|
||||||
{
|
|
||||||
dirname[0] = '\0';
|
|
||||||
return dirname;
|
|
||||||
}
|
|
||||||
- strcpy(buff, fullpath);
|
|
||||||
+ strncpy(buff, fullpath, PATH_MAX);
|
|
||||||
for(p = buff + strlen(buff); p >= buff; p--)
|
|
||||||
{
|
|
||||||
if (*p == '\\' || *p == '/')
|
|
@ -1,134 +0,0 @@
|
|||||||
--- pegasus/src/Pegasus/Compiler/cmdline/cimmof/Makefile.PIE 2006-01-30 11:17:34.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/Compiler/cmdline/cimmof/Makefile 2006-04-06 16:17:54.000000000 -0400
|
|
||||||
@@ -32,6 +32,8 @@
|
|
||||||
DIR = Pegasus/Compiler/cmdline/cimmof
|
|
||||||
include $(ROOT)/mak/config.mak
|
|
||||||
|
|
||||||
+FLAGS := $(FLAGS:-fPIC=-fPIE)
|
|
||||||
+
|
|
||||||
LOCAL_DEFINES = -DPEGASUS_CMDLINE_INTERNAL -DPEGASUS_INTERNALONLY
|
|
||||||
|
|
||||||
LIBRARIES = \
|
|
||||||
--- pegasus/src/Pegasus/Compiler/cmdline/cimmofl/Makefile.PIE 2006-01-30 11:17:34.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/Compiler/cmdline/cimmofl/Makefile 2006-04-06 16:17:43.000000000 -0400
|
|
||||||
@@ -32,6 +32,8 @@
|
|
||||||
DIR = Pegasus/Compiler/cmdline/cimmofl
|
|
||||||
include $(ROOT)/mak/config.mak
|
|
||||||
|
|
||||||
+FLAGS := $(FLAGS:-fPIC=-fPIE)
|
|
||||||
+
|
|
||||||
LOCAL_DEFINES = -DPEGASUS_INTERNALONLY
|
|
||||||
|
|
||||||
PROGRAM = cimmofl
|
|
||||||
--- pegasus/src/Pegasus/ProviderManager2/ProviderAgent/Makefile.PIE 2006-01-30 11:18:16.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/ProviderManager2/ProviderAgent/Makefile 2006-04-05 21:05:58.000000000 -0400
|
|
||||||
@@ -29,11 +29,12 @@
|
|
||||||
#//
|
|
||||||
#//==============================================================================
|
|
||||||
ROOT = ../../../..
|
|
||||||
-
|
|
||||||
DIR = Pegasus/ProviderManager2/ProviderAgent
|
|
||||||
|
|
||||||
include $(ROOT)/mak/config.mak
|
|
||||||
|
|
||||||
+FLAGS := $(FLAGS:-fPIC=-fPIE)
|
|
||||||
+
|
|
||||||
LIBRARIES = \
|
|
||||||
pegprovidermanager \
|
|
||||||
pegprovider \
|
|
||||||
@@ -56,4 +57,3 @@
|
|
||||||
tests:
|
|
||||||
|
|
||||||
poststarttests:
|
|
||||||
-
|
|
||||||
--- pegasus/src/Server/Makefile.PIE 2006-01-30 11:19:33.000000000 -0500
|
|
||||||
+++ pegasus/src/Server/Makefile 2006-04-05 21:05:58.000000000 -0400
|
|
||||||
@@ -30,8 +30,11 @@
|
|
||||||
#//==============================================================================
|
|
||||||
ROOT = ../..
|
|
||||||
DIR = Server
|
|
||||||
+
|
|
||||||
include $(ROOT)/mak/config.mak
|
|
||||||
|
|
||||||
+FLAGS := $(FLAGS:-fPIC=-fPIE)
|
|
||||||
+
|
|
||||||
LIBRARIES = \
|
|
||||||
pegclient \
|
|
||||||
pegserver \
|
|
||||||
--- pegasus/src/Clients/cimprovider/Makefile.PIE 2006-01-30 11:16:33.000000000 -0500
|
|
||||||
+++ pegasus/src/Clients/cimprovider/Makefile 2006-04-06 16:17:31.000000000 -0400
|
|
||||||
@@ -36,6 +36,8 @@
|
|
||||||
|
|
||||||
include $(ROOT)/mak/config.mak
|
|
||||||
|
|
||||||
+FLAGS := $(FLAGS:-fPIC=-fPIE)
|
|
||||||
+
|
|
||||||
LIBRARIES = \
|
|
||||||
pegcliutils \
|
|
||||||
pegclient \
|
|
||||||
--- pegasus/src/Clients/osinfo/Makefile.PIE 2006-01-30 11:16:35.000000000 -0500
|
|
||||||
+++ pegasus/src/Clients/osinfo/Makefile 2006-04-06 16:17:14.000000000 -0400
|
|
||||||
@@ -35,6 +35,8 @@
|
|
||||||
DIR = Clients/osinfo
|
|
||||||
include $(ROOT)/mak/config.mak
|
|
||||||
|
|
||||||
+FLAGS := $(FLAGS:-fPIC=-fPIE)
|
|
||||||
+
|
|
||||||
LIBRARIES = \
|
|
||||||
pegcliutils \
|
|
||||||
peggetoopt \
|
|
||||||
--- pegasus/src/Clients/cimuser/Makefile.PIE 2006-01-30 11:16:33.000000000 -0500
|
|
||||||
+++ pegasus/src/Clients/cimuser/Makefile 2006-04-06 16:17:01.000000000 -0400
|
|
||||||
@@ -36,6 +36,8 @@
|
|
||||||
|
|
||||||
include $(ROOT)/mak/config.mak
|
|
||||||
|
|
||||||
+FLAGS := $(FLAGS:-fPIC=-fPIE)
|
|
||||||
+
|
|
||||||
LIBRARIES = \
|
|
||||||
pegcliutils \
|
|
||||||
pegclient \
|
|
||||||
--- pegasus/src/Clients/repupgrade/Makefile.PIE 2006-01-30 11:16:36.000000000 -0500
|
|
||||||
+++ pegasus/src/Clients/repupgrade/Makefile 2006-04-06 16:16:37.000000000 -0400
|
|
||||||
@@ -36,6 +36,8 @@
|
|
||||||
|
|
||||||
include $(ROOT)/mak/config.mak
|
|
||||||
|
|
||||||
+FLAGS := $(FLAGS:-fPIC=-fPIE)
|
|
||||||
+
|
|
||||||
LOCAL_DEFINES = -DPEGASUS_INTERNALONLY
|
|
||||||
|
|
||||||
LIBRARIES = \
|
|
||||||
--- pegasus/src/Clients/cimauth/Makefile.PIE 2006-01-30 11:16:32.000000000 -0500
|
|
||||||
+++ pegasus/src/Clients/cimauth/Makefile 2006-04-06 16:16:17.000000000 -0400
|
|
||||||
@@ -36,6 +36,8 @@
|
|
||||||
|
|
||||||
include $(ROOT)/mak/config.mak
|
|
||||||
|
|
||||||
+FLAGS := $(FLAGS:-fPIC=-fPIE)
|
|
||||||
+
|
|
||||||
LIBRARIES = \
|
|
||||||
pegcliutils \
|
|
||||||
pegclient \
|
|
||||||
--- pegasus/src/Clients/cimconfig/Makefile.PIE 2006-01-30 11:16:32.000000000 -0500
|
|
||||||
+++ pegasus/src/Clients/cimconfig/Makefile 2006-04-06 16:15:59.000000000 -0400
|
|
||||||
@@ -36,6 +36,8 @@
|
|
||||||
|
|
||||||
include $(ROOT)/mak/config.mak
|
|
||||||
|
|
||||||
+FLAGS := $(FLAGS:-fPIC=-fPIE)
|
|
||||||
+
|
|
||||||
LIBRARIES = \
|
|
||||||
pegcliutils \
|
|
||||||
pegclient \
|
|
||||||
--- pegasus/src/Clients/wbemexec/Makefile.PIE 2006-01-30 11:16:37.000000000 -0500
|
|
||||||
+++ pegasus/src/Clients/wbemexec/Makefile 2006-04-06 16:15:23.000000000 -0400
|
|
||||||
@@ -36,6 +36,8 @@
|
|
||||||
|
|
||||||
include $(ROOT)/mak/config.mak
|
|
||||||
|
|
||||||
+FLAGS := $(FLAGS:-fPIC=-fPIE)
|
|
||||||
+
|
|
||||||
ifdef PEGASUS_HAS_SSL
|
|
||||||
FLAGS += -DPEGASUS_HAS_SSL -DPEGASUS_SSL_RANDOMFILE
|
|
||||||
SYS_INCLUDES += -I$(OPENSSL_HOME)/include
|
|
@ -1,11 +0,0 @@
|
|||||||
--- pegasus/src/Pegasus/Common/Makefile.bz198185 2006-07-19 16:21:06.000000000 -0400
|
|
||||||
+++ pegasus/src/Pegasus/Common/Makefile 2006-07-19 19:19:42.000000000 -0400
|
|
||||||
@@ -183,7 +183,7 @@
|
|
||||||
SOURCES = $(SOURCES1) $(SOURCES2)
|
|
||||||
|
|
||||||
ifeq ($(OS),linux)
|
|
||||||
- EXTRA_LIBRARIES += -lcrypt
|
|
||||||
+ EXTRA_LIBRARIES += -lcrypt -lpthread
|
|
||||||
ifdef PEGASUS_HAS_SSL
|
|
||||||
EXTRA_LIBRARIES += -lssl -lcrypto
|
|
||||||
endif
|
|
@ -1,24 +0,0 @@
|
|||||||
--- pegasus/src/Pegasus/Config/FixedPropertyTableLinux.h.cmpi_provider_lib 2006-03-14 16:06:37.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/Config/FixedPropertyTableLinux.h 2006-04-05 20:06:55.000000000 -0400
|
|
||||||
@@ -65,8 +65,8 @@
|
|
||||||
{"crlStore", PEGASUS_SSL_SERVER_CRL},
|
|
||||||
#endif
|
|
||||||
{"repositoryDir", PEGASUS_REPOSITORY_DIR},
|
|
||||||
- {"providerDir", PEGASUS_PROVIDER_LIB_DIR":/usr/lib/cmpi"},
|
|
||||||
-#else
|
|
||||||
+ {"providerDir", PEGASUS_PROVIDER_LIB_DIR ":" PEGASUS_DEST_LIB_DIR "/cmpi"},
|
|
||||||
+#else /* PEGASUS_OVERRIDE_DEFAULT_RELEASE_DIRS */
|
|
||||||
{"traceFilePath", "/var/opt/tog-pegasus/cache/trace/cimserver.trc"},
|
|
||||||
#if !defined(PEGASUS_USE_SYSLOGS)
|
|
||||||
{"logdir", "/var/opt/tog-pegasus/log"},
|
|
||||||
@@ -84,8 +84,8 @@
|
|
||||||
{"providerDir", "/opt/tog-pegasus/providers/lib"},
|
|
||||||
#endif
|
|
||||||
{"messageDir", "/opt/tog-pegasus/share/locale/ICU_Messages"},
|
|
||||||
-#endif
|
|
||||||
-#endif
|
|
||||||
+#endif /* PEGASUS_OVERRIDE_DEFAULT_RELEASE_DIRS */
|
|
||||||
+#endif /* defined(PEGASUS_USE_RELEASE_DIRS) && !defined(PEGASUS_OS_LSB) */
|
|
||||||
#if defined(PEGASUS_USE_RELEASE_DIRS) && defined(PEGASUS_OS_LSB)
|
|
||||||
{"traceFilePath", "/var/opt/lsb-pegasus/cache/cimserver.trc"},
|
|
||||||
#if !defined(PEGASUS_USE_SYSLOGS)
|
|
@ -1,40 +0,0 @@
|
|||||||
--- pegasus/env_var_Linux.status.enable-cql 2006-03-15 20:33:51.000000000 -0500
|
|
||||||
+++ pegasus/env_var_Linux.status 2006-04-06 15:19:35.000000000 -0400
|
|
||||||
@@ -18,7 +18,7 @@
|
|
||||||
PEGASUS_STAGING_DIR = $(PEGASUS_HOME)/stagingDir
|
|
||||||
endif
|
|
||||||
|
|
||||||
-PEGASUS_DISABLE_CQL=true
|
|
||||||
+PEGASUS_ENABLE_CQL=true
|
|
||||||
PEGASUS_DISABLE_OBJECT_NORMALIZATION=true
|
|
||||||
PEGASUS_DISABLE_PERFINST=yes
|
|
||||||
PEGASUS_ENABLE_CMPI_PROVIDER_MANAGER=true
|
|
||||||
@@ -26,7 +26,6 @@
|
|
||||||
PEGASUS_HAS_SSL=yes
|
|
||||||
PEGASUS_NOASSERTS=yes
|
|
||||||
PEGASUS_PAM_AUTHENTICATION=true
|
|
||||||
-PEGASUS_USE_PAM_STANDALONE_PROC=true
|
|
||||||
PEGASUS_USE_RELEASE_CONFIG_OPTIONS=true
|
|
||||||
PEGASUS_USE_RELEASE_DIRS=true
|
|
||||||
PEGASUS_USE_SYSLOGS=true
|
|
||||||
@@ -64,9 +63,10 @@
|
|
||||||
PEGASUS_LOCAL_AUTH_DIR = $(PEGASUS_VARDATA_CACHE_DIR)/localauth
|
|
||||||
PEGASUS_TRACE_DIR = $(PEGASUS_VARDATA_CACHE_DIR)/trace
|
|
||||||
PEGASUS_TRACE_FILE_PATH = $(PEGASUS_VARDATA_CACHE_DIR)/trace/cimserver.trc
|
|
||||||
+PEGASUS_CONFIG_DIR = /etc/Pegasus
|
|
||||||
PEGASUS_PLANNED_CONFIG_FILE = cimserver_planned.conf
|
|
||||||
PEGASUS_PLANNED_CONFIG_FILE_PATH = \
|
|
||||||
- $(PEGASUS_VARDATA_DIR)/$(PEGASUS_PLANNED_CONFIG_FILE)
|
|
||||||
+ $(PEGASUS_CONFIG_DIR)/$(PEGASUS_PLANNED_CONFIG_FILE)
|
|
||||||
PEGASUS_CURRENT_CONFIG_FILE = cimserver_current.conf
|
|
||||||
PEGASUS_CURRENT_CONFIG_FILE_PATH = \
|
|
||||||
$(PEGASUS_VARDATA_DIR)/$(PEGASUS_CURRENT_CONFIG_FILE)
|
|
||||||
@@ -74,8 +74,6 @@
|
|
||||||
PEGASUS_LOG_DIR = $(PEGASUS_VARDATA_DIR)/log
|
|
||||||
PEGASUS_INSTALL_LOG = $(PEGASUS_LOG_DIR)/install.log
|
|
||||||
|
|
||||||
-PEGASUS_CONFIG_DIR = /etc/Pegasus
|
|
||||||
-
|
|
||||||
PEGASUS_VARRUN_DIR = /var/run/tog-pegasus
|
|
||||||
PEGASUS_CIMSERVER_START_FILE = $(PEGASUS_VARRUN_DIR)/cimserver.pid
|
|
||||||
CIMSERVER_LOCK_FILE = $(PEGASUS_VARRUN_DIR)/cimserver_start.lock
|
|
@ -1,15 +0,0 @@
|
|||||||
--- pegasus/src/Clients/repupgrade/RepositoryUpgrade.cpp.fix_repupgrade 2006-01-31 14:34:30.000000000 -0500
|
|
||||||
+++ pegasus/src/Clients/repupgrade/RepositoryUpgrade.cpp 2006-04-17 16:09:24.000000000 -0400
|
|
||||||
@@ -295,9 +295,9 @@
|
|
||||||
const String NEW_REPOSITORY_PATH = "/wbem_var/opt/wbem/repository";
|
|
||||||
const String RepositoryUpgrade::_LOG_PATH = "/wbem_var/opt/wbem/upgrade";
|
|
||||||
#elif defined(PEGASUS_USE_RELEASE_DIRS) && defined(PEGASUS_OS_LINUX)
|
|
||||||
- const String OLD_REPOSITORY_PATH = "/var/opt/tog-pegasus/prev_repository";
|
|
||||||
- const String NEW_REPOSITORY_PATH = "/var/opt/tog-pegasus/repository";
|
|
||||||
- const String RepositoryUpgrade::_LOG_PATH = "/var/opt/tog-pegasus/log/upgrade";
|
|
||||||
+ const String OLD_REPOSITORY_PATH = "/var/lib/Pegasus/prev_repository";
|
|
||||||
+ const String NEW_REPOSITORY_PATH = "/var/lib/Pegasus/repository";
|
|
||||||
+ const String RepositoryUpgrade::_LOG_PATH = "/var/lib/Pegasus/log/install.log";
|
|
||||||
#define REPUPGRADE_USE_RELEASE_DIRS true
|
|
||||||
#else
|
|
||||||
const String RepositoryUpgrade::_LOG_PATH
|
|
@ -1,16 +0,0 @@
|
|||||||
--- pegasus/mak/platform_LINUX_ZSERIES64_GNU.mak.fix_zseries_flags 2006-01-30 11:16:23.000000000 -0500
|
|
||||||
+++ pegasus/mak/platform_LINUX_ZSERIES64_GNU.mak 2006-04-10 20:10:04.000000000 -0400
|
|
||||||
@@ -35,4 +35,4 @@
|
|
||||||
|
|
||||||
ARCHITECTURE = zseries
|
|
||||||
|
|
||||||
-FLAGS = -fsigned-char
|
|
||||||
+FLAGS += -fsigned-char
|
|
||||||
--- pegasus/mak/platform_LINUX_ZSERIES_GNU.mak.fix_zseries_flags 2006-01-30 11:16:23.000000000 -0500
|
|
||||||
+++ pegasus/mak/platform_LINUX_ZSERIES_GNU.mak 2006-04-10 20:09:41.000000000 -0400
|
|
||||||
@@ -35,4 +35,4 @@
|
|
||||||
|
|
||||||
ARCHITECTURE = zseries
|
|
||||||
|
|
||||||
-FLAGS = -fsigned-char
|
|
||||||
+FLAGS += -fsigned-char
|
|
@ -1,26 +0,0 @@
|
|||||||
--- pegasus/mak/library.mak.linkflags 2006-01-30 11:16:23.000000000 -0500
|
|
||||||
+++ pegasus/mak/library.mak 2006-04-05 17:11:23.000000000 -0400
|
|
||||||
@@ -40,6 +40,10 @@
|
|
||||||
|
|
||||||
include $(ROOT)/mak/common.mak
|
|
||||||
|
|
||||||
+ifdef PEGASUS_EXTRA_LIBRARY_LINK_FLAGS
|
|
||||||
+ EXTRA_LINK_FLAGS = $(PEGASUS_EXTRA_LIBRARY_LINK_FLAGS)
|
|
||||||
+endif
|
|
||||||
+
|
|
||||||
################################################################################
|
|
||||||
##
|
|
||||||
## Build list of object names.
|
|
||||||
--- pegasus/mak/program.mak.linkflags 2006-01-30 11:16:23.000000000 -0500
|
|
||||||
+++ pegasus/mak/program.mak 2006-04-05 17:10:37.000000000 -0400
|
|
||||||
@@ -38,6 +38,10 @@
|
|
||||||
|
|
||||||
include $(ROOT)/mak/common.mak
|
|
||||||
|
|
||||||
+ifdef PEGASUS_EXTRA_PROGRAM_LINK_FLAGS
|
|
||||||
+ EXTRA_LINK_FLAGS = $(PEGASUS_EXTRA_PROGRAM_LINK_FLAGS)
|
|
||||||
+endif
|
|
||||||
+
|
|
||||||
ifeq ($(OS_TYPE),windows)
|
|
||||||
include $(ROOT)/mak/program-windows.mak
|
|
||||||
endif
|
|
@ -1,439 +0,0 @@
|
|||||||
--- pegasus/src/Pegasus/Server/HTTPAuthenticatorDelegator.cpp.local-or-remote-auth 2006-03-10 18:18:37.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/Server/HTTPAuthenticatorDelegator.cpp 2006-04-05 20:35:40.000000000 -0400
|
|
||||||
@@ -384,6 +384,9 @@
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
+ // Let Authenticators know whether this user is Local or Remote:
|
|
||||||
+ httpMessage->authInfo->setRemoteUser( httpMessage->fromRemoteHost );
|
|
||||||
+
|
|
||||||
//
|
|
||||||
// Handle authentication:
|
|
||||||
//
|
|
||||||
--- pegasus/src/Pegasus/Security/Authentication/PAMBasicAuthenticatorUnix.cpp.local-or-remote-auth 2006-01-30 11:18:28.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/Security/Authentication/PAMBasicAuthenticatorUnix.cpp 2006-04-05 20:40:40.000000000 -0400
|
|
||||||
@@ -48,6 +48,8 @@
|
|
||||||
#include <prot.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+#include <syslog.h>
|
|
||||||
+
|
|
||||||
#if defined (PEGASUS_USE_PAM_STANDALONE_PROC)
|
|
||||||
#include <Pegasus/Common/Logger.h>
|
|
||||||
#include <Pegasus/Common/IPC.h>
|
|
||||||
@@ -131,7 +133,8 @@
|
|
||||||
|
|
||||||
Boolean PAMBasicAuthenticator::authenticate(
|
|
||||||
const String& userName,
|
|
||||||
- const String& password)
|
|
||||||
+ const String& password,
|
|
||||||
+ Boolean isRemoteUser)
|
|
||||||
{
|
|
||||||
PEG_METHOD_ENTER(TRC_AUTHENTICATION,
|
|
||||||
"PAMBasicAuthenticator::authenticate()");
|
|
||||||
@@ -139,7 +142,7 @@
|
|
||||||
Boolean authenticated;
|
|
||||||
|
|
||||||
#if !defined(PEGASUS_USE_PAM_STANDALONE_PROC)
|
|
||||||
- authenticated = _authenticateByPAM(userName, password);
|
|
||||||
+ authenticated = _authenticateByPAM(userName, password, isRemoteUser);
|
|
||||||
#else
|
|
||||||
//
|
|
||||||
// Mutex to Serialize Authentication calls.
|
|
||||||
@@ -147,8 +150,9 @@
|
|
||||||
Tracer::trace(TRC_AUTHENTICATION, Tracer::LEVEL4,
|
|
||||||
"Authentication Mutex lock.");
|
|
||||||
AutoMutex lock(_authSerializeMutex);
|
|
||||||
- authenticated = _pamBasicAuthenticatorStandAlone.authenticate(
|
|
||||||
- userName, password);
|
|
||||||
+ authenticated =
|
|
||||||
+ _pamBasicAuthenticatorStandAlone->authenticate(userName,
|
|
||||||
+ password);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
PEG_METHOD_EXIT();
|
|
||||||
@@ -157,7 +161,8 @@
|
|
||||||
|
|
||||||
Boolean PAMBasicAuthenticator::_authenticateByPAM(
|
|
||||||
const String& userName,
|
|
||||||
- const String& password)
|
|
||||||
+ const String& password,
|
|
||||||
+ Boolean isRemoteUser)
|
|
||||||
{
|
|
||||||
PEG_METHOD_ENTER(TRC_AUTHENTICATION,
|
|
||||||
"PAMBasicAuthenticator::_authenticateByPAM()");
|
|
||||||
@@ -167,6 +172,7 @@
|
|
||||||
pam_handle_t *phandle;
|
|
||||||
char *name;
|
|
||||||
APP_DATA mydata;
|
|
||||||
+ int retcode;
|
|
||||||
|
|
||||||
//
|
|
||||||
// Store the password for PAM authentication
|
|
||||||
@@ -180,13 +186,31 @@
|
|
||||||
// Tracer::trace(TRC_AUTHENTICATION, Tracer::LEVEL4,
|
|
||||||
// "PAMBasicAuthenticator::_authenticateByPAM() - userName = %s; userPassword = %s",
|
|
||||||
// (const char *)userName.getCString(), (const char *)password.getCString());
|
|
||||||
+
|
|
||||||
+ // NOTE: if any pam call should log anything, our syslog socket will be redirected
|
|
||||||
+ // to the AUTH facility, so we need to redirect it back after each pam call.
|
|
||||||
|
|
||||||
//
|
|
||||||
//Call pam_start since you need to before making any other PAM calls
|
|
||||||
//
|
|
||||||
- if ( ( pam_start(service,
|
|
||||||
+
|
|
||||||
+ if ( (retcode = pam_start(service,
|
|
||||||
(const char *)userName.getCString(), &pconv, &phandle) ) != PAM_SUCCESS )
|
|
||||||
{
|
|
||||||
+ closelog();
|
|
||||||
+ openlog("cimserver", LOG_PID, LOG_DAEMON);
|
|
||||||
+ syslog( LOG_ERR, "pam_start failed: %s", pam_strerror(phandle, retcode));
|
|
||||||
+ PEG_METHOD_EXIT();
|
|
||||||
+ return (authenticated);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+ if ( (retcode = pam_set_item(phandle, PAM_TTY, isRemoteUser ? "wbemNetwork" : "wbemLocal")) != PAM_SUCCESS )
|
|
||||||
+ {
|
|
||||||
+ pam_end(phandle, 0);
|
|
||||||
+ closelog();
|
|
||||||
+ openlog("cimserver", LOG_PID, LOG_DAEMON);
|
|
||||||
+ syslog( LOG_ERR, "pam_set_item(PAM_TTY=wbem) failed: %s", pam_strerror(phandle, retcode));
|
|
||||||
PEG_METHOD_EXIT();
|
|
||||||
return (authenticated);
|
|
||||||
}
|
|
||||||
@@ -194,7 +218,7 @@
|
|
||||||
//
|
|
||||||
//Call pam_authenticate to authenticate the user
|
|
||||||
//
|
|
||||||
- if ( ( pam_authenticate(phandle, 0) ) == PAM_SUCCESS )
|
|
||||||
+ if ( ( retcode = pam_authenticate(phandle, 0) ) == PAM_SUCCESS )
|
|
||||||
{
|
|
||||||
Tracer::trace(TRC_AUTHENTICATION, Tracer::LEVEL4,
|
|
||||||
"pam_authenticate successful.");
|
|
||||||
@@ -203,22 +227,40 @@
|
|
||||||
//checking for password and account expiration, as well as verifying access
|
|
||||||
//hour restrictions.
|
|
||||||
//
|
|
||||||
- if ( ( pam_acct_mgmt(phandle, 0) ) == PAM_SUCCESS )
|
|
||||||
+
|
|
||||||
+ if ( ( retcode = pam_acct_mgmt(phandle, 0) ) == PAM_SUCCESS )
|
|
||||||
{
|
|
||||||
Tracer::trace(TRC_AUTHENTICATION, Tracer::LEVEL4,
|
|
||||||
"pam_acct_mgmt successful.");
|
|
||||||
authenticated = true;
|
|
||||||
- }
|
|
||||||
+ }else
|
|
||||||
+ {
|
|
||||||
+ closelog();
|
|
||||||
+ openlog("cimserver", LOG_PID, LOG_DAEMON);
|
|
||||||
+ syslog(LOG_ERR, "pam_acct_mgmt failed: %s",pam_strerror(phandle, retcode));
|
|
||||||
+ }
|
|
||||||
+ }else
|
|
||||||
+ {
|
|
||||||
+ closelog();
|
|
||||||
+ openlog("cimserver", LOG_PID, LOG_DAEMON);
|
|
||||||
+ syslog(LOG_ERR, "pam_authenticate failed: %s",pam_strerror(phandle, retcode));
|
|
||||||
}
|
|
||||||
-
|
|
||||||
//
|
|
||||||
//Call pam_end to end our PAM work
|
|
||||||
//
|
|
||||||
pam_end(phandle, 0);
|
|
||||||
+ closelog();
|
|
||||||
+ openlog("cimserver", LOG_PID, LOG_DAEMON);
|
|
||||||
|
|
||||||
- PEG_METHOD_EXIT();
|
|
||||||
+ if ( ! authenticated )
|
|
||||||
+ syslog(LOG_ERR, "PAM authentication failed for %s user: %s",
|
|
||||||
+ isRemoteUser ? "remote" : "local",
|
|
||||||
+ (const char*)userName.getCString()
|
|
||||||
+ );
|
|
||||||
|
|
||||||
+ PEG_METHOD_EXIT();
|
|
||||||
return (authenticated);
|
|
||||||
+
|
|
||||||
}
|
|
||||||
|
|
||||||
Boolean PAMBasicAuthenticator::validateUser(const String& userName)
|
|
||||||
@@ -233,6 +275,7 @@
|
|
||||||
pam_handle_t *phandle;
|
|
||||||
char *name;
|
|
||||||
APP_DATA mydata;
|
|
||||||
+ int retcode;
|
|
||||||
|
|
||||||
const char *service = "wbem";
|
|
||||||
pconv.conv = PAMBasicAuthenticator::pamValidateUserCallback;
|
|
||||||
@@ -241,21 +284,43 @@
|
|
||||||
//
|
|
||||||
// Call pam_start since you need to before making any other PAM calls
|
|
||||||
//
|
|
||||||
- if ( pam_start(service,
|
|
||||||
- (const char *)userName.getCString(), &pconv, &phandle) != PAM_SUCCESS)
|
|
||||||
- {
|
|
||||||
+ if ( (retcode =
|
|
||||||
+ pam_start(service,(const char *)userName.getCString(), &pconv, &phandle)
|
|
||||||
+ ) != PAM_SUCCESS
|
|
||||||
+ )
|
|
||||||
+ {
|
|
||||||
+ closelog();
|
|
||||||
+ openlog("cimserver", LOG_PID, LOG_DAEMON);
|
|
||||||
+ syslog( LOG_ERR, "pam_start() failed: %s", pam_strerror(phandle, retcode));
|
|
||||||
PEG_METHOD_EXIT();
|
|
||||||
return (authenticated);
|
|
||||||
}
|
|
||||||
|
|
||||||
+ if ( (retcode = pam_set_item(phandle, PAM_TTY, "wbemLocal")) != PAM_SUCCESS )
|
|
||||||
+ {
|
|
||||||
+ pam_end(phandle, 0);
|
|
||||||
+ closelog();
|
|
||||||
+ openlog("cimserver", LOG_PID, LOG_DAEMON);
|
|
||||||
+ syslog( LOG_ERR, "pam_set_item(PAM_TTY=wbemLocal) failed: %s", pam_strerror(phandle, retcode));
|
|
||||||
+ PEG_METHOD_EXIT();
|
|
||||||
+ return (authenticated);
|
|
||||||
+ }
|
|
||||||
//
|
|
||||||
// Call pam_acct_mgmt, to check if the user account is valid. This includes
|
|
||||||
// checking for account expiration, as well as verifying access
|
|
||||||
// hour restrictions.
|
|
||||||
//
|
|
||||||
- if ( pam_acct_mgmt(phandle, 0) == PAM_SUCCESS )
|
|
||||||
- {
|
|
||||||
+ if ( (retcode = pam_acct_mgmt(phandle, 0)) == PAM_SUCCESS )
|
|
||||||
+ {
|
|
||||||
authenticated = true;
|
|
||||||
+ }else
|
|
||||||
+ {
|
|
||||||
+ pam_end(phandle, 0);
|
|
||||||
+ closelog();
|
|
||||||
+ openlog("cimserver", LOG_PID, LOG_DAEMON);
|
|
||||||
+ syslog( LOG_ERR, "pam_acct_mgmt() failed: %s", pam_strerror(phandle, retcode));
|
|
||||||
+ PEG_METHOD_EXIT();
|
|
||||||
+ return (authenticated);
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
@@ -263,6 +328,9 @@
|
|
||||||
//
|
|
||||||
pam_end(phandle, 0);
|
|
||||||
|
|
||||||
+ closelog();
|
|
||||||
+ openlog("cimserver", LOG_PID, LOG_DAEMON);
|
|
||||||
+
|
|
||||||
#else
|
|
||||||
//
|
|
||||||
// Mutex to Serialize Authentication calls.
|
|
||||||
--- pegasus/src/Pegasus/Security/Authentication/BasicAuthenticator.h.local-or-remote-auth 2006-01-30 11:18:28.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/Security/Authentication/BasicAuthenticator.h 2006-04-05 20:35:40.000000000 -0400
|
|
||||||
@@ -67,7 +67,8 @@
|
|
||||||
*/
|
|
||||||
virtual Boolean authenticate(
|
|
||||||
const String& userName,
|
|
||||||
- const String& password) = 0;
|
|
||||||
+ const String& password,
|
|
||||||
+ Boolean isRemoteUser) = 0;
|
|
||||||
|
|
||||||
/** Construct and return the HTTP Basic authentication challenge header
|
|
||||||
@return A string containing the authentication challenge header.
|
|
||||||
--- pegasus/src/Pegasus/Security/Authentication/BasicAuthenticationHandler.cpp.local-or-remote-auth 2006-01-30 11:18:28.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/Security/Authentication/BasicAuthenticationHandler.cpp 2006-04-05 20:35:40.000000000 -0400
|
|
||||||
@@ -138,7 +138,7 @@
|
|
||||||
authInfo->setAuthenticatedUser(userName);
|
|
||||||
authInfo->setAuthenticatedPassword(password);
|
|
||||||
#else
|
|
||||||
- authenticated = _basicAuthenticator->authenticate(userName, password);
|
|
||||||
+ authenticated = _basicAuthenticator->authenticate(userName, password, authInfo->isRemoteUser());
|
|
||||||
|
|
||||||
if (authenticated)
|
|
||||||
{
|
|
||||||
--- pegasus/src/Pegasus/Security/Authentication/PAMBasicAuthenticatorStub.cpp.local-or-remote-auth 2006-01-30 11:18:28.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/Security/Authentication/PAMBasicAuthenticatorStub.cpp 2006-04-05 20:35:40.000000000 -0400
|
|
||||||
@@ -92,7 +92,8 @@
|
|
||||||
|
|
||||||
Boolean PAMBasicAuthenticator::authenticate(
|
|
||||||
const String& userName,
|
|
||||||
- const String& password)
|
|
||||||
+ const String& password,
|
|
||||||
+ Boolean isRemoteUser)
|
|
||||||
{
|
|
||||||
PEG_METHOD_ENTER(TRC_AUTHENTICATION,
|
|
||||||
"PAMBasicAuthenticator::authenticate()");
|
|
||||||
--- pegasus/src/Pegasus/Security/Authentication/PAMBasicAuthenticator.h.local-or-remote-auth 2006-01-30 11:18:28.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/Security/Authentication/PAMBasicAuthenticator.h 2006-04-05 20:35:40.000000000 -0400
|
|
||||||
@@ -73,7 +73,8 @@
|
|
||||||
*/
|
|
||||||
Boolean authenticate(
|
|
||||||
const String& userName,
|
|
||||||
- const String& password);
|
|
||||||
+ const String& password,
|
|
||||||
+ Boolean isRemoteUser);
|
|
||||||
|
|
||||||
/** Verify PAM account management for the requesting user.
|
|
||||||
@param userName String containing the user name
|
|
||||||
@@ -102,7 +103,8 @@
|
|
||||||
|
|
||||||
Boolean _authenticateByPAM(
|
|
||||||
const String& userName,
|
|
||||||
- const String& password);
|
|
||||||
+ const String& password,
|
|
||||||
+ Boolean isRemoteUser);
|
|
||||||
|
|
||||||
void _createPAMStandalone();
|
|
||||||
|
|
||||||
@@ -158,7 +160,8 @@
|
|
||||||
*/
|
|
||||||
Boolean authenticate(
|
|
||||||
const String& userName,
|
|
||||||
- const String& password);
|
|
||||||
+ const String& password,
|
|
||||||
+ Boolean isRemoteUser);
|
|
||||||
|
|
||||||
/** Verify whether the user is valid.
|
|
||||||
@param userName String containing the user name
|
|
||||||
@@ -220,7 +223,8 @@
|
|
||||||
|
|
||||||
Boolean _authenticateByPAM(
|
|
||||||
const String& userName,
|
|
||||||
- const String& password);
|
|
||||||
+ const String& password,
|
|
||||||
+ Boolean isRemoteUser);
|
|
||||||
|
|
||||||
#if defined(PEGASUS_USE_PAM_STANDALONE_PROC)
|
|
||||||
PAMBasicAuthenticatorStandAlone _pamBasicAuthenticatorStandAlone;
|
|
||||||
--- pegasus/src/Pegasus/Common/AuthenticationInfoRep.cpp.local-or-remote-auth 2006-01-30 11:16:46.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/Common/AuthenticationInfoRep.cpp 2006-04-05 20:35:40.000000000 -0400
|
|
||||||
@@ -57,7 +57,8 @@
|
|
||||||
_privileged(false),
|
|
||||||
_authType(String::EMPTY),
|
|
||||||
_authStatus(NEW_REQUEST),
|
|
||||||
- _exportConnection(false)
|
|
||||||
+ _exportConnection(false),
|
|
||||||
+ _remoteUser(true)
|
|
||||||
{
|
|
||||||
PEG_METHOD_ENTER(
|
|
||||||
TRC_AUTHENTICATION, "AuthenticationInfoRep::AuthenticationInfoRep");
|
|
||||||
@@ -180,5 +181,14 @@
|
|
||||||
PEG_METHOD_EXIT();
|
|
||||||
}
|
|
||||||
|
|
||||||
+void AuthenticationInfoRep::setRemoteUser(Boolean remoteUser)
|
|
||||||
+{
|
|
||||||
+ PEG_METHOD_ENTER(TRC_AUTHENTICATION,
|
|
||||||
+ "AuthenticationInfoRep::setRemoteUser");
|
|
||||||
+
|
|
||||||
+ _remoteUser = remoteUser;
|
|
||||||
+
|
|
||||||
+ PEG_METHOD_EXIT();
|
|
||||||
+}
|
|
||||||
|
|
||||||
PEGASUS_NAMESPACE_END
|
|
||||||
--- pegasus/src/Pegasus/Common/HTTPMessage.cpp.local-or-remote-auth 2006-01-30 11:17:04.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/Common/HTTPMessage.cpp 2006-04-05 20:35:40.000000000 -0400
|
|
||||||
@@ -119,7 +119,8 @@
|
|
||||||
queueId(queueId_),
|
|
||||||
authInfo(0),
|
|
||||||
acceptLanguagesDecoded(false),
|
|
||||||
- contentLanguagesDecoded(false)
|
|
||||||
+ contentLanguagesDecoded(false),
|
|
||||||
+ fromRemoteHost(true)
|
|
||||||
{
|
|
||||||
if (cimException_)
|
|
||||||
cimException = *cimException_;
|
|
||||||
--- pegasus/src/Pegasus/Common/AuthenticationInfo.h.local-or-remote-auth 2006-01-30 11:16:46.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/Common/AuthenticationInfo.h 2006-04-05 20:35:40.000000000 -0400
|
|
||||||
@@ -331,6 +331,22 @@
|
|
||||||
_rep->setClientCertificateChain(clientCertificate);
|
|
||||||
}
|
|
||||||
|
|
||||||
+ /** Indicate whether the user is Remote
|
|
||||||
+ */
|
|
||||||
+ Boolean isRemoteUser() const
|
|
||||||
+ {
|
|
||||||
+ _checkRep();
|
|
||||||
+ return _rep->isRemoteUser();
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /** Set the Remote User flag
|
|
||||||
+ */
|
|
||||||
+ void setRemoteUser(Boolean remoteUser)
|
|
||||||
+ {
|
|
||||||
+ _checkRep();
|
|
||||||
+ _rep->setRemoteUser(remoteUser);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
private:
|
|
||||||
|
|
||||||
AuthenticationInfo(AuthenticationInfoRep* rep) : _rep(rep)
|
|
||||||
--- pegasus/src/Pegasus/Common/HTTPConnection.cpp.local-or-remote-auth 2006-02-28 21:21:37.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/Common/HTTPConnection.cpp 2006-04-05 20:35:40.000000000 -0400
|
|
||||||
@@ -1828,6 +1828,30 @@
|
|
||||||
"_requestCount = %d", _requestCount.get());
|
|
||||||
message->dest = _outputMessageQueue->getQueueId();
|
|
||||||
// SendForget(message);
|
|
||||||
+
|
|
||||||
+ // Allow authenticators to differentiate Remote and Local users:
|
|
||||||
+ struct sockaddr_in sin_peer, sin_svr; // don't need to worry about IPv6 yet ...
|
|
||||||
+ socklen_t slen1=sizeof(struct sockaddr_in), slen2=sizeof(struct sockaddr_in);
|
|
||||||
+ uint32_t sock = _socket.get()->getSocket() ;
|
|
||||||
+ memset(&sin_peer,'\0',slen1);
|
|
||||||
+ memset(&sin_svr, '\0',slen2);
|
|
||||||
+ if ( ( ::getpeername( sock, (struct sockaddr*)&sin_peer, &slen1) == 0 )
|
|
||||||
+ ||( ::getsockname( sock, (struct sockaddr*)&sin_svr, &slen2) == 0 )
|
|
||||||
+ )
|
|
||||||
+ {
|
|
||||||
+ if( sin_peer.sin_family == AF_INET )
|
|
||||||
+ {
|
|
||||||
+ if( ((ntohl( sin_peer.sin_addr.s_addr ) >> 24) & 0xff) == 127 )
|
|
||||||
+ // message was sent FROM localhost interface
|
|
||||||
+ message->fromRemoteHost = false;
|
|
||||||
+ }
|
|
||||||
+ if( sin_svr.sin_family == AF_INET )
|
|
||||||
+ {
|
|
||||||
+ if( ((ntohl( sin_svr.sin_addr.s_addr ) >> 24) & 0xff) == 127 )
|
|
||||||
+ // message was sent TO localhost interface
|
|
||||||
+ message->fromRemoteHost = false;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
|
|
||||||
//
|
|
||||||
// Set the entry status to BUSY.
|
|
||||||
--- pegasus/src/Pegasus/Common/AuthenticationInfoRep.h.local-or-remote-auth 2006-01-30 11:16:46.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/Common/AuthenticationInfoRep.h 2006-04-05 20:37:59.000000000 -0400
|
|
||||||
@@ -143,6 +143,14 @@
|
|
||||||
|
|
||||||
void setExportConnection(Boolean exportConnection);
|
|
||||||
|
|
||||||
+ Boolean isRemoteUser() const
|
|
||||||
+ {
|
|
||||||
+ return _remoteUser;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ void setRemoteUser(Boolean remoteUser);
|
|
||||||
+
|
|
||||||
+
|
|
||||||
//PEP187
|
|
||||||
Array<SSLCertificateInfo*> getClientCertificateChain()
|
|
||||||
{
|
|
||||||
@@ -173,7 +181,8 @@
|
|
||||||
#endif
|
|
||||||
|
|
||||||
Boolean _exportConnection;
|
|
||||||
- Array<SSLCertificateInfo*> _clientCertificate;
|
|
||||||
+ Array<SSLCertificateInfo*> _clientCertificate;
|
|
||||||
+ Boolean _remoteUser;
|
|
||||||
};
|
|
||||||
|
|
||||||
PEGASUS_NAMESPACE_END
|
|
||||||
--- pegasus/src/Pegasus/Common/HTTPMessage.h.local-or-remote-auth 2006-01-30 11:17:04.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/Common/HTTPMessage.h 2006-04-05 20:35:40.000000000 -0400
|
|
||||||
@@ -80,7 +80,8 @@
|
|
||||||
ContentLanguageList contentLanguages;
|
|
||||||
Boolean acceptLanguagesDecoded;
|
|
||||||
Boolean contentLanguagesDecoded;
|
|
||||||
- CIMException cimException;
|
|
||||||
+ Boolean fromRemoteHost;
|
|
||||||
+ CIMException cimException;
|
|
||||||
|
|
||||||
void parse(
|
|
||||||
String& startLine,
|
|
@ -1,81 +0,0 @@
|
|||||||
--- pegasus/mak/library-unix.mak.no-rpath 2006-01-30 11:16:23.000000000 -0500
|
|
||||||
+++ pegasus/mak/library-unix.mak 2006-04-08 18:28:43.000000000 -0400
|
|
||||||
@@ -81,14 +81,14 @@
|
|
||||||
ifneq ($(PEGASUS_PLATFORM),DARWIN_PPC_GNU)
|
|
||||||
ifdef PEGASUS_USE_RELEASE_DIRS
|
|
||||||
LINK_COMMAND = $(CXX) -shared $(LINK_MACHINE_OPTIONS)
|
|
||||||
- LINK_ARGUMENTS = -Wl,-hlib$(LIBRARY)$(LIB_SUFFIX) -Xlinker -rpath -Xlinker $(PEGASUS_DEST_LIB_DIR)
|
|
||||||
+ LINK_ARGUMENTS = -Wl,-hlib$(LIBRARY)$(LIB_SUFFIX) $(EXTRA_LINK_ARGUMENTS)
|
|
||||||
else
|
|
||||||
LINK_COMMAND = $(CXX) -shared $(LINK_MACHINE_OPTIONS)
|
|
||||||
- LINK_ARGUMENTS = -Wl,-hlib$(LIBRARY)$(LIB_SUFFIX) -Xlinker -rpath -Xlinker $(LIB_DIR) $(EXTRA_LINK_ARGUMENTS)
|
|
||||||
+ LINK_ARGUMENTS = -Wl,-hlib$(LIBRARY)$(LIB_SUFFIX) $(EXTRA_LINK_ARGUMENTS)
|
|
||||||
endif
|
|
||||||
else
|
|
||||||
LINK_COMMAND = $(CXX) -dynamiclib
|
|
||||||
- LINK_ARGUMENTS = --helplib$(LIBRARY)$(LIB_SUFFIX) -ldl
|
|
||||||
+ LINK_ARGUMENTS = --helplib$(LIBRARY)$(LIB_SUFFIX) -ldl $(EXTRA_LINK_ARGUMENTS)
|
|
||||||
endif
|
|
||||||
ifeq ($(PEGASUS_PLATFORM), SOLARIS_SPARC_GNU)
|
|
||||||
LINK_ARGUMENTS = -Wl,-hlib$(LIBRARY)$(LIB_SUFFIX) -Xlinker -L$(LIB_DIR) $(EXTRA_LINK_ARGUMENTS)
|
|
||||||
--- pegasus/mak/program-unix.mak.no-rpath 2006-01-30 11:16:23.000000000 -0500
|
|
||||||
+++ pegasus/mak/program-unix.mak 2006-04-08 18:28:43.000000000 -0400
|
|
||||||
@@ -30,22 +30,12 @@
|
|
||||||
#//==============================================================================
|
|
||||||
INCLUDES = -I$(ROOT)/src $(EXTRA_INCLUDES)
|
|
||||||
|
|
||||||
-ifndef LINK_RPATH
|
|
||||||
- LINK_RPATH = -Xlinker -rpath
|
|
||||||
-endif
|
|
||||||
-
|
|
||||||
LINK_DEST_LIB = -Xlinker $(PEGASUS_DEST_LIB_DIR)
|
|
||||||
|
|
||||||
LINK_LIB_DIR = -Xlinker $(LIB_DIR)
|
|
||||||
|
|
||||||
LINK_ICU = -Xlinker ${ICU_INSTALL}/lib
|
|
||||||
|
|
||||||
-ifndef LINK_RPATH_LINK
|
|
||||||
- LINK_RPATH_LINK = -Xlinker -rpath-link
|
|
||||||
-endif
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-
|
|
||||||
TMP_OBJECTS = $(foreach i,$(SOURCES),$(OBJ_DIR)/$i)
|
|
||||||
|
|
||||||
ifeq ($(OS_TYPE),windows)
|
|
||||||
@@ -118,9 +108,9 @@
|
|
||||||
endif
|
|
||||||
else
|
|
||||||
ifdef PEGASUS_USE_RELEASE_DIRS
|
|
||||||
- $(LINK_WRAPPER) $(CXX) $(FLAGS) $(EXTRA_LINK_FLAGS) $(LINK_RPATH) $(LINK_DEST_LIB) $(LINK_RPATH_LINK) $(LINK_LIB_DIR) -L$(LIB_DIR) $(EXE_OUTPUT) $(OBJECTS) $(DYNAMIC_LIBRARIES) $(SYS_LIBS)
|
|
||||||
+ $(LINK_WRAPPER) $(CXX) $(FLAGS) $(EXTRA_LINK_FLAGS) -L$(LIB_DIR) $(EXE_OUTPUT) $(OBJECTS) $(DYNAMIC_LIBRARIES) $(SYS_LIBS)
|
|
||||||
else
|
|
||||||
- $(LINK_WRAPPER) $(CXX) $(FLAGS) $(EXTRA_LINK_FLAGS) $(LINK_RPATH) $(LINK_LIB_DIR) -L$(LIB_DIR) $(EXE_OUTPUT) $(OBJECTS) $(DYNAMIC_LIBRARIES) $(SYS_LIBS)
|
|
||||||
+ $(LINK_WRAPPER) $(CXX) $(FLAGS) $(EXTRA_LINK_FLAGS) -L$(LIB_DIR) $(EXE_OUTPUT) $(OBJECTS) $(DYNAMIC_LIBRARIES) $(SYS_LIBS)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
else
|
|
||||||
--- pegasus/src/Pegasus/ControlProviders/CertificateProvider/Makefile.no-rpath 2006-01-30 11:17:40.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/ControlProviders/CertificateProvider/Makefile 2006-04-09 02:19:33.000000000 -0400
|
|
||||||
@@ -58,8 +58,7 @@
|
|
||||||
ifeq ($(OS),linux)
|
|
||||||
EXTRA_LIBRARIES += -lcrypt
|
|
||||||
ifdef PEGASUS_HAS_SSL
|
|
||||||
- EXTRA_LIBRARIES += -L$(OPENSSL_HOME)/lib -lssl -lcrypto
|
|
||||||
- EXTRA_LINK_ARGUMENTS = -Xlinker -rpath -Xlinker $(OPENSSL_HOME)/lib
|
|
||||||
+ EXTRA_LIBRARIES += -lssl -lcrypto
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
--- pegasus/src/Pegasus/Common/Makefile.no-rpath 2006-01-30 11:17:05.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/Common/Makefile 2006-04-09 02:23:54.000000000 -0400
|
|
||||||
@@ -185,8 +185,7 @@
|
|
||||||
ifeq ($(OS),linux)
|
|
||||||
EXTRA_LIBRARIES += -lcrypt
|
|
||||||
ifdef PEGASUS_HAS_SSL
|
|
||||||
- EXTRA_LIBRARIES += -L$(OPENSSL_HOME)/lib -lssl -lcrypto
|
|
||||||
- EXTRA_LINK_ARGUMENTS = -Xlinker -rpath -Xlinker $(OPENSSL_HOME)/lib
|
|
||||||
+ EXTRA_LIBRARIES += -lssl -lcrypto
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
@ -1,56 +0,0 @@
|
|||||||
--- pegasus/src/Pegasus/ProviderManager2/ProviderManagerService.cpp.obz4934 2006-02-28 14:53:30.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/ProviderManager2/ProviderManagerService.cpp 2006-04-14 17:47:30.000000000 -0400
|
|
||||||
@@ -567,8 +567,8 @@
|
|
||||||
CIMRequestMessage* request,
|
|
||||||
CIMResponseMessage* response)
|
|
||||||
{
|
|
||||||
- CIMStatusCode code = CIM_ERR_SUCCESS;
|
|
||||||
- String message;
|
|
||||||
+ PEG_METHOD_ENTER(TRC_PROVIDERMANAGER,
|
|
||||||
+ "ProviderManagerService::responseChunkCallback");
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
@@ -601,25 +601,20 @@
|
|
||||||
|
|
||||||
op->_async_callback(op, service, op->_callback_ptr);
|
|
||||||
}
|
|
||||||
-
|
|
||||||
- catch(CIMException &e)
|
|
||||||
- {
|
|
||||||
- code = e.getCode();
|
|
||||||
- message = e.getMessage();
|
|
||||||
- }
|
|
||||||
catch(Exception &e)
|
|
||||||
{
|
|
||||||
- code = CIM_ERR_FAILED;
|
|
||||||
- message = e.getMessage();
|
|
||||||
+ PEG_TRACE_STRING(TRC_DISCARDED_DATA, Tracer::LEVEL2,
|
|
||||||
+ "Exception in ProviderManagerService::responseChunkCallback: " +
|
|
||||||
+ e.getMessage() + ". Chunk not delivered.");
|
|
||||||
}
|
|
||||||
catch(...)
|
|
||||||
{
|
|
||||||
- code = CIM_ERR_FAILED;
|
|
||||||
- message = cimStatusCodeToString(code);
|
|
||||||
+ PEG_TRACE_STRING(TRC_DISCARDED_DATA, Tracer::LEVEL2,
|
|
||||||
+ "Exception in ProviderManagerService::responseChunkCallback. "
|
|
||||||
+ "Chunk not delivered.");
|
|
||||||
}
|
|
||||||
|
|
||||||
- if (code != CIM_ERR_SUCCESS)
|
|
||||||
- response->cimException = PEGASUS_CIM_EXCEPTION(code, message);
|
|
||||||
+ PEG_METHOD_EXIT();
|
|
||||||
}
|
|
||||||
|
|
||||||
Message* ProviderManagerService::_processMessage(CIMRequestMessage* request)
|
|
||||||
--- pegasus/src/Pegasus/Server/CIMOperationRequestDispatcher.cpp.obz4934 2006-03-14 17:12:21.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/Server/CIMOperationRequestDispatcher.cpp 2006-04-14 17:24:06.000000000 -0400
|
|
||||||
@@ -1770,6 +1770,7 @@
|
|
||||||
{
|
|
||||||
// put back the async request because there are more chunks to come.
|
|
||||||
op->put_request(asyncRequest);
|
|
||||||
+ delete asyncReply;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
@ -1,102 +0,0 @@
|
|||||||
--- pegasus/src/Pegasus/msg/Server/pegasusServer_en.txt.obz4945 2006-03-15 16:28:36.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/msg/Server/pegasusServer_en.txt 2006-04-14 17:55:22.000000000 -0400
|
|
||||||
@@ -1167,8 +1167,11 @@
|
|
||||||
|
|
||||||
ControlProviders.CertificateProvider.EMPTY_CRL:string {"PGS03312: The certificate revocation list is empty."}
|
|
||||||
|
|
||||||
- ControlProviders.CertificateProvider.TRUSTSTORE_RELOAD_FAILED:string {"PGS03313: Trust store reload failed. Certificate deletion will not be effective until cimserver restart."}
|
|
||||||
+ ControlProviders.CertificateProvider.TRUSTSTORE_RELOAD_FAILED:string {"PGS03313: Trust store reload failed. Certificate deletion will not be effective until cimserver restart."}
|
|
||||||
|
|
||||||
+ ControlProviders.CertificateProvider.ERROR_WRITING_CERT:string {"PGS03314: Unable to add certificate to truststore. Error while trying to write certificate."}
|
|
||||||
+
|
|
||||||
+ ControlProviders.CertificateProvider.ERROR_WRITING_CRL:string {"PGS03315: Unable to add CRL to truststore. Error while trying to write CRL."}
|
|
||||||
|
|
||||||
// ==========================================================
|
|
||||||
// Messages for CIMOMHandle
|
|
||||||
--- pegasus/src/Pegasus/ControlProviders/CertificateProvider/CertificateProvider.cpp.obz4945 2006-03-14 16:06:37.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/ControlProviders/CertificateProvider/CertificateProvider.cpp 2006-04-14 17:55:21.000000000 -0400
|
|
||||||
@@ -1384,10 +1384,38 @@
|
|
||||||
sprintf(newFileName, "%s", (const char*) certificateFileName.getCString());
|
|
||||||
|
|
||||||
//use the ssl functions to write out the client x509 certificate
|
|
||||||
- //TODO: add some error checking here
|
|
||||||
BIO* outFile = BIO_new(BIO_s_file());
|
|
||||||
- BIO_write_filename(outFile, newFileName);
|
|
||||||
- int i = PEM_write_bio_X509(outFile, xCert);
|
|
||||||
+ if (outFile == NULL)
|
|
||||||
+ {
|
|
||||||
+ PEG_TRACE_STRING(TRC_CONTROLPROVIDER, Tracer::LEVEL2,
|
|
||||||
+ "Unable to add certificate to truststore. "
|
|
||||||
+ "Error while trying to write certificate, BIO_new returned error");
|
|
||||||
+ MessageLoaderParms parms("ControlProviders.CertificateProvider.ERROR_WRITING_CERT",
|
|
||||||
+ "Unable to add certificate to truststore. Error while trying to write certificate.");
|
|
||||||
+ throw CIMException(CIM_ERR_FAILED, parms);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (!BIO_write_filename(outFile, newFileName))
|
|
||||||
+ {
|
|
||||||
+ BIO_free_all(outFile);
|
|
||||||
+ PEG_TRACE_STRING(TRC_CONTROLPROVIDER, Tracer::LEVEL2,
|
|
||||||
+ "Unable to add certificate to truststore. Error while trying to write certificate, "
|
|
||||||
+ "BIO_write_filename returned error");
|
|
||||||
+ MessageLoaderParms parms("ControlProviders.CertificateProvider.ERROR_WRITING_CERT",
|
|
||||||
+ "Unable to add certificate to truststore. Error while trying to write certificate.");
|
|
||||||
+ throw CIMException(CIM_ERR_FAILED, parms);
|
|
||||||
+ }
|
|
||||||
+ if (!PEM_write_bio_X509(outFile, xCert))
|
|
||||||
+ {
|
|
||||||
+ BIO_free_all(outFile);
|
|
||||||
+ PEG_TRACE_STRING(TRC_CONTROLPROVIDER, Tracer::LEVEL2,
|
|
||||||
+ "Unable to add certificate to truststore. "
|
|
||||||
+ "Error while trying to write certificate, PEM_write_bio_X509 returned error");
|
|
||||||
+ MessageLoaderParms parms("ControlProviders.CertificateProvider.ERROR_WRITING_CERT",
|
|
||||||
+ "Unable to add certificate to truststore. Error while trying to write certificate.");
|
|
||||||
+ throw CIMException(CIM_ERR_FAILED, parms);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
BIO_free_all(outFile);
|
|
||||||
|
|
||||||
if (userName == String::EMPTY)
|
|
||||||
@@ -1528,10 +1556,39 @@
|
|
||||||
sprintf(newFileName, "%s", (const char*) crlFileName.getCString());
|
|
||||||
|
|
||||||
//use the ssl functions to write out the client x509 certificate
|
|
||||||
- //TODO: add some error checking here
|
|
||||||
BIO* outFile = BIO_new(BIO_s_file());
|
|
||||||
- BIO_write_filename(outFile, newFileName);
|
|
||||||
- int i = PEM_write_bio_X509_CRL(outFile, xCrl);
|
|
||||||
+ if (outFile == NULL)
|
|
||||||
+ {
|
|
||||||
+ PEG_TRACE_STRING(TRC_CONTROLPROVIDER, Tracer::LEVEL2,
|
|
||||||
+ "Unable to add CRL to truststore. "
|
|
||||||
+ "Error while trying to write CRL, BIO_new returned error");
|
|
||||||
+ MessageLoaderParms parms("ControlProviders.CertificateProvider.ERROR_WRITING_CRL",
|
|
||||||
+ "Unable to add CRL to truststore. Error while trying to write CRL.");
|
|
||||||
+ throw CIMException(CIM_ERR_FAILED, parms);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (!BIO_write_filename(outFile, newFileName))
|
|
||||||
+ {
|
|
||||||
+ BIO_free_all(outFile);
|
|
||||||
+ PEG_TRACE_STRING(TRC_CONTROLPROVIDER, Tracer::LEVEL2,
|
|
||||||
+ "Unable to add CRL to truststore. "
|
|
||||||
+ "Error while trying to write CRL, BIO_write_filename returned error");
|
|
||||||
+ MessageLoaderParms parms("ControlProviders.CertificateProvider.ERROR_WRITING_CRL",
|
|
||||||
+ "Unable to add CRL to truststore. Error while trying to write CRL.");
|
|
||||||
+ throw CIMException(CIM_ERR_FAILED, parms);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (!PEM_write_bio_X509_CRL(outFile, xCrl))
|
|
||||||
+ {
|
|
||||||
+ BIO_free_all(outFile);
|
|
||||||
+ PEG_TRACE_STRING(TRC_CONTROLPROVIDER, Tracer::LEVEL2,
|
|
||||||
+ "Unable to add CRL to truststore. "
|
|
||||||
+ "Error while trying to write CRL, PEM_write_bio_X509_CRL returned error");
|
|
||||||
+ MessageLoaderParms parms("ControlProviders.CertificateProvider.ERROR_WRITING_CRL",
|
|
||||||
+ "Unable to add CRL to truststore. Error while trying to write CRL.");
|
|
||||||
+ throw CIMException(CIM_ERR_FAILED, parms);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
BIO_free_all(outFile);
|
|
||||||
|
|
||||||
Logger::put(Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE,
|
|
@ -1,605 +0,0 @@
|
|||||||
--- pegasus/src/Providers/ManagedSystem/OperatingSystem/OperatingSystem_Linux.cpp.obz4955 2006-01-30 11:18:48.000000000 -0500
|
|
||||||
+++ pegasus/src/Providers/ManagedSystem/OperatingSystem/OperatingSystem_Linux.cpp 2006-05-02 14:43:14.000000000 -0400
|
|
||||||
@@ -96,59 +96,75 @@
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
- getName method of the Linux implementation for the OS Provider
|
|
||||||
-
|
|
||||||
- Calls uname() to get the operating system name.
|
|
||||||
+ getVendorInfo method for Linux implementation of OS Provider
|
|
||||||
|
|
||||||
+ Gets the system text from vendor's release file
|
|
||||||
*/
|
|
||||||
-Boolean OperatingSystem::getName(String& osName)
|
|
||||||
+static void getVendorInfo(
|
|
||||||
+ String& releaseText,
|
|
||||||
+ String& nameText )
|
|
||||||
{
|
|
||||||
- String s, buffer_s;
|
|
||||||
- Uint32 buffer_index; // rexex match index
|
|
||||||
+ static const Uint32 MAX_RELEASE_STRING_LEN=128;
|
|
||||||
char info_file[MAXPATHLEN];
|
|
||||||
- char buffer[MAXPATHLEN];
|
|
||||||
+ char buffer[MAX_RELEASE_STRING_LEN];
|
|
||||||
struct stat statBuf;
|
|
||||||
- FILE *vf;
|
|
||||||
|
|
||||||
- s.clear();
|
|
||||||
+
|
|
||||||
for (int ii = 0; LINUX_VENDOR_INFO[ii].vendor_name != NULL ; ii++)
|
|
||||||
{
|
|
||||||
- memset(info_file, 0, MAXPATHLEN);
|
|
||||||
- strcat(info_file, "/etc/");
|
|
||||||
- strcat(info_file, LINUX_VENDOR_INFO[ii].determining_filename);
|
|
||||||
-
|
|
||||||
+ sprintf(info_file, "/etc/%s",
|
|
||||||
+ LINUX_VENDOR_INFO[ii].determining_filename );
|
|
||||||
|
|
||||||
// If the file exists in /etc, we know what distro we're in
|
|
||||||
if (!stat(info_file, &statBuf))
|
|
||||||
{
|
|
||||||
- s.assign(LINUX_VENDOR_INFO[ii].vendor_name);
|
|
||||||
- s.append(" Distribution");
|
|
||||||
+ // Set the default OS name
|
|
||||||
+ nameText.assign(LINUX_VENDOR_INFO[ii].vendor_name);
|
|
||||||
+ nameText.append(" Distribution");
|
|
||||||
if (LINUX_VENDOR_INFO[ii].optional_string == NULL)
|
|
||||||
{
|
|
||||||
- // try to set s to a more descript value from the etc file
|
|
||||||
- vf = fopen(info_file, "r");
|
|
||||||
+ // try to set text to a more descriptive value from the etc file
|
|
||||||
+ FILE *vf = fopen(info_file, "r");
|
|
||||||
if (vf)
|
|
||||||
{
|
|
||||||
- if (fgets(buffer, MAXPATHLEN, vf) != NULL)
|
|
||||||
- {
|
|
||||||
- buffer_s.assign(buffer);
|
|
||||||
-
|
|
||||||
- // parse the text to extract Distribution Name
|
|
||||||
- buffer_index = buffer_s.find(" release");
|
|
||||||
- if ( buffer_index != PEG_NOT_FOUND )
|
|
||||||
- {
|
|
||||||
- // then we have found a valid index into the config file
|
|
||||||
- s.assign(buffer_s.subString(0,buffer_index));
|
|
||||||
- }
|
|
||||||
+ if (fgets(buffer, MAX_RELEASE_STRING_LEN, vf) != NULL)
|
|
||||||
+ {
|
|
||||||
+ String buffer_s = buffer;
|
|
||||||
+
|
|
||||||
+ // parse the text to extract first line
|
|
||||||
+ Uint32 buffer_index = buffer_s.find( '\n' );
|
|
||||||
+ if ( buffer_index != PEG_NOT_FOUND )
|
|
||||||
+ {
|
|
||||||
+ // We have found a valid index into the
|
|
||||||
+ // release string. Now get just the OS name.
|
|
||||||
+ releaseText = buffer_s.subString(0,buffer_index);
|
|
||||||
+ buffer_index = releaseText.find( " release" );
|
|
||||||
+ if ( buffer_index != PEG_NOT_FOUND )
|
|
||||||
+ {
|
|
||||||
+ nameText.assign( releaseText.subString(0,buffer_index) );
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
fclose(vf);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+ break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
- osName.assign(s);
|
|
||||||
- return true;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+/**
|
|
||||||
+ getName method of the Linux implementation for the OS Provider
|
|
||||||
+
|
|
||||||
+ Calls getVendorInfo() to get the operating system name.
|
|
||||||
|
|
||||||
+ */
|
|
||||||
+Boolean OperatingSystem::getName(String& osName)
|
|
||||||
+{
|
|
||||||
+ String releaseText;
|
|
||||||
+ getVendorInfo( releaseText, osName );
|
|
||||||
+
|
|
||||||
+ return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
@@ -204,23 +220,24 @@
|
|
||||||
/**
|
|
||||||
getCaption method for Linux implementation of OS Provider
|
|
||||||
|
|
||||||
- Uses a string constant for the Caption.
|
|
||||||
+ Gets the text from the system's release file.
|
|
||||||
*/
|
|
||||||
Boolean OperatingSystem::getCaption(String& caption)
|
|
||||||
{
|
|
||||||
-
|
|
||||||
- caption.assign("The current Operating System");
|
|
||||||
-
|
|
||||||
+ String osName;
|
|
||||||
+ getVendorInfo( caption, osName );
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
+/**
|
|
||||||
+ getDescription method for Linux implementation of OS Provider
|
|
||||||
+
|
|
||||||
+ Gets the text from the system's release file.
|
|
||||||
+ */
|
|
||||||
Boolean OperatingSystem::getDescription(String& description)
|
|
||||||
{
|
|
||||||
-
|
|
||||||
- description.assign("This instance reflects the Operating System"
|
|
||||||
- " on which the CIMOM is executing (as distinguished from instances"
|
|
||||||
- " of other installed operating systems that could be run).");
|
|
||||||
-
|
|
||||||
+ String osName;
|
|
||||||
+ getVendorInfo( description, osName );
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
--- pegasus/src/Providers/ManagedSystem/OperatingSystem/tests/OSTestClient/OSTestClient.cpp.obz4955 2006-01-30 11:18:49.000000000 -0500
|
|
||||||
+++ pegasus/src/Providers/ManagedSystem/OperatingSystem/tests/OSTestClient/OSTestClient.cpp 2006-05-02 14:45:05.000000000 -0400
|
|
||||||
@@ -61,6 +61,8 @@
|
|
||||||
# include "OSTestClient_VMS.cpp"
|
|
||||||
#elif defined (PEGASUS_OS_SOLARIS)
|
|
||||||
# include "OSTestClient_Solaris.cpp"
|
|
||||||
+#elif defined (PEGASUS_OS_LINUX)
|
|
||||||
+# include "OSTestClient_Linux.cpp"
|
|
||||||
# else
|
|
||||||
# include "OSTestClient_Stub.cpp"
|
|
||||||
#endif
|
|
||||||
--- pegasus/src/Providers/ManagedSystem/OperatingSystem/tests/OSTestClient/OSTestClient_Linux.cpp.obz4955 2006-05-02 14:46:08.000000000 -0400
|
|
||||||
+++ pegasus/src/Providers/ManagedSystem/OperatingSystem/tests/OSTestClient/OSTestClient_Linux.cpp 2006-05-02 14:38:31.000000000 -0400
|
|
||||||
@@ -0,0 +1,449 @@
|
|
||||||
+//%2006////////////////////////////////////////////////////////////////////////
|
|
||||||
+//
|
|
||||||
+// Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development
|
|
||||||
+// Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems.
|
|
||||||
+// Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L.P.;
|
|
||||||
+// IBM Corp.; EMC Corporation, The Open Group.
|
|
||||||
+// Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;
|
|
||||||
+// IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.
|
|
||||||
+// Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
|
|
||||||
+// EMC Corporation; VERITAS Software Corporation; The Open Group.
|
|
||||||
+// Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;
|
|
||||||
+// EMC Corporation; Symantec Corporation; The Open Group.
|
|
||||||
+//
|
|
||||||
+// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
+// of this software and associated documentation files (the "Software"), to
|
|
||||||
+// deal in the Software without restriction, including without limitation the
|
|
||||||
+// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
|
||||||
+// sell copies of the Software, and to permit persons to whom the Software is
|
|
||||||
+// furnished to do so, subject to the following conditions:
|
|
||||||
+//
|
|
||||||
+// THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
|
|
||||||
+// ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
|
|
||||||
+// "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
|
|
||||||
+// LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
|
|
||||||
+// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
|
||||||
+// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
|
||||||
+// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
||||||
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
||||||
+//
|
|
||||||
+//==============================================================================
|
|
||||||
+//
|
|
||||||
+//
|
|
||||||
+//%/////////////////////////////////////////////////////////////////////////////
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+// This file has the OS-specific routines that will be called to get
|
|
||||||
+// a validation of the CIM information vs. the current test system
|
|
||||||
+
|
|
||||||
+#include "OSTestClient.h"
|
|
||||||
+
|
|
||||||
+PEGASUS_USING_PEGASUS;
|
|
||||||
+PEGASUS_USING_STD;
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+static const struct
|
|
||||||
+{
|
|
||||||
+ const char *vendor_name;
|
|
||||||
+ const char *determining_filename;
|
|
||||||
+ const char *optional_string;
|
|
||||||
+} LINUX_VENDOR_INFO[] = {
|
|
||||||
+ { "Caldera", "coas", "Caldera Linux" },
|
|
||||||
+ { "Corel", "environment.corel", "Corel Linux" },
|
|
||||||
+ { "Debian GNU/Linux", "debian_version", NULL },
|
|
||||||
+ { "Mandrake", "mandrake-release", NULL },
|
|
||||||
+ { "Red Hat", "redhat-release", NULL },
|
|
||||||
+ { "SuSE", "SuSE-release", NULL },
|
|
||||||
+ { "Turbolinux", "turbolinux-release", NULL },
|
|
||||||
+ { NULL, NULL, NULL }
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+/**
|
|
||||||
+ getVendorInfo method for Linux implementation of OS Provider
|
|
||||||
+
|
|
||||||
+ Gets the system text from vendor's release file
|
|
||||||
+ */
|
|
||||||
+static void getVendorInfo(
|
|
||||||
+ String& releaseText,
|
|
||||||
+ String& nameText )
|
|
||||||
+{
|
|
||||||
+ static const Uint32 MAX_RELEASE_STRING_LEN=128;
|
|
||||||
+ char info_file[MAXPATHLEN];
|
|
||||||
+ char buffer[MAX_RELEASE_STRING_LEN];
|
|
||||||
+ struct stat statBuf;
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+ for (int ii = 0; LINUX_VENDOR_INFO[ii].vendor_name != NULL ; ii++)
|
|
||||||
+ {
|
|
||||||
+ sprintf(info_file, "/etc/%s",
|
|
||||||
+ LINUX_VENDOR_INFO[ii].determining_filename );
|
|
||||||
+
|
|
||||||
+ // If the file exists in /etc, we know what distro we're in
|
|
||||||
+ if (!stat(info_file, &statBuf))
|
|
||||||
+ {
|
|
||||||
+ // Set the default OS name
|
|
||||||
+ nameText.assign(LINUX_VENDOR_INFO[ii].vendor_name);
|
|
||||||
+ nameText.append(" Distribution");
|
|
||||||
+ if (LINUX_VENDOR_INFO[ii].optional_string == NULL)
|
|
||||||
+ {
|
|
||||||
+ // try to set text to a more descriptive value from the etc file
|
|
||||||
+ FILE *vf = fopen(info_file, "r");
|
|
||||||
+ if (vf)
|
|
||||||
+ {
|
|
||||||
+ if (fgets(buffer, MAX_RELEASE_STRING_LEN, vf) != NULL)
|
|
||||||
+ {
|
|
||||||
+ String buffer_s = buffer;
|
|
||||||
+
|
|
||||||
+ // parse the text to extract first line
|
|
||||||
+ Uint32 buffer_index = buffer_s.find( '\n' );
|
|
||||||
+ if ( buffer_index != PEG_NOT_FOUND )
|
|
||||||
+ {
|
|
||||||
+ // We have found a valid index into the
|
|
||||||
+ // release string. Now get just the OS name.
|
|
||||||
+ releaseText = buffer_s.subString(0,buffer_index);
|
|
||||||
+ buffer_index = releaseText.find( " release" );
|
|
||||||
+ if ( buffer_index != PEG_NOT_FOUND )
|
|
||||||
+ {
|
|
||||||
+ nameText.assign( releaseText.subString(0,buffer_index) );
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ fclose(vf);
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+/**
|
|
||||||
+ goodCSCreationClassName method for the OS Provider Test Client
|
|
||||||
+
|
|
||||||
+ Checks the specified value against the expected value and
|
|
||||||
+ returns TRUE if valid, else FALSE.
|
|
||||||
+ */
|
|
||||||
+Boolean OSTestClient::goodCSCreationClassName(const String &cs_ccn,
|
|
||||||
+ Boolean verbose)
|
|
||||||
+{
|
|
||||||
+ // This assumes the only right answer is CIM_UnitaryComputerSystem
|
|
||||||
+ // replace with approprate check for the given OS/Provider
|
|
||||||
+
|
|
||||||
+ if (verbose)
|
|
||||||
+ cout<<"Checking " <<cs_ccn<< " against CIM_UnitaryComputerSystem"<<endl;
|
|
||||||
+ return (String::equalNoCase(cs_ccn, "CIM_UnitaryComputerSystem"));
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+/*
|
|
||||||
+ GoodCSName method for the OS Provider Test Client
|
|
||||||
+
|
|
||||||
+ Checks the specified value against the expected value and
|
|
||||||
+ returns TRUE if the same, else FALSE
|
|
||||||
+ */
|
|
||||||
+Boolean OSTestClient::goodCSName(const String &csname, Boolean verbose)
|
|
||||||
+{
|
|
||||||
+ if (verbose)
|
|
||||||
+ cout<<"Checking " <<csname<< " against hostname " <<endl;
|
|
||||||
+ cout<<"- No check written for CSName " <<endl;
|
|
||||||
+
|
|
||||||
+ // always returns success; replace with appropriate OS/Provider code
|
|
||||||
+ return true;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+/*
|
|
||||||
+ GoodCreationClassName method for the OS Provider Test Client
|
|
||||||
+
|
|
||||||
+ Checks the specified value against the expected value and
|
|
||||||
+ returns TRUE if the same, else FALSE
|
|
||||||
+ */
|
|
||||||
+Boolean OSTestClient::goodCreationClassName(const String &ccn,
|
|
||||||
+ Boolean verbose)
|
|
||||||
+{
|
|
||||||
+ // This assumes the only right answer is CIM_OperatingSystem
|
|
||||||
+ // replace with approprate check for the given OS/Provider
|
|
||||||
+
|
|
||||||
+ if (verbose)
|
|
||||||
+ cout<<"Checking " << ccn << " against CIM_OperatingSystem"<<endl;
|
|
||||||
+
|
|
||||||
+ return (String::equalNoCase(ccn, "CIM_OperatingSystem"));
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+/*
|
|
||||||
+ GoodName method for the OS Provider Test Client
|
|
||||||
+
|
|
||||||
+ Checks the specified value against the expected value and
|
|
||||||
+ returns TRUE if the same, else FALSE
|
|
||||||
+ */
|
|
||||||
+Boolean OSTestClient::goodName(const String &name, Boolean verbose)
|
|
||||||
+{
|
|
||||||
+ String releaseText, osName;
|
|
||||||
+
|
|
||||||
+ if (verbose)
|
|
||||||
+ cout<<"Checking " << name << " against OS name "<<endl;
|
|
||||||
+ getVendorInfo( releaseText, osName );
|
|
||||||
+ return (String::equal( name, osName ));
|
|
||||||
+}
|
|
||||||
+/* GoodCaption method for the OS Provider Test Client
|
|
||||||
+
|
|
||||||
+ Checks the specified value against the expected value
|
|
||||||
+ and returns TRUE if the same, else FALSE
|
|
||||||
+ */
|
|
||||||
+Boolean OSTestClient::goodCaption(const String &cap,
|
|
||||||
+ Boolean verbose)
|
|
||||||
+{
|
|
||||||
+ String releaseText, osName;
|
|
||||||
+
|
|
||||||
+ // has check against standard caption
|
|
||||||
+ if (verbose)
|
|
||||||
+ cout<<"Checking Caption " << cap << endl;
|
|
||||||
+ getVendorInfo( releaseText, osName );
|
|
||||||
+ return (String::equal(cap, releaseText ) );
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+/*
|
|
||||||
+ GoodDescription method for the OS Provider Test Client
|
|
||||||
+
|
|
||||||
+ Checks the specified value against the expected value and
|
|
||||||
+ returns TRUE if the same, else FALSE
|
|
||||||
+ */
|
|
||||||
+Boolean OSTestClient::goodDescription(const String &desc,
|
|
||||||
+ Boolean verbose)
|
|
||||||
+{
|
|
||||||
+ String releaseText, osName;
|
|
||||||
+
|
|
||||||
+ // has check against standard description
|
|
||||||
+ if (verbose)
|
|
||||||
+ cout<<"Checking Description " << desc << endl;
|
|
||||||
+ getVendorInfo( releaseText, osName );
|
|
||||||
+ return (String::equal(desc, releaseText) );
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+/*
|
|
||||||
+ GoodInstallDate method for the OS Provider Test Client
|
|
||||||
+
|
|
||||||
+ Checks the specified value against the expected value and
|
|
||||||
+ returns TRUE if the same, else FALSE
|
|
||||||
+ */
|
|
||||||
+Boolean OSTestClient::goodInstallDate(const CIMDateTime &idate,
|
|
||||||
+ Boolean verbose)
|
|
||||||
+{
|
|
||||||
+ if (verbose)
|
|
||||||
+ cout<<"Checking InstallDate " << idate.toString() << endl;
|
|
||||||
+ cout<<"- No check written for InstallDate " << endl;
|
|
||||||
+ return true;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+/*
|
|
||||||
+ GoodStatus method for the OS Provider Test Client
|
|
||||||
+
|
|
||||||
+ Checks the specified value against the expected value and
|
|
||||||
+ returns TRUE if the same, else FALSE
|
|
||||||
+ */
|
|
||||||
+Boolean OSTestClient::goodStatus(const String &stat,
|
|
||||||
+ Boolean verbose)
|
|
||||||
+{
|
|
||||||
+ if (verbose)
|
|
||||||
+ cout<<"Checking Status" << stat << endl;
|
|
||||||
+ cout<<"- No check written for Status " << endl;
|
|
||||||
+ return true;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+/*
|
|
||||||
+ GoodOSType method for the OS Provider Test Client
|
|
||||||
+
|
|
||||||
+ Checks the specified value against the expected value and
|
|
||||||
+ returns TRUE if the same, else FALSE
|
|
||||||
+ */
|
|
||||||
+Boolean OSTestClient::goodOSType(const Uint16 &ostype,
|
|
||||||
+ Boolean verbose)
|
|
||||||
+{
|
|
||||||
+ if (verbose)
|
|
||||||
+ cout<<"Checking OSType " << endl;
|
|
||||||
+ return true;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+Boolean OSTestClient::goodOtherTypeDescription(const String &otdesc,
|
|
||||||
+ Boolean verbose)
|
|
||||||
+{
|
|
||||||
+ if (verbose)
|
|
||||||
+ cout<<"Checking OtherTypeDescription " << otdesc << endl;
|
|
||||||
+ return true;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+Boolean OSTestClient::goodVersion(const String &version, Boolean verbose)
|
|
||||||
+{
|
|
||||||
+ if (verbose)
|
|
||||||
+ cout<<"Checking Version " << version << endl;
|
|
||||||
+ cout<<"- No check written for Version " << endl;
|
|
||||||
+ return true;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+Boolean OSTestClient::goodLastBootUpTime(const CIMDateTime &btime,
|
|
||||||
+ Boolean verbose)
|
|
||||||
+{
|
|
||||||
+ if (verbose)
|
|
||||||
+ cout<<"Checking LastBootUpTime " << btime.toString() << endl;
|
|
||||||
+ cout<<"- No check written for LastBootUpTime " << endl;
|
|
||||||
+ return true;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+Boolean OSTestClient::goodLocalDateTime(const CIMDateTime <ime,
|
|
||||||
+ Boolean verbose)
|
|
||||||
+{
|
|
||||||
+ if (verbose)
|
|
||||||
+ cout<<"Checking LocalDateTime " << ltime.toString() << endl;
|
|
||||||
+ cout<<"- No check written for LocalDateTime " << endl;
|
|
||||||
+ return true;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+Boolean OSTestClient::goodCurrentTimeZone(const Sint16 &tz, Boolean verbose)
|
|
||||||
+{
|
|
||||||
+ if (verbose)
|
|
||||||
+ cout<<"Checking CurrentTimeZone " << tz << endl;
|
|
||||||
+ cout<<"- No check written for CurrentTimeZone " << endl;
|
|
||||||
+ return true;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+Boolean OSTestClient::goodNumberOfLicensedUsers(const Uint32 &nlusers,
|
|
||||||
+ Boolean verbose)
|
|
||||||
+{
|
|
||||||
+ if (verbose)
|
|
||||||
+ cout<<"Checking NumberOfLicensedUsers " << nlusers << endl;
|
|
||||||
+ cout<<"- No check written for NumberOfLicensedUsers " << endl;
|
|
||||||
+ return true;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+Boolean OSTestClient::goodNumberOfUsers(const Uint32 &nusers,
|
|
||||||
+ Boolean verbose)
|
|
||||||
+{
|
|
||||||
+ if (verbose)
|
|
||||||
+ cout<<"Checking NumberOfUsers " << nusers << endl;
|
|
||||||
+ cout<<"- No check written for NumberOfUsers " << endl;
|
|
||||||
+ return true;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+Boolean OSTestClient::goodNumberOfProcesses(const Uint32 &nprocs,
|
|
||||||
+ Boolean verbose)
|
|
||||||
+{
|
|
||||||
+ if (verbose)
|
|
||||||
+ cout<<"Checking NumberOfProcesses " << nprocs << endl;
|
|
||||||
+ cout<<"- No check written for NumberOfProcesses " << endl;
|
|
||||||
+ return true;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+Boolean OSTestClient::goodMaxNumberOfProcesses(const Uint32 &maxprocs,
|
|
||||||
+ Boolean verbose)
|
|
||||||
+{
|
|
||||||
+ if (verbose)
|
|
||||||
+ cout<<"Checking MaxNumberOfProcs " << maxprocs << endl;
|
|
||||||
+ cout<<"- No check written for MaxNumberOfProcesses " << endl;
|
|
||||||
+ return true;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+Boolean OSTestClient::goodTotalSwapSpaceSize(const Uint64 &totalswap,
|
|
||||||
+ Boolean verbose)
|
|
||||||
+{
|
|
||||||
+ if (verbose)
|
|
||||||
+ cout<<"Checking TotalSwapSpaceSize " << endl;
|
|
||||||
+ cout<<"- No check written for TotalSwapSpaceSize " << endl;
|
|
||||||
+ return true;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+Boolean OSTestClient::goodTotalVirtualMemorySize(const Uint64 &totalvmem,
|
|
||||||
+ Boolean verbose)
|
|
||||||
+
|
|
||||||
+{
|
|
||||||
+ if (verbose)
|
|
||||||
+ cout<<"Checking TotalVirtualMemorySize " << endl;
|
|
||||||
+ cout<<"- No check written for TotalVirtualMemorySize" << endl;
|
|
||||||
+ return true;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+Boolean OSTestClient::goodFreeVirtualMemory(const Uint64 &freevmem,
|
|
||||||
+ Boolean verbose)
|
|
||||||
+{
|
|
||||||
+ if (verbose)
|
|
||||||
+ cout<<"Checking FreeVirtualMemory " << endl;
|
|
||||||
+ cout<<"- No check written for FreeVirtualMemory" << endl;
|
|
||||||
+ return true;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+Boolean OSTestClient::goodFreePhysicalMemory(const Uint64 &freepmem,
|
|
||||||
+ Boolean verbose)
|
|
||||||
+{
|
|
||||||
+ if (verbose)
|
|
||||||
+ cout<<"Checking FreePhysicalMemory " << endl;
|
|
||||||
+ cout<<"- No check written for FreePhysicalMemory" << endl;
|
|
||||||
+ return true;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+Boolean OSTestClient::goodTotalVisibleMemorySize(const Uint64 &totalvmem,
|
|
||||||
+ Boolean verbose)
|
|
||||||
+{
|
|
||||||
+ if (verbose)
|
|
||||||
+ cout<<"Checking TotalVisibleMemorySize " << endl;
|
|
||||||
+ cout<<"- No check written for TotalVisibleMemorySize" << endl;
|
|
||||||
+ return true;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+Boolean OSTestClient::goodSizeStoredInPagingFiles(const Uint64 &pgsize,
|
|
||||||
+ Boolean verbose)
|
|
||||||
+{
|
|
||||||
+ if (verbose)
|
|
||||||
+ cout<<"Checking SizeStoredInPagingFiles " << endl;
|
|
||||||
+ cout<<"- No check written for SizeStoredInPagingFiles" << endl;
|
|
||||||
+ return true;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+Boolean OSTestClient::goodFreeSpaceInPagingFiles(const Uint64 &freepg,
|
|
||||||
+ Boolean verbose)
|
|
||||||
+{
|
|
||||||
+ if (verbose)
|
|
||||||
+ cout<<"Checking FreeSpaceInPagingFiles " << endl;
|
|
||||||
+ cout<<"- No check written for FreeSpaceInPagingFiles" << endl;
|
|
||||||
+ return true;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+Boolean OSTestClient::goodMaxProcessMemorySize(const Uint64 &maxpmem,
|
|
||||||
+ Boolean verbose)
|
|
||||||
+{
|
|
||||||
+ if (verbose)
|
|
||||||
+ cout<<"Checking MaxProcessMemSize " << endl;
|
|
||||||
+ cout<<"- No check written for MaxProcessMemSize " << endl;
|
|
||||||
+ return true;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+Boolean OSTestClient::goodDistributed(const Boolean &distr,
|
|
||||||
+ Boolean verbose)
|
|
||||||
+{
|
|
||||||
+ if (verbose)
|
|
||||||
+ cout<<"Checking Distributed " << endl;
|
|
||||||
+ cout<<"- No check written for Distributed " << endl;
|
|
||||||
+ return true;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+Boolean OSTestClient::goodMaxProcessesPerUser(const Uint32 &umaxproc,
|
|
||||||
+ Boolean verbose)
|
|
||||||
+{
|
|
||||||
+ if (verbose)
|
|
||||||
+ cout<<"Checking MaxProcsPerUser " << umaxproc << endl;
|
|
||||||
+ cout<<"- No check written for MaxProcsPerUser " << endl;
|
|
||||||
+ return true;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+Boolean OSTestClient::goodOSCapability(const String &cap, Boolean verbose)
|
|
||||||
+{
|
|
||||||
+ if (verbose)
|
|
||||||
+ cout<<"Checking OSCapability " << cap << endl;
|
|
||||||
+ cout<<"- No check written for OSCapability " << endl;
|
|
||||||
+ return true;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+Boolean OSTestClient::goodSystemUpTime(const Uint64 &uptime, Boolean verbose)
|
|
||||||
+{
|
|
||||||
+ if (verbose)
|
|
||||||
+ cout<<"Checking SystemUpTime " << endl;
|
|
||||||
+ cout<<"- No check written for SystemUpTime " << endl;
|
|
||||||
+ return true;
|
|
||||||
+}
|
|
||||||
+
|
|
@ -1,92 +0,0 @@
|
|||||||
--- pegasus/src/Pegasus/Common/HTTPConnection.cpp.obz4956 2006-05-02 14:27:39.000000000 -0400
|
|
||||||
+++ pegasus/src/Pegasus/Common/HTTPConnection.cpp 2006-05-02 15:09:56.000000000 -0400
|
|
||||||
@@ -1036,10 +1036,20 @@
|
|
||||||
// reserve space for entire non-chunked message
|
|
||||||
if (_contentLength > 0)
|
|
||||||
{
|
|
||||||
- Uint32 capacity = (Uint32)(_contentLength + _contentOffset + 1);
|
|
||||||
- _incomingBuffer.reserveCapacity(capacity);
|
|
||||||
- data = (char *)_incomingBuffer.getData();
|
|
||||||
- data[capacity-1] = 0;
|
|
||||||
+ try
|
|
||||||
+ {
|
|
||||||
+ Uint32 capacity = (Uint32)(_contentLength + _contentOffset + 1);
|
|
||||||
+ _incomingBuffer.reserveCapacity(capacity);
|
|
||||||
+ data = (char *)_incomingBuffer.getData();
|
|
||||||
+ data[capacity-1] = 0;
|
|
||||||
+ }catch(const PEGASUS_STD(bad_alloc)&)
|
|
||||||
+ {
|
|
||||||
+ _throwEventFailure(HTTP_STATUS_REQUEST_TOO_LARGE,
|
|
||||||
+ "Error reserving space for non-chunked message");
|
|
||||||
+ }catch(...)
|
|
||||||
+ {
|
|
||||||
+ _throwEventFailure(httpStatusInternal, "unexpected exception");
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
--- pegasus/src/Pegasus/Common/String.cpp.obz4956 2006-05-02 14:27:39.000000000 -0400
|
|
||||||
+++ pegasus/src/Pegasus/Common/String.cpp 2006-05-02 15:12:59.000000000 -0400
|
|
||||||
@@ -51,6 +51,10 @@
|
|
||||||
#include <unicode/uchar.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+#ifndef PEGASUS_CHECK_FOR_OVERFLOW
|
|
||||||
+#define PEGASUS_CHECK_FOR_OVERFLOW(capacity) { if (capacity > 0x3FFFFFFF) throw PEGASUS_STD(bad_alloc)(); }
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
PEGASUS_NAMESPACE_BEGIN
|
|
||||||
|
|
||||||
//==============================================================================
|
|
||||||
@@ -166,8 +170,7 @@
|
|
||||||
{
|
|
||||||
#ifndef PEGASUS_STRING_NO_THROW
|
|
||||||
|
|
||||||
- if (x > 0x0FFFFFFF)
|
|
||||||
- throw PEGASUS_STD(bad_alloc)();
|
|
||||||
+ PEGASUS_CHECK_FOR_OVERFLOW(x);
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
@@ -545,9 +548,7 @@
|
|
||||||
{
|
|
||||||
#ifndef PEGASUS_STRING_NO_THROW
|
|
||||||
|
|
||||||
- // Any string bigger than this is seriously suspect.
|
|
||||||
- if (cap > 0x0FFFFFFF)
|
|
||||||
- throw PEGASUS_STD(bad_alloc)();
|
|
||||||
+ PEGASUS_CHECK_FOR_OVERFLOW(cap);
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
--- pegasus/src/Pegasus/Common/Buffer.cpp.obz4956 2006-03-17 13:59:03.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/Common/Buffer.cpp 2006-05-02 15:06:06.000000000 -0400
|
|
||||||
@@ -43,11 +43,17 @@
|
|
||||||
|
|
||||||
static const size_t MIN_CAPACITY = 2048;
|
|
||||||
|
|
||||||
+#ifndef PEGASUS_CHECK_FOR_OVERFLOW
|
|
||||||
+#define PEGASUS_CHECK_FOR_OVERFLOW(capacity) { if (capacity > 0x3FFFFFFF) throw PEGASUS_STD(bad_alloc)(); }
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
static Uint32 _next_pow_2(Uint32 x)
|
|
||||||
{
|
|
||||||
if (x < MIN_CAPACITY)
|
|
||||||
return MIN_CAPACITY;
|
|
||||||
|
|
||||||
+ PEGASUS_CHECK_FOR_OVERFLOW(x);
|
|
||||||
+
|
|
||||||
x--;
|
|
||||||
x |= (x >> 1);
|
|
||||||
x |= (x >> 2);
|
|
||||||
@@ -132,7 +138,10 @@
|
|
||||||
_rep->size = 0;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
+ {
|
|
||||||
+ PEGASUS_CHECK_FOR_OVERFLOW(_rep->cap);
|
|
||||||
_rep = _reallocate(_rep, _rep->cap ? (2 * _rep->cap) : MIN_CAPACITY);
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
|
|
||||||
void Buffer::insert(size_t pos, const char* data, size_t size)
|
|
@ -1,65 +0,0 @@
|
|||||||
--- pegasus/src/Pegasus/ProviderManager2/CMPI/CMPI_Broker.cpp.obz4968_upcalls_oop 2006-03-15 07:53:08.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/ProviderManager2/CMPI/CMPI_Broker.cpp 2006-05-02 14:29:16.000000000 -0400
|
|
||||||
@@ -313,8 +313,18 @@
|
|
||||||
CM_ObjectPath(cop)->getNameSpace(),
|
|
||||||
CM_ObjectPath(cop)->getClassName());
|
|
||||||
if (rc) CMSetStatus(rc,CMPI_RC_OK);
|
|
||||||
- CMPI_Object *obj =
|
|
||||||
- new CMPI_Object(new CMPI_OpEnumeration(new Array<CIMObjectPath>(en)));
|
|
||||||
+
|
|
||||||
+ // When running out of process the returned instances don't contain
|
|
||||||
+ // a name space. Create a writable copy of the array and add the
|
|
||||||
+ // namespace from the input parameters.
|
|
||||||
+ Array<CIMObjectPath> * aObj = new Array<CIMObjectPath>(en);
|
|
||||||
+ for (unsigned int index=0;index < aObj->size(); index++)
|
|
||||||
+ {
|
|
||||||
+ (*aObj)[index].setNameSpace(CM_ObjectPath(cop)->getNameSpace());
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ CMPI_Object *obj = new CMPI_Object(new CMPI_OpEnumeration(aObj));
|
|
||||||
+
|
|
||||||
return (CMPI_OpEnumeration *)obj->getHdl();
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -408,8 +418,18 @@
|
|
||||||
role ? String(role) : String::EMPTY,
|
|
||||||
resultRole ? String(resultRole) : String::EMPTY);
|
|
||||||
if (rc) CMSetStatus(rc,CMPI_RC_OK);
|
|
||||||
- CMPI_Object *obj =
|
|
||||||
- new CMPI_Object(new CMPI_OpEnumeration(new Array<CIMObjectPath>(en)));
|
|
||||||
+
|
|
||||||
+ // When running out of process the returned instances don't contain
|
|
||||||
+ // a name space. Create a writable copy of the array and add the
|
|
||||||
+ // namespace from the input parameters.
|
|
||||||
+ Array<CIMObjectPath> * aObj = new Array<CIMObjectPath>(en);
|
|
||||||
+ for (unsigned int index=0;index < aObj->size(); index++)
|
|
||||||
+ {
|
|
||||||
+ (*aObj)[index].setNameSpace(CM_ObjectPath(cop)->getNameSpace());
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ CMPI_Object *obj = new CMPI_Object(new CMPI_OpEnumeration(aObj));
|
|
||||||
+
|
|
||||||
return (CMPI_OpEnumeration *)obj->getHdl();
|
|
||||||
}
|
|
||||||
catch (const CIMException &e) {
|
|
||||||
@@ -493,8 +513,18 @@
|
|
||||||
resultClass ? CIMName(resultClass) : CIMName(),
|
|
||||||
role ? String(role) : String::EMPTY);
|
|
||||||
if (rc) CMSetStatus(rc,CMPI_RC_OK);
|
|
||||||
- CMPI_Object *obj =
|
|
||||||
- new CMPI_Object(new CMPI_OpEnumeration(new Array<CIMObjectPath>(en)));
|
|
||||||
+
|
|
||||||
+ // When running out of process the returned instances don't contain
|
|
||||||
+ // a name space. Create a writable copy of the array and add the
|
|
||||||
+ // namespace from the input parameters.
|
|
||||||
+ Array<CIMObjectPath> * aObj = new Array<CIMObjectPath>(en);
|
|
||||||
+ for (unsigned int index=0;index < aObj->size(); index++)
|
|
||||||
+ {
|
|
||||||
+ (*aObj)[index].setNameSpace(CM_ObjectPath(cop)->getNameSpace());
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ CMPI_Object *obj = new CMPI_Object(new CMPI_OpEnumeration(aObj));
|
|
||||||
+
|
|
||||||
return (CMPI_OpEnumeration *)obj->getHdl();
|
|
||||||
}
|
|
||||||
catch (const CIMException &e) {
|
|
@ -1,313 +0,0 @@
|
|||||||
--- pegasus/src/Pegasus/Handler/snmpIndicationHandler/snmpIndicationHandler.cpp.obz4978 2006-01-30 11:17:54.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/Handler/snmpIndicationHandler/snmpIndicationHandler.cpp 2006-05-02 15:23:37.000000000 -0400
|
|
||||||
@@ -62,9 +62,54 @@
|
|
||||||
|
|
||||||
PEGASUS_USING_STD;
|
|
||||||
|
|
||||||
+#ifdef HPUX_EMANATE
|
|
||||||
+ static snmpDeliverTrap_emanate snmpTrap;
|
|
||||||
+#elif defined (PEGASUS_USE_NET_SNMP)
|
|
||||||
+ static snmpDeliverTrap_netsnmp snmpTrap;
|
|
||||||
+#else
|
|
||||||
+ static snmpDeliverTrap_stub snmpTrap;
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+snmpIndicationHandler::snmpIndicationHandler()
|
|
||||||
+{
|
|
||||||
+ PEG_METHOD_ENTER (TRC_IND_HANDLER,
|
|
||||||
+ "snmpIndicationHandler::snmpIndicationHandler");
|
|
||||||
+ PEG_METHOD_EXIT();
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
void snmpIndicationHandler::initialize(CIMRepository* repository)
|
|
||||||
{
|
|
||||||
+ PEG_METHOD_ENTER (TRC_IND_HANDLER,
|
|
||||||
+ "snmpIndicationHandler::initialize");
|
|
||||||
+
|
|
||||||
_repository = repository;
|
|
||||||
+
|
|
||||||
+#ifdef PEGASUS_USE_NET_SNMP
|
|
||||||
+ snmpTrap.initialize();
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+ PEG_METHOD_EXIT();
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+void snmpIndicationHandler::terminate()
|
|
||||||
+{
|
|
||||||
+ PEG_METHOD_ENTER (TRC_IND_HANDLER,
|
|
||||||
+ "snmpIndicationHandler::terminate");
|
|
||||||
+
|
|
||||||
+#ifdef PEGASUS_USE_NET_SNMP
|
|
||||||
+ snmpTrap.terminate();
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+ PEG_METHOD_EXIT();
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+snmpIndicationHandler::~snmpIndicationHandler()
|
|
||||||
+{
|
|
||||||
+ PEG_METHOD_ENTER (TRC_IND_HANDLER,
|
|
||||||
+ "snmpIndicationHandler::~snmpIndicationHandler");
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+ PEG_METHOD_EXIT();
|
|
||||||
}
|
|
||||||
|
|
||||||
// l10n - note: ignoring indication language
|
|
||||||
@@ -153,14 +198,6 @@
|
|
||||||
// trap destination and SNMP type are defined in handlerInstance
|
|
||||||
// and passing this instance as it is to deliverTrap() call
|
|
||||||
|
|
||||||
-#ifdef HPUX_EMANATE
|
|
||||||
- static snmpDeliverTrap_emanate emanateTrap;
|
|
||||||
-#elif defined (PEGASUS_USE_NET_SNMP)
|
|
||||||
- static snmpDeliverTrap_netsnmp emanateTrap;
|
|
||||||
-#else
|
|
||||||
- static snmpDeliverTrap_stub emanateTrap;
|
|
||||||
-#endif
|
|
||||||
-
|
|
||||||
Uint32 targetHostPos = handler.findProperty(CIMName ("TargetHost"));
|
|
||||||
Uint32 targetHostFormatPos = handler.findProperty(CIMName ("TargetHostFormat"));
|
|
||||||
Uint32 otherTargetHostFormatPos = handler.findProperty(CIMName (
|
|
||||||
@@ -263,7 +300,7 @@
|
|
||||||
handler.getProperty(engineIDPos).getValue().get(engineID);
|
|
||||||
}
|
|
||||||
|
|
||||||
- emanateTrap.deliverTrap(
|
|
||||||
+ snmpTrap.deliverTrap(
|
|
||||||
trapOid,
|
|
||||||
securityName,
|
|
||||||
targetHost,
|
|
||||||
@@ -315,6 +352,8 @@
|
|
||||||
MessageLoaderParms("Handler.snmpIndicationHandler.snmpIndicationHandler.FAILED_TO_DELIVER_TRAP",
|
|
||||||
"Failed to deliver trap."));
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+ PEG_METHOD_EXIT();
|
|
||||||
}
|
|
||||||
|
|
||||||
// This is the dynamic entry point into this dynamic module. The name of
|
|
||||||
--- pegasus/src/Pegasus/Handler/snmpIndicationHandler/snmpDeliverTrap_netsnmp.cpp.obz4978 2006-01-30 11:17:54.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/Handler/snmpIndicationHandler/snmpDeliverTrap_netsnmp.cpp 2006-05-02 15:23:37.000000000 -0400
|
|
||||||
@@ -41,6 +41,49 @@
|
|
||||||
|
|
||||||
PEGASUS_NAMESPACE_BEGIN
|
|
||||||
|
|
||||||
+void snmpDeliverTrap_netsnmp::initialize()
|
|
||||||
+{
|
|
||||||
+
|
|
||||||
+ PEG_METHOD_ENTER (TRC_IND_HANDLER,
|
|
||||||
+ "snmpDeliverTrap_netsnmp::initialize");
|
|
||||||
+
|
|
||||||
+ // Defined default MIB modules (in net-snmp-config.h) do not need to be
|
|
||||||
+ // loaded and loading them can cause some stderr;
|
|
||||||
+ // use environment variable MIBS to override the default MIB modules.
|
|
||||||
+ // If there is no MIBS environment variable, add it in.
|
|
||||||
+ char *envVar;
|
|
||||||
+ envVar = getenv("MIBS");
|
|
||||||
+
|
|
||||||
+ if (envVar == NULL)
|
|
||||||
+ {
|
|
||||||
+ putenv("MIBS=");
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ // Initialize the mib reader
|
|
||||||
+ netsnmp_set_mib_directory("");
|
|
||||||
+ init_mib();
|
|
||||||
+
|
|
||||||
+ // Initializes the SNMP library
|
|
||||||
+ init_snmp("snmpIndicationHandler");
|
|
||||||
+
|
|
||||||
+ // windows32 specific initialization (is a NOOP on unix)
|
|
||||||
+ SOCK_STARTUP;
|
|
||||||
+
|
|
||||||
+ PEG_METHOD_EXIT ();
|
|
||||||
+
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+void snmpDeliverTrap_netsnmp::terminate()
|
|
||||||
+{
|
|
||||||
+
|
|
||||||
+ PEG_METHOD_ENTER (TRC_IND_HANDLER,
|
|
||||||
+ "snmpDeliverTrap_netsnmp::terminate");
|
|
||||||
+
|
|
||||||
+ SOCK_CLEANUP;
|
|
||||||
+
|
|
||||||
+ PEG_METHOD_EXIT ();
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
void snmpDeliverTrap_netsnmp::deliverTrap(
|
|
||||||
const String& trapOid,
|
|
||||||
const String& securityName,
|
|
||||||
@@ -59,12 +102,12 @@
|
|
||||||
"snmpDeliverTrap_netsnmp::deliverTrap");
|
|
||||||
|
|
||||||
void *sessionHandle;
|
|
||||||
- struct snmp_session snmpSession, *sessionPtr;
|
|
||||||
+ struct snmp_session *sessionPtr;
|
|
||||||
|
|
||||||
struct snmp_pdu *snmpPdu;
|
|
||||||
|
|
||||||
// Creates a SNMP session
|
|
||||||
- _createSession(targetHost, portNumber, securityName, snmpSession,
|
|
||||||
+ _createSession(targetHost, portNumber, securityName,
|
|
||||||
sessionHandle, sessionPtr);
|
|
||||||
|
|
||||||
try
|
|
||||||
@@ -138,7 +181,6 @@
|
|
||||||
const String & targetHost,
|
|
||||||
Uint32 portNumber,
|
|
||||||
const String & securityName,
|
|
||||||
- snmp_session & snmpSession,
|
|
||||||
void *&sessionHandle,
|
|
||||||
snmp_session *&sessionPtr)
|
|
||||||
{
|
|
||||||
@@ -148,34 +190,13 @@
|
|
||||||
Sint32 libErr, sysErr;
|
|
||||||
char *errStr;
|
|
||||||
String exceptionStr;
|
|
||||||
+
|
|
||||||
+ struct snmp_session snmpSession;
|
|
||||||
|
|
||||||
- // Defined default MIB modules (in net-snmp-config.h) do not need to be
|
|
||||||
- // loaded and loading them can cause some stderr;
|
|
||||||
- // use environment variable MIBS to override the default MIB modules.
|
|
||||||
- // If there is no MIBS environment variable, add it in.
|
|
||||||
-
|
|
||||||
- char *envVar;
|
|
||||||
- envVar = getenv("MIBS");
|
|
||||||
-
|
|
||||||
- if (envVar == NULL)
|
|
||||||
{
|
|
||||||
- putenv("MIBS=");
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- // Initialize the mib reader
|
|
||||||
- netsnmp_set_mib_directory("");
|
|
||||||
- init_mib();
|
|
||||||
-
|
|
||||||
- // Initializes the SNMP library
|
|
||||||
- init_snmp("snmpIndicationHandler");
|
|
||||||
-
|
|
||||||
- // Prepares a struct snmp_session that will be used for a set of
|
|
||||||
- // SNMP transactions
|
|
||||||
+ AutoMutex autoMut(_sessionInitMutex);
|
|
||||||
snmp_sess_init(&snmpSession);
|
|
||||||
|
|
||||||
- // windows32 specific initialization (is a NOOP on unix)
|
|
||||||
- SOCK_STARTUP;
|
|
||||||
-
|
|
||||||
CString targetHostCStr = targetHost.getCString();
|
|
||||||
|
|
||||||
// peername has format: targetHost:portNumber
|
|
||||||
@@ -183,7 +204,9 @@
|
|
||||||
1+32));
|
|
||||||
sprintf(snmpSession.peername, "%s:%u", (const char*)targetHostCStr,
|
|
||||||
portNumber);
|
|
||||||
+
|
|
||||||
sessionHandle = snmp_sess_open(&snmpSession);
|
|
||||||
+ }
|
|
||||||
|
|
||||||
if (sessionHandle == NULL)
|
|
||||||
{
|
|
||||||
@@ -196,8 +219,6 @@
|
|
||||||
|
|
||||||
free(errStr);
|
|
||||||
|
|
||||||
- SOCK_CLEANUP;
|
|
||||||
-
|
|
||||||
PEG_METHOD_EXIT ();
|
|
||||||
|
|
||||||
throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,
|
|
||||||
@@ -276,8 +297,6 @@
|
|
||||||
|
|
||||||
snmp_sess_close(sessionHandle);
|
|
||||||
|
|
||||||
- SOCK_CLEANUP;
|
|
||||||
-
|
|
||||||
PEG_METHOD_EXIT ();
|
|
||||||
}
|
|
||||||
|
|
||||||
--- pegasus/src/Pegasus/Handler/snmpIndicationHandler/snmpIndicationHandler.h.obz4978 2006-01-30 11:17:54.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/Handler/snmpIndicationHandler/snmpIndicationHandler.h 2006-05-02 15:23:37.000000000 -0400
|
|
||||||
@@ -50,19 +50,13 @@
|
|
||||||
|
|
||||||
CIMRepository* _repository;
|
|
||||||
|
|
||||||
- snmpIndicationHandler()
|
|
||||||
- {
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- virtual ~snmpIndicationHandler()
|
|
||||||
- {
|
|
||||||
- }
|
|
||||||
+ snmpIndicationHandler();
|
|
||||||
+
|
|
||||||
+ virtual ~snmpIndicationHandler();
|
|
||||||
|
|
||||||
void initialize(CIMRepository* repository);
|
|
||||||
|
|
||||||
- void terminate()
|
|
||||||
- {
|
|
||||||
- }
|
|
||||||
+ void terminate();
|
|
||||||
|
|
||||||
void handleIndication(
|
|
||||||
const OperationContext& context,
|
|
||||||
@@ -71,6 +65,7 @@
|
|
||||||
CIMInstance& handler,
|
|
||||||
CIMInstance& subscription,
|
|
||||||
ContentLanguageList& contentLanguages);
|
|
||||||
+
|
|
||||||
};
|
|
||||||
|
|
||||||
PEGASUS_NAMESPACE_END
|
|
||||||
--- pegasus/src/Pegasus/Handler/snmpIndicationHandler/snmpDeliverTrap_netsnmp.h.obz4978 2006-01-30 11:17:54.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/Handler/snmpIndicationHandler/snmpDeliverTrap_netsnmp.h 2006-05-02 15:23:37.000000000 -0400
|
|
||||||
@@ -37,6 +37,7 @@
|
|
||||||
|
|
||||||
#include <iostream>
|
|
||||||
|
|
||||||
+#include <Pegasus/Common/IPC.h>
|
|
||||||
#include <net-snmp/net-snmp-config.h>
|
|
||||||
#include <net-snmp/net-snmp-includes.h>
|
|
||||||
#include "snmpDeliverTrap.h"
|
|
||||||
@@ -120,6 +121,10 @@
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
|
|
||||||
+ void initialize();
|
|
||||||
+
|
|
||||||
+ void terminate();
|
|
||||||
+
|
|
||||||
void deliverTrap(
|
|
||||||
const String& trapOid,
|
|
||||||
const String& securityName,
|
|
||||||
@@ -135,6 +140,10 @@
|
|
||||||
|
|
||||||
private:
|
|
||||||
|
|
||||||
+ // Mutex is needed before a session is created. Sessions created
|
|
||||||
+ // using the Single API do not interact with other SNMP sessions.
|
|
||||||
+ Mutex _sessionInitMutex;
|
|
||||||
+
|
|
||||||
/**
|
|
||||||
Creates a SNMP session.
|
|
||||||
|
|
||||||
@@ -143,7 +152,6 @@
|
|
||||||
to receive a trap
|
|
||||||
@param portNumber the port number to receive a trap
|
|
||||||
@param securityName the human readable community name
|
|
||||||
- @param snmpSession the SNMP session
|
|
||||||
@param sessionHandle an opaque pointer of the SNMP session
|
|
||||||
@param sessionPtr the SNMP session pointer to its associated
|
|
||||||
struct snmp_session
|
|
||||||
@@ -153,7 +161,6 @@
|
|
||||||
void _createSession(const String & targetHost,
|
|
||||||
Uint32 portNumber,
|
|
||||||
const String & securityName,
|
|
||||||
- struct snmp_session & snmpSession,
|
|
||||||
void *&sessionHandle,
|
|
||||||
struct snmp_session *&sessionPtr);
|
|
||||||
|
|
@ -1,18 +0,0 @@
|
|||||||
--- pegasus/src/Pegasus/ProviderManager2/ProviderAgent/ProviderAgent.cpp.obz4983 2006-02-28 14:53:31.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/ProviderManager2/ProviderAgent/ProviderAgent.cpp 2006-05-02 15:30:34.000000000 -0400
|
|
||||||
@@ -589,6 +589,7 @@
|
|
||||||
|
|
||||||
// Send request back to the server to process
|
|
||||||
_providerAgent->_writeResponse(message);
|
|
||||||
+ delete message;
|
|
||||||
|
|
||||||
PEG_METHOD_EXIT();
|
|
||||||
}
|
|
||||||
@@ -601,6 +602,7 @@
|
|
||||||
|
|
||||||
// Send request back to the server to process
|
|
||||||
_providerAgent->_writeResponse(response);
|
|
||||||
+ delete response;
|
|
||||||
|
|
||||||
PEG_METHOD_EXIT();
|
|
||||||
}
|
|
@ -1,269 +0,0 @@
|
|||||||
--- pegasus/src/Pegasus/ProviderManager2/OOPProviderManagerRouter.cpp.obz4980 2006-03-15 16:28:36.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/ProviderManager2/OOPProviderManagerRouter.cpp 2006-05-02 15:34:36.000000000 -0400
|
|
||||||
@@ -523,6 +523,28 @@
|
|
||||||
//Out of provider support for OS400 goes here when needed.
|
|
||||||
|
|
||||||
#else
|
|
||||||
+
|
|
||||||
+# ifndef PEGASUS_DISABLE_PROV_USERCTXT
|
|
||||||
+ // Get and save the effective user name and the uid/gid for the user
|
|
||||||
+ // context of the agent process
|
|
||||||
+
|
|
||||||
+ String effectiveUserName = System::getEffectiveUserName();
|
|
||||||
+ PEGASUS_UID_T newUid = (PEGASUS_UID_T) -1;
|
|
||||||
+ PEGASUS_GID_T newGid = (PEGASUS_GID_T) -1;
|
|
||||||
+ if (_userName != effectiveUserName)
|
|
||||||
+ {
|
|
||||||
+ if (!System::lookupUserId(_userName.getCString(), newUid, newGid))
|
|
||||||
+ {
|
|
||||||
+ throw PEGASUS_CIM_EXCEPTION_L(
|
|
||||||
+ CIM_ERR_FAILED,
|
|
||||||
+ MessageLoaderParms(
|
|
||||||
+ "ProviderManager.OOPProviderManagerRouter."
|
|
||||||
+ "USER_CONTEXT_CHANGE_FAILED",
|
|
||||||
+ "Unable to change user context to \"$0\".", _userName));
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+# endif
|
|
||||||
+
|
|
||||||
pid_t pid = fork();
|
|
||||||
if (pid < 0)
|
|
||||||
{
|
|
||||||
@@ -558,11 +580,11 @@
|
|
||||||
pipeToAgent->exportReadHandle(readHandle);
|
|
||||||
pipeFromAgent->exportWriteHandle(writeHandle);
|
|
||||||
|
|
||||||
-#ifndef PEGASUS_DISABLE_PROV_USERCTXT
|
|
||||||
+# ifndef PEGASUS_DISABLE_PROV_USERCTXT
|
|
||||||
// Set the user context of the Provider Agent process
|
|
||||||
- if (_userName != System::getEffectiveUserName())
|
|
||||||
+ if (_userName != effectiveUserName)
|
|
||||||
{
|
|
||||||
- if (!System::changeUserContext(_userName.getCString()))
|
|
||||||
+ if (!System::changeUserContext(newUid, newGid))
|
|
||||||
{
|
|
||||||
Tracer::trace(TRC_DISCARDED_DATA, Tracer::LEVEL2,
|
|
||||||
"System::changeUserContext() failed. userName = %s.",
|
|
||||||
@@ -575,7 +597,7 @@
|
|
||||||
_exit(1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-#endif
|
|
||||||
+# endif
|
|
||||||
|
|
||||||
execl(agentCommandPathCString, agentCommandPathCString,
|
|
||||||
readHandle, writeHandle,
|
|
||||||
@@ -1667,7 +1689,7 @@
|
|
||||||
request->operationContext.get(IdentityContainer::NAME);
|
|
||||||
userName = ic.getUserName();
|
|
||||||
}
|
|
||||||
- catch (Exception& e)
|
|
||||||
+ catch (Exception&)
|
|
||||||
{
|
|
||||||
// If no IdentityContainer is present, default to the CIM
|
|
||||||
// Server's user context
|
|
||||||
--- pegasus/src/Pegasus/Common/SystemVms.cpp.obz4980 2006-01-30 11:17:08.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/Common/SystemVms.cpp 2006-05-02 15:34:36.000000000 -0400
|
|
||||||
@@ -674,7 +674,10 @@
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
-Boolean System::changeUserContext(const char *userName)
|
|
||||||
+Boolean System::lookupUserId(
|
|
||||||
+ const char* userName,
|
|
||||||
+ PEGASUS_UID_T& uid,
|
|
||||||
+ PEGASUS_GID_T& gid)
|
|
||||||
{
|
|
||||||
const unsigned int PWD_BUFF_SIZE = 1024;
|
|
||||||
struct passwd pwd;
|
|
||||||
@@ -697,18 +700,28 @@
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ uid = pwd.pw_uid;
|
|
||||||
+ gid = pwd.pw_gid;
|
|
||||||
+
|
|
||||||
+ return true;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+Boolean System::changeUserContext(
|
|
||||||
+ const PEGASUS_UID_T& uid,
|
|
||||||
+ const PEGASUS_GID_T& gid)
|
|
||||||
+{
|
|
||||||
Tracer::trace(TRC_OS_ABSTRACTION, Tracer::LEVEL4,
|
|
||||||
"Changing user context to: uid = %d, gid = %d",
|
|
||||||
- (int) pwd.pw_uid, (int) pwd.pw_gid);
|
|
||||||
+ (int) uid, (int) gid);
|
|
||||||
|
|
||||||
- if (setgid(pwd.pw_gid) != 0)
|
|
||||||
+ if (setgid(gid) != 0)
|
|
||||||
{
|
|
||||||
PEG_TRACE_STRING(TRC_OS_ABSTRACTION, Tracer::LEVEL2,
|
|
||||||
String("setgid failed: ") + String(strerror(errno)));
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
- if (setuid(pwd.pw_uid) != 0)
|
|
||||||
+ if (setuid(uid) != 0)
|
|
||||||
{
|
|
||||||
PEG_TRACE_STRING(TRC_OS_ABSTRACTION, Tracer::LEVEL2,
|
|
||||||
String("setuid failed: ") + String(strerror(errno)));
|
|
||||||
--- pegasus/src/Pegasus/Common/SystemWindows.cpp.obz4980 2006-02-08 15:50:59.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/Common/SystemWindows.cpp 2006-05-02 15:34:36.000000000 -0400
|
|
||||||
@@ -838,7 +838,18 @@
|
|
||||||
return retVal;
|
|
||||||
}
|
|
||||||
|
|
||||||
-Boolean System::changeUserContext(const char* userName)
|
|
||||||
+Boolean System::lookupUserId(
|
|
||||||
+ const char* userName,
|
|
||||||
+ PEGASUS_UID_T& uid,
|
|
||||||
+ PEGASUS_GID_T& gid)
|
|
||||||
+{
|
|
||||||
+ // ATTN: Implement this method to look up the specified user
|
|
||||||
+ return false;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+Boolean System::changeUserContext(
|
|
||||||
+ const PEGASUS_UID_T& uid,
|
|
||||||
+ const PEGASUS_GID_T& gid)
|
|
||||||
{
|
|
||||||
// ATTN: Implement this method to change the process user context to the
|
|
||||||
// specified user
|
|
||||||
--- pegasus/src/Pegasus/Common/SystemNsk.cpp.obz4980 2006-01-30 11:17:08.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/Common/SystemNsk.cpp 2006-05-02 15:34:36.000000000 -0400
|
|
||||||
@@ -157,7 +157,18 @@
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
-Boolean System::changeUserContext(const char* userName)
|
|
||||||
+Boolean System::lookupUserId(
|
|
||||||
+ const char* userName,
|
|
||||||
+ PEGASUS_UID_T& uid,
|
|
||||||
+ PEGASUS_GID_T& gid)
|
|
||||||
+{
|
|
||||||
+ // ATTN: Implement this method to look up the specified user
|
|
||||||
+ return false;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+Boolean System::changeUserContext(
|
|
||||||
+ const PEGASUS_UID_T& uid,
|
|
||||||
+ const PEGASUS_GID_T& gid)
|
|
||||||
{
|
|
||||||
// ATTN: Implement this method to change the process user context to the
|
|
||||||
// specified user
|
|
||||||
--- pegasus/src/Pegasus/Common/SystemUnix.cpp.obz4980 2006-01-30 11:17:08.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/Common/SystemUnix.cpp 2006-05-02 15:34:36.000000000 -0400
|
|
||||||
@@ -1097,8 +1097,12 @@
|
|
||||||
|
|
||||||
return retVal;
|
|
||||||
}
|
|
||||||
+
|
|
||||||
#ifndef PEGASUS_OS_OS400
|
|
||||||
-Boolean System::changeUserContext(const char* userName)
|
|
||||||
+Boolean System::lookupUserId(
|
|
||||||
+ const char* userName,
|
|
||||||
+ PEGASUS_UID_T& uid,
|
|
||||||
+ PEGASUS_GID_T& gid)
|
|
||||||
{
|
|
||||||
const unsigned int PWD_BUFF_SIZE = 1024;
|
|
||||||
struct passwd pwd;
|
|
||||||
@@ -1129,18 +1133,28 @@
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ uid = pwd.pw_uid;
|
|
||||||
+ gid = pwd.pw_gid;
|
|
||||||
+
|
|
||||||
+ return true;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+Boolean System::changeUserContext(
|
|
||||||
+ const PEGASUS_UID_T& uid,
|
|
||||||
+ const PEGASUS_GID_T& gid)
|
|
||||||
+{
|
|
||||||
Tracer::trace(TRC_OS_ABSTRACTION, Tracer::LEVEL4,
|
|
||||||
"Changing user context to: uid = %d, gid = %d",
|
|
||||||
- (int)pwd.pw_uid, (int)pwd.pw_gid);
|
|
||||||
+ (int)uid, (int)gid);
|
|
||||||
|
|
||||||
- if (setgid(pwd.pw_gid) != 0)
|
|
||||||
+ if (setgid(gid) != 0)
|
|
||||||
{
|
|
||||||
PEG_TRACE_STRING(TRC_OS_ABSTRACTION, Tracer::LEVEL2,
|
|
||||||
String("setgid failed: ") + String(strerror(errno)));
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
- if (setuid(pwd.pw_uid) != 0)
|
|
||||||
+ if (setuid(uid) != 0)
|
|
||||||
{
|
|
||||||
PEG_TRACE_STRING(TRC_OS_ABSTRACTION, Tracer::LEVEL2,
|
|
||||||
String("setuid failed: ") + String(strerror(errno)));
|
|
||||||
@@ -1150,6 +1164,7 @@
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
+
|
|
||||||
Uint32 System::getPID()
|
|
||||||
{
|
|
||||||
//
|
|
||||||
--- pegasus/src/Pegasus/Common/System.h.obz4980 2006-01-30 11:17:08.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/Common/System.h 2006-05-02 15:34:36.000000000 -0400
|
|
||||||
@@ -57,6 +57,16 @@
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+#ifdef PEGASUS_OS_TYPE_UNIX
|
|
||||||
+# ifndef PEGASUS_OS_OS400
|
|
||||||
+# include <unistd.h>
|
|
||||||
+# endif
|
|
||||||
+# define PEGASUS_UID_T uid_t
|
|
||||||
+# define PEGASUS_GID_T gid_t
|
|
||||||
+#else
|
|
||||||
+# define PEGASUS_UID_T Uint32
|
|
||||||
+# define PEGASUS_GID_T Uint32
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
//
|
|
||||||
// Protocal Type
|
|
||||||
@@ -246,16 +256,33 @@
|
|
||||||
static Boolean isGroupMember(const char* userName, const char* groupName);
|
|
||||||
|
|
||||||
/**
|
|
||||||
- Changes the process user context to the specified user.
|
|
||||||
-
|
|
||||||
- @param userName User name to set as the process user context.
|
|
||||||
+ Gets the user and group IDs associated with the specified user.
|
|
||||||
+ @param userName User name for which to look up user and group IDs.
|
|
||||||
+ @param uid User ID for the specified user name.
|
|
||||||
+ @param gid Group ID for the specified user name.
|
|
||||||
+ @return True if the user and group IDs were retrieved
|
|
||||||
+ successfully, false otherwise.
|
|
||||||
+ */
|
|
||||||
+#ifndef PEGASUS_OS_OS400
|
|
||||||
+ static Boolean lookupUserId(
|
|
||||||
+ const char* userName,
|
|
||||||
+ PEGASUS_UID_T& uid,
|
|
||||||
+ PEGASUS_GID_T& gid);
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
- @return True if the user context is successfully changed,
|
|
||||||
- false otherwise.
|
|
||||||
+ /**
|
|
||||||
+ Changes the process user context to the specified user and group ID.
|
|
||||||
+ @param uid User ID to set as the process user context.
|
|
||||||
+ @param gid Group ID to set as the process group context.
|
|
||||||
+ @return True if the user context is successfully changed,
|
|
||||||
+ false otherwise.
|
|
||||||
*/
|
|
||||||
#ifndef PEGASUS_OS_OS400
|
|
||||||
- static Boolean changeUserContext(const char* userName);
|
|
||||||
+ static Boolean changeUserContext(
|
|
||||||
+ const PEGASUS_UID_T& uid,
|
|
||||||
+ const PEGASUS_GID_T& gid);
|
|
||||||
#endif
|
|
||||||
+
|
|
||||||
/**
|
|
||||||
This function is used to get the process ID of the calling process.
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
@ -1,36 +0,0 @@
|
|||||||
--- pegasus/rpm/manLinux/man1.Z/cimprovider.1.obz5046 2004-12-08 04:40:38.000000000 -0500
|
|
||||||
+++ pegasus/rpm/manLinux/man1.Z/cimprovider.1 2006-05-31 13:43:51.000000000 -0400
|
|
||||||
@@ -146,11 +146,13 @@
|
|
||||||
Error
|
|
||||||
.PD
|
|
||||||
.RE
|
|
||||||
-.SH "USAGE NOTE"
|
|
||||||
+.SH "USAGE NOTES"
|
|
||||||
.PP
|
|
||||||
The
|
|
||||||
.B cimprovider
|
|
||||||
command requires that the CIM Server is running.
|
|
||||||
+If an operation requires more than two minutes to complete, the cimprovider
|
|
||||||
+command prints a timeout message and returns an error value.
|
|
||||||
.SH "EXAMPLES "
|
|
||||||
.PP
|
|
||||||
Disable provider module "OperatingSystemProvider" and
|
|
||||||
--- pegasus/src/Clients/cimprovider/CIMProviderCommand.cpp.obz5046 2006-01-30 11:16:33.000000000 -0500
|
|
||||||
+++ pegasus/src/Clients/cimprovider/CIMProviderCommand.cpp 2006-05-31 14:02:17.000000000 -0400
|
|
||||||
@@ -69,6 +69,8 @@
|
|
||||||
#include "OS400ConvertChar.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+#define CIMPROVIDERCOMMAND_CLIENT_DEFAULTTIMEOUT 120000
|
|
||||||
+
|
|
||||||
PEGASUS_USING_STD;
|
|
||||||
|
|
||||||
PEGASUS_NAMESPACE_BEGIN
|
|
||||||
@@ -1145,6 +1147,7 @@
|
|
||||||
// Construct the CIMClient and set to request server messages
|
|
||||||
// in the default language of this client process.
|
|
||||||
_client.reset(new CIMClient);//PEP101
|
|
||||||
+ _client->setTimeout(CIMPROVIDERCOMMAND_CLIENT_DEFAULTTIMEOUT);
|
|
||||||
_client->setRequestDefaultLanguages(); //l10n
|
|
||||||
}
|
|
||||||
catch (Exception & e)
|
|
@ -1,21 +0,0 @@
|
|||||||
--- pegasus/src/Pegasus/Compiler/cimmofClient.h.obz5047 2006-01-30 11:17:33.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/Compiler/cimmofClient.h 2006-05-31 12:09:17.000000000 -0400
|
|
||||||
@@ -67,6 +67,8 @@
|
|
||||||
#include <Pegasus/Client/CIMClient.h>
|
|
||||||
#include <Pegasus/Compiler/Linkage.h>
|
|
||||||
|
|
||||||
+#define CIMMOFCLIENT_TIMEOUT_DEFAULT 120000
|
|
||||||
+
|
|
||||||
PEGASUS_NAMESPACE_BEGIN
|
|
||||||
|
|
||||||
// Forward declarations;
|
|
||||||
--- pegasus/src/Pegasus/Compiler/cimmofClient.cpp.obz5047 2006-01-30 11:17:33.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/Compiler/cimmofClient.cpp 2006-05-31 12:10:02.000000000 -0400
|
|
||||||
@@ -68,6 +68,7 @@
|
|
||||||
// our caller handle it.
|
|
||||||
|
|
||||||
_client = new CIMClient();
|
|
||||||
+ _client->setTimeout(CIMMOFCLIENT_TIMEOUT_DEFAULT);
|
|
||||||
_client->setRequestDefaultLanguages(); //l10n
|
|
||||||
|
|
||||||
#if defined(PEGASUS_OS_HPUX) || defined(PEGASUS_PLATFORM_LINUX_GENERIC_GNU) || defined(PEGASUS_OS_VMS)
|
|
@ -1,25 +0,0 @@
|
|||||||
--- pegasus/src/Pegasus/Client/CIMOperationRequestEncoder.cpp.obz5048 2006-01-30 11:16:42.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/Client/CIMOperationRequestEncoder.cpp 2006-05-31 12:14:31.000000000 -0400
|
|
||||||
@@ -67,6 +67,7 @@
|
|
||||||
_authenticator(authenticator),
|
|
||||||
_showOutput(showOutput)
|
|
||||||
{
|
|
||||||
+ dataStore_prt = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
CIMOperationRequestEncoder::~CIMOperationRequestEncoder()
|
|
||||||
@@ -881,9 +882,11 @@
|
|
||||||
Uint32 contentLength;
|
|
||||||
|
|
||||||
http_request->parse(startLine, headers, contentLength);
|
|
||||||
- dataStore_prt->setRequestSize(contentLength);
|
|
||||||
- dataStore_prt->setStartNetworkTime();
|
|
||||||
-
|
|
||||||
+ if ( dataStore_prt )
|
|
||||||
+ {
|
|
||||||
+ dataStore_prt->setRequestSize(contentLength);
|
|
||||||
+ dataStore_prt->setStartNetworkTime();
|
|
||||||
+ }
|
|
||||||
_outputQueue->enqueue(http_request);
|
|
||||||
}
|
|
||||||
|
|
@ -1,32 +0,0 @@
|
|||||||
--- pegasus/src/Pegasus/Common/CIMStatusCode.h.obz5049 2006-02-17 14:30:37.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/Common/CIMStatusCode.h 2006-05-31 11:43:33.000000000 -0400
|
|
||||||
@@ -37,7 +37,6 @@
|
|
||||||
#include <Pegasus/Common/Config.h>
|
|
||||||
#include <Pegasus/Common/Linkage.h>
|
|
||||||
#include <Pegasus/Common/ContentLanguageList.h>
|
|
||||||
-#include <Pegasus/Common/MessageLoader.h>
|
|
||||||
|
|
||||||
PEGASUS_NAMESPACE_BEGIN
|
|
||||||
|
|
||||||
--- pegasus/src/Pegasus/Common/Exception.h.obz5049 2006-01-30 11:17:03.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/Common/Exception.h 2006-05-31 11:44:46.000000000 -0400
|
|
||||||
@@ -37,7 +37,9 @@
|
|
||||||
#include <Pegasus/Common/Config.h>
|
|
||||||
#include <Pegasus/Common/String.h>
|
|
||||||
#include <Pegasus/Common/CIMStatusCode.h>
|
|
||||||
+#ifdef PEGASUS_USE_EXPERIMENTAL_INTERFACES
|
|
||||||
#include <Pegasus/Common/MessageLoader.h>
|
|
||||||
+#endif
|
|
||||||
#include <Pegasus/Common/Linkage.h>
|
|
||||||
#include <Pegasus/Common/ContentLanguageList.h>
|
|
||||||
|
|
||||||
--- pegasus/src/Pegasus/Common/CIMStatusCode.cpp.obz5049 2006-01-30 11:16:47.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/Common/CIMStatusCode.cpp 2006-05-31 11:43:52.000000000 -0400
|
|
||||||
@@ -38,6 +38,7 @@
|
|
||||||
//%/////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#include "CIMStatusCode.h"
|
|
||||||
+#include <Pegasus/Common/MessageLoader.h>
|
|
||||||
|
|
||||||
PEGASUS_NAMESPACE_BEGIN
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
@ -1,240 +0,0 @@
|
|||||||
--- pegasus/src/Pegasus/Common/HTTPConnection.cpp.obz5053 2006-05-31 14:05:14.000000000 -0400
|
|
||||||
+++ pegasus/src/Pegasus/Common/HTTPConnection.cpp 2006-05-31 14:05:14.000000000 -0400
|
|
||||||
@@ -1036,20 +1036,23 @@
|
|
||||||
// reserve space for entire non-chunked message
|
|
||||||
if (_contentLength > 0)
|
|
||||||
{
|
|
||||||
- try
|
|
||||||
- {
|
|
||||||
- Uint32 capacity = (Uint32)(_contentLength + _contentOffset + 1);
|
|
||||||
- _incomingBuffer.reserveCapacity(capacity);
|
|
||||||
- data = (char *)_incomingBuffer.getData();
|
|
||||||
- data[capacity-1] = 0;
|
|
||||||
- }catch(const PEGASUS_STD(bad_alloc)&)
|
|
||||||
- {
|
|
||||||
- _throwEventFailure(HTTP_STATUS_REQUEST_TOO_LARGE,
|
|
||||||
- "Error reserving space for non-chunked message");
|
|
||||||
- }catch(...)
|
|
||||||
- {
|
|
||||||
- _throwEventFailure(httpStatusInternal, "unexpected exception");
|
|
||||||
- }
|
|
||||||
+ try
|
|
||||||
+ {
|
|
||||||
+ Uint32 capacity = (Uint32)(_contentLength +
|
|
||||||
+ _contentOffset + 1);
|
|
||||||
+ _incomingBuffer.reserveCapacity(capacity);
|
|
||||||
+ data = (char *)_incomingBuffer.getData();
|
|
||||||
+ data[capacity-1] = 0;
|
|
||||||
+ }
|
|
||||||
+ catch(const PEGASUS_STD(bad_alloc)&)
|
|
||||||
+ {
|
|
||||||
+ _throwEventFailure(HTTP_STATUS_REQUEST_TOO_LARGE,
|
|
||||||
+ "Error reserving space for non-chunked message");
|
|
||||||
+ }
|
|
||||||
+ catch(...)
|
|
||||||
+ {
|
|
||||||
+ _throwEventFailure(httpStatusInternal, "unexpected exception");
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
--- pegasus/src/Pegasus/Common/tests/Array/Array.cpp.obz5053 2006-01-30 11:17:15.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/Common/tests/Array/Array.cpp 2006-05-31 14:34:16.000000000 -0400
|
|
||||||
@@ -189,7 +189,7 @@
|
|
||||||
{
|
|
||||||
Array<Uint32> arr(0xffff0000);
|
|
||||||
}
|
|
||||||
- catch (const NullPointer&)
|
|
||||||
+ catch (const PEGASUS_STD(bad_alloc)&)
|
|
||||||
{
|
|
||||||
exceptionCaught = true;
|
|
||||||
}
|
|
||||||
@@ -201,7 +201,7 @@
|
|
||||||
{
|
|
||||||
Array<Uint32> arr(0xffff0000, 100);
|
|
||||||
}
|
|
||||||
- catch (const NullPointer&)
|
|
||||||
+ catch (const PEGASUS_STD(bad_alloc)&)
|
|
||||||
{
|
|
||||||
exceptionCaught = true;
|
|
||||||
}
|
|
||||||
@@ -214,7 +214,7 @@
|
|
||||||
Uint32 myInt = 50;
|
|
||||||
Array<Uint32> arr(&myInt, 0xffff0000);
|
|
||||||
}
|
|
||||||
- catch (const NullPointer&)
|
|
||||||
+ catch (const PEGASUS_STD(bad_alloc)&)
|
|
||||||
{
|
|
||||||
exceptionCaught = true;
|
|
||||||
}
|
|
||||||
@@ -224,7 +224,16 @@
|
|
||||||
{
|
|
||||||
Array<Uint32> arr(128);
|
|
||||||
PEGASUS_TEST_ASSERT(arr.getCapacity() == 128);
|
|
||||||
- arr.reserveCapacity(0xffff0000);
|
|
||||||
+ exceptionCaught = false;
|
|
||||||
+ try
|
|
||||||
+ {
|
|
||||||
+ arr.reserveCapacity(0xffff0000);
|
|
||||||
+ }
|
|
||||||
+ catch (const PEGASUS_STD(bad_alloc)&)
|
|
||||||
+ {
|
|
||||||
+ exceptionCaught = true;
|
|
||||||
+ }
|
|
||||||
+ PEGASUS_TEST_ASSERT(exceptionCaught);
|
|
||||||
PEGASUS_TEST_ASSERT(arr.getCapacity() == 128);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
--- pegasus/src/Pegasus/Common/InternalException.h.obz5053 2006-01-30 11:17:04.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/Common/InternalException.h 2006-05-31 14:05:14.000000000 -0400
|
|
||||||
@@ -619,6 +619,18 @@
|
|
||||||
#define PEGASUS_CIM_EXCEPTION_L(CODE, MSG_PARMS) \
|
|
||||||
TraceableCIMException(CODE, MSG_PARMS, String(__FILE__), __LINE__)
|
|
||||||
|
|
||||||
+/** Macro to prevent overflow of a signed int value when said value is
|
|
||||||
+ * doubled. If String/Array/Buffer size is greater than 0x3FFFFFFF, then
|
|
||||||
+ * something is suspect, throw bad_alloc exception.
|
|
||||||
+ */
|
|
||||||
+#define PEGASUS_CHECK_CAPACITY_OVERFLOW(capacity) \
|
|
||||||
+ do \
|
|
||||||
+ { \
|
|
||||||
+ if (capacity > 0x3FFFFFFF) \
|
|
||||||
+ throw PEGASUS_STD(bad_alloc)(); \
|
|
||||||
+ } \
|
|
||||||
+ while (0)
|
|
||||||
+
|
|
||||||
PEGASUS_NAMESPACE_END
|
|
||||||
|
|
||||||
#endif /* Pegasus_InternalException_h */
|
|
||||||
--- pegasus/src/Pegasus/Common/ArrayRep.h.obz5053 2006-01-30 11:16:46.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/Common/ArrayRep.h 2006-05-31 14:05:14.000000000 -0400
|
|
||||||
@@ -145,9 +145,10 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
// Test for Uint32 overflow in the memory allocation size
|
|
||||||
+ // throw a bad_alloc exception if overflow would occur.
|
|
||||||
if (initialCapacity > (Uint32(0xffffffff)-sizeof(ArrayRep<T>))/sizeof(T))
|
|
||||||
{
|
|
||||||
- return 0;
|
|
||||||
+ throw PEGASUS_STD(bad_alloc)();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create object:
|
|
||||||
--- pegasus/src/Pegasus/Common/ArrayImpl.h.obz5053 2006-01-30 11:16:45.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/Common/ArrayImpl.h 2006-05-31 14:05:14.000000000 -0400
|
|
||||||
@@ -77,10 +77,8 @@
|
|
||||||
{
|
|
||||||
_rep = ArrayRep<PEGASUS_ARRAY_T>::alloc(size);
|
|
||||||
|
|
||||||
- if (!_rep)
|
|
||||||
- {
|
|
||||||
- throw NullPointer();
|
|
||||||
- }
|
|
||||||
+ // ArrayRep<PEGASUS_ARRAY_T>::alloc() throws a bad_alloc exception if
|
|
||||||
+ // storage could not be obtained.
|
|
||||||
|
|
||||||
InitializeRaw(Array_data, size);
|
|
||||||
}
|
|
||||||
@@ -92,10 +90,8 @@
|
|
||||||
{
|
|
||||||
_rep = ArrayRep<PEGASUS_ARRAY_T>::alloc(size);
|
|
||||||
|
|
||||||
- if (!_rep)
|
|
||||||
- {
|
|
||||||
- throw NullPointer();
|
|
||||||
- }
|
|
||||||
+ // ArrayRep<PEGASUS_ARRAY_T>::alloc() throws a bad_alloc exception if
|
|
||||||
+ // storage could not be obtained.
|
|
||||||
|
|
||||||
PEGASUS_ARRAY_T* data = Array_data;
|
|
||||||
|
|
||||||
@@ -114,10 +110,8 @@
|
|
||||||
{
|
|
||||||
_rep = ArrayRep<PEGASUS_ARRAY_T>::alloc(size);
|
|
||||||
|
|
||||||
- if (!_rep)
|
|
||||||
- {
|
|
||||||
- throw NullPointer();
|
|
||||||
- }
|
|
||||||
+ // ArrayRep<PEGASUS_ARRAY_T>::alloc() throws a bad_alloc exception if
|
|
||||||
+ // storage could not be obtained.
|
|
||||||
|
|
||||||
CopyToRaw(Array_data, items, size);
|
|
||||||
}
|
|
||||||
@@ -176,8 +170,8 @@
|
|
||||||
ArrayRep<PEGASUS_ARRAY_T>* rep =
|
|
||||||
ArrayRep<PEGASUS_ARRAY_T>::alloc(capacity);
|
|
||||||
|
|
||||||
- if (!rep)
|
|
||||||
- return;
|
|
||||||
+ // ArrayRep<PEGASUS_ARRAY_T>::alloc() throws a bad_alloc exception if
|
|
||||||
+ // storage could not be obtained.
|
|
||||||
|
|
||||||
rep->size = Array_size;
|
|
||||||
|
|
||||||
--- pegasus/src/Pegasus/Common/Buffer.cpp.obz5053 2006-05-31 14:05:14.000000000 -0400
|
|
||||||
+++ pegasus/src/Pegasus/Common/Buffer.cpp 2006-05-31 14:05:14.000000000 -0400
|
|
||||||
@@ -43,16 +43,13 @@
|
|
||||||
|
|
||||||
static const size_t MIN_CAPACITY = 2048;
|
|
||||||
|
|
||||||
-#ifndef PEGASUS_CHECK_FOR_OVERFLOW
|
|
||||||
-#define PEGASUS_CHECK_FOR_OVERFLOW(capacity) { if (capacity > 0x3FFFFFFF) throw PEGASUS_STD(bad_alloc)(); }
|
|
||||||
-#endif
|
|
||||||
-
|
|
||||||
static Uint32 _next_pow_2(Uint32 x)
|
|
||||||
{
|
|
||||||
if (x < MIN_CAPACITY)
|
|
||||||
return MIN_CAPACITY;
|
|
||||||
|
|
||||||
- PEGASUS_CHECK_FOR_OVERFLOW(x);
|
|
||||||
+ // Check for potential overflow in x.
|
|
||||||
+ PEGASUS_CHECK_CAPACITY_OVERFLOW(x);
|
|
||||||
|
|
||||||
x--;
|
|
||||||
x |= (x >> 1);
|
|
||||||
@@ -139,7 +136,8 @@
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
- PEGASUS_CHECK_FOR_OVERFLOW(_rep->cap);
|
|
||||||
+ // Check for potential overflow.
|
|
||||||
+ PEGASUS_CHECK_CAPACITY_OVERFLOW(_rep->cap);
|
|
||||||
_rep = _reallocate(_rep, _rep->cap ? (2 * _rep->cap) : MIN_CAPACITY);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
--- pegasus/src/Pegasus/Common/String.cpp.obz5053 2006-05-31 14:05:14.000000000 -0400
|
|
||||||
+++ pegasus/src/Pegasus/Common/String.cpp 2006-05-31 14:05:14.000000000 -0400
|
|
||||||
@@ -51,10 +51,6 @@
|
|
||||||
#include <unicode/uchar.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
-#ifndef PEGASUS_CHECK_FOR_OVERFLOW
|
|
||||||
-#define PEGASUS_CHECK_FOR_OVERFLOW(capacity) { if (capacity > 0x3FFFFFFF) throw PEGASUS_STD(bad_alloc)(); }
|
|
||||||
-#endif
|
|
||||||
-
|
|
||||||
PEGASUS_NAMESPACE_BEGIN
|
|
||||||
|
|
||||||
//==============================================================================
|
|
||||||
@@ -170,7 +166,8 @@
|
|
||||||
{
|
|
||||||
#ifndef PEGASUS_STRING_NO_THROW
|
|
||||||
|
|
||||||
- PEGASUS_CHECK_FOR_OVERFLOW(x);
|
|
||||||
+ // Check for potential overflow in x
|
|
||||||
+ PEGASUS_CHECK_CAPACITY_OVERFLOW(x);
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
@@ -547,8 +544,9 @@
|
|
||||||
inline StringRep* StringRep::alloc(size_t cap)
|
|
||||||
{
|
|
||||||
#ifndef PEGASUS_STRING_NO_THROW
|
|
||||||
-
|
|
||||||
- PEGASUS_CHECK_FOR_OVERFLOW(cap);
|
|
||||||
+
|
|
||||||
+ // Check for potential overflow in cap
|
|
||||||
+ PEGASUS_CHECK_CAPACITY_OVERFLOW(cap);
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
|||||||
--- pegasus/src/Pegasus/Common/XmlWriter.cpp.obz5059 2006-01-30 11:17:08.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/Common/XmlWriter.cpp 2006-05-31 13:03:27.000000000 -0400
|
|
||||||
@@ -250,7 +250,7 @@
|
|
||||||
static const int _isSpecialChar7[] =
|
|
||||||
{
|
|
||||||
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,0,0,
|
|
||||||
- 0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
|
||||||
+ 0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,
|
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
|
|
||||||
};
|
|
@ -1,58 +0,0 @@
|
|||||||
--- pegasus/src/Pegasus/ProviderManager2/OOPProviderManagerRouter.cpp.obz5072 2006-05-31 12:18:40.000000000 -0400
|
|
||||||
+++ pegasus/src/Pegasus/ProviderManager2/OOPProviderManagerRouter.cpp 2006-05-31 13:09:56.000000000 -0400
|
|
||||||
@@ -97,18 +97,25 @@
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
OutstandingRequestEntry(
|
|
||||||
- String messageId_,
|
|
||||||
+ String originalMessageId_,
|
|
||||||
CIMRequestMessage* requestMessage_,
|
|
||||||
CIMResponseMessage*& responseMessage_,
|
|
||||||
Semaphore* responseReady_)
|
|
||||||
- : messageId(messageId_),
|
|
||||||
+ : originalMessageId(originalMessageId_),
|
|
||||||
requestMessage(requestMessage_),
|
|
||||||
responseMessage(responseMessage_),
|
|
||||||
responseReady(responseReady_)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
- String messageId;
|
|
||||||
+ /**
|
|
||||||
+ A unique value is substituted as the request messageId attribute to
|
|
||||||
+ allow responses to be definitively correllated with requests.
|
|
||||||
+ The original messageId value is stored here to avoid a race condition
|
|
||||||
+ between the processing of a response chunk and the resetting of the
|
|
||||||
+ original messageId in the request message.
|
|
||||||
+ */
|
|
||||||
+ String originalMessageId;
|
|
||||||
CIMRequestMessage* requestMessage;
|
|
||||||
CIMResponseMessage*& responseMessage;
|
|
||||||
Semaphore* responseReady;
|
|
||||||
@@ -931,7 +938,7 @@
|
|
||||||
i != 0; i++)
|
|
||||||
{
|
|
||||||
PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL2,
|
|
||||||
- String("Completing messageId \"") + i.value()->messageId +
|
|
||||||
+ String("Completing messageId \"") + i.key() +
|
|
||||||
"\" with a null response.");
|
|
||||||
i.value()->responseMessage = response;
|
|
||||||
i.value()->responseReady->signal();
|
|
||||||
@@ -1048,7 +1055,7 @@
|
|
||||||
//
|
|
||||||
Semaphore waitSemaphore(0);
|
|
||||||
OutstandingRequestEntry outstandingRequestEntry(
|
|
||||||
- uniqueMessageId, request, response, &waitSemaphore);
|
|
||||||
+ originalMessageId, request, response, &waitSemaphore);
|
|
||||||
|
|
||||||
//
|
|
||||||
// Lock the Provider Agent Container while initializing the
|
|
||||||
@@ -1343,7 +1350,7 @@
|
|
||||||
|
|
||||||
// Put the original message ID into the response
|
|
||||||
response->messageId =
|
|
||||||
- _outstandingRequestEntry->requestMessage->messageId;
|
|
||||||
+ _outstandingRequestEntry->originalMessageId;
|
|
||||||
|
|
||||||
// Call the response chunk callback to process the chunk
|
|
||||||
_responseChunkCallback(
|
|
@ -1,144 +0,0 @@
|
|||||||
--- pegasus/src/Pegasus/Repository/AssocClassTable.cpp.obz5073 2006-01-30 11:18:20.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/Repository/AssocClassTable.cpp 2006-06-12 13:13:18.000000000 -0400
|
|
||||||
@@ -218,10 +218,6 @@
|
|
||||||
fields.append(toClassName.getString());
|
|
||||||
fields.append(toPropertyName.getString());
|
|
||||||
|
|
||||||
- for (Uint16 x=0; x<fields.size();x++)
|
|
||||||
- {
|
|
||||||
- fields[x].toLower();
|
|
||||||
- }
|
|
||||||
|
|
||||||
_PutRecord(os, fields);
|
|
||||||
|
|
||||||
@@ -263,10 +259,6 @@
|
|
||||||
fields.append(toClassName.getString());
|
|
||||||
fields.append(toPropertyName.getString());
|
|
||||||
|
|
||||||
- for (Uint16 x=0; x<fields.size();x++)
|
|
||||||
- {
|
|
||||||
- fields[x].toLower();
|
|
||||||
- }
|
|
||||||
|
|
||||||
_PutRecord(os, fields);
|
|
||||||
|
|
||||||
@@ -428,11 +420,6 @@
|
|
||||||
// For each line in the associations table:
|
|
||||||
while (_GetRecord(is, fields))
|
|
||||||
{
|
|
||||||
- // The cache key is always expected to be in lowercase
|
|
||||||
- // While new association records are added in lowercase,
|
|
||||||
- // the following line is required for compatibility
|
|
||||||
- // with old repositories.
|
|
||||||
- fields[FROM_CLASS_NAME_INDEX].toLower();
|
|
||||||
cache->addRecord(fields[FROM_CLASS_NAME_INDEX],
|
|
||||||
fields);
|
|
||||||
}
|
|
||||||
@@ -483,7 +470,6 @@
|
|
||||||
for (Uint16 idx=0; idx < classList.size(); idx++)
|
|
||||||
{
|
|
||||||
String fromClassName = classList[idx].getString();
|
|
||||||
- fromClassName.toLower();
|
|
||||||
if (cache->getAssocClassEntry(fromClassName, records))
|
|
||||||
{
|
|
||||||
for (Uint16 rx=0; rx <records.size(); rx++)
|
|
||||||
--- pegasus/src/Pegasus/Repository/AssocClassCache.h.obz5073 2006-01-30 11:18:20.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/Repository/AssocClassCache.h 2006-06-12 13:13:18.000000000 -0400
|
|
||||||
@@ -63,24 +63,24 @@
|
|
||||||
/** Retrieve an entry for an association class through direct
|
|
||||||
* access via the from class name.
|
|
||||||
*/
|
|
||||||
- Boolean getAssocClassEntry(const String& lowerCaseFromClassName,
|
|
||||||
+ Boolean getAssocClassEntry(const String& fromClassName,
|
|
||||||
Array< Array<String> >& entryList);
|
|
||||||
|
|
||||||
/** Add a new entry to the association cache.
|
|
||||||
*/
|
|
||||||
- Boolean addRecord(const String& lowerCaseFromClassName,
|
|
||||||
+ Boolean addRecord(const String& fromClassName,
|
|
||||||
Array<String> assocClassEntry);
|
|
||||||
|
|
||||||
/** Remove an entry from the association cache specified by the given
|
|
||||||
* association class name.
|
|
||||||
*/
|
|
||||||
- Boolean removeEntry(const String& lowerCaseFromClassName);
|
|
||||||
+ Boolean removeEntry(const String& fromClassName);
|
|
||||||
|
|
||||||
/** Remove an association record from the association cache specified by the given
|
|
||||||
* from class name and association name.
|
|
||||||
*/
|
|
||||||
- Boolean removeRecord(const String& lowerCaseFromClassName,
|
|
||||||
- const String& lowerCaseAssocClassName);
|
|
||||||
+ Boolean removeRecord(const String& fromClassName,
|
|
||||||
+ const String& assocClassName);
|
|
||||||
|
|
||||||
/** Check if the cache is loaded with objects already.
|
|
||||||
*/
|
|
||||||
--- pegasus/src/Pegasus/Repository/AssocClassCache.cpp.obz5073 2006-01-30 11:18:20.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/Repository/AssocClassCache.cpp 2006-06-12 13:13:18.000000000 -0400
|
|
||||||
@@ -86,9 +86,12 @@
|
|
||||||
/** Retrieve the list of entries for a from class through direct
|
|
||||||
* access via the from class name.
|
|
||||||
*/
|
|
||||||
-Boolean AssocClassCache::getAssocClassEntry(const String& lowerCaseFromClassName,
|
|
||||||
+Boolean AssocClassCache::getAssocClassEntry(const String& fromClassName,
|
|
||||||
Array< Array<String> >& entryList)
|
|
||||||
{
|
|
||||||
+ String lowerCaseFromClassName = fromClassName;
|
|
||||||
+ lowerCaseFromClassName.toLower();
|
|
||||||
+
|
|
||||||
return _assocClassCache->lookup(lowerCaseFromClassName,entryList);
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -97,10 +100,12 @@
|
|
||||||
* the new entry is appended to the old entry. Otherwise a new entry
|
|
||||||
* is added to the cache.
|
|
||||||
*/
|
|
||||||
-Boolean AssocClassCache::addRecord(const String& lowerCaseFromClassName,
|
|
||||||
+Boolean AssocClassCache::addRecord(const String& fromClassName,
|
|
||||||
Array<String> assocClassRecord)
|
|
||||||
{
|
|
||||||
Array< Array<String> > oldAssocClassEntryList;
|
|
||||||
+ String lowerCaseFromClassName = fromClassName;
|
|
||||||
+ lowerCaseFromClassName.toLower();
|
|
||||||
|
|
||||||
if (_assocClassCache->lookup(lowerCaseFromClassName, oldAssocClassEntryList))
|
|
||||||
{
|
|
||||||
@@ -115,18 +120,24 @@
|
|
||||||
/** Remove an entry from the association cache specified by the given
|
|
||||||
* from class name.
|
|
||||||
*/
|
|
||||||
-Boolean AssocClassCache::removeEntry(const String& lowerCaseFromClassName)
|
|
||||||
+Boolean AssocClassCache::removeEntry(const String& fromClassName)
|
|
||||||
{
|
|
||||||
+ String lowerCaseFromClassName = fromClassName;
|
|
||||||
+ lowerCaseFromClassName.toLower();
|
|
||||||
+
|
|
||||||
return _assocClassCache->remove(lowerCaseFromClassName);
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Remove an association record from the association cache specified by the given
|
|
||||||
* from class name and association name.
|
|
||||||
*/
|
|
||||||
-Boolean AssocClassCache::removeRecord(const String& lowerCaseFromClassName,
|
|
||||||
- const String& lowerCaseAssocClassName)
|
|
||||||
+Boolean AssocClassCache::removeRecord(const String& fromClassName,
|
|
||||||
+ const String& assocClassName)
|
|
||||||
{
|
|
||||||
Array< Array<String> > oldAssocClassEntryList;
|
|
||||||
+ String lowerCaseFromClassName = fromClassName;
|
|
||||||
+ lowerCaseFromClassName.toLower();
|
|
||||||
+
|
|
||||||
if (_assocClassCache->lookup(lowerCaseFromClassName, oldAssocClassEntryList))
|
|
||||||
{
|
|
||||||
for (Uint16 idx=0; idx < oldAssocClassEntryList.size(); idx++ )
|
|
||||||
@@ -134,7 +145,8 @@
|
|
||||||
// The first entry in each record is the association class
|
|
||||||
// name. Find the record for the association class and remove
|
|
||||||
// it from the cache entry.
|
|
||||||
- if (oldAssocClassEntryList[idx][ASSOC_CLASS_NAME_INDEX] == lowerCaseAssocClassName)
|
|
||||||
+ if (String::equalNoCase(oldAssocClassEntryList[idx][ASSOC_CLASS_NAME_INDEX],
|
|
||||||
+ assocClassName))
|
|
||||||
{
|
|
||||||
_assocClassCache->remove(lowerCaseFromClassName);
|
|
||||||
if (oldAssocClassEntryList.size() > 1)
|
|
@ -1,751 +0,0 @@
|
|||||||
--- pegasus/src/Pegasus/Common/CIMMessage.cpp.obz5083 2006-05-31 12:18:40.000000000 -0400
|
|
||||||
+++ pegasus/src/Pegasus/Common/CIMMessage.cpp 2006-05-31 13:13:35.000000000 -0400
|
|
||||||
@@ -46,7 +46,7 @@
|
|
||||||
|
|
||||||
PEGASUS_NAMESPACE_BEGIN
|
|
||||||
|
|
||||||
-void CIMResponseMessage::syncAttributes(CIMRequestMessage* request)
|
|
||||||
+void CIMResponseMessage::syncAttributes(const CIMRequestMessage* request)
|
|
||||||
{
|
|
||||||
// Propagate request attributes to the response, as necessary
|
|
||||||
setKey(request->getKey());
|
|
||||||
@@ -56,7 +56,7 @@
|
|
||||||
setCloseConnect(request->getCloseConnect());
|
|
||||||
}
|
|
||||||
|
|
||||||
-CIMResponseMessage* CIMGetClassRequestMessage::buildResponse()
|
|
||||||
+CIMResponseMessage* CIMGetClassRequestMessage::buildResponse() const
|
|
||||||
{
|
|
||||||
AutoPtr<CIMGetClassResponseMessage> response(
|
|
||||||
new CIMGetClassResponseMessage(
|
|
||||||
@@ -68,7 +68,7 @@
|
|
||||||
return response.release();
|
|
||||||
}
|
|
||||||
|
|
||||||
-CIMResponseMessage* CIMGetInstanceRequestMessage::buildResponse()
|
|
||||||
+CIMResponseMessage* CIMGetInstanceRequestMessage::buildResponse() const
|
|
||||||
{
|
|
||||||
AutoPtr<CIMGetInstanceResponseMessage> response(
|
|
||||||
new CIMGetInstanceResponseMessage(
|
|
||||||
@@ -80,7 +80,7 @@
|
|
||||||
return response.release();
|
|
||||||
}
|
|
||||||
|
|
||||||
-CIMResponseMessage* CIMExportIndicationRequestMessage::buildResponse()
|
|
||||||
+CIMResponseMessage* CIMExportIndicationRequestMessage::buildResponse() const
|
|
||||||
{
|
|
||||||
AutoPtr<CIMExportIndicationResponseMessage> response(
|
|
||||||
new CIMExportIndicationResponseMessage(
|
|
||||||
@@ -91,7 +91,7 @@
|
|
||||||
return response.release();
|
|
||||||
}
|
|
||||||
|
|
||||||
-CIMResponseMessage* CIMDeleteClassRequestMessage::buildResponse()
|
|
||||||
+CIMResponseMessage* CIMDeleteClassRequestMessage::buildResponse() const
|
|
||||||
{
|
|
||||||
AutoPtr<CIMDeleteClassResponseMessage> response(
|
|
||||||
new CIMDeleteClassResponseMessage(
|
|
||||||
@@ -102,7 +102,7 @@
|
|
||||||
return response.release();
|
|
||||||
}
|
|
||||||
|
|
||||||
-CIMResponseMessage* CIMDeleteInstanceRequestMessage::buildResponse()
|
|
||||||
+CIMResponseMessage* CIMDeleteInstanceRequestMessage::buildResponse() const
|
|
||||||
{
|
|
||||||
AutoPtr<CIMDeleteInstanceResponseMessage> response(
|
|
||||||
new CIMDeleteInstanceResponseMessage(
|
|
||||||
@@ -113,7 +113,7 @@
|
|
||||||
return response.release();
|
|
||||||
}
|
|
||||||
|
|
||||||
-CIMResponseMessage* CIMCreateClassRequestMessage::buildResponse()
|
|
||||||
+CIMResponseMessage* CIMCreateClassRequestMessage::buildResponse() const
|
|
||||||
{
|
|
||||||
AutoPtr<CIMCreateClassResponseMessage> response(
|
|
||||||
new CIMCreateClassResponseMessage(
|
|
||||||
@@ -124,7 +124,7 @@
|
|
||||||
return response.release();
|
|
||||||
}
|
|
||||||
|
|
||||||
-CIMResponseMessage* CIMCreateInstanceRequestMessage::buildResponse()
|
|
||||||
+CIMResponseMessage* CIMCreateInstanceRequestMessage::buildResponse() const
|
|
||||||
{
|
|
||||||
AutoPtr<CIMCreateInstanceResponseMessage> response(
|
|
||||||
new CIMCreateInstanceResponseMessage(
|
|
||||||
@@ -136,7 +136,7 @@
|
|
||||||
return response.release();
|
|
||||||
}
|
|
||||||
|
|
||||||
-CIMResponseMessage* CIMModifyClassRequestMessage::buildResponse()
|
|
||||||
+CIMResponseMessage* CIMModifyClassRequestMessage::buildResponse() const
|
|
||||||
{
|
|
||||||
AutoPtr<CIMModifyClassResponseMessage> response(
|
|
||||||
new CIMModifyClassResponseMessage(
|
|
||||||
@@ -147,7 +147,7 @@
|
|
||||||
return response.release();
|
|
||||||
}
|
|
||||||
|
|
||||||
-CIMResponseMessage* CIMModifyInstanceRequestMessage::buildResponse()
|
|
||||||
+CIMResponseMessage* CIMModifyInstanceRequestMessage::buildResponse() const
|
|
||||||
{
|
|
||||||
AutoPtr<CIMModifyInstanceResponseMessage> response(
|
|
||||||
new CIMModifyInstanceResponseMessage(
|
|
||||||
@@ -158,7 +158,7 @@
|
|
||||||
return response.release();
|
|
||||||
}
|
|
||||||
|
|
||||||
-CIMResponseMessage* CIMEnumerateClassesRequestMessage::buildResponse()
|
|
||||||
+CIMResponseMessage* CIMEnumerateClassesRequestMessage::buildResponse() const
|
|
||||||
{
|
|
||||||
AutoPtr<CIMEnumerateClassesResponseMessage> response(
|
|
||||||
new CIMEnumerateClassesResponseMessage(
|
|
||||||
@@ -170,7 +170,7 @@
|
|
||||||
return response.release();
|
|
||||||
}
|
|
||||||
|
|
||||||
-CIMResponseMessage* CIMEnumerateClassNamesRequestMessage::buildResponse()
|
|
||||||
+CIMResponseMessage* CIMEnumerateClassNamesRequestMessage::buildResponse() const
|
|
||||||
{
|
|
||||||
AutoPtr<CIMEnumerateClassNamesResponseMessage> response(
|
|
||||||
new CIMEnumerateClassNamesResponseMessage(
|
|
||||||
@@ -182,7 +182,7 @@
|
|
||||||
return response.release();
|
|
||||||
}
|
|
||||||
|
|
||||||
-CIMResponseMessage* CIMEnumerateInstancesRequestMessage::buildResponse()
|
|
||||||
+CIMResponseMessage* CIMEnumerateInstancesRequestMessage::buildResponse() const
|
|
||||||
{
|
|
||||||
AutoPtr<CIMEnumerateInstancesResponseMessage> response(
|
|
||||||
new CIMEnumerateInstancesResponseMessage(
|
|
||||||
@@ -194,7 +194,7 @@
|
|
||||||
return response.release();
|
|
||||||
}
|
|
||||||
|
|
||||||
-CIMResponseMessage* CIMEnumerateInstanceNamesRequestMessage::buildResponse()
|
|
||||||
+CIMResponseMessage* CIMEnumerateInstanceNamesRequestMessage::buildResponse() const
|
|
||||||
{
|
|
||||||
AutoPtr<CIMEnumerateInstanceNamesResponseMessage> response(
|
|
||||||
new CIMEnumerateInstanceNamesResponseMessage(
|
|
||||||
@@ -206,7 +206,7 @@
|
|
||||||
return response.release();
|
|
||||||
}
|
|
||||||
|
|
||||||
-CIMResponseMessage* CIMExecQueryRequestMessage::buildResponse()
|
|
||||||
+CIMResponseMessage* CIMExecQueryRequestMessage::buildResponse() const
|
|
||||||
{
|
|
||||||
AutoPtr<CIMExecQueryResponseMessage> response(
|
|
||||||
new CIMExecQueryResponseMessage(
|
|
||||||
@@ -218,7 +218,7 @@
|
|
||||||
return response.release();
|
|
||||||
}
|
|
||||||
|
|
||||||
-CIMResponseMessage* CIMAssociatorsRequestMessage::buildResponse()
|
|
||||||
+CIMResponseMessage* CIMAssociatorsRequestMessage::buildResponse() const
|
|
||||||
{
|
|
||||||
AutoPtr<CIMAssociatorsResponseMessage> response(
|
|
||||||
new CIMAssociatorsResponseMessage(
|
|
||||||
@@ -230,7 +230,7 @@
|
|
||||||
return response.release();
|
|
||||||
}
|
|
||||||
|
|
||||||
-CIMResponseMessage* CIMAssociatorNamesRequestMessage::buildResponse()
|
|
||||||
+CIMResponseMessage* CIMAssociatorNamesRequestMessage::buildResponse() const
|
|
||||||
{
|
|
||||||
AutoPtr<CIMAssociatorNamesResponseMessage> response(
|
|
||||||
new CIMAssociatorNamesResponseMessage(
|
|
||||||
@@ -242,7 +242,7 @@
|
|
||||||
return response.release();
|
|
||||||
}
|
|
||||||
|
|
||||||
-CIMResponseMessage* CIMReferencesRequestMessage::buildResponse()
|
|
||||||
+CIMResponseMessage* CIMReferencesRequestMessage::buildResponse() const
|
|
||||||
{
|
|
||||||
AutoPtr<CIMReferencesResponseMessage> response(
|
|
||||||
new CIMReferencesResponseMessage(
|
|
||||||
@@ -254,7 +254,7 @@
|
|
||||||
return response.release();
|
|
||||||
}
|
|
||||||
|
|
||||||
-CIMResponseMessage* CIMReferenceNamesRequestMessage::buildResponse()
|
|
||||||
+CIMResponseMessage* CIMReferenceNamesRequestMessage::buildResponse() const
|
|
||||||
{
|
|
||||||
AutoPtr<CIMReferenceNamesResponseMessage> response(
|
|
||||||
new CIMReferenceNamesResponseMessage(
|
|
||||||
@@ -266,7 +266,7 @@
|
|
||||||
return response.release();
|
|
||||||
}
|
|
||||||
|
|
||||||
-CIMResponseMessage* CIMGetPropertyRequestMessage::buildResponse()
|
|
||||||
+CIMResponseMessage* CIMGetPropertyRequestMessage::buildResponse() const
|
|
||||||
{
|
|
||||||
AutoPtr<CIMGetPropertyResponseMessage> response(
|
|
||||||
new CIMGetPropertyResponseMessage(
|
|
||||||
@@ -278,7 +278,7 @@
|
|
||||||
return response.release();
|
|
||||||
}
|
|
||||||
|
|
||||||
-CIMResponseMessage* CIMSetPropertyRequestMessage::buildResponse()
|
|
||||||
+CIMResponseMessage* CIMSetPropertyRequestMessage::buildResponse() const
|
|
||||||
{
|
|
||||||
AutoPtr<CIMSetPropertyResponseMessage> response(
|
|
||||||
new CIMSetPropertyResponseMessage(
|
|
||||||
@@ -289,7 +289,7 @@
|
|
||||||
return response.release();
|
|
||||||
}
|
|
||||||
|
|
||||||
-CIMResponseMessage* CIMGetQualifierRequestMessage::buildResponse()
|
|
||||||
+CIMResponseMessage* CIMGetQualifierRequestMessage::buildResponse() const
|
|
||||||
{
|
|
||||||
AutoPtr<CIMGetQualifierResponseMessage> response(
|
|
||||||
new CIMGetQualifierResponseMessage(
|
|
||||||
@@ -301,7 +301,7 @@
|
|
||||||
return response.release();
|
|
||||||
}
|
|
||||||
|
|
||||||
-CIMResponseMessage* CIMSetQualifierRequestMessage::buildResponse()
|
|
||||||
+CIMResponseMessage* CIMSetQualifierRequestMessage::buildResponse() const
|
|
||||||
{
|
|
||||||
AutoPtr<CIMSetQualifierResponseMessage> response(
|
|
||||||
new CIMSetQualifierResponseMessage(
|
|
||||||
@@ -312,7 +312,7 @@
|
|
||||||
return response.release();
|
|
||||||
}
|
|
||||||
|
|
||||||
-CIMResponseMessage* CIMDeleteQualifierRequestMessage::buildResponse()
|
|
||||||
+CIMResponseMessage* CIMDeleteQualifierRequestMessage::buildResponse() const
|
|
||||||
{
|
|
||||||
AutoPtr<CIMDeleteQualifierResponseMessage> response(
|
|
||||||
new CIMDeleteQualifierResponseMessage(
|
|
||||||
@@ -323,7 +323,7 @@
|
|
||||||
return response.release();
|
|
||||||
}
|
|
||||||
|
|
||||||
-CIMResponseMessage* CIMEnumerateQualifiersRequestMessage::buildResponse()
|
|
||||||
+CIMResponseMessage* CIMEnumerateQualifiersRequestMessage::buildResponse() const
|
|
||||||
{
|
|
||||||
AutoPtr<CIMEnumerateQualifiersResponseMessage> response(
|
|
||||||
new CIMEnumerateQualifiersResponseMessage(
|
|
||||||
@@ -335,7 +335,7 @@
|
|
||||||
return response.release();
|
|
||||||
}
|
|
||||||
|
|
||||||
-CIMResponseMessage* CIMInvokeMethodRequestMessage::buildResponse()
|
|
||||||
+CIMResponseMessage* CIMInvokeMethodRequestMessage::buildResponse() const
|
|
||||||
{
|
|
||||||
AutoPtr<CIMInvokeMethodResponseMessage> response(
|
|
||||||
new CIMInvokeMethodResponseMessage(
|
|
||||||
@@ -349,7 +349,7 @@
|
|
||||||
return response.release();
|
|
||||||
}
|
|
||||||
|
|
||||||
-CIMResponseMessage* CIMProcessIndicationRequestMessage::buildResponse()
|
|
||||||
+CIMResponseMessage* CIMProcessIndicationRequestMessage::buildResponse() const
|
|
||||||
{
|
|
||||||
AutoPtr<CIMProcessIndicationResponseMessage> response(
|
|
||||||
new CIMProcessIndicationResponseMessage(
|
|
||||||
@@ -360,7 +360,7 @@
|
|
||||||
return response.release();
|
|
||||||
}
|
|
||||||
|
|
||||||
-CIMResponseMessage* CIMNotifyProviderRegistrationRequestMessage::buildResponse()
|
|
||||||
+CIMResponseMessage* CIMNotifyProviderRegistrationRequestMessage::buildResponse() const
|
|
||||||
{
|
|
||||||
AutoPtr<CIMNotifyProviderRegistrationResponseMessage> response(
|
|
||||||
new CIMNotifyProviderRegistrationResponseMessage(
|
|
||||||
@@ -371,7 +371,7 @@
|
|
||||||
return response.release();
|
|
||||||
}
|
|
||||||
|
|
||||||
-CIMResponseMessage* CIMNotifyProviderTerminationRequestMessage::buildResponse()
|
|
||||||
+CIMResponseMessage* CIMNotifyProviderTerminationRequestMessage::buildResponse() const
|
|
||||||
{
|
|
||||||
AutoPtr<CIMNotifyProviderTerminationResponseMessage> response(
|
|
||||||
new CIMNotifyProviderTerminationResponseMessage(
|
|
||||||
@@ -382,7 +382,7 @@
|
|
||||||
return response.release();
|
|
||||||
}
|
|
||||||
|
|
||||||
-CIMResponseMessage* CIMHandleIndicationRequestMessage::buildResponse()
|
|
||||||
+CIMResponseMessage* CIMHandleIndicationRequestMessage::buildResponse() const
|
|
||||||
{
|
|
||||||
AutoPtr<CIMHandleIndicationResponseMessage> response(
|
|
||||||
new CIMHandleIndicationResponseMessage(
|
|
||||||
@@ -393,7 +393,7 @@
|
|
||||||
return response.release();
|
|
||||||
}
|
|
||||||
|
|
||||||
-CIMResponseMessage* CIMCreateSubscriptionRequestMessage::buildResponse()
|
|
||||||
+CIMResponseMessage* CIMCreateSubscriptionRequestMessage::buildResponse() const
|
|
||||||
{
|
|
||||||
AutoPtr<CIMCreateSubscriptionResponseMessage> response(
|
|
||||||
new CIMCreateSubscriptionResponseMessage(
|
|
||||||
@@ -404,7 +404,7 @@
|
|
||||||
return response.release();
|
|
||||||
}
|
|
||||||
|
|
||||||
-CIMResponseMessage* CIMModifySubscriptionRequestMessage::buildResponse()
|
|
||||||
+CIMResponseMessage* CIMModifySubscriptionRequestMessage::buildResponse() const
|
|
||||||
{
|
|
||||||
AutoPtr<CIMModifySubscriptionResponseMessage> response(
|
|
||||||
new CIMModifySubscriptionResponseMessage(
|
|
||||||
@@ -415,7 +415,7 @@
|
|
||||||
return response.release();
|
|
||||||
}
|
|
||||||
|
|
||||||
-CIMResponseMessage* CIMDeleteSubscriptionRequestMessage::buildResponse()
|
|
||||||
+CIMResponseMessage* CIMDeleteSubscriptionRequestMessage::buildResponse() const
|
|
||||||
{
|
|
||||||
AutoPtr<CIMDeleteSubscriptionResponseMessage> response(
|
|
||||||
new CIMDeleteSubscriptionResponseMessage(
|
|
||||||
@@ -427,7 +427,7 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
CIMResponseMessage*
|
|
||||||
- CIMSubscriptionInitCompleteRequestMessage::buildResponse()
|
|
||||||
+ CIMSubscriptionInitCompleteRequestMessage::buildResponse() const
|
|
||||||
{
|
|
||||||
AutoPtr<CIMSubscriptionInitCompleteResponseMessage> response(
|
|
||||||
new CIMSubscriptionInitCompleteResponseMessage(
|
|
||||||
@@ -438,7 +438,7 @@
|
|
||||||
return response.release();
|
|
||||||
}
|
|
||||||
|
|
||||||
-CIMResponseMessage* CIMDisableModuleRequestMessage::buildResponse()
|
|
||||||
+CIMResponseMessage* CIMDisableModuleRequestMessage::buildResponse() const
|
|
||||||
{
|
|
||||||
AutoPtr<CIMDisableModuleResponseMessage> response(
|
|
||||||
new CIMDisableModuleResponseMessage(
|
|
||||||
@@ -450,7 +450,7 @@
|
|
||||||
return response.release();
|
|
||||||
}
|
|
||||||
|
|
||||||
-CIMResponseMessage* CIMEnableModuleRequestMessage::buildResponse()
|
|
||||||
+CIMResponseMessage* CIMEnableModuleRequestMessage::buildResponse() const
|
|
||||||
{
|
|
||||||
AutoPtr<CIMEnableModuleResponseMessage> response(
|
|
||||||
new CIMEnableModuleResponseMessage(
|
|
||||||
@@ -462,7 +462,7 @@
|
|
||||||
return response.release();
|
|
||||||
}
|
|
||||||
|
|
||||||
-CIMResponseMessage* CIMNotifyProviderEnableRequestMessage::buildResponse()
|
|
||||||
+CIMResponseMessage* CIMNotifyProviderEnableRequestMessage::buildResponse() const
|
|
||||||
{
|
|
||||||
AutoPtr<CIMNotifyProviderEnableResponseMessage> response(
|
|
||||||
new CIMNotifyProviderEnableResponseMessage(
|
|
||||||
@@ -484,7 +484,7 @@
|
|
||||||
return response.release();
|
|
||||||
}
|
|
||||||
|
|
||||||
-CIMResponseMessage* CIMStopAllProvidersRequestMessage::buildResponse()
|
|
||||||
+CIMResponseMessage* CIMStopAllProvidersRequestMessage::buildResponse() const
|
|
||||||
{
|
|
||||||
AutoPtr<CIMStopAllProvidersResponseMessage> response(
|
|
||||||
new CIMStopAllProvidersResponseMessage(
|
|
||||||
@@ -495,7 +495,7 @@
|
|
||||||
return response.release();
|
|
||||||
}
|
|
||||||
|
|
||||||
-CIMResponseMessage* CIMInitializeProviderRequestMessage::buildResponse()
|
|
||||||
+CIMResponseMessage* CIMInitializeProviderRequestMessage::buildResponse() const
|
|
||||||
{
|
|
||||||
AutoPtr<CIMInitializeProviderResponseMessage> response(
|
|
||||||
new CIMInitializeProviderResponseMessage(
|
|
||||||
@@ -506,7 +506,7 @@
|
|
||||||
return response.release();
|
|
||||||
}
|
|
||||||
|
|
||||||
-CIMResponseMessage* CIMInitializeProviderAgentRequestMessage::buildResponse()
|
|
||||||
+CIMResponseMessage* CIMInitializeProviderAgentRequestMessage::buildResponse() const
|
|
||||||
{
|
|
||||||
AutoPtr<CIMInitializeProviderAgentResponseMessage> response(
|
|
||||||
new CIMInitializeProviderAgentResponseMessage(
|
|
||||||
@@ -517,7 +517,7 @@
|
|
||||||
return response.release();
|
|
||||||
}
|
|
||||||
|
|
||||||
-CIMResponseMessage* CIMNotifyConfigChangeRequestMessage::buildResponse()
|
|
||||||
+CIMResponseMessage* CIMNotifyConfigChangeRequestMessage::buildResponse() const
|
|
||||||
{
|
|
||||||
AutoPtr<CIMNotifyConfigChangeResponseMessage> response(
|
|
||||||
new CIMNotifyConfigChangeResponseMessage(
|
|
||||||
--- pegasus/src/Pegasus/Common/CIMMessage.h.obz5083 2006-05-31 12:18:40.000000000 -0400
|
|
||||||
+++ pegasus/src/Pegasus/Common/CIMMessage.h 2006-05-31 13:13:35.000000000 -0400
|
|
||||||
@@ -124,7 +124,7 @@
|
|
||||||
CIMRequestMessage(
|
|
||||||
Uint32 type_, const String& messageId_, const QueueIdStack& queueIds_);
|
|
||||||
|
|
||||||
- virtual CIMResponseMessage* buildResponse() = 0;
|
|
||||||
+ virtual CIMResponseMessage* buildResponse() const = 0;
|
|
||||||
|
|
||||||
#ifdef PEGASUS_DEBUG
|
|
||||||
virtual void print(PEGASUS_STD(ostream)& os, Boolean printHeader) const
|
|
||||||
@@ -160,7 +160,7 @@
|
|
||||||
const CIMException& cimException_,
|
|
||||||
const QueueIdStack& queueIds_);
|
|
||||||
|
|
||||||
- void syncAttributes(CIMRequestMessage* request);
|
|
||||||
+ void syncAttributes(const CIMRequestMessage* request);
|
|
||||||
|
|
||||||
QueueIdStack queueIds;
|
|
||||||
CIMException cimException;
|
|
||||||
@@ -228,7 +228,7 @@
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
- virtual CIMResponseMessage* buildResponse();
|
|
||||||
+ virtual CIMResponseMessage* buildResponse() const;
|
|
||||||
|
|
||||||
Boolean localOnly;
|
|
||||||
Boolean includeQualifiers;
|
|
||||||
@@ -266,7 +266,7 @@
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
- virtual CIMResponseMessage* buildResponse();
|
|
||||||
+ virtual CIMResponseMessage* buildResponse() const;
|
|
||||||
|
|
||||||
CIMObjectPath instanceName;
|
|
||||||
Boolean localOnly;
|
|
||||||
@@ -297,7 +297,7 @@
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
- virtual CIMResponseMessage* buildResponse();
|
|
||||||
+ virtual CIMResponseMessage* buildResponse() const;
|
|
||||||
|
|
||||||
String destinationPath;
|
|
||||||
CIMInstance indicationInstance;
|
|
||||||
@@ -325,7 +325,7 @@
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
- virtual CIMResponseMessage* buildResponse();
|
|
||||||
+ virtual CIMResponseMessage* buildResponse() const;
|
|
||||||
|
|
||||||
String authType;
|
|
||||||
String userName;
|
|
||||||
@@ -351,7 +351,7 @@
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
- virtual CIMResponseMessage* buildResponse();
|
|
||||||
+ virtual CIMResponseMessage* buildResponse() const;
|
|
||||||
|
|
||||||
CIMObjectPath instanceName;
|
|
||||||
String authType;
|
|
||||||
@@ -379,7 +379,7 @@
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
- virtual CIMResponseMessage* buildResponse();
|
|
||||||
+ virtual CIMResponseMessage* buildResponse() const;
|
|
||||||
|
|
||||||
CIMClass newClass;
|
|
||||||
String authType;
|
|
||||||
@@ -406,7 +406,7 @@
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
- virtual CIMResponseMessage* buildResponse();
|
|
||||||
+ virtual CIMResponseMessage* buildResponse() const;
|
|
||||||
|
|
||||||
CIMInstance newInstance;
|
|
||||||
String authType;
|
|
||||||
@@ -434,7 +434,7 @@
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
- virtual CIMResponseMessage* buildResponse();
|
|
||||||
+ virtual CIMResponseMessage* buildResponse() const;
|
|
||||||
|
|
||||||
CIMClass modifiedClass;
|
|
||||||
String authType;
|
|
||||||
@@ -465,7 +465,7 @@
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
- virtual CIMResponseMessage* buildResponse();
|
|
||||||
+ virtual CIMResponseMessage* buildResponse() const;
|
|
||||||
|
|
||||||
CIMInstance modifiedInstance;
|
|
||||||
Boolean includeQualifiers;
|
|
||||||
@@ -502,7 +502,7 @@
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
- virtual CIMResponseMessage* buildResponse();
|
|
||||||
+ virtual CIMResponseMessage* buildResponse() const;
|
|
||||||
|
|
||||||
Boolean deepInheritance;
|
|
||||||
Boolean localOnly;
|
|
||||||
@@ -534,7 +534,7 @@
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
- virtual CIMResponseMessage* buildResponse();
|
|
||||||
+ virtual CIMResponseMessage* buildResponse() const;
|
|
||||||
|
|
||||||
Boolean deepInheritance;
|
|
||||||
String authType;
|
|
||||||
@@ -570,7 +570,7 @@
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
- virtual CIMResponseMessage* buildResponse();
|
|
||||||
+ virtual CIMResponseMessage* buildResponse() const;
|
|
||||||
|
|
||||||
Boolean deepInheritance;
|
|
||||||
Boolean localOnly;
|
|
||||||
@@ -623,7 +623,7 @@
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
- virtual CIMResponseMessage* buildResponse();
|
|
||||||
+ virtual CIMResponseMessage* buildResponse() const;
|
|
||||||
|
|
||||||
String authType;
|
|
||||||
String userName;
|
|
||||||
@@ -652,7 +652,7 @@
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
- virtual CIMResponseMessage* buildResponse();
|
|
||||||
+ virtual CIMResponseMessage* buildResponse() const;
|
|
||||||
|
|
||||||
String queryLanguage;
|
|
||||||
String query;
|
|
||||||
@@ -695,7 +695,7 @@
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
- virtual CIMResponseMessage* buildResponse();
|
|
||||||
+ virtual CIMResponseMessage* buildResponse() const;
|
|
||||||
|
|
||||||
CIMObjectPath objectName;
|
|
||||||
CIMName assocClass;
|
|
||||||
@@ -738,7 +738,7 @@
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
- virtual CIMResponseMessage* buildResponse();
|
|
||||||
+ virtual CIMResponseMessage* buildResponse() const;
|
|
||||||
|
|
||||||
CIMObjectPath objectName;
|
|
||||||
CIMName assocClass;
|
|
||||||
@@ -780,7 +780,7 @@
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
- virtual CIMResponseMessage* buildResponse();
|
|
||||||
+ virtual CIMResponseMessage* buildResponse() const;
|
|
||||||
|
|
||||||
CIMObjectPath objectName;
|
|
||||||
CIMName resultClass;
|
|
||||||
@@ -817,7 +817,7 @@
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
- virtual CIMResponseMessage* buildResponse();
|
|
||||||
+ virtual CIMResponseMessage* buildResponse() const;
|
|
||||||
|
|
||||||
CIMObjectPath objectName;
|
|
||||||
CIMName resultClass;
|
|
||||||
@@ -848,7 +848,7 @@
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
- virtual CIMResponseMessage* buildResponse();
|
|
||||||
+ virtual CIMResponseMessage* buildResponse() const;
|
|
||||||
|
|
||||||
CIMObjectPath instanceName;
|
|
||||||
CIMName propertyName;
|
|
||||||
@@ -880,7 +880,7 @@
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
- virtual CIMResponseMessage* buildResponse();
|
|
||||||
+ virtual CIMResponseMessage* buildResponse() const;
|
|
||||||
|
|
||||||
CIMObjectPath instanceName;
|
|
||||||
CIMName propertyName;
|
|
||||||
@@ -910,7 +910,7 @@
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
- virtual CIMResponseMessage* buildResponse();
|
|
||||||
+ virtual CIMResponseMessage* buildResponse() const;
|
|
||||||
|
|
||||||
CIMName qualifierName;
|
|
||||||
String authType;
|
|
||||||
@@ -938,7 +938,7 @@
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
- virtual CIMResponseMessage* buildResponse();
|
|
||||||
+ virtual CIMResponseMessage* buildResponse() const;
|
|
||||||
|
|
||||||
CIMQualifierDecl qualifierDeclaration;
|
|
||||||
String authType;
|
|
||||||
@@ -966,7 +966,7 @@
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
- virtual CIMResponseMessage* buildResponse();
|
|
||||||
+ virtual CIMResponseMessage* buildResponse() const;
|
|
||||||
|
|
||||||
CIMName qualifierName;
|
|
||||||
String authType;
|
|
||||||
@@ -992,7 +992,7 @@
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
- virtual CIMResponseMessage* buildResponse();
|
|
||||||
+ virtual CIMResponseMessage* buildResponse() const;
|
|
||||||
|
|
||||||
String authType;
|
|
||||||
String userName;
|
|
||||||
@@ -1023,7 +1023,7 @@
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
- virtual CIMResponseMessage* buildResponse();
|
|
||||||
+ virtual CIMResponseMessage* buildResponse() const;
|
|
||||||
|
|
||||||
CIMObjectPath instanceName;
|
|
||||||
CIMName methodName;
|
|
||||||
@@ -1052,7 +1052,7 @@
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
- virtual CIMResponseMessage* buildResponse();
|
|
||||||
+ virtual CIMResponseMessage* buildResponse() const;
|
|
||||||
|
|
||||||
CIMNamespaceName nameSpace;
|
|
||||||
CIMInstance indicationInstance;
|
|
||||||
@@ -1090,7 +1090,7 @@
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
- virtual CIMResponseMessage* buildResponse();
|
|
||||||
+ virtual CIMResponseMessage* buildResponse() const;
|
|
||||||
|
|
||||||
CIMName className;
|
|
||||||
Array <CIMNamespaceName> newNamespaces;
|
|
||||||
@@ -1115,7 +1115,7 @@
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
- virtual CIMResponseMessage* buildResponse();
|
|
||||||
+ virtual CIMResponseMessage* buildResponse() const;
|
|
||||||
|
|
||||||
Array <CIMInstance> providers;
|
|
||||||
};
|
|
||||||
@@ -1144,7 +1144,7 @@
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
- virtual CIMResponseMessage* buildResponse();
|
|
||||||
+ virtual CIMResponseMessage* buildResponse() const;
|
|
||||||
|
|
||||||
CIMNamespaceName nameSpace;
|
|
||||||
CIMInstance handlerInstance;
|
|
||||||
@@ -1184,7 +1184,7 @@
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
- virtual CIMResponseMessage* buildResponse();
|
|
||||||
+ virtual CIMResponseMessage* buildResponse() const;
|
|
||||||
|
|
||||||
CIMNamespaceName nameSpace;
|
|
||||||
CIMInstance subscriptionInstance;
|
|
||||||
@@ -1226,7 +1226,7 @@
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
- virtual CIMResponseMessage* buildResponse();
|
|
||||||
+ virtual CIMResponseMessage* buildResponse() const;
|
|
||||||
|
|
||||||
CIMNamespaceName nameSpace;
|
|
||||||
CIMInstance subscriptionInstance;
|
|
||||||
@@ -1262,7 +1262,7 @@
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
- virtual CIMResponseMessage* buildResponse();
|
|
||||||
+ virtual CIMResponseMessage* buildResponse() const;
|
|
||||||
|
|
||||||
CIMNamespaceName nameSpace;
|
|
||||||
CIMInstance subscriptionInstance;
|
|
||||||
@@ -1286,7 +1286,7 @@
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
- virtual CIMResponseMessage * buildResponse ();
|
|
||||||
+ virtual CIMResponseMessage* buildResponse() const;
|
|
||||||
};
|
|
||||||
|
|
||||||
class PEGASUS_COMMON_LINKAGE CIMDisableModuleRequestMessage
|
|
||||||
@@ -1315,7 +1315,7 @@
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
- virtual CIMResponseMessage* buildResponse();
|
|
||||||
+ virtual CIMResponseMessage* buildResponse() const;
|
|
||||||
|
|
||||||
CIMInstance providerModule;
|
|
||||||
Array<CIMInstance> providers;
|
|
||||||
@@ -1345,7 +1345,7 @@
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
- virtual CIMResponseMessage* buildResponse();
|
|
||||||
+ virtual CIMResponseMessage* buildResponse() const;
|
|
||||||
|
|
||||||
CIMInstance providerModule;
|
|
||||||
String authType;
|
|
||||||
@@ -1368,7 +1368,7 @@
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
- virtual CIMResponseMessage* buildResponse();
|
|
||||||
+ virtual CIMResponseMessage* buildResponse() const;
|
|
||||||
|
|
||||||
Array <CIMInstance> capInstances;
|
|
||||||
};
|
|
||||||
@@ -1411,7 +1411,7 @@
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
- virtual CIMResponseMessage* buildResponse();
|
|
||||||
+ virtual CIMResponseMessage* buildResponse() const;
|
|
||||||
};
|
|
||||||
|
|
||||||
class PEGASUS_COMMON_LINKAGE CIMInitializeProviderRequestMessage
|
|
||||||
@@ -1428,7 +1428,7 @@
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
- virtual CIMResponseMessage* buildResponse();
|
|
||||||
+ virtual CIMResponseMessage* buildResponse() const;
|
|
||||||
};
|
|
||||||
|
|
||||||
// Used to pass initialization data to an Out-of-Process Provider Agent process
|
|
||||||
@@ -1454,7 +1454,7 @@
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
- virtual CIMResponseMessage* buildResponse();
|
|
||||||
+ virtual CIMResponseMessage* buildResponse() const;
|
|
||||||
|
|
||||||
String pegasusHome;
|
|
||||||
Array<Pair<String, String> > configProperties;
|
|
||||||
@@ -1482,7 +1482,7 @@
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
- virtual CIMResponseMessage* buildResponse();
|
|
||||||
+ virtual CIMResponseMessage* buildResponse() const;
|
|
||||||
|
|
||||||
String propertyName;
|
|
||||||
String newPropertyValue;
|
|
@ -1,46 +0,0 @@
|
|||||||
--- pegasus/src/Pegasus/ProviderManager2/CMPI/CMPIProvider.cpp.obz5090 2006-01-30 11:18:04.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/ProviderManager2/CMPI/CMPIProvider.cpp 2006-07-07 18:20:48.000000000 -0400
|
|
||||||
@@ -297,19 +297,6 @@
|
|
||||||
*/
|
|
||||||
void CMPIProvider::_terminate(Boolean terminating)
|
|
||||||
{
|
|
||||||
- {
|
|
||||||
- WriteLock writeLock (broker.rwsemClassCache);
|
|
||||||
-
|
|
||||||
- if (broker.clsCache) {
|
|
||||||
- ClassCache::Iterator i=broker.clsCache->start();
|
|
||||||
- for (; i; i++) {
|
|
||||||
- delete i.value();
|
|
||||||
- }
|
|
||||||
- delete broker.clsCache;
|
|
||||||
- broker.clsCache=NULL;
|
|
||||||
- }
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
const OperationContext opc;
|
|
||||||
CMPIStatus rc={CMPI_RC_OK,NULL};
|
|
||||||
CMPI_ContextOnStack eCtx(opc);
|
|
||||||
@@ -350,8 +337,23 @@
|
|
||||||
if (rc.rc==CMPI_RC_ERR_NOT_SUPPORTED) noUnload=true;
|
|
||||||
if ((rc.rc == CMPI_RC_DO_NOT_UNLOAD) || (rc.rc==CMPI_RC_NEVER_UNLOAD)) noUnload =true;
|
|
||||||
}
|
|
||||||
+
|
|
||||||
if (noUnload == false)
|
|
||||||
{
|
|
||||||
+ // Cleanup the class cache
|
|
||||||
+ {
|
|
||||||
+ WriteLock writeLock (broker.rwsemClassCache);
|
|
||||||
+
|
|
||||||
+ if (broker.clsCache) {
|
|
||||||
+ ClassCache::Iterator i=broker.clsCache->start();
|
|
||||||
+ for (; i; i++) {
|
|
||||||
+ delete i.value();
|
|
||||||
+ }
|
|
||||||
+ delete broker.clsCache;
|
|
||||||
+ broker.clsCache=NULL;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
// Check the thread list to make sure the thread has been de-allocated
|
|
||||||
if (_threadWatchList.size() != 0)
|
|
||||||
{
|
|
@ -1,67 +0,0 @@
|
|||||||
--- pegasus/SetConfig_EnvVar.obz5115 2006-01-30 11:16:16.000000000 -0500
|
|
||||||
+++ pegasus/SetConfig_EnvVar 2006-06-07 15:06:18.000000000 -0400
|
|
||||||
@@ -1,34 +1,34 @@
|
|
||||||
#!/usr/bin/perl
|
|
||||||
-//%2006////////////////////////////////////////////////////////////////////////
|
|
||||||
-//
|
|
||||||
-// Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development
|
|
||||||
-// Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems.
|
|
||||||
-// Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L.P.;
|
|
||||||
-// IBM Corp.; EMC Corporation, The Open Group.
|
|
||||||
-// Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;
|
|
||||||
-// IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.
|
|
||||||
-// Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
|
|
||||||
-// EMC Corporation; VERITAS Software Corporation; The Open Group.
|
|
||||||
-// Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;
|
|
||||||
-// EMC Corporation; Symantec Corporation; The Open Group.
|
|
||||||
-//
|
|
||||||
-// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
-// of this software and associated documentation files (the "Software"), to
|
|
||||||
-// deal in the Software without restriction, including without limitation the
|
|
||||||
-// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
|
||||||
-// sell copies of the Software, and to permit persons to whom the Software is
|
|
||||||
-// furnished to do so, subject to the following conditions:
|
|
||||||
-//
|
|
||||||
-// THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
|
|
||||||
-// ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
|
|
||||||
-// "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
|
|
||||||
-// LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
|
|
||||||
-// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
|
||||||
-// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
|
||||||
-// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
||||||
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
||||||
-//
|
|
||||||
-//================================================================================
|
|
||||||
+#//%2006////////////////////////////////////////////////////////////////////////
|
|
||||||
+#//
|
|
||||||
+#// Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development
|
|
||||||
+#// Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems.
|
|
||||||
+#// Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L.P.;
|
|
||||||
+#// IBM Corp.; EMC Corporation, The Open Group.
|
|
||||||
+#// Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;
|
|
||||||
+#// IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.
|
|
||||||
+#// Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
|
|
||||||
+#// EMC Corporation; VERITAS Software Corporation; The Open Group.
|
|
||||||
+#// Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;
|
|
||||||
+#// EMC Corporation; Symantec Corporation; The Open Group.
|
|
||||||
+#//
|
|
||||||
+#// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
+#// of this software and associated documentation files (the "Software"), to
|
|
||||||
+#// deal in the Software without restriction, including without limitation the
|
|
||||||
+#// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
|
||||||
+#// sell copies of the Software, and to permit persons to whom the Software is
|
|
||||||
+#// furnished to do so, subject to the following conditions:
|
|
||||||
+#//
|
|
||||||
+#// THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
|
|
||||||
+#// ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
|
|
||||||
+#// "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
|
|
||||||
+#// LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
|
|
||||||
+#// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
|
||||||
+#// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
|
||||||
+#// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
||||||
+#// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
||||||
+#//
|
|
||||||
+#//================================================================================
|
|
||||||
use strict;
|
|
||||||
#use warnings;
|
|
||||||
my $HELP_FILE = "SetConfig_EnvVar.help";
|
|
@ -1,29 +0,0 @@
|
|||||||
--- pegasus/src/Pegasus/Provider/CMPI/CmpiImpl.cpp.obz5119 2006-01-30 11:18:00.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/Provider/CMPI/CmpiImpl.cpp 2006-06-07 15:13:01.000000000 -0400
|
|
||||||
@@ -1197,7 +1197,7 @@
|
|
||||||
else
|
|
||||||
throw CmpiStatus(rc.rc,name->charPtr());
|
|
||||||
}
|
|
||||||
- if (name) *name=*(new CmpiString(s));
|
|
||||||
+ if (name) *name= CmpiString(s);
|
|
||||||
return d;
|
|
||||||
};
|
|
||||||
|
|
||||||
@@ -1386,7 +1386,7 @@
|
|
||||||
CMPIString *s;
|
|
||||||
d._data=getEnc()->ft->getKeyAt(getEnc(),(int)pos,&s,&rc);
|
|
||||||
if (rc.rc!=CMPI_RC_OK) throw CmpiStatus(rc);
|
|
||||||
- if (name) *name=*(new CmpiString(s));
|
|
||||||
+ if (name) *name= CmpiString(s);
|
|
||||||
return d;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1710,7 +1710,7 @@
|
|
||||||
else
|
|
||||||
throw CmpiStatus(rc.rc,name->charPtr());
|
|
||||||
}
|
|
||||||
- if (name) *name=*(new CmpiString(s));
|
|
||||||
+ if (name) *name= CmpiString(s);
|
|
||||||
return d;
|
|
||||||
}
|
|
||||||
|
|
@ -1,67 +0,0 @@
|
|||||||
--- pegasus/src/Pegasus/Server/CIMOperationRequestDispatcher.cpp.obz5180 2006-07-07 18:19:11.000000000 -0400
|
|
||||||
+++ pegasus/src/Pegasus/Server/CIMOperationRequestDispatcher.cpp 2006-07-07 19:03:51.000000000 -0400
|
|
||||||
@@ -421,7 +421,18 @@
|
|
||||||
CIMResponseMessage *&response)
|
|
||||||
{
|
|
||||||
static const char func[] = "CIMOperationRequestDispatcher::_enqueueResponse";
|
|
||||||
- AutoMutex autoMut(_mut);
|
|
||||||
+ // Obtain the _enqueueResponseMutex mutex for this chunked request.
|
|
||||||
+ // This mutex is used to serialize chunked responses from all incoming
|
|
||||||
+ // provider threads. It is imperative that the sequencing done by the
|
|
||||||
+ // resequenceResponse() method and the writing of the chunked response
|
|
||||||
+ // to the connection socket (done as a synchronous enqueue at the end
|
|
||||||
+ // of this method) are atomic to ensure that the chunk that is marked
|
|
||||||
+ // as isComplete for the overall response is indeed the last chunk
|
|
||||||
+ // returned to the client. See PEP 140 for details.
|
|
||||||
+ // This mutex was moved into the OperationAggregate class as part of
|
|
||||||
+ // bug 4629 because we only need to serialize on a per-request basis.
|
|
||||||
+ // This prevents serializing independent requests on separate connections.
|
|
||||||
+ AutoMutex autoMut(poA->_enqueueResponseMutex);
|
|
||||||
Boolean isComplete = false;
|
|
||||||
|
|
||||||
try
|
|
||||||
@@ -550,13 +561,6 @@
|
|
||||||
CIMException(CIM_ERR_FAILED, String(failMsg));
|
|
||||||
}
|
|
||||||
|
|
||||||
- if (isComplete == true)
|
|
||||||
- {
|
|
||||||
- // also deletes the copied request attached to it
|
|
||||||
- delete poA;
|
|
||||||
- poA = 0;
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
// after sending, the response has been deleted externally
|
|
||||||
response = 0;
|
|
||||||
|
|
||||||
@@ -1785,6 +1789,12 @@
|
|
||||||
// the ENTIRE response to the request.
|
|
||||||
|
|
||||||
isComplete = service->_enqueueResponse(poA, response);
|
|
||||||
+ if (isComplete)
|
|
||||||
+ {
|
|
||||||
+ // also deletes the copied request attached to it
|
|
||||||
+ delete poA;
|
|
||||||
+ poA = 0;
|
|
||||||
+ }
|
|
||||||
|
|
||||||
PEG_METHOD_EXIT();
|
|
||||||
}
|
|
||||||
--- pegasus/src/Pegasus/Server/CIMOperationRequestDispatcher.h.obz5180 2006-02-10 14:13:47.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/Server/CIMOperationRequestDispatcher.h 2006-07-07 19:00:43.000000000 -0400
|
|
||||||
@@ -159,6 +159,7 @@
|
|
||||||
*/
|
|
||||||
class PEGASUS_SERVER_LINKAGE OperationAggregate
|
|
||||||
{
|
|
||||||
+ friend class CIMOperationRequestDispatcher;
|
|
||||||
public:
|
|
||||||
/* Operation Aggregate constructor. Builds an aggregate
|
|
||||||
object.
|
|
||||||
@@ -227,6 +228,7 @@
|
|
||||||
|
|
||||||
Array<CIMResponseMessage*> _responseList;
|
|
||||||
Mutex _appendResponseMutex;
|
|
||||||
+ Mutex _enqueueResponseMutex;
|
|
||||||
CIMRequestMessage* _request;
|
|
||||||
Uint32 _totalIssued;
|
|
||||||
Uint32 _magicNumber;
|
|
@ -1,29 +0,0 @@
|
|||||||
--- pegasus/mak/objects-unix.mak.parallel_make 2006-01-30 11:16:23.000000000 -0500
|
|
||||||
+++ pegasus/mak/objects-unix.mak 2006-04-10 16:58:30.000000000 -0400
|
|
||||||
@@ -50,7 +50,7 @@
|
|
||||||
|
|
||||||
|
|
||||||
ifeq ($(_NO_TMP_O), yes)
|
|
||||||
-$(OBJ_DIR)/%.o: %.cpp $(ERROR)
|
|
||||||
+$(OBJ_DIR)/%.o: $(OBJ_DIR)/target %.cpp $(ERROR)
|
|
||||||
$(CXX) -c -o $@ $(FLAGS) $(EXTRA_CXX_FLAGS) $(LOCAL_DEFINES) $(DEFINES) $(SYS_INCLUDES) $(INCLUDES) $*.cpp
|
|
||||||
@ $(TOUCH) $@
|
|
||||||
@ $(ECHO)
|
|
||||||
@@ -64,7 +64,7 @@
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(_NO_TMP_O), yes)
|
|
||||||
-$(OBJ_DIR)/%.o: %.c $(ERROR)
|
|
||||||
+$(OBJ_DIR)/%.o: $(OBJ_DIR)/target %.c $(ERROR)
|
|
||||||
$(CC) -c -o $@ $(FLAGS) $(EXTRA_C_FLAGS) $(LOCAL_DEFINES) $(DEFINES) $(SYS_INCLUDES) $(INCLUDES) $*.c
|
|
||||||
@ $(TOUCH) $@
|
|
||||||
@ $(ECHO)
|
|
||||||
@@ -78,7 +78,7 @@
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(_NO_TMP_O), yes)
|
|
||||||
-$(OBJ_DIR)/%.o: %.s $(ERROR)
|
|
||||||
+$(OBJ_DIR)/%.o: $(OBJ_DIR)/target %.s $(ERROR)
|
|
||||||
$(CC) -c -o $@ $(FLAGS) $(EXTRA_C_FLAGS) $(LOCAL_DEFINES) $(DEFINES) $(SYS_INCLUDES) $(INCLUDES) $*.s
|
|
||||||
@ $(TOUCH) $@
|
|
||||||
@ $(ECHO)
|
|
@ -1,11 +0,0 @@
|
|||||||
--- pegasus/src/Pegasus/Common/System.cpp.PATH_MAX 2006-06-09 13:36:52.000000000 -0400
|
|
||||||
+++ pegasus/src/Pegasus/Common/System.cpp 2006-07-27 14:11:16.000000000 -0400
|
|
||||||
@@ -185,7 +185,7 @@
|
|
||||||
char *System::extract_file_path(const char *fullpath, char *dirname)
|
|
||||||
{
|
|
||||||
char *p;
|
|
||||||
- char buff[4096];
|
|
||||||
+ char buff[PATH_MAX];
|
|
||||||
if (fullpath == NULL)
|
|
||||||
{
|
|
||||||
dirname[0] = '\0';
|
|
@ -1,11 +0,0 @@
|
|||||||
--- pegasus/src/Pegasus/Config/FixedPropertyTableLinux.h.cmpi-provider-lib 2006-06-13 14:00:13.000000000 -0400
|
|
||||||
+++ pegasus/src/Pegasus/Config/FixedPropertyTableLinux.h 2006-07-27 14:01:23.000000000 -0400
|
|
||||||
@@ -65,7 +65,7 @@
|
|
||||||
{"crlStore", PEGASUS_SSL_SERVER_CRL},
|
|
||||||
#endif
|
|
||||||
{"repositoryDir", PEGASUS_REPOSITORY_DIR},
|
|
||||||
- {"providerDir", PEGASUS_PROVIDER_LIB_DIR ":/usr/" PEGASUS_ARCH_LIB "/cmpi"},
|
|
||||||
+ {"providerDir", PEGASUS_PROVIDER_LIB_DIR ":" PEGASUS_DEST_LIB_DIR "/cmpi"},
|
|
||||||
#else /* PEGASUS_OVERRIDE_DEFAULT_RELEASE_DIRS */
|
|
||||||
{"traceFilePath", "/var/opt/tog-pegasus/cache/trace/cimserver.trc"},
|
|
||||||
#if !defined(PEGASUS_USE_SYSLOGS)
|
|
@ -1,439 +0,0 @@
|
|||||||
--- pegasus/src/Pegasus/Server/HTTPAuthenticatorDelegator.cpp.local-or-remote-auth 2006-03-10 18:18:37.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/Server/HTTPAuthenticatorDelegator.cpp 2006-07-27 14:04:18.000000000 -0400
|
|
||||||
@@ -384,6 +384,9 @@
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
+ // Let Authenticators know whether this user is Local or Remote:
|
|
||||||
+ httpMessage->authInfo->setRemoteUser( httpMessage->fromRemoteHost );
|
|
||||||
+
|
|
||||||
//
|
|
||||||
// Handle authentication:
|
|
||||||
//
|
|
||||||
--- pegasus/src/Pegasus/Security/Authentication/PAMBasicAuthenticatorUnix.cpp.local-or-remote-auth 2006-01-30 11:18:28.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/Security/Authentication/PAMBasicAuthenticatorUnix.cpp 2006-07-27 14:04:18.000000000 -0400
|
|
||||||
@@ -48,6 +48,8 @@
|
|
||||||
#include <prot.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+#include <syslog.h>
|
|
||||||
+
|
|
||||||
#if defined (PEGASUS_USE_PAM_STANDALONE_PROC)
|
|
||||||
#include <Pegasus/Common/Logger.h>
|
|
||||||
#include <Pegasus/Common/IPC.h>
|
|
||||||
@@ -131,7 +133,8 @@
|
|
||||||
|
|
||||||
Boolean PAMBasicAuthenticator::authenticate(
|
|
||||||
const String& userName,
|
|
||||||
- const String& password)
|
|
||||||
+ const String& password,
|
|
||||||
+ Boolean isRemoteUser)
|
|
||||||
{
|
|
||||||
PEG_METHOD_ENTER(TRC_AUTHENTICATION,
|
|
||||||
"PAMBasicAuthenticator::authenticate()");
|
|
||||||
@@ -139,7 +142,7 @@
|
|
||||||
Boolean authenticated;
|
|
||||||
|
|
||||||
#if !defined(PEGASUS_USE_PAM_STANDALONE_PROC)
|
|
||||||
- authenticated = _authenticateByPAM(userName, password);
|
|
||||||
+ authenticated = _authenticateByPAM(userName, password, isRemoteUser);
|
|
||||||
#else
|
|
||||||
//
|
|
||||||
// Mutex to Serialize Authentication calls.
|
|
||||||
@@ -147,8 +150,9 @@
|
|
||||||
Tracer::trace(TRC_AUTHENTICATION, Tracer::LEVEL4,
|
|
||||||
"Authentication Mutex lock.");
|
|
||||||
AutoMutex lock(_authSerializeMutex);
|
|
||||||
- authenticated = _pamBasicAuthenticatorStandAlone.authenticate(
|
|
||||||
- userName, password);
|
|
||||||
+ authenticated =
|
|
||||||
+ _pamBasicAuthenticatorStandAlone->authenticate(userName,
|
|
||||||
+ password);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
PEG_METHOD_EXIT();
|
|
||||||
@@ -157,7 +161,8 @@
|
|
||||||
|
|
||||||
Boolean PAMBasicAuthenticator::_authenticateByPAM(
|
|
||||||
const String& userName,
|
|
||||||
- const String& password)
|
|
||||||
+ const String& password,
|
|
||||||
+ Boolean isRemoteUser)
|
|
||||||
{
|
|
||||||
PEG_METHOD_ENTER(TRC_AUTHENTICATION,
|
|
||||||
"PAMBasicAuthenticator::_authenticateByPAM()");
|
|
||||||
@@ -167,6 +172,7 @@
|
|
||||||
pam_handle_t *phandle;
|
|
||||||
char *name;
|
|
||||||
APP_DATA mydata;
|
|
||||||
+ int retcode;
|
|
||||||
|
|
||||||
//
|
|
||||||
// Store the password for PAM authentication
|
|
||||||
@@ -180,13 +186,31 @@
|
|
||||||
// Tracer::trace(TRC_AUTHENTICATION, Tracer::LEVEL4,
|
|
||||||
// "PAMBasicAuthenticator::_authenticateByPAM() - userName = %s; userPassword = %s",
|
|
||||||
// (const char *)userName.getCString(), (const char *)password.getCString());
|
|
||||||
+
|
|
||||||
+ // NOTE: if any pam call should log anything, our syslog socket will be redirected
|
|
||||||
+ // to the AUTH facility, so we need to redirect it back after each pam call.
|
|
||||||
|
|
||||||
//
|
|
||||||
//Call pam_start since you need to before making any other PAM calls
|
|
||||||
//
|
|
||||||
- if ( ( pam_start(service,
|
|
||||||
+
|
|
||||||
+ if ( (retcode = pam_start(service,
|
|
||||||
(const char *)userName.getCString(), &pconv, &phandle) ) != PAM_SUCCESS )
|
|
||||||
{
|
|
||||||
+ closelog();
|
|
||||||
+ openlog("cimserver", LOG_PID, LOG_DAEMON);
|
|
||||||
+ syslog( LOG_ERR, "pam_start failed: %s", pam_strerror(phandle, retcode));
|
|
||||||
+ PEG_METHOD_EXIT();
|
|
||||||
+ return (authenticated);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+ if ( (retcode = pam_set_item(phandle, PAM_TTY, isRemoteUser ? "wbemNetwork" : "wbemLocal")) != PAM_SUCCESS )
|
|
||||||
+ {
|
|
||||||
+ pam_end(phandle, 0);
|
|
||||||
+ closelog();
|
|
||||||
+ openlog("cimserver", LOG_PID, LOG_DAEMON);
|
|
||||||
+ syslog( LOG_ERR, "pam_set_item(PAM_TTY=wbem) failed: %s", pam_strerror(phandle, retcode));
|
|
||||||
PEG_METHOD_EXIT();
|
|
||||||
return (authenticated);
|
|
||||||
}
|
|
||||||
@@ -194,7 +218,7 @@
|
|
||||||
//
|
|
||||||
//Call pam_authenticate to authenticate the user
|
|
||||||
//
|
|
||||||
- if ( ( pam_authenticate(phandle, 0) ) == PAM_SUCCESS )
|
|
||||||
+ if ( ( retcode = pam_authenticate(phandle, 0) ) == PAM_SUCCESS )
|
|
||||||
{
|
|
||||||
Tracer::trace(TRC_AUTHENTICATION, Tracer::LEVEL4,
|
|
||||||
"pam_authenticate successful.");
|
|
||||||
@@ -203,22 +227,40 @@
|
|
||||||
//checking for password and account expiration, as well as verifying access
|
|
||||||
//hour restrictions.
|
|
||||||
//
|
|
||||||
- if ( ( pam_acct_mgmt(phandle, 0) ) == PAM_SUCCESS )
|
|
||||||
+
|
|
||||||
+ if ( ( retcode = pam_acct_mgmt(phandle, 0) ) == PAM_SUCCESS )
|
|
||||||
{
|
|
||||||
Tracer::trace(TRC_AUTHENTICATION, Tracer::LEVEL4,
|
|
||||||
"pam_acct_mgmt successful.");
|
|
||||||
authenticated = true;
|
|
||||||
- }
|
|
||||||
+ }else
|
|
||||||
+ {
|
|
||||||
+ closelog();
|
|
||||||
+ openlog("cimserver", LOG_PID, LOG_DAEMON);
|
|
||||||
+ syslog(LOG_ERR, "pam_acct_mgmt failed: %s",pam_strerror(phandle, retcode));
|
|
||||||
+ }
|
|
||||||
+ }else
|
|
||||||
+ {
|
|
||||||
+ closelog();
|
|
||||||
+ openlog("cimserver", LOG_PID, LOG_DAEMON);
|
|
||||||
+ syslog(LOG_ERR, "pam_authenticate failed: %s",pam_strerror(phandle, retcode));
|
|
||||||
}
|
|
||||||
-
|
|
||||||
//
|
|
||||||
//Call pam_end to end our PAM work
|
|
||||||
//
|
|
||||||
pam_end(phandle, 0);
|
|
||||||
+ closelog();
|
|
||||||
+ openlog("cimserver", LOG_PID, LOG_DAEMON);
|
|
||||||
|
|
||||||
- PEG_METHOD_EXIT();
|
|
||||||
+ if ( ! authenticated )
|
|
||||||
+ syslog(LOG_ERR, "PAM authentication failed for %s user: %s",
|
|
||||||
+ isRemoteUser ? "remote" : "local",
|
|
||||||
+ (const char*)userName.getCString()
|
|
||||||
+ );
|
|
||||||
|
|
||||||
+ PEG_METHOD_EXIT();
|
|
||||||
return (authenticated);
|
|
||||||
+
|
|
||||||
}
|
|
||||||
|
|
||||||
Boolean PAMBasicAuthenticator::validateUser(const String& userName)
|
|
||||||
@@ -233,6 +275,7 @@
|
|
||||||
pam_handle_t *phandle;
|
|
||||||
char *name;
|
|
||||||
APP_DATA mydata;
|
|
||||||
+ int retcode;
|
|
||||||
|
|
||||||
const char *service = "wbem";
|
|
||||||
pconv.conv = PAMBasicAuthenticator::pamValidateUserCallback;
|
|
||||||
@@ -241,21 +284,43 @@
|
|
||||||
//
|
|
||||||
// Call pam_start since you need to before making any other PAM calls
|
|
||||||
//
|
|
||||||
- if ( pam_start(service,
|
|
||||||
- (const char *)userName.getCString(), &pconv, &phandle) != PAM_SUCCESS)
|
|
||||||
- {
|
|
||||||
+ if ( (retcode =
|
|
||||||
+ pam_start(service,(const char *)userName.getCString(), &pconv, &phandle)
|
|
||||||
+ ) != PAM_SUCCESS
|
|
||||||
+ )
|
|
||||||
+ {
|
|
||||||
+ closelog();
|
|
||||||
+ openlog("cimserver", LOG_PID, LOG_DAEMON);
|
|
||||||
+ syslog( LOG_ERR, "pam_start() failed: %s", pam_strerror(phandle, retcode));
|
|
||||||
PEG_METHOD_EXIT();
|
|
||||||
return (authenticated);
|
|
||||||
}
|
|
||||||
|
|
||||||
+ if ( (retcode = pam_set_item(phandle, PAM_TTY, "wbemLocal")) != PAM_SUCCESS )
|
|
||||||
+ {
|
|
||||||
+ pam_end(phandle, 0);
|
|
||||||
+ closelog();
|
|
||||||
+ openlog("cimserver", LOG_PID, LOG_DAEMON);
|
|
||||||
+ syslog( LOG_ERR, "pam_set_item(PAM_TTY=wbemLocal) failed: %s", pam_strerror(phandle, retcode));
|
|
||||||
+ PEG_METHOD_EXIT();
|
|
||||||
+ return (authenticated);
|
|
||||||
+ }
|
|
||||||
//
|
|
||||||
// Call pam_acct_mgmt, to check if the user account is valid. This includes
|
|
||||||
// checking for account expiration, as well as verifying access
|
|
||||||
// hour restrictions.
|
|
||||||
//
|
|
||||||
- if ( pam_acct_mgmt(phandle, 0) == PAM_SUCCESS )
|
|
||||||
- {
|
|
||||||
+ if ( (retcode = pam_acct_mgmt(phandle, 0)) == PAM_SUCCESS )
|
|
||||||
+ {
|
|
||||||
authenticated = true;
|
|
||||||
+ }else
|
|
||||||
+ {
|
|
||||||
+ pam_end(phandle, 0);
|
|
||||||
+ closelog();
|
|
||||||
+ openlog("cimserver", LOG_PID, LOG_DAEMON);
|
|
||||||
+ syslog( LOG_ERR, "pam_acct_mgmt() failed: %s", pam_strerror(phandle, retcode));
|
|
||||||
+ PEG_METHOD_EXIT();
|
|
||||||
+ return (authenticated);
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
@@ -263,6 +328,9 @@
|
|
||||||
//
|
|
||||||
pam_end(phandle, 0);
|
|
||||||
|
|
||||||
+ closelog();
|
|
||||||
+ openlog("cimserver", LOG_PID, LOG_DAEMON);
|
|
||||||
+
|
|
||||||
#else
|
|
||||||
//
|
|
||||||
// Mutex to Serialize Authentication calls.
|
|
||||||
--- pegasus/src/Pegasus/Security/Authentication/BasicAuthenticator.h.local-or-remote-auth 2006-01-30 11:18:28.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/Security/Authentication/BasicAuthenticator.h 2006-07-27 14:04:18.000000000 -0400
|
|
||||||
@@ -67,7 +67,8 @@
|
|
||||||
*/
|
|
||||||
virtual Boolean authenticate(
|
|
||||||
const String& userName,
|
|
||||||
- const String& password) = 0;
|
|
||||||
+ const String& password,
|
|
||||||
+ Boolean isRemoteUser) = 0;
|
|
||||||
|
|
||||||
/** Construct and return the HTTP Basic authentication challenge header
|
|
||||||
@return A string containing the authentication challenge header.
|
|
||||||
--- pegasus/src/Pegasus/Security/Authentication/BasicAuthenticationHandler.cpp.local-or-remote-auth 2006-07-11 13:25:28.000000000 -0400
|
|
||||||
+++ pegasus/src/Pegasus/Security/Authentication/BasicAuthenticationHandler.cpp 2006-07-27 14:07:01.000000000 -0400
|
|
||||||
@@ -163,7 +163,7 @@
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
- authenticated = _basicAuthenticator->authenticate(userName, password);
|
|
||||||
+ authenticated = _basicAuthenticator->authenticate(userName, password, authInfo->isRemoteUser());
|
|
||||||
|
|
||||||
if (authenticated)
|
|
||||||
{
|
|
||||||
--- pegasus/src/Pegasus/Security/Authentication/PAMBasicAuthenticatorStub.cpp.local-or-remote-auth 2006-01-30 11:18:28.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/Security/Authentication/PAMBasicAuthenticatorStub.cpp 2006-07-27 14:04:18.000000000 -0400
|
|
||||||
@@ -92,7 +92,8 @@
|
|
||||||
|
|
||||||
Boolean PAMBasicAuthenticator::authenticate(
|
|
||||||
const String& userName,
|
|
||||||
- const String& password)
|
|
||||||
+ const String& password,
|
|
||||||
+ Boolean isRemoteUser)
|
|
||||||
{
|
|
||||||
PEG_METHOD_ENTER(TRC_AUTHENTICATION,
|
|
||||||
"PAMBasicAuthenticator::authenticate()");
|
|
||||||
--- pegasus/src/Pegasus/Security/Authentication/PAMBasicAuthenticator.h.local-or-remote-auth 2006-01-30 11:18:28.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/Security/Authentication/PAMBasicAuthenticator.h 2006-07-27 14:04:18.000000000 -0400
|
|
||||||
@@ -73,7 +73,8 @@
|
|
||||||
*/
|
|
||||||
Boolean authenticate(
|
|
||||||
const String& userName,
|
|
||||||
- const String& password);
|
|
||||||
+ const String& password,
|
|
||||||
+ Boolean isRemoteUser);
|
|
||||||
|
|
||||||
/** Verify PAM account management for the requesting user.
|
|
||||||
@param userName String containing the user name
|
|
||||||
@@ -102,7 +103,8 @@
|
|
||||||
|
|
||||||
Boolean _authenticateByPAM(
|
|
||||||
const String& userName,
|
|
||||||
- const String& password);
|
|
||||||
+ const String& password,
|
|
||||||
+ Boolean isRemoteUser);
|
|
||||||
|
|
||||||
void _createPAMStandalone();
|
|
||||||
|
|
||||||
@@ -158,7 +160,8 @@
|
|
||||||
*/
|
|
||||||
Boolean authenticate(
|
|
||||||
const String& userName,
|
|
||||||
- const String& password);
|
|
||||||
+ const String& password,
|
|
||||||
+ Boolean isRemoteUser);
|
|
||||||
|
|
||||||
/** Verify whether the user is valid.
|
|
||||||
@param userName String containing the user name
|
|
||||||
@@ -220,7 +223,8 @@
|
|
||||||
|
|
||||||
Boolean _authenticateByPAM(
|
|
||||||
const String& userName,
|
|
||||||
- const String& password);
|
|
||||||
+ const String& password,
|
|
||||||
+ Boolean isRemoteUser);
|
|
||||||
|
|
||||||
#if defined(PEGASUS_USE_PAM_STANDALONE_PROC)
|
|
||||||
PAMBasicAuthenticatorStandAlone _pamBasicAuthenticatorStandAlone;
|
|
||||||
--- pegasus/src/Pegasus/Common/AuthenticationInfoRep.cpp.local-or-remote-auth 2006-01-30 11:16:46.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/Common/AuthenticationInfoRep.cpp 2006-07-27 14:04:18.000000000 -0400
|
|
||||||
@@ -57,7 +57,8 @@
|
|
||||||
_privileged(false),
|
|
||||||
_authType(String::EMPTY),
|
|
||||||
_authStatus(NEW_REQUEST),
|
|
||||||
- _exportConnection(false)
|
|
||||||
+ _exportConnection(false),
|
|
||||||
+ _remoteUser(true)
|
|
||||||
{
|
|
||||||
PEG_METHOD_ENTER(
|
|
||||||
TRC_AUTHENTICATION, "AuthenticationInfoRep::AuthenticationInfoRep");
|
|
||||||
@@ -180,5 +181,14 @@
|
|
||||||
PEG_METHOD_EXIT();
|
|
||||||
}
|
|
||||||
|
|
||||||
+void AuthenticationInfoRep::setRemoteUser(Boolean remoteUser)
|
|
||||||
+{
|
|
||||||
+ PEG_METHOD_ENTER(TRC_AUTHENTICATION,
|
|
||||||
+ "AuthenticationInfoRep::setRemoteUser");
|
|
||||||
+
|
|
||||||
+ _remoteUser = remoteUser;
|
|
||||||
+
|
|
||||||
+ PEG_METHOD_EXIT();
|
|
||||||
+}
|
|
||||||
|
|
||||||
PEGASUS_NAMESPACE_END
|
|
||||||
--- pegasus/src/Pegasus/Common/HTTPMessage.cpp.local-or-remote-auth 2006-01-30 11:17:04.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/Common/HTTPMessage.cpp 2006-07-27 14:04:18.000000000 -0400
|
|
||||||
@@ -119,7 +119,8 @@
|
|
||||||
queueId(queueId_),
|
|
||||||
authInfo(0),
|
|
||||||
acceptLanguagesDecoded(false),
|
|
||||||
- contentLanguagesDecoded(false)
|
|
||||||
+ contentLanguagesDecoded(false),
|
|
||||||
+ fromRemoteHost(true)
|
|
||||||
{
|
|
||||||
if (cimException_)
|
|
||||||
cimException = *cimException_;
|
|
||||||
--- pegasus/src/Pegasus/Common/AuthenticationInfo.h.local-or-remote-auth 2006-01-30 11:16:46.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/Common/AuthenticationInfo.h 2006-07-27 14:04:18.000000000 -0400
|
|
||||||
@@ -331,6 +331,22 @@
|
|
||||||
_rep->setClientCertificateChain(clientCertificate);
|
|
||||||
}
|
|
||||||
|
|
||||||
+ /** Indicate whether the user is Remote
|
|
||||||
+ */
|
|
||||||
+ Boolean isRemoteUser() const
|
|
||||||
+ {
|
|
||||||
+ _checkRep();
|
|
||||||
+ return _rep->isRemoteUser();
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /** Set the Remote User flag
|
|
||||||
+ */
|
|
||||||
+ void setRemoteUser(Boolean remoteUser)
|
|
||||||
+ {
|
|
||||||
+ _checkRep();
|
|
||||||
+ _rep->setRemoteUser(remoteUser);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
private:
|
|
||||||
|
|
||||||
AuthenticationInfo(AuthenticationInfoRep* rep) : _rep(rep)
|
|
||||||
--- pegasus/src/Pegasus/Common/HTTPConnection.cpp.local-or-remote-auth 2006-05-12 14:28:20.000000000 -0400
|
|
||||||
+++ pegasus/src/Pegasus/Common/HTTPConnection.cpp 2006-07-27 14:04:18.000000000 -0400
|
|
||||||
@@ -1841,6 +1841,30 @@
|
|
||||||
"_requestCount = %d", _requestCount.get());
|
|
||||||
message->dest = _outputMessageQueue->getQueueId();
|
|
||||||
// SendForget(message);
|
|
||||||
+
|
|
||||||
+ // Allow authenticators to differentiate Remote and Local users:
|
|
||||||
+ struct sockaddr_in sin_peer, sin_svr; // don't need to worry about IPv6 yet ...
|
|
||||||
+ socklen_t slen1=sizeof(struct sockaddr_in), slen2=sizeof(struct sockaddr_in);
|
|
||||||
+ uint32_t sock = _socket.get()->getSocket() ;
|
|
||||||
+ memset(&sin_peer,'\0',slen1);
|
|
||||||
+ memset(&sin_svr, '\0',slen2);
|
|
||||||
+ if ( ( ::getpeername( sock, (struct sockaddr*)&sin_peer, &slen1) == 0 )
|
|
||||||
+ ||( ::getsockname( sock, (struct sockaddr*)&sin_svr, &slen2) == 0 )
|
|
||||||
+ )
|
|
||||||
+ {
|
|
||||||
+ if( sin_peer.sin_family == AF_INET )
|
|
||||||
+ {
|
|
||||||
+ if( ((ntohl( sin_peer.sin_addr.s_addr ) >> 24) & 0xff) == 127 )
|
|
||||||
+ // message was sent FROM localhost interface
|
|
||||||
+ message->fromRemoteHost = false;
|
|
||||||
+ }
|
|
||||||
+ if( sin_svr.sin_family == AF_INET )
|
|
||||||
+ {
|
|
||||||
+ if( ((ntohl( sin_svr.sin_addr.s_addr ) >> 24) & 0xff) == 127 )
|
|
||||||
+ // message was sent TO localhost interface
|
|
||||||
+ message->fromRemoteHost = false;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
|
|
||||||
//
|
|
||||||
// Set the entry status to BUSY.
|
|
||||||
--- pegasus/src/Pegasus/Common/AuthenticationInfoRep.h.local-or-remote-auth 2006-01-30 11:16:46.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/Common/AuthenticationInfoRep.h 2006-07-27 14:04:18.000000000 -0400
|
|
||||||
@@ -143,6 +143,14 @@
|
|
||||||
|
|
||||||
void setExportConnection(Boolean exportConnection);
|
|
||||||
|
|
||||||
+ Boolean isRemoteUser() const
|
|
||||||
+ {
|
|
||||||
+ return _remoteUser;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ void setRemoteUser(Boolean remoteUser);
|
|
||||||
+
|
|
||||||
+
|
|
||||||
//PEP187
|
|
||||||
Array<SSLCertificateInfo*> getClientCertificateChain()
|
|
||||||
{
|
|
||||||
@@ -173,7 +181,8 @@
|
|
||||||
#endif
|
|
||||||
|
|
||||||
Boolean _exportConnection;
|
|
||||||
- Array<SSLCertificateInfo*> _clientCertificate;
|
|
||||||
+ Array<SSLCertificateInfo*> _clientCertificate;
|
|
||||||
+ Boolean _remoteUser;
|
|
||||||
};
|
|
||||||
|
|
||||||
PEGASUS_NAMESPACE_END
|
|
||||||
--- pegasus/src/Pegasus/Common/HTTPMessage.h.local-or-remote-auth 2006-01-30 11:17:04.000000000 -0500
|
|
||||||
+++ pegasus/src/Pegasus/Common/HTTPMessage.h 2006-07-27 14:04:18.000000000 -0400
|
|
||||||
@@ -80,7 +80,8 @@
|
|
||||||
ContentLanguageList contentLanguages;
|
|
||||||
Boolean acceptLanguagesDecoded;
|
|
||||||
Boolean contentLanguagesDecoded;
|
|
||||||
- CIMException cimException;
|
|
||||||
+ Boolean fromRemoteHost;
|
|
||||||
+ CIMException cimException;
|
|
||||||
|
|
||||||
void parse(
|
|
||||||
String& startLine,
|
|
81
pegasus-2.6.1-init_script.patch
Normal file
81
pegasus-2.6.1-init_script.patch
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
--- pegasus-2.6.1/rpm/tog-pegasus.rc_old 2007-08-30 09:30:13.000000000 +0200
|
||||||
|
+++ pegasus-2.6.1/rpm/tog-pegasus.rc 2007-08-30 10:21:42.000000000 +0200
|
||||||
|
@@ -5,17 +5,22 @@
|
||||||
|
# processname: cimserver
|
||||||
|
# pidfile: /var/run/tog-pegasus/cimserver.pid
|
||||||
|
#
|
||||||
|
+
|
||||||
|
+### BEGIN INIT INFO
|
||||||
|
+# Provides: lsb-pegasus
|
||||||
|
+# Required-Start: $syslog $network
|
||||||
|
+# Should-Start: $time
|
||||||
|
+# Required-Stop: $syslog
|
||||||
|
+# Default-Start: 3 5
|
||||||
|
+# Default-Stop: 0 1 2 6
|
||||||
|
+# Description: init script for Pegasus CIMServer
|
||||||
|
+### END INIT INFO
|
||||||
|
+
|
||||||
|
CIMSERVER_BIN=/usr/sbin/cimserver
|
||||||
|
prog=cimserver
|
||||||
|
LOCKFILE=/var/lock/subsys/tog-pegasus
|
||||||
|
. /etc/rc.d/init.d/functions
|
||||||
|
|
||||||
|
-if [ ! -x $CIMSERVER_BIN ]; then
|
||||||
|
- echo -n "tog-pegasus $1: $CIMSERVER_BIN not found or not executable.";
|
||||||
|
- failure;
|
||||||
|
- exit 1;
|
||||||
|
-fi;
|
||||||
|
-
|
||||||
|
[ -e /etc/sysconfig/tog-pegasus ] && . /etc/sysconfig/tog-pegasus;
|
||||||
|
|
||||||
|
PEGASUS_SSL_CONF_FILE=${PEGASUS_SSL_CONF_FILE:=/etc/Pegasus/ssl.cnf}
|
||||||
|
@@ -26,7 +31,26 @@
|
||||||
|
RETVAL=0
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
- start)
|
||||||
|
+ start)
|
||||||
|
+ pid=`pidofproc $CIMSERVER_BIN`
|
||||||
|
+ RETVAL=$?
|
||||||
|
+ if [ "$RETVAL" -eq 0 ]; then
|
||||||
|
+ echo "tog-pegasus $1: $CIMSERVER_BIN is already running";
|
||||||
|
+ exit 0;
|
||||||
|
+ fi;
|
||||||
|
+
|
||||||
|
+ if [ ! -e $CIMSERVER_BIN ]; then
|
||||||
|
+ echo "tog-pegasus $1: $CIMSERVER_BIN not found";
|
||||||
|
+ failure;
|
||||||
|
+ exit 5;
|
||||||
|
+ fi;
|
||||||
|
+
|
||||||
|
+ if [ ! -x $CIMSERVER_BIN ]; then
|
||||||
|
+ echo "tog-pegasus $1: $CIMSERVER_BIN not executable";
|
||||||
|
+ failure;
|
||||||
|
+ exit 4;
|
||||||
|
+ fi;
|
||||||
|
+
|
||||||
|
if [ ! -e ${PEGASUS_SSL_CONF_FILE} ] || [ ! -e ${PEGASUS_SSL_CERT_FILE} ] ||
|
||||||
|
[ ! -e ${PEGASUS_SSL_KEY_FILE} ] || [ ! -e ${PEGASUS_SSL_TRUSTSTORE} ]; then
|
||||||
|
if [ -x /usr/share/Pegasus/scripts/genOpenPegasusSSLCerts ]; then
|
||||||
|
@@ -71,10 +95,10 @@
|
||||||
|
RETVAL=$?
|
||||||
|
if [ "$RETVAL" -eq 0 ]; then
|
||||||
|
echo -n $"CIM server ($pid) is running";
|
||||||
|
- success;
|
||||||
|
+ RETVAL=0
|
||||||
|
else
|
||||||
|
echo -n $"CIM server is not running";
|
||||||
|
- failure;
|
||||||
|
+ RETVAL=3
|
||||||
|
fi
|
||||||
|
echo
|
||||||
|
;;
|
||||||
|
@@ -103,7 +127,7 @@
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: $0 {start|stop|status|restart|reload|force-reload|try-restart}"
|
||||||
|
- exit 1
|
||||||
|
+ RETVAL=3
|
||||||
|
esac
|
||||||
|
|
||||||
|
exit $RETVAL
|
@ -1,7 +1,7 @@
|
|||||||
diff -Nur pegasus.orig/src/Pegasus/Common/AuthenticationInfo.h pegasus/src/Pegasus/Common/AuthenticationInfo.h
|
diff -Nur pegasus-2.6.1.orig/src/Pegasus/Common/AuthenticationInfo.h pegasus-2.6.1/src/Pegasus/Common/AuthenticationInfo.h
|
||||||
--- pegasus.orig/src/Pegasus/Common/AuthenticationInfo.h 2006-11-10 12:14:57.000000000 -0600
|
--- pegasus-2.6.1.orig/src/Pegasus/Common/AuthenticationInfo.h 2007-03-23 10:36:53.000000000 -0700
|
||||||
+++ pegasus/src/Pegasus/Common/AuthenticationInfo.h 2007-02-23 00:34:45.000000000 -0600
|
+++ pegasus-2.6.1/src/Pegasus/Common/AuthenticationInfo.h 2007-08-17 11:18:15.000000000 -0700
|
||||||
@@ -352,6 +352,22 @@
|
@@ -343,6 +343,22 @@
|
||||||
return _rep->getRemotePrivilegedUserAccessChecked();
|
return _rep->getRemotePrivilegedUserAccessChecked();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -24,20 +24,20 @@ diff -Nur pegasus.orig/src/Pegasus/Common/AuthenticationInfo.h pegasus/src/Pegas
|
|||||||
private:
|
private:
|
||||||
|
|
||||||
AuthenticationInfo(AuthenticationInfoRep* rep) : _rep(rep)
|
AuthenticationInfo(AuthenticationInfoRep* rep) : _rep(rep)
|
||||||
diff -Nur pegasus.orig/src/Pegasus/Common/AuthenticationInfoRep.cpp pegasus/src/Pegasus/Common/AuthenticationInfoRep.cpp
|
diff -Nur pegasus-2.6.1.orig/src/Pegasus/Common/AuthenticationInfoRep.cpp pegasus-2.6.1/src/Pegasus/Common/AuthenticationInfoRep.cpp
|
||||||
--- pegasus.orig/src/Pegasus/Common/AuthenticationInfoRep.cpp 2006-11-08 06:41:27.000000000 -0600
|
--- pegasus-2.6.1.orig/src/Pegasus/Common/AuthenticationInfoRep.cpp 2007-03-23 10:36:53.000000000 -0700
|
||||||
+++ pegasus/src/Pegasus/Common/AuthenticationInfoRep.cpp 2007-02-23 00:34:45.000000000 -0600
|
+++ pegasus-2.6.1/src/Pegasus/Common/AuthenticationInfoRep.cpp 2007-08-17 11:26:28.000000000 -0700
|
||||||
@@ -51,7 +51,8 @@
|
@@ -51,7 +51,8 @@
|
||||||
_privileged(false),
|
_privileged(false),
|
||||||
_authType(String::EMPTY),
|
_authType(String::EMPTY),
|
||||||
_authStatus(NEW_REQUEST),
|
_connectionAuthenticated(false),
|
||||||
- _wasRemotePrivilegedUserAccessChecked(false)
|
- _wasRemotePrivilegedUserAccessChecked(false)
|
||||||
+ _wasRemotePrivilegedUserAccessChecked(false),
|
+ _wasRemotePrivilegedUserAccessChecked(false),
|
||||||
+ _remoteUser(true)
|
+ _remoteUser(true)
|
||||||
{
|
{
|
||||||
PEG_METHOD_ENTER(
|
PEG_METHOD_ENTER(
|
||||||
TRC_AUTHENTICATION, "AuthenticationInfoRep::AuthenticationInfoRep");
|
TRC_AUTHENTICATION, "AuthenticationInfoRep::AuthenticationInfoRep");
|
||||||
@@ -59,6 +60,16 @@
|
@@ -59,6 +60,15 @@
|
||||||
PEG_METHOD_EXIT();
|
PEG_METHOD_EXIT();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -50,14 +50,13 @@ diff -Nur pegasus.orig/src/Pegasus/Common/AuthenticationInfoRep.cpp pegasus/src/
|
|||||||
+
|
+
|
||||||
+ PEG_METHOD_EXIT();
|
+ PEG_METHOD_EXIT();
|
||||||
+}
|
+}
|
||||||
+
|
|
||||||
|
|
||||||
AuthenticationInfoRep::~AuthenticationInfoRep()
|
AuthenticationInfoRep::~AuthenticationInfoRep()
|
||||||
{
|
{
|
||||||
diff -Nur pegasus.orig/src/Pegasus/Common/AuthenticationInfoRep.h pegasus/src/Pegasus/Common/AuthenticationInfoRep.h
|
diff -Nur pegasus-2.6.1.orig/src/Pegasus/Common/AuthenticationInfoRep.h pegasus-2.6.1/src/Pegasus/Common/AuthenticationInfoRep.h
|
||||||
--- pegasus.orig/src/Pegasus/Common/AuthenticationInfoRep.h 2006-11-10 12:14:57.000000000 -0600
|
--- pegasus-2.6.1.orig/src/Pegasus/Common/AuthenticationInfoRep.h 2007-03-23 10:36:53.000000000 -0700
|
||||||
+++ pegasus/src/Pegasus/Common/AuthenticationInfoRep.h 2007-02-23 00:34:45.000000000 -0600
|
+++ pegasus-2.6.1/src/Pegasus/Common/AuthenticationInfoRep.h 2007-08-17 11:18:15.000000000 -0700
|
||||||
@@ -142,6 +142,13 @@
|
@@ -136,6 +136,13 @@
|
||||||
void setSecurityAssociation();
|
void setSecurityAssociation();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -71,7 +70,7 @@ diff -Nur pegasus.orig/src/Pegasus/Common/AuthenticationInfoRep.h pegasus/src/Pe
|
|||||||
//PEP187
|
//PEP187
|
||||||
Array<SSLCertificateInfo*> getClientCertificateChain()
|
Array<SSLCertificateInfo*> getClientCertificateChain()
|
||||||
{
|
{
|
||||||
@@ -186,6 +193,7 @@
|
@@ -180,6 +187,7 @@
|
||||||
Boolean _wasRemotePrivilegedUserAccessChecked;
|
Boolean _wasRemotePrivilegedUserAccessChecked;
|
||||||
|
|
||||||
Array<SSLCertificateInfo*> _clientCertificate;
|
Array<SSLCertificateInfo*> _clientCertificate;
|
||||||
@ -79,12 +78,12 @@ diff -Nur pegasus.orig/src/Pegasus/Common/AuthenticationInfoRep.h pegasus/src/Pe
|
|||||||
};
|
};
|
||||||
|
|
||||||
PEGASUS_NAMESPACE_END
|
PEGASUS_NAMESPACE_END
|
||||||
diff -Nur pegasus.orig/src/Pegasus/Common/HTTPConnection.cpp pegasus/src/Pegasus/Common/HTTPConnection.cpp
|
diff -Nur pegasus-2.6.1.orig/src/Pegasus/Common/HTTPConnection.cpp pegasus-2.6.1/src/Pegasus/Common/HTTPConnection.cpp
|
||||||
--- pegasus.orig/src/Pegasus/Common/HTTPConnection.cpp 2006-12-01 15:03:27.000000000 -0600
|
--- pegasus-2.6.1.orig/src/Pegasus/Common/HTTPConnection.cpp 2007-08-02 01:08:02.000000000 -0700
|
||||||
+++ pegasus/src/Pegasus/Common/HTTPConnection.cpp 2007-02-23 00:34:45.000000000 -0600
|
+++ pegasus-2.6.1/src/Pegasus/Common/HTTPConnection.cpp 2007-08-17 11:18:15.000000000 -0700
|
||||||
@@ -2030,6 +2030,30 @@
|
@@ -2042,6 +2042,30 @@
|
||||||
message->dest = _outputMessageQueue->getQueueId();
|
#endif
|
||||||
// SendForget(message);
|
}
|
||||||
|
|
||||||
+ // Allow authenticators to differentiate Remote and Local users:
|
+ // Allow authenticators to differentiate Remote and Local users:
|
||||||
+ struct sockaddr_in sin_peer, sin_svr; // don't need to worry about IPv6 yet ...
|
+ struct sockaddr_in sin_peer, sin_svr; // don't need to worry about IPv6 yet ...
|
||||||
@ -111,12 +110,12 @@ diff -Nur pegasus.orig/src/Pegasus/Common/HTTPConnection.cpp pegasus/src/Pegasus
|
|||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
//
|
//
|
||||||
// Set the entry status to BUSY.
|
// increment request count
|
||||||
//
|
//
|
||||||
diff -Nur pegasus.orig/src/Pegasus/Common/HTTPMessage.cpp pegasus/src/Pegasus/Common/HTTPMessage.cpp
|
diff -Nur pegasus-2.6.1.orig/src/Pegasus/Common/HTTPMessage.cpp pegasus-2.6.1/src/Pegasus/Common/HTTPMessage.cpp
|
||||||
--- pegasus.orig/src/Pegasus/Common/HTTPMessage.cpp 2006-11-08 16:24:00.000000000 -0600
|
--- pegasus-2.6.1.orig/src/Pegasus/Common/HTTPMessage.cpp 2007-05-25 10:39:01.000000000 -0700
|
||||||
+++ pegasus/src/Pegasus/Common/HTTPMessage.cpp 2007-02-23 00:34:45.000000000 -0600
|
+++ pegasus-2.6.1/src/Pegasus/Common/HTTPMessage.cpp 2007-08-17 11:18:15.000000000 -0700
|
||||||
@@ -109,7 +109,8 @@
|
@@ -120,7 +120,8 @@
|
||||||
queueId(queueId_),
|
queueId(queueId_),
|
||||||
authInfo(0),
|
authInfo(0),
|
||||||
acceptLanguagesDecoded(false),
|
acceptLanguagesDecoded(false),
|
||||||
@ -126,9 +125,9 @@ diff -Nur pegasus.orig/src/Pegasus/Common/HTTPMessage.cpp pegasus/src/Pegasus/Co
|
|||||||
{
|
{
|
||||||
if (cimException_)
|
if (cimException_)
|
||||||
cimException = *cimException_;
|
cimException = *cimException_;
|
||||||
diff -Nur pegasus.orig/src/Pegasus/Common/HTTPMessage.h pegasus/src/Pegasus/Common/HTTPMessage.h
|
diff -Nur pegasus-2.6.1.orig/src/Pegasus/Common/HTTPMessage.h pegasus-2.6.1/src/Pegasus/Common/HTTPMessage.h
|
||||||
--- pegasus.orig/src/Pegasus/Common/HTTPMessage.h 2006-11-10 12:14:58.000000000 -0600
|
--- pegasus-2.6.1.orig/src/Pegasus/Common/HTTPMessage.h 2007-05-25 10:39:01.000000000 -0700
|
||||||
+++ pegasus/src/Pegasus/Common/HTTPMessage.h 2007-02-23 00:34:45.000000000 -0600
|
+++ pegasus-2.6.1/src/Pegasus/Common/HTTPMessage.h 2007-08-17 11:18:15.000000000 -0700
|
||||||
@@ -75,6 +75,7 @@
|
@@ -75,6 +75,7 @@
|
||||||
ContentLanguageList contentLanguages;
|
ContentLanguageList contentLanguages;
|
||||||
Boolean acceptLanguagesDecoded;
|
Boolean acceptLanguagesDecoded;
|
||||||
@ -137,9 +136,9 @@ diff -Nur pegasus.orig/src/Pegasus/Common/HTTPMessage.h pegasus/src/Pegasus/Comm
|
|||||||
CIMException cimException;
|
CIMException cimException;
|
||||||
|
|
||||||
void parse(
|
void parse(
|
||||||
diff -Nur pegasus.orig/src/Pegasus/Security/Authentication/BasicAuthenticationHandler.cpp pegasus/src/Pegasus/Security/Authentication/BasicAuthenticationHandler.cpp
|
diff -Nur pegasus-2.6.1.orig/src/Pegasus/Security/Authentication/BasicAuthenticationHandler.cpp pegasus-2.6.1/src/Pegasus/Security/Authentication/BasicAuthenticationHandler.cpp
|
||||||
--- pegasus.orig/src/Pegasus/Security/Authentication/BasicAuthenticationHandler.cpp 2006-11-08 06:41:28.000000000 -0600
|
--- pegasus-2.6.1.orig/src/Pegasus/Security/Authentication/BasicAuthenticationHandler.cpp 2006-11-08 04:41:28.000000000 -0800
|
||||||
+++ pegasus/src/Pegasus/Security/Authentication/BasicAuthenticationHandler.cpp 2007-02-23 00:34:45.000000000 -0600
|
+++ pegasus-2.6.1/src/Pegasus/Security/Authentication/BasicAuthenticationHandler.cpp 2007-08-17 11:18:15.000000000 -0700
|
||||||
@@ -139,7 +139,7 @@
|
@@ -139,7 +139,7 @@
|
||||||
}
|
}
|
||||||
authInfo->setRemotePrivilegedUserAccessChecked();
|
authInfo->setRemotePrivilegedUserAccessChecked();
|
||||||
@ -149,9 +148,9 @@ diff -Nur pegasus.orig/src/Pegasus/Security/Authentication/BasicAuthenticationHa
|
|||||||
|
|
||||||
// Log audit message.
|
// Log audit message.
|
||||||
PEG_AUDIT_LOG(logBasicAuthentication(
|
PEG_AUDIT_LOG(logBasicAuthentication(
|
||||||
diff -Nur pegasus.orig/src/Pegasus/Security/Authentication/BasicAuthenticator.h pegasus/src/Pegasus/Security/Authentication/BasicAuthenticator.h
|
diff -Nur pegasus-2.6.1.orig/src/Pegasus/Security/Authentication/BasicAuthenticator.h pegasus-2.6.1/src/Pegasus/Security/Authentication/BasicAuthenticator.h
|
||||||
--- pegasus.orig/src/Pegasus/Security/Authentication/BasicAuthenticator.h 2006-01-30 10:18:28.000000000 -0600
|
--- pegasus-2.6.1.orig/src/Pegasus/Security/Authentication/BasicAuthenticator.h 2006-01-30 08:18:28.000000000 -0800
|
||||||
+++ pegasus/src/Pegasus/Security/Authentication/BasicAuthenticator.h 2007-02-23 00:34:45.000000000 -0600
|
+++ pegasus-2.6.1/src/Pegasus/Security/Authentication/BasicAuthenticator.h 2007-08-17 11:18:15.000000000 -0700
|
||||||
@@ -67,7 +67,8 @@
|
@@ -67,7 +67,8 @@
|
||||||
*/
|
*/
|
||||||
virtual Boolean authenticate(
|
virtual Boolean authenticate(
|
||||||
@ -162,9 +161,9 @@ diff -Nur pegasus.orig/src/Pegasus/Security/Authentication/BasicAuthenticator.h
|
|||||||
|
|
||||||
/** Construct and return the HTTP Basic authentication challenge header
|
/** Construct and return the HTTP Basic authentication challenge header
|
||||||
@return A string containing the authentication challenge header.
|
@return A string containing the authentication challenge header.
|
||||||
diff -Nur pegasus.orig/src/Pegasus/Security/Authentication/PAMBasicAuthenticator.h pegasus/src/Pegasus/Security/Authentication/PAMBasicAuthenticator.h
|
diff -Nur pegasus-2.6.1.orig/src/Pegasus/Security/Authentication/PAMBasicAuthenticator.h pegasus-2.6.1/src/Pegasus/Security/Authentication/PAMBasicAuthenticator.h
|
||||||
--- pegasus.orig/src/Pegasus/Security/Authentication/PAMBasicAuthenticator.h 2006-08-09 16:13:04.000000000 -0500
|
--- pegasus-2.6.1.orig/src/Pegasus/Security/Authentication/PAMBasicAuthenticator.h 2006-08-09 14:13:04.000000000 -0700
|
||||||
+++ pegasus/src/Pegasus/Security/Authentication/PAMBasicAuthenticator.h 2007-02-23 00:36:06.000000000 -0600
|
+++ pegasus-2.6.1/src/Pegasus/Security/Authentication/PAMBasicAuthenticator.h 2007-08-17 11:18:15.000000000 -0700
|
||||||
@@ -73,7 +73,8 @@
|
@@ -73,7 +73,8 @@
|
||||||
*/
|
*/
|
||||||
Boolean authenticate(
|
Boolean authenticate(
|
||||||
@ -205,9 +204,9 @@ diff -Nur pegasus.orig/src/Pegasus/Security/Authentication/PAMBasicAuthenticator
|
|||||||
|
|
||||||
#if defined(PEGASUS_USE_PAM_STANDALONE_PROC)
|
#if defined(PEGASUS_USE_PAM_STANDALONE_PROC)
|
||||||
PAMBasicAuthenticatorStandAlone _pamBasicAuthenticatorStandAlone;
|
PAMBasicAuthenticatorStandAlone _pamBasicAuthenticatorStandAlone;
|
||||||
diff -Nur pegasus.orig/src/Pegasus/Security/Authentication/PAMBasicAuthenticatorStub.cpp pegasus/src/Pegasus/Security/Authentication/PAMBasicAuthenticatorStub.cpp
|
diff -Nur pegasus-2.6.1.orig/src/Pegasus/Security/Authentication/PAMBasicAuthenticatorStub.cpp pegasus-2.6.1/src/Pegasus/Security/Authentication/PAMBasicAuthenticatorStub.cpp
|
||||||
--- pegasus.orig/src/Pegasus/Security/Authentication/PAMBasicAuthenticatorStub.cpp 2006-01-30 10:18:28.000000000 -0600
|
--- pegasus-2.6.1.orig/src/Pegasus/Security/Authentication/PAMBasicAuthenticatorStub.cpp 2006-01-30 08:18:28.000000000 -0800
|
||||||
+++ pegasus/src/Pegasus/Security/Authentication/PAMBasicAuthenticatorStub.cpp 2007-02-23 00:34:45.000000000 -0600
|
+++ pegasus-2.6.1/src/Pegasus/Security/Authentication/PAMBasicAuthenticatorStub.cpp 2007-08-17 11:18:15.000000000 -0700
|
||||||
@@ -92,7 +92,8 @@
|
@@ -92,7 +92,8 @@
|
||||||
|
|
||||||
Boolean PAMBasicAuthenticator::authenticate(
|
Boolean PAMBasicAuthenticator::authenticate(
|
||||||
@ -218,9 +217,9 @@ diff -Nur pegasus.orig/src/Pegasus/Security/Authentication/PAMBasicAuthenticator
|
|||||||
{
|
{
|
||||||
PEG_METHOD_ENTER(TRC_AUTHENTICATION,
|
PEG_METHOD_ENTER(TRC_AUTHENTICATION,
|
||||||
"PAMBasicAuthenticator::authenticate()");
|
"PAMBasicAuthenticator::authenticate()");
|
||||||
diff -Nur pegasus.orig/src/Pegasus/Security/Authentication/PAMBasicAuthenticatorUnix.cpp pegasus/src/Pegasus/Security/Authentication/PAMBasicAuthenticatorUnix.cpp
|
diff -Nur pegasus-2.6.1.orig/src/Pegasus/Security/Authentication/PAMBasicAuthenticatorUnix.cpp pegasus-2.6.1/src/Pegasus/Security/Authentication/PAMBasicAuthenticatorUnix.cpp
|
||||||
--- pegasus.orig/src/Pegasus/Security/Authentication/PAMBasicAuthenticatorUnix.cpp 2006-11-01 16:42:47.000000000 -0600
|
--- pegasus-2.6.1.orig/src/Pegasus/Security/Authentication/PAMBasicAuthenticatorUnix.cpp 2007-04-04 04:04:52.000000000 -0700
|
||||||
+++ pegasus/src/Pegasus/Security/Authentication/PAMBasicAuthenticatorUnix.cpp 2007-02-23 00:34:45.000000000 -0600
|
+++ pegasus-2.6.1/src/Pegasus/Security/Authentication/PAMBasicAuthenticatorUnix.cpp 2007-08-17 11:38:49.000000000 -0700
|
||||||
@@ -48,6 +48,8 @@
|
@@ -48,6 +48,8 @@
|
||||||
#include <prot.h>
|
#include <prot.h>
|
||||||
#endif
|
#endif
|
||||||
@ -249,15 +248,6 @@ diff -Nur pegasus.orig/src/Pegasus/Security/Authentication/PAMBasicAuthenticator
|
|||||||
#else
|
#else
|
||||||
//
|
//
|
||||||
// Mutex to Serialize Authentication calls.
|
// Mutex to Serialize Authentication calls.
|
||||||
@@ -146,7 +149,7 @@
|
|
||||||
Tracer::trace(TRC_AUTHENTICATION, Tracer::LEVEL4,
|
|
||||||
"Authentication Mutex lock.");
|
|
||||||
AutoMutex lock(_authSerializeMutex);
|
|
||||||
- authenticated = _pamBasicAuthenticatorStandAlone.authenticate(
|
|
||||||
+ authenticated = _pamBasicAuthenticatorStandAlone->authenticate(
|
|
||||||
userName, password);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
@@ -156,7 +159,8 @@
|
@@ -156,7 +159,8 @@
|
||||||
|
|
||||||
Boolean PAMBasicAuthenticator::_authenticateByPAM(
|
Boolean PAMBasicAuthenticator::_authenticateByPAM(
|
||||||
@ -278,7 +268,7 @@ diff -Nur pegasus.orig/src/Pegasus/Security/Authentication/PAMBasicAuthenticator
|
|||||||
// Store the password for PAM authentication
|
// Store the password for PAM authentication
|
||||||
@@ -180,12 +185,28 @@
|
@@ -180,12 +185,28 @@
|
||||||
// "PAMBasicAuthenticator::_authenticateByPAM() - userName = %s; userPassword = %s",
|
// "PAMBasicAuthenticator::_authenticateByPAM() - userName = %s; userPassword = %s",
|
||||||
// (const char *)userName.getCString(), (const char *)password.getCString());
|
// (const char *)userName.getCString(), (const char *)password.getCString()));
|
||||||
|
|
||||||
+ // NOTE: if any pam call should log anything, our syslog socket will be redirected
|
+ // NOTE: if any pam call should log anything, our syslog socket will be redirected
|
||||||
+ // to the AUTH facility, so we need to redirect it back after each pam call.
|
+ // to the AUTH facility, so we need to redirect it back after each pam call.
|
||||||
@ -313,7 +303,7 @@ diff -Nur pegasus.orig/src/Pegasus/Security/Authentication/PAMBasicAuthenticator
|
|||||||
- if ( ( pam_authenticate(phandle, 0) ) == PAM_SUCCESS )
|
- if ( ( pam_authenticate(phandle, 0) ) == PAM_SUCCESS )
|
||||||
+ if ( ( retcode = pam_authenticate(phandle, 0) ) == PAM_SUCCESS )
|
+ if ( ( retcode = pam_authenticate(phandle, 0) ) == PAM_SUCCESS )
|
||||||
{
|
{
|
||||||
Tracer::trace(TRC_AUTHENTICATION, Tracer::LEVEL4,
|
PEG_TRACE_CSTRING(TRC_AUTHENTICATION, Tracer::LEVEL4,
|
||||||
"pam_authenticate successful.");
|
"pam_authenticate successful.");
|
||||||
@@ -202,21 +223,41 @@
|
@@ -202,21 +223,41 @@
|
||||||
//checking for password and account expiration, as well as verifying access
|
//checking for password and account expiration, as well as verifying access
|
||||||
@ -322,7 +312,7 @@ diff -Nur pegasus.orig/src/Pegasus/Security/Authentication/PAMBasicAuthenticator
|
|||||||
- if ( ( pam_acct_mgmt(phandle, 0) ) == PAM_SUCCESS )
|
- if ( ( pam_acct_mgmt(phandle, 0) ) == PAM_SUCCESS )
|
||||||
+ if ( ( retcode = pam_acct_mgmt(phandle, 0) ) == PAM_SUCCESS )
|
+ if ( ( retcode = pam_acct_mgmt(phandle, 0) ) == PAM_SUCCESS )
|
||||||
{
|
{
|
||||||
Tracer::trace(TRC_AUTHENTICATION, Tracer::LEVEL4,
|
PEG_TRACE_CSTRING(TRC_AUTHENTICATION, Tracer::LEVEL4,
|
||||||
"pam_acct_mgmt successful.");
|
"pam_acct_mgmt successful.");
|
||||||
authenticated = true;
|
authenticated = true;
|
||||||
}
|
}
|
||||||
@ -366,7 +356,7 @@ diff -Nur pegasus.orig/src/Pegasus/Security/Authentication/PAMBasicAuthenticator
|
|||||||
|
|
||||||
const char *service = "wbem";
|
const char *service = "wbem";
|
||||||
pconv.conv = PAMBasicAuthenticator::pamValidateUserCallback;
|
pconv.conv = PAMBasicAuthenticator::pamValidateUserCallback;
|
||||||
@@ -240,28 +282,53 @@
|
@@ -240,9 +282,22 @@
|
||||||
//
|
//
|
||||||
// Call pam_start since you need to before making any other PAM calls
|
// Call pam_start since you need to before making any other PAM calls
|
||||||
//
|
//
|
||||||
@ -374,26 +364,24 @@ diff -Nur pegasus.orig/src/Pegasus/Security/Authentication/PAMBasicAuthenticator
|
|||||||
- (const char *)userName.getCString(), &pconv, &phandle) != PAM_SUCCESS)
|
- (const char *)userName.getCString(), &pconv, &phandle) != PAM_SUCCESS)
|
||||||
+ if ( (retcode = pam_start(service,
|
+ if ( (retcode = pam_start(service,
|
||||||
+ (const char *)userName.getCString(), &pconv, &phandle)) != PAM_SUCCESS)
|
+ (const char *)userName.getCString(), &pconv, &phandle)) != PAM_SUCCESS)
|
||||||
{
|
+ {
|
||||||
+ closelog();
|
+ closelog();
|
||||||
+ openlog("cimserver", LOG_PID, LOG_DAEMON);
|
+ openlog("cimserver", LOG_PID, LOG_DAEMON);
|
||||||
+ syslog( LOG_ERR, "pam_start() failed: %s", pam_strerror(phandle, retcode));
|
+ syslog( LOG_ERR, "pam_start() failed: %s", pam_strerror(phandle, retcode));
|
||||||
PEG_METHOD_EXIT();
|
|
||||||
return (authenticated);
|
|
||||||
}
|
|
||||||
|
|
||||||
+ if ( (retcode = pam_set_item(phandle, PAM_TTY, "wbemLocal")) != PAM_SUCCESS )
|
|
||||||
+ {
|
|
||||||
+ pam_end(phandle, 0);
|
|
||||||
+ closelog();
|
|
||||||
+ openlog("cimserver", LOG_PID, LOG_DAEMON);
|
|
||||||
+ syslog( LOG_ERR, "pam_set_item(PAM_TTY=wbemLocal) failed: %s", pam_strerror(phandle, retcode));
|
|
||||||
+ PEG_METHOD_EXIT();
|
+ PEG_METHOD_EXIT();
|
||||||
+ return (authenticated);
|
+ return (authenticated);
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
//
|
+ if ( (retcode = pam_set_item(phandle, PAM_TTY, "wbemLocal")) != PAM_SUCCESS )
|
||||||
// Call pam_acct_mgmt, to check if the user account is valid. This includes
|
{
|
||||||
|
+ pam_end(phandle, 0);
|
||||||
|
+ closelog();
|
||||||
|
+ openlog("cimserver", LOG_PID, LOG_DAEMON);
|
||||||
|
+ syslog( LOG_ERR, "pam_set_item(PAM_TTY=wbemLocal) failed: %s", pam_strerror(phandle, retcode));
|
||||||
|
PEG_METHOD_EXIT();
|
||||||
|
return (authenticated);
|
||||||
|
}
|
||||||
|
@@ -252,16 +307,28 @@
|
||||||
// checking for account expiration, as well as verifying access
|
// checking for account expiration, as well as verifying access
|
||||||
// hour restrictions.
|
// hour restrictions.
|
||||||
//
|
//
|
||||||
@ -423,10 +411,10 @@ diff -Nur pegasus.orig/src/Pegasus/Security/Authentication/PAMBasicAuthenticator
|
|||||||
#else
|
#else
|
||||||
//
|
//
|
||||||
// Mutex to Serialize Authentication calls.
|
// Mutex to Serialize Authentication calls.
|
||||||
diff -Nur pegasus.orig/src/Pegasus/Server/HTTPAuthenticatorDelegator.cpp pegasus/src/Pegasus/Server/HTTPAuthenticatorDelegator.cpp
|
diff -Nur pegasus-2.6.1.orig/src/Pegasus/Server/HTTPAuthenticatorDelegator.cpp pegasus-2.6.1/src/Pegasus/Server/HTTPAuthenticatorDelegator.cpp
|
||||||
--- pegasus.orig/src/Pegasus/Server/HTTPAuthenticatorDelegator.cpp 2006-11-14 12:34:59.000000000 -0600
|
--- pegasus-2.6.1.orig/src/Pegasus/Server/HTTPAuthenticatorDelegator.cpp 2007-04-04 04:04:52.000000000 -0700
|
||||||
+++ pegasus/src/Pegasus/Server/HTTPAuthenticatorDelegator.cpp 2007-02-23 00:34:45.000000000 -0600
|
+++ pegasus-2.6.1/src/Pegasus/Server/HTTPAuthenticatorDelegator.cpp 2007-08-17 11:18:15.000000000 -0700
|
||||||
@@ -281,6 +281,9 @@
|
@@ -274,6 +274,9 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
2
sources
2
sources
@ -1 +1 @@
|
|||||||
396243b5781eae66c8a8b187b7f85141 pegasus-2.6.0.tar.gz
|
fa4c1f760482e7222f4a8790185c09dc pegasus-2.6.1.tar.gz
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
%if %{NODEBUGINFO}
|
%if %{NODEBUGINFO}
|
||||||
%define debug_package %{nil}
|
%define debug_package %{nil}
|
||||||
%endif
|
%endif
|
||||||
%define srcname pegasus
|
%define srcname pegasus-2.6.1
|
||||||
%define pegasus_gid 65
|
%define pegasus_gid 65
|
||||||
%define pegasus_uid 66
|
%define pegasus_uid 66
|
||||||
|
|
||||||
@ -40,8 +40,8 @@
|
|||||||
%endif
|
%endif
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
Version: 2.6.0
|
Version: 2.6.1
|
||||||
Release: 2%{?dist}
|
Release: 1%{?dist}
|
||||||
Epoch: 2
|
Epoch: 2
|
||||||
#
|
#
|
||||||
Summary: OpenPegasus WBEM Services for Linux
|
Summary: OpenPegasus WBEM Services for Linux
|
||||||
@ -53,7 +53,7 @@ License: Open Group Pegasus Open Source
|
|||||||
#
|
#
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-%{_target_cpu}-%(%{__id} -u -n)
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-%{_target_cpu}-%(%{__id} -u -n)
|
||||||
#
|
#
|
||||||
Source: http://www.openpegasus.org/uploads/40/10123/%{srcname}-%{version}.tar.gz
|
Source: http://www.openpegasus.org/uploads/40/10123/pegasus-%{version}.tar.gz
|
||||||
Source1: README.RedHat.Security
|
Source1: README.RedHat.Security
|
||||||
Source2: genOpenPegasusSSLCerts
|
Source2: genOpenPegasusSSLCerts
|
||||||
Source3: pegasus_arch_alternatives
|
Source3: pegasus_arch_alternatives
|
||||||
@ -70,13 +70,14 @@ Patch5: pegasus-2.5.1-redhat-config.patch
|
|||||||
# 6: don't see how http://cvs.rdg.opengroup.org/bugzilla/show_bug.cgi?id=5099 fixed it
|
# 6: don't see how http://cvs.rdg.opengroup.org/bugzilla/show_bug.cgi?id=5099 fixed it
|
||||||
Patch6: pegasus-2.6.0-cmpi-provider-lib.patch
|
Patch6: pegasus-2.6.0-cmpi-provider-lib.patch
|
||||||
# 7: http://cvs.rdg.opengroup.org/bugzilla/show_bug.cgi?id=5010
|
# 7: http://cvs.rdg.opengroup.org/bugzilla/show_bug.cgi?id=5010
|
||||||
Patch7: pegasus-2.6.0-local-or-remote-auth.patch
|
Patch7: pegasus-2.6.1-local-or-remote-auth.patch
|
||||||
# 8: http://cvs.rdg.opengroup.org/bugzilla/show_bug.cgi?id=5012
|
# 8: http://cvs.rdg.opengroup.org/bugzilla/show_bug.cgi?id=5012
|
||||||
Patch8: pegasus-2.5.1-pam-wbem.patch
|
Patch8: pegasus-2.5.1-pam-wbem.patch
|
||||||
# 11: http://cvs.rdg.opengroup.org/bugzilla/show_bug.cgi?id=5006
|
# 11: http://cvs.rdg.opengroup.org/bugzilla/show_bug.cgi?id=5006
|
||||||
Patch11: pegasus-2.5.1-fix_tests.patch
|
Patch11: pegasus-2.5.1-fix_tests.patch
|
||||||
#
|
#
|
||||||
Patch39: pegasus-2.6.0-cimuser.patch
|
Patch39: pegasus-2.6.0-cimuser.patch
|
||||||
|
Patch40: pegasus-2.6.1-init_script.patch
|
||||||
#
|
#
|
||||||
Conflicts: openwbem
|
Conflicts: openwbem
|
||||||
Provides: tog-pegasus-cimserver
|
Provides: tog-pegasus-cimserver
|
||||||
@ -138,6 +139,7 @@ The OpenPegasus WBEM tests for the OpenPegasus %{version} Linux rpm.
|
|||||||
%patch8 -p1 -b .pam-wbem
|
%patch8 -p1 -b .pam-wbem
|
||||||
%patch11 -p1 -b .fix-tests
|
%patch11 -p1 -b .fix-tests
|
||||||
%patch39 -p1 -b .cimuser
|
%patch39 -p1 -b .cimuser
|
||||||
|
%patch40 -p1 -b .init_script
|
||||||
find . -name 'CVS' -exec /bin/rm -rf '{}' ';' >/dev/null 2>&1 ||:;
|
find . -name 'CVS' -exec /bin/rm -rf '{}' ';' >/dev/null 2>&1 ||:;
|
||||||
|
|
||||||
%build
|
%build
|
||||||
@ -422,6 +424,10 @@ fi
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Aug 30 2007 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.6.1-1
|
||||||
|
- Update to 2.6.1
|
||||||
|
- Fix wrong init script (#245339)
|
||||||
|
|
||||||
* Wed Mar 28 2007 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.6.0-2
|
* Wed Mar 28 2007 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.6.0-2
|
||||||
- Update changelog
|
- Update changelog
|
||||||
- Build with Open Pegasus' Makefiles, istall with RedHats (Mark Hamzy)
|
- Build with Open Pegasus' Makefiles, istall with RedHats (Mark Hamzy)
|
||||||
|
Loading…
Reference in New Issue
Block a user