Hello community,
here is the log from the commit of package sblim-sfcb
checked in at Tue Oct 7 16:13:26 CEST 2008.
--------
--- sblim-sfcb/sblim-sfcb.changes 2008-09-12 06:39:02.000000000 +0200
+++ /mounts/work_src_done/STABLE/sblim-sfcb/sblim-sfcb.changes 2008-10-06 21:58:01.736621000 +0200
@@ -1,0 +2,5 @@
+Mon Oct 6 21:57:50 CEST 2008 - bwhiteley@suse.de
+
+- Update to official 1.3.2 release.
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
Old:
----
2095972-sfcb_doesnt_start_cleanly.patch
sblim-sfcb-1.3.0-dlopen_flags.patch
sblim-sfcb-1.3.2preview.tar.bz2
New:
----
sblim-sfcb-1.3.2.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ sblim-sfcb.spec ++++++
--- /var/tmp/diff_new_pack.R13333/_old 2008-10-07 16:09:45.000000000 +0200
+++ /var/tmp/diff_new_pack.R13333/_new 2008-10-07 16:09:45.000000000 +0200
@@ -21,18 +21,16 @@
Name: sblim-sfcb
Version: 1.3.2
-Release: 1
+Release: 4
Group: System/Management
License: Other uncritical OpenSource License; CPL 1.0
Url: http://sblim.sf.net/
-Source0: sblim-sfcb-1.3.2preview.tar.bz2
+Source0: %{name}-%{version}.tar.bz2
%if 0%{?suse_version}
Source2: sblim-sfcb.init
%endif
Patch1: sblim-sfcb-1.3.0-uds_auth.patch
Patch2: sblim-sfcb-1.3.0-root_only_auth.patch
-Patch3: sblim-sfcb-1.3.0-dlopen_flags.patch
-Patch4: 2095972-sfcb_doesnt_start_cleanly.patch
Provides: cimserver
Provides: cim-server
%if 0%{?suse_version} >= 1030
@@ -61,11 +59,9 @@
%prep
-%setup -T -b 0 -n %{name}-1.3.2preview
+%setup -T -b 0
%patch1 -b .uds_auth.patch
%patch2 -b .root_only_auth.patch
-%patch3 -b .dlopen_flags.patch
-%patch4 -b .2095972-sfcb_doesnt_start_cleanly.patch
export PATCH_GET=0
%build
@@ -141,29 +137,31 @@
%files -f _pkg_list
%changelog
+* Mon Oct 06 2008 bwhiteley@suse.de
+- Update to official 1.3.2 release.
* Wed Aug 27 2008 bwhiteley@suse.de
- update to 1.3.2preview
- Added RTLD_GLOBAL to ldflags when loading providers.
* Mon Aug 18 2008 bwhiteley@suse.de
- don't remove buildroot in %%install
-* Mon Aug 11 2008 bwhiteley@suse.de
+* Tue Aug 12 2008 bwhiteley@suse.de
- Added RequiredStart and RequiredStop to init script.
-* Tue Jul 22 2008 bwhiteley@suse.de
+* Wed Jul 23 2008 bwhiteley@suse.de
- Fix SSL options to disable SSLv2 and weak ciphers.
- Fix XML parser to unescape newlines.
-* Mon Jul 21 2008 bwhiteley@suse.de
+* Tue Jul 22 2008 bwhiteley@suse.de
- Fixed limited length error strings in XML.
-* Thu May 29 2008 bwhiteley@suse.de
+* Fri May 30 2008 bwhiteley@suse.de
- Enhanced to support HTTP connections over unix domain sockets,
including unix socket peer credential authentication without
passwords.
- Changed authentication module to only allow users with uid 0
to log in.
-* Fri May 16 2008 bwhiteley@suse.de
+* Sat May 17 2008 bwhiteley@suse.de
- Moved back to 1.3.0. 1.3.1 has problems. Removed schema
package, and placed a dependency on cim-schema package
instead.
-* Tue May 13 2008 bwhiteley@suse.de
+* Wed May 14 2008 bwhiteley@suse.de
- Updated to 1.3.1. Other packaging changes.
-* Fri May 02 2008 bwhiteley@suse.de
+* Sat May 03 2008 bwhiteley@suse.de
- Initial checkin
++++++ sblim-sfcb-1.3.2preview.tar.bz2 -> sblim-sfcb-1.3.2.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/sblim-sfcb-1.3.2preview/ChangeLog new/sblim-sfcb-1.3.2/ChangeLog
--- old/sblim-sfcb-1.3.2preview/ChangeLog 2008-08-20 21:31:09.000000000 +0200
+++ new/sblim-sfcb-1.3.2/ChangeLog 2008-10-06 19:46:18.000000000 +0200
@@ -1,3 +1,62 @@
+2008-10-06 Michael Chase-Salerno
+
+ * classProviderGz.c
+ Fixed [2101035] classProvider core dumps under slp/CIM client load
+
+2008-10-03 Chris Buccella
+
+ * providerDrv.c:
+ Fixed [ 2064360 ] Internal provider SIGSEGV when calling getProperty
+
+ Fixed [ 2079099 ] SFCB should load providers with RTLD_GLOBAL
+ (patch by Bart Whitely)
+
+ Removed unused hunks of code (related to 1643936)
+
+2008-10-02 Chris Buccella
+
+ * indCIMXMLHandler.c:
+ Fixed [ 1877578 ] sfcb appears to leak memory while handling indications
+
+ * sfcBroker.c:
+ Fixed [ 2138163 ] sfcb: Wrong PID when running as daemon
+ (patch by Ingo van Lil)
+
+ * cimcClientSfcbLocal.c, msgqueue.c:
+ Fixed [ 2049872 ] "--- Warning: fd is closed" message from binary intf app
+
+ * cimcClientSfcbLocal.c, providerDrv.c:
+ Fixed [ 2143315 ] Remove unnecessary lines in providerDrv & cimcClient
+
+2008-09-10 Chris Buccella
+
+ * instance.c:
+ Fixed [ 2100707 ] NULL properties in property list returned with value
+ (patch by Alexander Dunfey)
+
+2008-09-09 Chris Buccella
+
+ * getSchema.pre.in:
+ Fixed [ 2100911 ] getSchema.sh: line 17: [: =: unary operator expected
+ (patch by Narasimha Sharoff)
+
+2008-09-05 Michael Chase-Salerno
+
+ * Makefile.am, configure.ac, control.c, cimslpCMPI.c, sfcb.cfg.pre.in
+ Fixed [ 1945390 ] Request for SLP service URL hostname override
+ (patch from Tyrel Datwyler)
+
+2008-09-04 Michael Chase-Salerno
+
+ * cimslp.c, cimslpCMPI.c:
+ Fixed [ 2093273 ] Fix "cimomConfig" + myGetInstances memory leaks
+
+2008-08-27 Michael Chase-Salerno
+
+ * datetime.c:
+ Fixed [ 2023638 ] SFCB not considering UTC offset in calculating binary time
+ Refix due to misinterpretation of the spec.
+
2008-08-20 Chris Buccella
* indCIMXMLHandler.c:
@@ -238,7 +297,7 @@
interopProvider.c, providerDrv.c, qualifierProvider.c
Added 1828500: CMPI 2.0 support
-2008-04-08 Chris Buccella
+2008-04-08 Chris Buccella
* array.c:
Fixed 1893302: New CMPI arrays not tracked
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/sblim-sfcb-1.3.2preview/cimcClientSfcbLocal.c new/sblim-sfcb-1.3.2/cimcClientSfcbLocal.c
--- old/sblim-sfcb-1.3.2preview/cimcClientSfcbLocal.c 2008-07-01 00:38:11.000000000 +0200
+++ new/sblim-sfcb-1.3.2/cimcClientSfcbLocal.c 2008-10-03 02:24:47.000000000 +0200
@@ -1,6 +1,6 @@
/*
- * $Id: cimcClientSfcbLocal.c,v 1.22 2008/06/30 22:38:11 buccella Exp $
+ * $Id: cimcClientSfcbLocal.c,v 1.24 2008/10/03 00:24:47 buccella Exp $
*
* © Copyright IBM Corp. 2006, 2007
*
@@ -1536,7 +1536,6 @@
} msg;
if ((sock=socket(PF_UNIX, SOCK_STREAM, 0))<0) {
- return -1;
if (st) {
st->rc=CMPI_RC_ERR_FAILED;
st->msg=ce->ft->newString(ce,strerror(errno),NULL);
@@ -1581,7 +1580,7 @@
localMode=0;
close(sock);
- return sfcbSocket;
+ return (rc < 0) ? rc : sfcbSocket;
}
static void* release(ClientEnv* ce)
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/sblim-sfcb-1.3.2preview/cimslp.c new/sblim-sfcb-1.3.2/cimslp.c
--- old/sblim-sfcb-1.3.2preview/cimslp.c 2008-04-05 03:03:20.000000000 +0200
+++ new/sblim-sfcb-1.3.2/cimslp.c 2008-09-04 22:36:34.000000000 +0200
@@ -164,7 +164,8 @@
if(enableHttp) forkSLPAgent(cfgHttp, slpLifeTime, sleepTime);
if(enableHttps) forkSLPAgent(cfgHttps, slpLifeTime, sleepTime);
-
+ freeCFG(&cfgHttp);
+ freeCFG(&cfgHttps);
_SFCB_RETURN(0);
}
#endif
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/sblim-sfcb-1.3.2preview/cimslpCMPI.c new/sblim-sfcb-1.3.2/cimslpCMPI.c
--- old/sblim-sfcb-1.3.2preview/cimslpCMPI.c 2008-04-04 02:14:43.000000000 +0200
+++ new/sblim-sfcb-1.3.2/cimslpCMPI.c 2008-09-05 22:01:56.000000000 +0200
@@ -24,15 +24,19 @@
#include
#include
#include
+#include
#include "cimslpCMPI.h"
#include "cimslpSLP.h"
#include "cimslpUtil.h"
#include "trace.h"
-
+#include "config.h"
+#include "control.h"
char * interOpNS;
-
+typedef int (*getSlpHostname)(char **hostname);
+extern void libraryName(const char *dir, const char *location, const char *fullName);
+extern char * configfile;
//helper function ... until better solution is found to get to the
//interop Namespace
@@ -68,6 +72,9 @@
//printf("Fatal error. CIMOM not running? Connection params ok?\n");
printf("--- HTTP-Daemon no longer active. Deregistering service with slp\n");
deregisterCIMService();
+ if (status.msg) CMRelease(status.msg);
+ if (objectpath) CMRelease(objectpath);
+ if (enumeration) CMRelease(enumeration);
exit(0);
}
@@ -127,8 +134,29 @@
CMPIInstance **ci;
CMPIStatus status;
CMPIConstClass *ccls;
-
cimSLPService rs; //service which is going to be returned to the calling function
+ char *sn;
+
+#ifdef SLP_HOSTNAME_LIB
+ static void *hostnameLib=NULL;
+ static getSlpHostname gethostname;
+ char *ln;
+ char dlName[512];
+ int err;
+
+ err = 1;
+ setupControl(configfile);
+ if (getControlChars("slpHostnamelib", &ln) == 0) {
+ libraryName(NULL,ln,dlName);
+ if ((hostnameLib = dlopen(dlName, RTLD_LAZY))) {
+ gethostname = dlsym(hostnameLib, "_sfcGetSlpHostname");
+ if (gethostname) err = 0;
+ }
+ }
+ sunsetControl();
+ if (err) mlogf(M_ERROR,M_SHOW,"--- SLP Hostname exit %s not found. Defaulting to system hostname.\n",
+ dlName);
+#endif
_SFCB_ENTER(TRACE_SLP, "getSLPData");
@@ -160,8 +188,21 @@
//construct the server string
ci = myGetInstances(cc, interOpNS, "CIM_ObjectManager");
if(ci) {
- rs.url_syntax = getUrlSyntax(myGetProperty(ci[0], "SystemName"),
- cfg.commScheme, cfg.port);
+ sn = myGetProperty(ci[0], "SystemName");
+
+#ifdef SLP_HOSTNAME_LIB
+ if (!err) {
+ char *tmp;
+ if ((err = gethostname(&tmp))) {
+ free(sn);
+ sn = tmp;
+ } else {
+ printf("-#- SLP call to %s for hostname failed. Defaulting to system hostname.\n", dlName);
+ }
+ }
+#endif
+ rs.url_syntax = getUrlSyntax(sn, cfg.commScheme,
+ cfg.port);
rs.service_hi_name = myGetProperty(ci[0], "ElementName");
rs.service_hi_description = myGetProperty(ci[0], "Description");
rs.service_id = myGetProperty(ci[0], "Name");
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/sblim-sfcb-1.3.2preview/classProviderGz.c new/sblim-sfcb-1.3.2/classProviderGz.c
--- old/sblim-sfcb-1.3.2preview/classProviderGz.c 2007-08-02 01:29:12.000000000 +0200
+++ new/sblim-sfcb-1.3.2/classProviderGz.c 2008-10-06 19:26:08.000000000 +0200
@@ -775,7 +775,7 @@
{
CMPIStatus st = { CMPI_RC_OK, NULL };
CMPIString *cn = CMGetClassName(ref, NULL);
- CMPIConstClass *cl;
+ CMPIConstClass *cl, *clLocal;
ClassRegister *cReg;
int rc;
void *cid;
@@ -791,9 +791,14 @@
cReg->ft->wLock(cReg);
- cl = getClass(cReg, (char *) cn->hdl,&cid);
- if (cl) {
+ /* Make a cloned copy of the cached results to prevent
+ thread interference. */
+ clLocal = getClass(cReg, (char *) cn->hdl,&cid);
+
+ if (clLocal) {
_SFCB_TRACE(1,("--- Class found"));
+ cl = clLocal->ft->clone(clLocal, NULL);
+ memLinkInstance((CMPIInstance*)cl);
CMReturnInstance(rslt, (CMPIInstance *) cl);
} else {
_SFCB_TRACE(1,("--- Class not found"));
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/sblim-sfcb-1.3.2preview/config.h.in new/sblim-sfcb-1.3.2/config.h.in
--- old/sblim-sfcb-1.3.2preview/config.h.in 2008-08-21 02:52:31.000000000 +0200
+++ new/sblim-sfcb-1.3.2/config.h.in 2008-10-06 20:16:31.000000000 +0200
@@ -226,6 +226,9 @@
/* The size of `void*', as computed by sizeof. */
#undef SIZEOF_VOIDP
+/* SLP Hostname lib enabled */
+#undef SLP_HOSTNAME_LIB
+
/* If using the C implementation of alloca, define if you know the
direction of stack growth for your system; otherwise it will be
automatically deduced at runtime.
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/sblim-sfcb-1.3.2preview/configure new/sblim-sfcb-1.3.2/configure
--- old/sblim-sfcb-1.3.2preview/configure 2008-08-21 02:52:36.000000000 +0200
+++ new/sblim-sfcb-1.3.2/configure 2008-10-06 20:16:36.000000000 +0200
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.60 for Small Footprint CIM Broker 1.3.2preview.
+# Generated by GNU Autoconf 2.60 for Small Footprint CIM Broker 1.3.2.
#
# Report bugs to .
#
@@ -713,8 +713,8 @@
# Identity of this package.
PACKAGE_NAME='Small Footprint CIM Broker'
PACKAGE_TARNAME='sblim-sfcb'
-PACKAGE_VERSION='1.3.2preview'
-PACKAGE_STRING='Small Footprint CIM Broker 1.3.2preview'
+PACKAGE_VERSION='1.3.2'
+PACKAGE_STRING='Small Footprint CIM Broker 1.3.2'
PACKAGE_BUGREPORT='sblim-devel@lists.sourceforge.net'
ac_unique_file="providerDrv.c"
@@ -887,6 +887,8 @@
SSL_FALSE
SLP_TRUE
SLP_FALSE
+SLP_HOSTNAME_LIB_TRUE
+SLP_HOSTNAME_LIB_FALSE
SLP_ALONE_TRUE
SLP_ALONE_FALSE
QUALREP_TRUE
@@ -1423,7 +1425,7 @@
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures Small Footprint CIM Broker 1.3.2preview to adapt to many kinds of systems.
+\`configure' configures Small Footprint CIM Broker 1.3.2 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1493,7 +1495,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of Small Footprint CIM Broker 1.3.2preview:";;
+ short | recursive ) echo "Configuration of Small Footprint CIM Broker 1.3.2:";;
esac
cat <<\_ACEOF
@@ -1508,6 +1510,9 @@
--enable-jdbc include server-side JDBC support for SFCB -
EXPERIMENTAL.
--enable-slp include slp agent for SFCB - EXPERIMENTAL.
+ --enable-slp-hostname-lib
+ aquire hostname for slp registration from external
+ library.
--disable-qualifierrep disable qualifier repository support.
--disable-indications disable indication support for SFCB
--enable-local-connect-only
@@ -1623,7 +1628,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-Small Footprint CIM Broker configure 1.3.2preview
+Small Footprint CIM Broker configure 1.3.2
generated by GNU Autoconf 2.60
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -1637,7 +1642,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by Small Footprint CIM Broker $as_me 1.3.2preview, which was
+It was created by Small Footprint CIM Broker $as_me 1.3.2, which was
generated by GNU Autoconf 2.60. Invocation command line was
$ $0 $@
@@ -2312,7 +2317,7 @@
# Define the identity of the package.
PACKAGE='sblim-sfcb'
- VERSION='1.3.2preview'
+ VERSION='1.3.2'
cat >>confdefs.h <<_ACEOF
@@ -2496,6 +2501,12 @@
fi
+# Check whether --enable-slp-hostname-lib was given.
+if test "${enable_slp_hostname_lib+set}" = set; then
+ enableval=$enable_slp_hostname_lib;
+fi
+
+
# Check whether --enable-qualifierrep was given.
if test "${enable_qualifierrep+set}" = set; then
enableval=$enable_qualifierrep; enable_qualifierrep=$enableval
@@ -6036,6 +6047,14 @@
fi
+if test "$enable_slp_hostname_lib" == "yes"; then
+
+cat >>confdefs.h <<\_ACEOF
+#define SLP_HOSTNAME_LIB
+_ACEOF
+
+fi
+
if test "$enable_qualifierrep" == "yes"; then
LOAD_QUALIFIER_PROVIDER=
@@ -7967,7 +7986,7 @@
;;
*-*-irix6*)
# Find out which ABI we are using.
- echo '#line 7970 "configure"' > conftest.$ac_ext
+ echo '#line 7989 "configure"' > conftest.$ac_ext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
@@ -10395,11 +10414,11 @@
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:10398: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:10417: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:10402: \$? = $ac_status" >&5
+ echo "$as_me:10421: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -10663,11 +10682,11 @@
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:10666: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:10685: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:10670: \$? = $ac_status" >&5
+ echo "$as_me:10689: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -10767,11 +10786,11 @@
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:10770: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:10789: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:10774: \$? = $ac_status" >&5
+ echo "$as_me:10793: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -13219,7 +13238,7 @@
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext < conftest.$ac_ext <&5)
+ (eval echo "\"\$as_me:15709: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:15694: \$? = $ac_status" >&5
+ echo "$as_me:15713: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -15791,11 +15810,11 @@
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:15794: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:15813: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:15798: \$? = $ac_status" >&5
+ echo "$as_me:15817: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -17361,11 +17380,11 @@
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:17364: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:17383: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:17368: \$? = $ac_status" >&5
+ echo "$as_me:17387: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -17465,11 +17484,11 @@
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:17468: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:17487: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:17472: \$? = $ac_status" >&5
+ echo "$as_me:17491: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -19695,11 +19714,11 @@
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:19698: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:19717: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:19702: \$? = $ac_status" >&5
+ echo "$as_me:19721: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -19963,11 +19982,11 @@
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:19966: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:19985: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:19970: \$? = $ac_status" >&5
+ echo "$as_me:19989: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -20067,11 +20086,11 @@
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:20070: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:20089: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:20074: \$? = $ac_status" >&5
+ echo "$as_me:20093: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -27032,6 +27051,16 @@
+if test "$enable_slp_hostname_lib" == "yes"; then
+ SLP_HOSTNAME_LIB_TRUE=
+ SLP_HOSTNAME_LIB_FALSE='#'
+else
+ SLP_HOSTNAME_LIB_TRUE='#'
+ SLP_HOSTNAME_LIB_FALSE=
+fi
+
+
+
if test "$enable_slp" == "standalone"; then
SLP_ALONE_TRUE=
SLP_ALONE_FALSE='#'
@@ -27255,6 +27284,13 @@
Usually this means the macro was only invoked conditionally." >&2;}
{ (exit 1); exit 1; }; }
fi
+if test -z "${SLP_HOSTNAME_LIB_TRUE}" && test -z "${SLP_HOSTNAME_LIB_FALSE}"; then
+ { { echo "$as_me:$LINENO: error: conditional \"SLP_HOSTNAME_LIB\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"SLP_HOSTNAME_LIB\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
if test -z "${SLP_ALONE_TRUE}" && test -z "${SLP_ALONE_FALSE}"; then
{ { echo "$as_me:$LINENO: error: conditional \"SLP_ALONE\" was never defined.
Usually this means the macro was only invoked conditionally." >&5
@@ -27591,7 +27627,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by Small Footprint CIM Broker $as_me 1.3.2preview, which was
+This file was extended by Small Footprint CIM Broker $as_me 1.3.2, which was
generated by GNU Autoconf 2.60. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -27644,7 +27680,7 @@
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF
ac_cs_version="\\
-Small Footprint CIM Broker config.status 1.3.2preview
+Small Footprint CIM Broker config.status 1.3.2
configured by $0, generated by GNU Autoconf 2.60,
with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
@@ -28018,6 +28054,8 @@
SSL_FALSE!$SSL_FALSE$ac_delim
SLP_TRUE!$SLP_TRUE$ac_delim
SLP_FALSE!$SLP_FALSE$ac_delim
+SLP_HOSTNAME_LIB_TRUE!$SLP_HOSTNAME_LIB_TRUE$ac_delim
+SLP_HOSTNAME_LIB_FALSE!$SLP_HOSTNAME_LIB_FALSE$ac_delim
SLP_ALONE_TRUE!$SLP_ALONE_TRUE$ac_delim
SLP_ALONE_FALSE!$SLP_ALONE_FALSE$ac_delim
QUALREP_TRUE!$QUALREP_TRUE$ac_delim
@@ -28035,7 +28073,7 @@
LTLIBOBJS!$LTLIBOBJS$ac_delim
_ACEOF
- if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 51; then
+ if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 53; then
break
elif $ac_last_try; then
{ { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
@@ -28806,6 +28844,7 @@
echo Configuration Features:
echo -e "ssl"\\t\\t\\t\\t"${enable_ssl:-no}"
echo -e "slp"\\t\\t\\t\\t"${enable_slp:-no}"
+echo -e "slp hostname lib"\\t\\t"${enable_slp_hostname_lib:-no}"
echo -e "jdbc"\\t\\t\\t\\t"${enable_jdbc:-no}"
echo -e "IPv6"\\t\\t\\t\\t"${enable_ipv6:-no}"
echo -e "debug"\\t\\t\\t\\t"${enable_debug:-no}"
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/sblim-sfcb-1.3.2preview/configure.ac new/sblim-sfcb-1.3.2/configure.ac
--- old/sblim-sfcb-1.3.2preview/configure.ac 2008-05-09 17:22:29.000000000 +0200
+++ new/sblim-sfcb-1.3.2/configure.ac 2008-10-06 19:45:25.000000000 +0200
@@ -1,4 +1,4 @@
-# $Id: configure.ac,v 1.73 2008/05/09 15:22:29 buccella Exp $
+# $Id: configure.ac,v 1.75 2008/10/06 17:45:25 buccella Exp $
#
# configure.ac
#
@@ -22,7 +22,7 @@
# Process this file with autoconf to produce a configure script.
-AC_INIT(Small Footprint CIM Broker, 1.3.2preview, sblim-devel@lists.sourceforge.net, sblim-sfcb)
+AC_INIT(Small Footprint CIM Broker, 1.3.2, sblim-devel@lists.sourceforge.net, sblim-sfcb)
AC_CONFIG_SRCDIR([providerDrv.c])
#disable "seems to ignore the --datarootdir setting" warnings
@@ -56,6 +56,10 @@
[AC_HELP_STRING([--enable-slp],
[include slp agent for SFCB - EXPERIMENTAL.])])
+AC_ARG_ENABLE(slp-hostname-lib,
+ [AC_HELP_STRING([--enable-slp-hostname-lib],
+ [aquire hostname for slp registration from external library.])])
+
AC_ARG_ENABLE(qualifierrep,
[AC_HELP_STRING([--disable-qualifierrep],
[disable qualifier repository support.])],
@@ -157,6 +161,10 @@
AC_DEFINE(HAVE_SLP,,[SLP support enabled.])
fi
+if test "$enable_slp_hostname_lib" == "yes"; then
+ AC_DEFINE(SLP_HOSTNAME_LIB,,[SLP Hostname lib enabled])
+fi
+
if test "$enable_qualifierrep" == "yes"; then
LOAD_QUALIFIER_PROVIDER=
AC_DEFINE(HAVE_QUALREP,,[Qualifier repository support enabled.])
@@ -344,6 +352,7 @@
AM_CONDITIONAL(JDBC,[test "$enable_jdbc" == "yes"])
AM_CONDITIONAL(SSL,[test "$enable_ssl" == "yes"])
AM_CONDITIONAL(SLP,[test "$enable_slp" == "yes"])
+AM_CONDITIONAL(SLP_HOSTNAME_LIB,[test "$enable_slp_hostname_lib" == "yes"])
AM_CONDITIONAL(SLP_ALONE,[test "$enable_slp" == "standalone"])
AM_CONDITIONAL(QUALREP,[test "$enable_qualifierrep" == "yes"])
AM_CONDITIONAL(PAM,[test "$enable_pam" == "yes"])
@@ -366,6 +375,7 @@
echo Configuration Features:
echo -e "ssl"\\t\\t\\t\\t"${enable_ssl:-no}"
echo -e "slp"\\t\\t\\t\\t"${enable_slp:-no}"
+echo -e "slp hostname lib"\\t\\t"${enable_slp_hostname_lib:-no}"
echo -e "jdbc"\\t\\t\\t\\t"${enable_jdbc:-no}"
echo -e "IPv6"\\t\\t\\t\\t"${enable_ipv6:-no}"
echo -e "debug"\\t\\t\\t\\t"${enable_debug:-no}"
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/sblim-sfcb-1.3.2preview/control.c new/sblim-sfcb-1.3.2/control.c
--- old/sblim-sfcb-1.3.2preview/control.c 2008-07-12 00:12:28.000000000 +0200
+++ new/sblim-sfcb-1.3.2/control.c 2008-09-05 22:01:56.000000000 +0200
@@ -75,6 +75,7 @@
#endif
#ifdef HAVE_SLP
{"slpRefreshInterval", 1, "600"},
+ {"slpHostnameLib", 0, "sfcSlpHostname"},
#endif
{"provProcs", 1, "32"},
{"basicAuthLib", 0, "sfcBasicAuthentication"},
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/sblim-sfcb-1.3.2preview/datetime.c new/sblim-sfcb-1.3.2/datetime.c
--- old/sblim-sfcb-1.3.2preview/datetime.c 2008-08-13 21:04:46.000000000 +0200
+++ new/sblim-sfcb-1.3.2/datetime.c 2008-08-27 20:32:15.000000000 +0200
@@ -144,7 +144,7 @@
msecs=msecs+(secs*1000000ULL);
msecs += (CMPIUint64) mktime(&tmp) * 1000000ULL;
// Add in the offset
- msecs += offset * 1000000ULL;
+ msecs -= offset * 1000000ULL;
}
free(str);
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/sblim-sfcb-1.3.2preview/getSchema.sh new/sblim-sfcb-1.3.2/getSchema.sh
--- old/sblim-sfcb-1.3.2preview/getSchema.sh 2008-08-21 02:54:29.000000000 +0200
+++ new/sblim-sfcb-1.3.2/getSchema.sh 2008-10-06 20:19:45.000000000 +0200
@@ -14,7 +14,7 @@
# zip file for schema v2.17 (and others) contain subdirectories. v2.9 does not
HASSUBDIRS=yes
-if [ $CIMSCHEMA_SUBDIRS = no ]
+if [ "$CIMSCHEMA_SUBDIRS" = "no" ]
then
HASSUBDIRS=no
fi
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/sblim-sfcb-1.3.2preview/getSchema.sh.pre.in new/sblim-sfcb-1.3.2/getSchema.sh.pre.in
--- old/sblim-sfcb-1.3.2preview/getSchema.sh.pre.in 2008-02-14 23:45:16.000000000 +0100
+++ new/sblim-sfcb-1.3.2/getSchema.sh.pre.in 2008-09-09 17:03:33.000000000 +0200
@@ -14,7 +14,7 @@
# zip file for schema v2.17 (and others) contain subdirectories. v2.9 does not
HASSUBDIRS=yes
-if [ $CIMSCHEMA_SUBDIRS = no ]
+if [ "$CIMSCHEMA_SUBDIRS" = "no" ]
then
HASSUBDIRS=no
fi
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/sblim-sfcb-1.3.2preview/indCIMXMLHandler.c new/sblim-sfcb-1.3.2/indCIMXMLHandler.c
--- old/sblim-sfcb-1.3.2preview/indCIMXMLHandler.c 2008-08-20 21:31:09.000000000 +0200
+++ new/sblim-sfcb-1.3.2/indCIMXMLHandler.c 2008-10-02 18:25:53.000000000 +0200
@@ -246,6 +246,12 @@
xs=exportIndicationReq(ind,strId);
sb=segments2stringBuffer(xs.segments);
exportIndication((char*)dest->hdl,(char*)sb->ft->getCharPtr(sb), &resp, &msg);
+
+ CMRelease(sb);
+ /* there's a UtilStringBuffer burried in xs... */
+ RespSegment rs = xs.segments[5];
+ UtilStringBuffer* usb = (UtilStringBuffer*)rs.txt;
+ CMRelease(usb);
if (resp) free(resp);
if (msg) free(msg);
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/sblim-sfcb-1.3.2preview/instance.c new/sblim-sfcb-1.3.2/instance.c
--- old/sblim-sfcb-1.3.2preview/instance.c 2008-08-14 02:21:49.000000000 +0200
+++ new/sblim-sfcb-1.3.2/instance.c 2008-09-10 20:58:43.000000000 +0200
@@ -1,5 +1,5 @@
/*
- * $Id: instance.c,v 1.43 2008/08/14 00:21:49 buccella Exp $
+ * $Id: instance.c,v 1.44 2008/09/10 18:58:43 buccella Exp $
*
* © Copyright IBM Corp. 2005, 2007
*
@@ -435,7 +435,13 @@
for (j = 0, m = __ift_getPropertyCount(instance, &st); j < m; j++) {
data = __ift_internal_getPropertyAt(instance, j, &name, &st, 1);
if(__contained_list((char**)propertyList, name) || __contained_list((char**)keys, name)) {
- newInstance->ft->setProperty(newInstance, name, &data.value, data.type);
+ if ( (data.state & ~CMPI_keyValue) != 0) {
+ newInstance->ft->setProperty(
+ newInstance, name, NULL, data.type);
+ } else {
+ newInstance->ft->setProperty(
+ newInstance, name, &data.value, data.type);
+ }
}
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/sblim-sfcb-1.3.2preview/Makefile.am new/sblim-sfcb-1.3.2/Makefile.am
--- old/sblim-sfcb-1.3.2preview/Makefile.am 2008-05-09 22:24:47.000000000 +0200
+++ new/sblim-sfcb-1.3.2/Makefile.am 2008-09-05 22:01:56.000000000 +0200
@@ -1,4 +1,4 @@
-# $Id: Makefile.am,v 1.75 2008/05/09 20:24:47 mchasal Exp $
+# $Id: Makefile.am,v 1.76 2008/09/05 20:01:56 mchasal Exp $
#
# Makefile.am
#
@@ -94,6 +94,12 @@
SLP_HEADER =
endif
+if SLP_HOSTNAME_LIB
+SLP_HOSTNAME_LIBS = libsfcSlpHostname.la
+else
+SLP_HOSTNAME_LIBS =
+endif
+
if QUALREP
QUALREP_LIBS = libsfcQualifierProvider.la
QUALREP_FILES = qualifier.c
@@ -140,8 +146,9 @@
libcimcClientSfcbLocal.la \
$(QUALREP_LIBS) \
$(SLP_LIBS) \
+ $(SLP_HOSTNAME_LIBS) \
$(INDICATION_LIBS) \
- $(PAM_LIBS)
+ $(PAM_LIBS)
if SLP_ALONE
SLP_PROGRAMFILES = cimslp
@@ -257,6 +264,9 @@
libsfcHttpAdapter_la_DEPENDENCIES=libsfcBrokerCore.la $(CIMXMLCODEC_LIBS)
endif
+libsfcSlpHostname_la_SOURCES = \
+ sfcSlpHostname.c
+
libsfcBasicAuthentication_la_SOURCES = \
sfcBasicAuthentication.c
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/sblim-sfcb-1.3.2preview/Makefile.in new/sblim-sfcb-1.3.2/Makefile.in
--- old/sblim-sfcb-1.3.2preview/Makefile.in 2008-08-21 02:52:35.000000000 +0200
+++ new/sblim-sfcb-1.3.2/Makefile.in 2008-10-06 20:16:36.000000000 +0200
@@ -14,7 +14,7 @@
@SET_MAKE@
-# $Id: Makefile.am,v 1.75 2008/05/09 20:24:47 mchasal Exp $
+# $Id: Makefile.am,v 1.76 2008/09/05 20:01:56 mchasal Exp $
#
# Makefile.am
#
@@ -246,6 +246,11 @@
libsfcQualifierProvider_la_OBJECTS = \
$(am_libsfcQualifierProvider_la_OBJECTS)
@QUALREP_TRUE@am_libsfcQualifierProvider_la_rpath = -rpath $(libdir)
+libsfcSlpHostname_la_LIBADD =
+am_libsfcSlpHostname_la_OBJECTS = sfcSlpHostname.lo
+libsfcSlpHostname_la_OBJECTS = $(am_libsfcSlpHostname_la_OBJECTS)
+@SLP_HOSTNAME_LIB_TRUE@am_libsfcSlpHostname_la_rpath = -rpath \
+@SLP_HOSTNAME_LIB_TRUE@ $(libdir)
libsfcUtil_la_LIBADD =
am_libsfcUtil_la_OBJECTS = hashtable.lo utilFactory.lo \
utilHashtable.lo utilStringBuffer.lo
@@ -323,7 +328,8 @@
$(libsfcInteropServerProvider_la_SOURCES) \
$(libsfcObjectImplSwapI32toP32_la_SOURCES) \
$(libsfcProfileProvider_la_SOURCES) \
- $(libsfcQualifierProvider_la_SOURCES) $(libsfcUtil_la_SOURCES) \
+ $(libsfcQualifierProvider_la_SOURCES) \
+ $(libsfcSlpHostname_la_SOURCES) $(libsfcUtil_la_SOURCES) \
$(libslpAgent_la_SOURCES) $(cimslp_SOURCES) \
$(classSchema2c_SOURCES) $(sfcbd_SOURCES) $(sfcbdump_SOURCES) \
sfcbdumpP32onI32.c $(sfcbmofpp_SOURCES)
@@ -345,10 +351,10 @@
$(libsfcObjectImplSwapI32toP32_la_SOURCES) \
$(libsfcProfileProvider_la_SOURCES) \
$(am__libsfcQualifierProvider_la_SOURCES_DIST) \
- $(libsfcUtil_la_SOURCES) $(am__libslpAgent_la_SOURCES_DIST) \
- $(am__cimslp_SOURCES_DIST) $(classSchema2c_SOURCES) \
- $(sfcbd_SOURCES) $(sfcbdump_SOURCES) sfcbdumpP32onI32.c \
- $(sfcbmofpp_SOURCES)
+ $(libsfcSlpHostname_la_SOURCES) $(libsfcUtil_la_SOURCES) \
+ $(am__libslpAgent_la_SOURCES_DIST) $(am__cimslp_SOURCES_DIST) \
+ $(classSchema2c_SOURCES) $(sfcbd_SOURCES) $(sfcbdump_SOURCES) \
+ sfcbdumpP32onI32.c $(sfcbmofpp_SOURCES)
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
html-recursive info-recursive install-data-recursive \
install-exec-recursive install-info-recursive \
@@ -483,6 +489,8 @@
SLP_ALONE_FALSE = @SLP_ALONE_FALSE@
SLP_ALONE_TRUE = @SLP_ALONE_TRUE@
SLP_FALSE = @SLP_FALSE@
+SLP_HOSTNAME_LIB_FALSE = @SLP_HOSTNAME_LIB_FALSE@
+SLP_HOSTNAME_LIB_TRUE = @SLP_HOSTNAME_LIB_TRUE@
SLP_TRUE = @SLP_TRUE@
SSL_FALSE = @SSL_FALSE@
SSL_TRUE = @SSL_TRUE@
@@ -587,6 +595,8 @@
@SLP_TRUE@SLP_LIB = -lslpAgent
@SLP_FALSE@SLP_HEADER =
@SLP_TRUE@SLP_HEADER = cimslpCMPI.h cimslp.h cimslpSLP.h cimslpUtil.h
+@SLP_HOSTNAME_LIB_FALSE@SLP_HOSTNAME_LIBS =
+@SLP_HOSTNAME_LIB_TRUE@SLP_HOSTNAME_LIBS = libsfcSlpHostname.la
@QUALREP_FALSE@QUALREP_LIBS =
@QUALREP_TRUE@QUALREP_LIBS = libsfcQualifierProvider.la
@QUALREP_FALSE@QUALREP_FILES =
@@ -622,8 +632,9 @@
libcimcClientSfcbLocal.la \
$(QUALREP_LIBS) \
$(SLP_LIBS) \
+ $(SLP_HOSTNAME_LIBS) \
$(INDICATION_LIBS) \
- $(PAM_LIBS)
+ $(PAM_LIBS)
@SLP_ALONE_FALSE@SLP_PROGRAMFILES =
@SLP_ALONE_TRUE@SLP_PROGRAMFILES = cimslp
@@ -704,6 +715,9 @@
@LOCAL_CONNECT_NO_INDICATION_FALSE@libsfcHttpAdapter_la_LIBADD = -lsfcBrokerCore $(CIMXMLCODEC_LIBS_LINK)
@LOCAL_CONNECT_NO_INDICATION_FALSE@libsfcHttpAdapter_la_DEPENDENCIES = libsfcBrokerCore.la $(CIMXMLCODEC_LIBS)
+libsfcSlpHostname_la_SOURCES = \
+ sfcSlpHostname.c
+
libsfcBasicAuthentication_la_SOURCES = \
sfcBasicAuthentication.c
@@ -999,6 +1013,8 @@
$(LINK) -rpath $(libdir) $(libsfcProfileProvider_la_LDFLAGS) $(libsfcProfileProvider_la_OBJECTS) $(libsfcProfileProvider_la_LIBADD) $(LIBS)
libsfcQualifierProvider.la: $(libsfcQualifierProvider_la_OBJECTS) $(libsfcQualifierProvider_la_DEPENDENCIES)
$(LINK) $(am_libsfcQualifierProvider_la_rpath) $(libsfcQualifierProvider_la_LDFLAGS) $(libsfcQualifierProvider_la_OBJECTS) $(libsfcQualifierProvider_la_LIBADD) $(LIBS)
+libsfcSlpHostname.la: $(libsfcSlpHostname_la_OBJECTS) $(libsfcSlpHostname_la_DEPENDENCIES)
+ $(LINK) $(am_libsfcSlpHostname_la_rpath) $(libsfcSlpHostname_la_LDFLAGS) $(libsfcSlpHostname_la_OBJECTS) $(libsfcSlpHostname_la_LIBADD) $(LIBS)
libsfcUtil.la: $(libsfcUtil_la_OBJECTS) $(libsfcUtil_la_DEPENDENCIES)
$(LINK) -rpath $(libdir) $(libsfcUtil_la_LDFLAGS) $(libsfcUtil_la_OBJECTS) $(libsfcUtil_la_LIBADD) $(LIBS)
libslpAgent.la: $(libslpAgent_la_OBJECTS) $(libslpAgent_la_DEPENDENCIES)
@@ -1242,6 +1258,7 @@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sfcBasicPAMAuthentication.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sfcBroker.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sfcCertificateAuthentication.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sfcSlpHostname.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sfcbdump.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sfcbdumpP32onI32.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/utilFactory.Plo@am__quote@
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/sblim-sfcb-1.3.2preview/msgqueue.c new/sblim-sfcb-1.3.2/msgqueue.c
--- old/sblim-sfcb-1.3.2preview/msgqueue.c 2008-05-07 00:13:02.000000000 +0200
+++ new/sblim-sfcb-1.3.2/msgqueue.c 2008-10-02 23:34:59.000000000 +0200
@@ -171,8 +171,8 @@
_SFCB_ENTER(TRACE_MSGQUEUE, "handleError");
char *emsg=strerror(errno);
mlogf(M_ERROR,M_SHOW,"%s %d %d-%d %s\n", m, *s, currentProc, errno,emsg);
- _SFCB_ABORT();
- return errno;
+ // _SFCB_ABORT();
+ return -1;
}
@@ -223,10 +223,11 @@
if (n == 0) {
char *emsg=strerror(errno);
mlogf(M_ERROR,M_SHOW,"--- Warning: fd is closed: %s\n",emsg);
- break;
+ // break;
+ return -1;
}
- if (r==0) {
+ if (r==0) { /* true for the first time through the loop */
cmsg = CMSG_FIRSTHDR(&msg);
if (cmsg) {
if (!cmsg->cmsg_type == SCM_RIGHTS) {
@@ -240,7 +241,7 @@
}
r+=n;
- if (r < ol) continue;
+ if (r < ol) continue; /* continue as long as bytes read is < length */
break;
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/sblim-sfcb-1.3.2preview/NEWS new/sblim-sfcb-1.3.2/NEWS
--- old/sblim-sfcb-1.3.2preview/NEWS 2008-08-20 21:31:09.000000000 +0200
+++ new/sblim-sfcb-1.3.2/NEWS 2008-10-06 19:45:25.000000000 +0200
@@ -1,12 +1,16 @@
-Changes in 1.3.2preview
-=======================
+Changes in 1.3.2
+================
New features:
- 1978218 SFCB support for HTTP over a unix socket
- 2048878 sfcb does not implement setObjectPath
+- 1945390 Request for SLP service URL hostname override
Bugs fixed:
+
+- 2101035 classProvider core dumps under slp/CIM client load
+- 2093273 Fix "cimomConfig" + myGetInstances memory leaks
- 2023638 SFCB not considering UTC offset in calculating binary time
- 2039216 Memory leak in getSfcbUuid
- 2001486 SFCB extrinsic method output parameter problems
@@ -37,6 +41,14 @@
- 1918880 SFCB - Escaped XML sequences in embedded instances
- 2060748 compile fails when --disable-debug configure flag is set
- 2062904 small memory leak after exportIndication
+- 2100911 getSchema.sh: line 17: [: =: unary operator expected
+- 2100707 NULL properties in property list returned with value
+- 1877578 sfcb appears to leak memory while handling indications
+- 2138163 sfcb: Wrong PID when running as daemon
+- 2049872 "--- Warning: fd is closed" message from binary intf app
+- 2143315 Remove unnecessary lines in providerDrv & cimcClient
+- 2064360 Internal provider SIGSEGV when calling getProperty
+- 2079099 SFCB should load providers with RTLD_GLOBAL
Changes in 1.3.1
================
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/sblim-sfcb-1.3.2preview/providerDrv.c new/sblim-sfcb-1.3.2/providerDrv.c
--- old/sblim-sfcb-1.3.2preview/providerDrv.c 2008-05-30 04:45:52.000000000 +0200
+++ new/sblim-sfcb-1.3.2/providerDrv.c 2008-10-03 21:15:45.000000000 +0200
@@ -1,6 +1,6 @@
/*
- * $Id: providerDrv.c,v 1.61 2008/05/30 02:45:52 buccella Exp $
+ * $Id: providerDrv.c,v 1.65 2008/10/03 19:15:45 buccella Exp $
*
* © Copyright IBM Corp. 2005, 2007
*
@@ -132,7 +132,6 @@
extern CMPIString *NewCMPIString(const char *ptr, CMPIStatus * rc);
static ProviderProcess *provProc=NULL,*curProvProc=NULL;
-static ProviderThread *curProvThread=NULL;
static int provProcMax=0;
static int idleThreadStartHandled=0;
@@ -158,17 +157,6 @@
} Parms;
static Parms *activeThreadsFirst=NULL,*activeThreadsLast=NULL;
-struct providerThreadParams {
- ProviderInfo* info;
- pthread_t* thread_id;
- // ProviderProcess* proc;
-};
-
-pthread_mutex_t prov_thread_start_mutex;
-pthread_mutex_t prov_thread_start_mutex2;
-pthread_cond_t prov_thread_start_cv;
-pthread_cond_t prov_thread_start_cv2;
-
/* old version support */
typedef CMPIStatus (*authorizeFilterPreV1)
(CMPIIndicationMI* mi, const CMPIContext* ctx, CMPIResult *result,
@@ -528,7 +516,10 @@
#endif
-
+/* see if we're under the max allowed number of loaded providers.
+ if so, fork() for the new provider
+ I think this can be broken down into smaller functions
+*/
static int getProcess(ProviderInfo * info, ProviderProcess ** proc)
{
int i;
@@ -630,9 +621,6 @@
// something like isLoaded() and doForkProvider()
int forkProvider(ProviderInfo * info, OperationHdr * req, char **msg)
{
-#ifdef USE_THREADS
- return createProviderThread(info, req, msg);
-#endif
_SFCB_ENTER(TRACE_PROVIDERDRV, "forkProvider");
ProviderProcess *proc;
ProviderInfo * pInfo;
@@ -702,250 +690,6 @@
_SFCB_RETURN(CMPI_RC_ERR_FAILED);
}
-void* startProviderThread(void* params) {
-
- pthread_mutex_init(&prov_thread_start_mutex, NULL);
- pthread_cond_init (&prov_thread_start_cv, NULL);
-
- struct providerThreadParams* p = (struct providerThreadParams*)params;
- ProviderInfo* info = p->info;
- *(p->thread_id) = pthread_self();
-
- pthread_mutex_lock(&prov_thread_start_mutex);
- pthread_cond_signal(&prov_thread_start_cv);
- pthread_mutex_unlock(&prov_thread_start_mutex);
-
- //now wait for getThread to finish
- pthread_mutex_lock(&prov_thread_start_mutex);
- pthread_cond_wait(&prov_thread_start_cv2, &prov_thread_start_mutex);
- pthread_mutex_unlock(&prov_thread_start_mutex);
-
- processProviderInvocationRequests(info->providerName);
-
- pthread_exit(NULL);
-}
-
-
-// if getProcess() can be broken into smaller functions, some could
-// be shared with getThread()
-static int getThread(ProviderInfo * info, ProviderThread ** thread) {
-
- int i, pcrc;
- static int seq=0;
-
- _SFCB_ENTER(TRACE_PROVIDERDRV, "getThread");
-
- if (provAutoGroup && info->group == NULL) {
- /* implicitly put all providers in a module in a virtual group */
- info->group = strdup(info->location);
- }
-
- if (info->group) {
- /* are we under the amount of maximum processes allowed? */
- for (i = 0; i < provProcMax; i++) {
- /* what is all this? if we use threads, do we even need process sharing? */
- /* if ((provThread+i) && provThread[i].tid &&
- provThread[i].group && strcmp(provThread[i].group,info->group)==0) {
- semAcquire(sfcbSem,(provThread[i].id*3)+provProcGuardId+provProcBaseId);
- semRelease(sfcbSem,(provThread[i].id*3)+provProcInuseId+provProcBaseId);
- semRelease(sfcbSem,(provThread[i].id*3)+provProcGuardId+provProcBaseId);
- info->tid=provThread[i].tid;
- info->providerSockets=provThread[i].providerSockets;
- _SFCB_TRACE(1,("--- Process %d shared by %s and %s",provThread[i].tid,info->providerName,
- provThread[i].firstProv->providerName));
- if (provThread[i].firstProv) info->next=provThread[i].firstProv;
- else info->next = NULL;
- provThread[i].firstProv=info;
- info->thread=provThread+i;
- if (info->unloadunload;
- _SFCB_RETURN(provThread[i].tid);
- } */
- }
- }
- for (i = 0; i < provProcMax; i++) {
-
- // does provider #i already exist?
- //if (pthread_equal(provThread[i].tid, 0)) {
-
- /*
-
- // fork() would have happened here
-
- // all providers are in the saname thread, no need to keep calling setSignal
- currentProc=getpid();
- setSignal(SIGCHLD, SIG_DFL,0);
- setSignal(SIGTERM, SIG_IGN,0);
- setSignal(SIGHUP, SIG_IGN,0);
- setSignal(SIGUSR1, handleSigUsr1,0);
-
- setSignal(SIGSEGV, handleSigSegv,SA_ONESHOT);
- */
-
-
- _SFCB_TRACE(1,("--- Forked started for %s %d %d-%lu",
- info->providerName, curProvThread,providerSockets.receive,
- getInode(providerSockets.receive)));
- processName=info->providerName;
- //does it matter if this is set?
- providerProcess=1;
- info->thread=*thread;
- info->pid=currentProc;
- //the tid should probably be set as well...
-
- //again, is this necessary when using threads?
- semSetValue(sfcbSem,((*thread)->id*3)+provProcGuardId+provProcBaseId,0);
- semSetValue(sfcbSem,((*thread)->id*3)+provProcInuseId+provProcBaseId,0);
- semSetValue(sfcbSem,((*thread)->id*3)+provProcAliveId+provProcBaseId,0);
- semReleaseUnDo(sfcbSem,((*thread)->id*3)+provProcAliveId+provProcBaseId);
- semReleaseUnDo(sfcbSem,((*thread)->id*3)+provProcInuseId+provProcBaseId);
- semRelease(sfcbSem,((*thread)->id*3)+provProcGuardId+provProcBaseId);
-
- /* needed for thread wait */
- pthread_mutex_init(&prov_thread_start_mutex, NULL);
- pthread_cond_init (&prov_thread_start_cv, NULL);
-
- pthread_t providerThread;
- //this could be a problem, as pthread_t != int on all systems
- pthread_t* thread_id = NULL;
-
- struct providerThreadParams ptparams = {info, thread_id};
-
- pcrc = pthread_create(&providerThread, NULL, &startProviderThread, &ptparams);
-
- //wait for thread to get going
- pthread_mutex_trylock(&prov_thread_start_mutex);
- pthread_cond_wait(&prov_thread_start_cv, &prov_thread_start_mutex);
- pthread_mutex_unlock(&prov_thread_start_mutex);
-
- (*thread)->tid = info->tid = providerThread;
- (*thread)->tid = info->tid = *thread_id;
-
- providerSockets=sPairs[(*thread)->id];
-
- (*thread)->providerSockets = info->providerSockets = providerSockets;
- (*thread)->group = info->group;
- (*thread)->unload=info->unload;
- (*thread)->firstProv=info;
- info->thread = *thread;
- info->next = NULL;
- curProvThread=(*thread);
- resultSockets=sPairs[(*thread)->id+ptBase];
-
- pthread_cond_signal(&prov_thread_start_cv2);
-
- // from else block of if (info->pid == 0)
- info->startSeq=++seq;
-
- _SFCB_TRACE(1,("--- Create thread for provider OK %s %d %d", info->providerName,
- info->tid, i));
-
- //should there be a break somewhere around here?
- /*
- }
-
- else {
- info->startSeq=++seq;
- }
- */
- _SFCB_TRACE(1,("--- Fork provider OK %s %d %d", info->providerName,
- info->pid, i));
-
- pthread_mutex_destroy(&prov_thread_start_mutex);
- pthread_cond_destroy(&prov_thread_start_cv);
-
- //should we be returning tid? pcrc?
- _SFCB_RETURN(info->pid);
- }
-
- *thread = NULL;
- _SFCB_RETURN(-1);
-}
-
-int createProviderThread(ProviderInfo * info, OperationHdr * req, char **msg) {
-
- _SFCB_ENTER(TRACE_PROVIDERDRV, "createProviderThread");
- ProviderThread *thread = NULL;
- ProviderInfo * pInfo;
- //int val;
- int rc;
-
- if (info->pid ) {
- thread=info->thread;
- /* fror now, let's assume it needs to be reloaded
- semAcquire(sfcbSem,(proc->id*3)+provProcGuardId+provProcBaseId);
- if ((val=semGetValue(sfcbSem,(proc->id*3)+provProcAliveId+provProcBaseId))) {
- semRelease(sfcbSem,(proc->id*3)+provProcInuseId+provProcBaseId);
- semRelease(sfcbSem,(proc->id*3)+provProcGuardId+provProcBaseId);
- _SFCB_TRACE(1, ("--- Provider %s still loaded",info->providerName));
- _SFCB_RETURN(CMPI_RC_OK)
- }
- */
-
- semRelease(sfcbSem,(thread->id*3)+provProcGuardId+provProcBaseId);
- _SFCB_TRACE(1, ("--- Provider has been unloaded prevously, will reload"));
-
- info->tid=0;
- for (pInfo=thread->firstProv; pInfo; pInfo=pInfo->next) {
- pInfo->pid=0;
- }
- thread->firstProv=NULL;
- thread->tid=0;
- thread->group=NULL;
- }
-
- _SFCB_TRACE(1, ("--- Creating thread for provider %s", info->providerName));
-
- if (getThread(info, &thread) > 0) {
-
- LoadProviderReq sreq = BINREQ(OPS_LoadProvider, 3);
-
- BinRequestContext binCtx;
- BinResponseHdr *resp;
-
- memset(&binCtx,0,sizeof(BinRequestContext));
- sreq.className = setCharsMsgSegment(info->className);
- sreq.libName = setCharsMsgSegment(info->location);
- sreq.provName = setCharsMsgSegment(info->providerName);
- sreq.hdr.flags = info->type;
- sreq.unload = info->unload;
- sreq.hdr.provId = getProvIds(info).ids;
-
- if (req) binCtx.oHdr = (OperationHdr *) req;
- binCtx.bHdr = &sreq.hdr;
- binCtx.bHdrSize = sizeof(sreq);
- binCtx.provA.socket = info->providerSockets.send;
- binCtx.provA.ids = getProvIds(info);
- binCtx.chunkedMode=binCtx.xmlAs=binCtx.noResp=0;
-
- _SFCB_TRACE(1, ("--- Invoke loader"));
-
- resp = invokeProvider(&binCtx);
- resp->rc--;
- if (resp->rc) {
- *msg = strdup((char *) resp->object[0].data);
- }
- else *msg = NULL;
-
- rc=resp->rc;
- _SFCB_TRACE(1, ("--- rc: %d", resp->rc));
-
- free(resp);
- _SFCB_RETURN(rc);
- }
- _SFCB_RETURN(CMPI_RC_ERR_FAILED);
-}
-
-
-/* -------------
- * ---
- * Provider Driver
- * ---
- * -------------
- */
-
-
-
-
typedef struct provHandler {
BinResponseHdr *(*handler) (BinRequestHdr *, ProviderInfo * info, int requestor);
} ProvHandler;
@@ -1052,7 +796,6 @@
#endif
default:
mlogf(M_ERROR,M_SHOW,"--- bad sendResponse request %d\n", hdr->object[i].type);
- *((char *) (void *) 0) = 0;
_SFCB_ABORT();
}
}
@@ -1513,6 +1256,9 @@
ctx->ft->addEntry(ctx,CMPIPrincipal,(CMPIValue*)req->principal.data,CMPI_chars);
ctx->ft->addEntry(ctx,"CMPISessionId",(CMPIValue*)&hdr->sessionId,CMPI_uint32);
+ if (info->propertyMI == NULL) info->propertyMI =
+ loadPropertyMI(info->providerName, info->library, Broker, ctx);
+
_SFCB_TRACE(1, ("--- Calling provider %s",info->providerName));
TIMING_START(hdr,info)
rci = info->propertyMI->ft->getProperty(info->propertyMI, ctx, result, path, (const char*)req->name.data);
@@ -1560,6 +1306,9 @@
data = inst->ft->getPropertyAt(inst, 0, &pName, NULL);
+ if (info->propertyMI == NULL) info->propertyMI =
+ loadPropertyMI(info->providerName, info->library, Broker, ctx);
+
_SFCB_TRACE(1, ("--- Calling provider %s",info->providerName));
TIMING_START(hdr,info)
rci = info->propertyMI->ft->setProperty(info->propertyMI, ctx, result, path, (const char*)pName->hdl, data);
@@ -2593,7 +2342,7 @@
while (dir) {
libraryName(dir, (char *) info->location, fullname);
if (stat(fullname,&stbuf) == 0) {
- info->library = dlopen(fullname, RTLD_NOW);
+ info->library = dlopen(fullname, RTLD_NOW | RTLD_GLOBAL);
if (info->library == NULL) {
mlogf(M_ERROR,M_SHOW,"*** dlopen error: %s\n",dlerror());
} else {
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/sblim-sfcb-1.3.2preview/README new/sblim-sfcb-1.3.2/README
--- old/sblim-sfcb-1.3.2preview/README 2008-08-11 19:13:36.000000000 +0200
+++ new/sblim-sfcb-1.3.2/README 2008-09-13 01:51:32.000000000 +0200
@@ -573,6 +573,12 @@
be executed in the same process unless another group has been specified
in the provider registration file. Default: true
+slpHostnameLib
+ Specify the name of the library to use to determine the SLP hostname. This
+ will override the default method. You must implement this library based
+ on the sample provided, sfcSlpHostname.c. You must also specify the
+ --enable-slp-hostname-lib configure option to enable this support.
+
sslClientCertificate
Specify the way sfcb handles client certificate based authentication. If set to
ignore it will not request a certificate from the client. If set to
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/sblim-sfcb-1.3.2preview/sfcb.cfg.pre.in new/sblim-sfcb-1.3.2/sfcb.cfg.pre.in
--- old/sblim-sfcb-1.3.2preview/sfcb.cfg.pre.in 2008-06-27 23:30:30.000000000 +0200
+++ new/sblim-sfcb-1.3.2/sfcb.cfg.pre.in 2008-09-13 01:51:32.000000000 +0200
@@ -1,4 +1,4 @@
-# $Id: sfcb.cfg.pre.in,v 1.11 2008/06/27 21:30:30 buccella Exp $
+# $Id: sfcb.cfg.pre.in,v 1.13 2008/09/12 23:51:32 mchasal Exp $
# Sample Configuration for Small Footprint CIM Broker
httpPort: 5988
enableHttp: @SFCB_CONF_HTTP@
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/sblim-sfcb-1.3.2preview/sfcBroker.c new/sblim-sfcb-1.3.2/sfcBroker.c
--- old/sblim-sfcb-1.3.2preview/sfcBroker.c 2008-06-27 23:30:30.000000000 +0200
+++ new/sblim-sfcb-1.3.2/sfcBroker.c 2008-10-02 18:35:23.000000000 +0200
@@ -587,6 +587,7 @@
case 'd':
daemon(0, 0);
+ currentProc=sfcBrokerPid=getpid(); /* req. on some systems */
break;
case 'h':
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/sblim-sfcb-1.3.2preview/sfcb.spec new/sblim-sfcb-1.3.2/sfcb.spec
--- old/sblim-sfcb-1.3.2preview/sfcb.spec 2008-08-21 02:53:31.000000000 +0200
+++ new/sblim-sfcb-1.3.2/sfcb.spec 2008-10-06 20:17:07.000000000 +0200
@@ -8,7 +8,7 @@
Summary: Small Footprint CIM Broker
Name: sblim-sfcb
-Version: 1.3.2preview
+Version: 1.3.2
Release: 0
Group: Systems Management/Base
License: EPL
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/sblim-sfcb-1.3.2preview/sfcSlpHostname.c new/sblim-sfcb-1.3.2/sfcSlpHostname.c
--- old/sblim-sfcb-1.3.2preview/sfcSlpHostname.c 1970-01-01 01:00:00.000000000 +0100
+++ new/sblim-sfcb-1.3.2/sfcSlpHostname.c 2008-09-05 22:01:56.000000000 +0200
@@ -0,0 +1,45 @@
+
+/*
+ * sfcSlpHostname.c
+ *
+ * (C) Copyright IBM Corp. 2008
+ *
+ * THIS FILE IS PROVIDED UNDER THE TERMS OF THE ECLIPSE PUBLIC LICENSE
+ * ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE
+ * CONSTITUTES RECIPIENTS ACCEPTANCE OF THE AGREEMENT.
+ *
+ * You can obtain a current copy of the Eclipse Public License from
+ * http://www.opensource.org/licenses/eclipse-1.0.php
+ *
+ * Author: Tyrel Datwyler
+ *
+ * Description:
+ *
+ * Obtain custom hostname string to register with SLP DA
+ * This is only a sample of how to write the custom routine
+ * used to provide the hostname. You will need to replace this
+ * with a routine that uses the desired method to obtain the
+ * proper value.
+ *
+*/
+
+
+#include
+#include
+#include
+
+extern int _sfcGetSlpHostname(char **hostname)
+{
+ char *sn;
+ sn = (char *) malloc((strlen("mycimom.com") + 1) * sizeof(char));
+ sn = strncpy(sn, "mycimom.com", strlen("mycimom.com") + 1);
+ if (sn == NULL)
+ return 0;
+
+ printf("-#- Request for custom SLP service hostname: (hostname = %s)\n", sn);
+ *hostname = sn;
+
+ /* Return value of 1 for successs and 0 for failure. */
+ return 1;
+}
+
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org