You can subscribe to this list here.
| 2005 |
Jan
|
Feb
(1) |
Mar
(45) |
Apr
(150) |
May
(145) |
Jun
(150) |
Jul
(79) |
Aug
(313) |
Sep
(160) |
Oct
(309) |
Nov
(115) |
Dec
(60) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2006 |
Jan
(160) |
Feb
(144) |
Mar
(127) |
Apr
(48) |
May
(102) |
Jun
(54) |
Jul
(245) |
Aug
(94) |
Sep
(152) |
Oct
(162) |
Nov
(166) |
Dec
(740) |
| 2007 |
Jan
(752) |
Feb
(437) |
Mar
(328) |
Apr
(373) |
May
(569) |
Jun
(399) |
Jul
(369) |
Aug
(627) |
Sep
(100) |
Oct
(306) |
Nov
(166) |
Dec
(282) |
| 2008 |
Jan
(68) |
Feb
(145) |
Mar
(180) |
Apr
(160) |
May
(277) |
Jun
(229) |
Jul
(1188) |
Aug
(51) |
Sep
(97) |
Oct
(99) |
Nov
(95) |
Dec
(170) |
| 2009 |
Jan
(39) |
Feb
(73) |
Mar
(120) |
Apr
(121) |
May
(104) |
Jun
(262) |
Jul
(57) |
Aug
(171) |
Sep
(131) |
Oct
(88) |
Nov
(64) |
Dec
(83) |
| 2010 |
Jan
(55) |
Feb
(67) |
Mar
(124) |
Apr
(64) |
May
(130) |
Jun
(75) |
Jul
(164) |
Aug
(64) |
Sep
(44) |
Oct
(17) |
Nov
(43) |
Dec
(31) |
| 2011 |
Jan
(21) |
Feb
(10) |
Mar
(43) |
Apr
(46) |
May
(52) |
Jun
(71) |
Jul
(7) |
Aug
(16) |
Sep
(51) |
Oct
(14) |
Nov
(33) |
Dec
(15) |
| 2012 |
Jan
(12) |
Feb
(61) |
Mar
(129) |
Apr
(76) |
May
(70) |
Jun
(52) |
Jul
(29) |
Aug
(41) |
Sep
(32) |
Oct
(23) |
Nov
(38) |
Dec
(26) |
| 2013 |
Jan
(35) |
Feb
(37) |
Mar
(51) |
Apr
(15) |
May
(52) |
Jun
(15) |
Jul
(23) |
Aug
(21) |
Sep
(46) |
Oct
(69) |
Nov
(57) |
Dec
(26) |
| 2014 |
Jan
(5) |
Feb
(13) |
Mar
(17) |
Apr
(1) |
May
(5) |
Jun
|
Jul
(2) |
Aug
(2) |
Sep
(1) |
Oct
(16) |
Nov
(8) |
Dec
(4) |
| 2015 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
(1) |
Jun
(4) |
Jul
|
Aug
(2) |
Sep
|
Oct
|
Nov
|
Dec
|
| 2016 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
|
|
From: Chris B. <buc...@us...> - 2012-03-30 17:56:43
|
Update of /cvsroot/sblim/sfcb
In directory vz-cvs-3.sog:/tmp/cvs-serv15619
Modified Files:
control.c ChangeLog NEWS
Log Message:
[ 3512575 ] Add indication delivery thread limit and timeout
Index: NEWS
===================================================================
RCS file: /cvsroot/sblim/sfcb/NEWS,v
retrieving revision 1.674
retrieving revision 1.675
diff -u -d -r1.674 -r1.675
--- NEWS 30 Mar 2012 02:47:11 -0000 1.674
+++ NEWS 30 Mar 2012 17:56:41 -0000 1.675
@@ -16,6 +16,7 @@
- 3498932 Implement ModifyInstance for CIM_ListenerDestination
- 3367361 Allow for releasing auth handle after CIM request completes
- 3367363 Add CMPIRole Support
+- 3512575 Add indication delivery thread limit and timeout
Bugs fixed:
Index: control.c
===================================================================
RCS file: /cvsroot/sblim/sfcb/control.c,v
retrieving revision 1.42
retrieving revision 1.43
diff -u -d -r1.42 -r1.43
--- control.c 23 Nov 2011 03:24:00 -0000 1.42
+++ control.c 30 Mar 2012 17:56:41 -0000 1.43
@@ -131,6 +131,8 @@
{"DeliveryRetryAttempts",1,"3"},
{"SubscriptionRemovalTimeInterval",1,"2592000"},
{"SubscriptionRemovalAction",1,"2"},
+ {"indicationDeliveryThreadLimit",1,"30"},
+ {"indicationDeliveryThreadTimeout",1,"0"},
};
Index: ChangeLog
===================================================================
RCS file: /cvsroot/sblim/sfcb/ChangeLog,v
retrieving revision 1.753
retrieving revision 1.754
diff -u -d -r1.753 -r1.754
--- ChangeLog 30 Mar 2012 02:47:11 -0000 1.753
+++ ChangeLog 30 Mar 2012 17:56:41 -0000 1.754
@@ -11,6 +11,10 @@
* providerDrv.c:
[ 3408288 ] Safer Signal Handlers
+ * interopProvider.c, providerDrv.c, sfcb.cfg.pre.in,
+ control.c:
+ [ 3512575 ] Add indication delivery thread limit and timeout
+
2012-03-29 Michael Chase-Salerno <br...@li...>
* cimcClientSfcbLocal.c:
|
|
From: Chris B. <buc...@us...> - 2012-03-30 17:13:11
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "SFCB - Small Footprint CIM Broker".
The branch, master has been updated
via df603ba875c0b85ddb5d0272518c4b0e4eda4d28 (commit)
from b583010f97004995ee5d7779df36b741c04e494b (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit df603ba875c0b85ddb5d0272518c4b0e4eda4d28
Author: buccella <buc...@li...>
Date: Fri Mar 30 13:12:56 2012 -0400
removed some debug
-----------------------------------------------------------------------
Summary of changes:
diff --git a/interopProvider.c b/interopProvider.c
index 8f44a21..be285ca 100644
--- a/interopProvider.c
+++ b/interopProvider.c
@@ -1362,7 +1362,6 @@ InteropProviderMethodCleanup(CMPIMethodMI * mi,
void * sendIndForDelivery(void *di) {
_SFCB_ENTER(TRACE_INDPROVIDER, "sendIndForDelivery");
- fprintf(stderr, "thread started %p\n", (void*)pthread_self());
DeliveryInfo* delInfo;
delInfo = (DeliveryInfo*)di;
@@ -1373,7 +1372,6 @@ void * sendIndForDelivery(void *di) {
CMRelease(delInfo->hin);
free(di);
sem_post(&availThreadsSem);
- fprintf(stderr, "thread exiting %p\n", (void*)pthread_self());
pthread_exit(NULL);
}
hooks/post-receive
--
SFCB - Small Footprint CIM Broker
|
|
From: Chris B. <buc...@us...> - 2012-03-30 02:48:41
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "SFCB - Small Footprint CIM Broker".
The branch, master has been updated
via b583010f97004995ee5d7779df36b741c04e494b (commit)
from 9cf0380bbc32b6fed4f0c67c7a831fc2c57b6ceb (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit b583010f97004995ee5d7779df36b741c04e494b
Author: buccella <buc...@li...>
Date: Thu Mar 29 22:48:30 2012 -0400
[ 3416054 ] Provider continues despite SIGSEGV
-----------------------------------------------------------------------
Summary of changes:
diff --git a/ChangeLog b/ChangeLog
index 94876fc..3051bfb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,10 @@
2012-03-29 Chris Buccella <buc...@li...>
- * httpAdapter.c:
+ * providerDrv.c:
+ [ 3416054 ] Provider continues despite SIGSEGV
+ (patch by Klaus Kampf)
+
+ * httpAdapter.c:
[ 3441028 ] sblim-sfcb fails on large https requests
(patch by Klaus Kampf)
diff --git a/NEWS b/NEWS
index 56f9a93..e7cf262 100644
--- a/NEWS
+++ b/NEWS
@@ -128,6 +128,7 @@ Bugs Fixed:
- 3408288 Safer Signal Handlers
- 3487419 TestIndication Provider Does Not Enable Correctly
- 3441028 sblim-sfcb fails on large https requests
+- 3416054 Provider continues despite SIGSEGV
Changes in 1.3.13
=================
diff --git a/contributions.txt b/contributions.txt
index ee42f76..5eccc0a 100644
--- a/contributions.txt
+++ b/contributions.txt
@@ -116,6 +116,7 @@ Klaus Kampf, Novell
09/06/2011 [ 3400114 ] sfcb fails to start with ipv6 disabled
09/30/2011 [ 3416055 ] SIGSEGV sometimes does not print provider name
03/29/2012 [ 3441028 ] sblim-sfcb fails on large https requests
+03/29/2012 [ 3416054 ] Provider continues despite SIGSEGV
Mike Brasher, Inova
-------------------
diff --git a/providerDrv.c b/providerDrv.c
index 5660743..d56eaa4 100644
--- a/providerDrv.c
+++ b/providerDrv.c
@@ -533,7 +533,7 @@ handleSigSegv(int sig)
spSendResult(&threads->requestor, &dmy, err_crash_resp, ecr_len);
threads=threads->next;
}
-
+ abort(); /* force cord dump */
}
static void
hooks/post-receive
--
SFCB - Small Footprint CIM Broker
|
|
From: Chris B. <buc...@us...> - 2012-03-30 02:47:13
|
Update of /cvsroot/sblim/sfcb
In directory vz-cvs-3.sog:/tmp/cvs-serv17760
Modified Files:
providerDrv.c ChangeLog NEWS contributions.txt
Log Message:
[ 3416054 ] Provider continues despite SIGSEGV
Index: NEWS
===================================================================
RCS file: /cvsroot/sblim/sfcb/NEWS,v
retrieving revision 1.673
retrieving revision 1.674
diff -u -d -r1.673 -r1.674
--- NEWS 30 Mar 2012 02:33:43 -0000 1.673
+++ NEWS 30 Mar 2012 02:47:11 -0000 1.674
@@ -64,6 +64,7 @@
- 3505407 Client openlog changes settings
- 3408288 Safer Signal Handlers
- 3441028 sblim-sfcb fails on large https requests
+- 3416054 Provider continues despite SIGSEGV
Changes in 1.3.13
=================
Index: providerDrv.c
===================================================================
RCS file: /cvsroot/sblim/sfcb/providerDrv.c,v
retrieving revision 1.113
retrieving revision 1.114
diff -u -d -r1.113 -r1.114
--- providerDrv.c 29 Mar 2012 21:19:43 -0000 1.113
+++ providerDrv.c 30 Mar 2012 02:47:11 -0000 1.114
@@ -448,7 +448,7 @@
spSendResult(&threads->requestor, &dmy, err_crash_resp, ecr_len);
threads=threads->next;
}
-
+ abort(); /* force a core */
}
static void handleSigUsr1(int sig)
Index: contributions.txt
===================================================================
RCS file: /cvsroot/sblim/sfcb/contributions.txt,v
retrieving revision 1.72
retrieving revision 1.73
diff -u -d -r1.72 -r1.73
--- contributions.txt 30 Mar 2012 02:33:43 -0000 1.72
+++ contributions.txt 30 Mar 2012 02:47:11 -0000 1.73
@@ -115,6 +115,7 @@
06/09/2011 [ 3047562 ] [patch] Create bzip2 tarballs on "make dist"
09/30/2011 [ 3416055 ] SIGSEGV sometimes does not print provider name
03/29/2012 [ 3441028 ] sblim-sfcb fails on large https requests
+03/29/2012 [ 3416054 ] Provider continues despite SIGSEGV
Mike Brasher, Inova
-------------------
Index: ChangeLog
===================================================================
RCS file: /cvsroot/sblim/sfcb/ChangeLog,v
retrieving revision 1.752
retrieving revision 1.753
diff -u -d -r1.752 -r1.753
--- ChangeLog 30 Mar 2012 02:33:43 -0000 1.752
+++ ChangeLog 30 Mar 2012 02:47:11 -0000 1.753
@@ -1,5 +1,9 @@
2012-03-29 Chris Buccella <buc...@li...>
+ * providerDrv.c:
+ [ 3416054 ] Provider continues despite SIGSEGV
+ (patch by Klaus Kaempf)
+
* httpAdapter.c:
[ 3441028 ] sblim-sfcb fails on large https requests
(patch by Klaus Kaempf)
|
|
From: Chris B. <buc...@us...> - 2012-03-30 02:37:29
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "SFCB - Small Footprint CIM Broker".
The branch, master has been updated
via 9cf0380bbc32b6fed4f0c67c7a831fc2c57b6ceb (commit)
from 7c76b1030ba94cc0b09184130eb7700ce59b54d9 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 9cf0380bbc32b6fed4f0c67c7a831fc2c57b6ceb
Author: buccella <buc...@li...>
Date: Thu Mar 29 22:37:21 2012 -0400
[ 3441028 ] sblim-sfcb fails on large https requests
-----------------------------------------------------------------------
Summary of changes:
diff --git a/ChangeLog b/ChangeLog
index 697c5db..94876fc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
2012-03-29 Chris Buccella <buc...@li...>
+ * httpAdapter.c:
+ [ 3441028 ] sblim-sfcb fails on large https requests
+ (patch by Klaus Kampf)
+
* test/TestProviders/cmpiTestIndicationProvider.c:
[ 3487419 ] TestIndication Provider Does Not Enable Correctly
diff --git a/NEWS b/NEWS
index 8a794f2..56f9a93 100644
--- a/NEWS
+++ b/NEWS
@@ -127,6 +127,7 @@ Bugs Fixed:
- 3510456 GetProperty calls not passing keys to providers
- 3408288 Safer Signal Handlers
- 3487419 TestIndication Provider Does Not Enable Correctly
+- 3441028 sblim-sfcb fails on large https requests
Changes in 1.3.13
=================
diff --git a/contributions.txt b/contributions.txt
index 83f0dda..ee42f76 100644
--- a/contributions.txt
+++ b/contributions.txt
@@ -115,6 +115,7 @@ Klaus Kampf, Novell
06/09/2011 [ 3047562 ] [patch] Create bzip2 tarballs on "make dist"
09/06/2011 [ 3400114 ] sfcb fails to start with ipv6 disabled
09/30/2011 [ 3416055 ] SIGSEGV sometimes does not print provider name
+03/29/2012 [ 3441028 ] sblim-sfcb fails on large https requests
Mike Brasher, Inova
-------------------
diff --git a/httpAdapter.c b/httpAdapter.c
index 9bb60bb..b19ad4a 100644
--- a/httpAdapter.c
+++ b/httpAdapter.c
@@ -457,7 +457,12 @@ readData(CommHndl conn_fd, char *into, int length)
FD_SET(conn_fd.socket, &httpfds);
while (c < length) {
- isReady =
+#ifdef USE_SSL
+ if (conn_fd.ssl && SSL_pending(conn_fd.ssl))
+ isReady = 1;
+ else
+#endif
+ isReady =
select(conn_fd.socket + 1, &httpfds, NULL, NULL,
&httpSelectTimeout);
if (isReady == 0) {
hooks/post-receive
--
SFCB - Small Footprint CIM Broker
|
|
From: Chris B. <buc...@us...> - 2012-03-30 02:33:46
|
Update of /cvsroot/sblim/sfcb
In directory vz-cvs-3.sog:/tmp/cvs-serv15960
Modified Files:
httpAdapter.c ChangeLog NEWS contributions.txt
Log Message:
[ 3441028 ] sblim-sfcb fails on large https requests
Index: NEWS
===================================================================
RCS file: /cvsroot/sblim/sfcb/NEWS,v
retrieving revision 1.672
retrieving revision 1.673
diff -u -d -r1.672 -r1.673
--- NEWS 29 Mar 2012 21:19:43 -0000 1.672
+++ NEWS 30 Mar 2012 02:33:43 -0000 1.673
@@ -63,6 +63,7 @@
- 3510456 GetProperty calls not passing keys to providers
- 3505407 Client openlog changes settings
- 3408288 Safer Signal Handlers
+- 3441028 sblim-sfcb fails on large https requests
Changes in 1.3.13
=================
Index: httpAdapter.c
===================================================================
RCS file: /cvsroot/sblim/sfcb/httpAdapter.c,v
retrieving revision 1.102
retrieving revision 1.103
diff -u -d -r1.102 -r1.103
--- httpAdapter.c 13 Mar 2012 15:10:49 -0000 1.102
+++ httpAdapter.c 30 Mar 2012 02:33:43 -0000 1.103
@@ -404,7 +404,13 @@
FD_SET(conn_fd.socket,&httpfds);
while (c < length) {
- isReady = select(conn_fd.socket+1,&httpfds,NULL,NULL,&httpSelectTimeout);
+#ifdef USE_SSL
+ if (conn_fd.ssl && SSL_pending(conn_fd.ssl))
+ isReady = 1;
+ else
+#endif
+ isReady = select(conn_fd.socket+1,&httpfds,NULL,NULL,&httpSelectTimeout);
+
if (isReady == 0) {
c = -1;
break;
Index: contributions.txt
===================================================================
RCS file: /cvsroot/sblim/sfcb/contributions.txt,v
retrieving revision 1.71
retrieving revision 1.72
diff -u -d -r1.71 -r1.72
--- contributions.txt 28 Mar 2012 15:48:12 -0000 1.71
+++ contributions.txt 30 Mar 2012 02:33:43 -0000 1.72
@@ -114,6 +114,7 @@
06/30/2010 [ 2968599 ] Wrong trace msg for invokeMethod (local interface)
06/09/2011 [ 3047562 ] [patch] Create bzip2 tarballs on "make dist"
09/30/2011 [ 3416055 ] SIGSEGV sometimes does not print provider name
+03/29/2012 [ 3441028 ] sblim-sfcb fails on large https requests
Mike Brasher, Inova
-------------------
Index: ChangeLog
===================================================================
RCS file: /cvsroot/sblim/sfcb/ChangeLog,v
retrieving revision 1.751
retrieving revision 1.752
diff -u -d -r1.751 -r1.752
--- ChangeLog 29 Mar 2012 21:19:43 -0000 1.751
+++ ChangeLog 30 Mar 2012 02:33:43 -0000 1.752
@@ -1,5 +1,9 @@
2012-03-29 Chris Buccella <buc...@li...>
+ * httpAdapter.c:
+ [ 3441028 ] sblim-sfcb fails on large https requests
+ (patch by Klaus Kaempf)
+
* providerDrv.c:
[ 3408288 ] Safer Signal Handlers
|
|
From: Chris B. <buc...@us...> - 2012-03-30 02:09:37
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "SFCB - Small Footprint CIM Broker".
The branch, master has been updated
via 7c76b1030ba94cc0b09184130eb7700ce59b54d9 (commit)
from 9dc17f55fdb6f60fadb2933bbf04f3704b4439dd (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 7c76b1030ba94cc0b09184130eb7700ce59b54d9
Author: buccella <buc...@li...>
Date: Thu Mar 29 22:09:31 2012 -0400
[ 3487419 ] TestIndication Provider Does Not Enable Correctly
-----------------------------------------------------------------------
Summary of changes:
diff --git a/ChangeLog b/ChangeLog
index eaffa80..697c5db 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
2012-03-29 Chris Buccella <buc...@li...>
+ * test/TestProviders/cmpiTestIndicationProvider.c:
+ [ 3487419 ] TestIndication Provider Does Not Enable Correctly
+
* providerDrv.c:
[ 3408288 ] Safer Signal Handlers
diff --git a/NEWS b/NEWS
index 48918d8..8a794f2 100644
--- a/NEWS
+++ b/NEWS
@@ -126,6 +126,7 @@ Bugs Fixed:
- 3510458 Malformed XML response to GetProperty
- 3510456 GetProperty calls not passing keys to providers
- 3408288 Safer Signal Handlers
+- 3487419 TestIndication Provider Does Not Enable Correctly
Changes in 1.3.13
=================
diff --git a/test/TestProviders/cmpiTestIndicationProvider.c b/test/TestProviders/cmpiTestIndicationProvider.c
index 3fb872c..0e9a7e5 100644
--- a/test/TestProviders/cmpiTestIndicationProvider.c
+++ b/test/TestProviders/cmpiTestIndicationProvider.c
@@ -116,8 +116,6 @@ CMPIStatus indProvActivateFilter
const CMPISelectExp *exp, const char *clsName,
const CMPIObjectPath * classPath, CMPIBoolean firstActivation) {
fprintf(stderr, "+++ indProvActivateFilter()\n");
- enabled = 1;
- fprintf(stderr, "--- enabled: %d\n", enabled);
CMReturn(CMPI_RC_OK);
}
@@ -126,8 +124,6 @@ CMPIStatus indProvDeActivateFilter
const CMPISelectExp *filter, const char *clsName,
const CMPIObjectPath * classPath, CMPIBoolean lastActivation) {
fprintf(stderr, "+++ indProvDeActivateFilter\n");
- enabled = 0;
- fprintf(stderr, "--- disabled: %d\n", enabled);
CMReturn(CMPI_RC_OK);
}
@@ -135,6 +131,8 @@ CMPIStatus
indProvEnableIndications(CMPIIndicationMI * cThis, const CMPIContext *ctx)
{
fprintf(stderr, "+++ indProvEnableIndications\n");
+ enabled = 1;
+ fprintf(stderr, "--- enabled: %d\n", enabled);
CMReturn(CMPI_RC_OK);
}
@@ -142,6 +140,8 @@ CMPIStatus
indProvDisableIndications(CMPIIndicationMI * cThis, const CMPIContext *ctx)
{
fprintf(stderr, "+++ indProvDisableIndications\n");
+ enabled = 0;
+ fprintf(stderr, "--- disabled: %d\n", enabled);
CMReturn(CMPI_RC_OK);
}
hooks/post-receive
--
SFCB - Small Footprint CIM Broker
|
|
From: Chris B. <buc...@us...> - 2012-03-30 01:55:53
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "SFCB - Small Footprint CIM Broker".
The branch, master has been updated
via 9dc17f55fdb6f60fadb2933bbf04f3704b4439dd (commit)
via 012889dc75df54ff558d2756fe256118900fc233 (commit)
from a1daaf13257360db66b9bef6fc03961d90b4e2ac (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 9dc17f55fdb6f60fadb2933bbf04f3704b4439dd
Author: buccella <buc...@li...>
Date: Thu Mar 29 21:55:46 2012 -0400
[ 3408288 ] Safer Signal Handlers
commit 012889dc75df54ff558d2756fe256118900fc233
Author: buccella <buc...@li...>
Date: Thu Mar 29 21:53:25 2012 -0400
[ 3512575 ] Add indication delivery thread limit and timeout
-----------------------------------------------------------------------
Summary of changes:
diff --git a/ChangeLog b/ChangeLog
index c0af307..eaffa80 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
2012-03-29 Chris Buccella <buc...@li...>
+ * providerDrv.c:
+ [ 3408288 ] Safer Signal Handlers
+
* interopProvider.c, providerDrv.c, control.c, sfcb.cfg.pre.in:
[ 3512575 ] Add indication delivery thread limit and timeout
diff --git a/NEWS b/NEWS
index f730c2e..48918d8 100644
--- a/NEWS
+++ b/NEWS
@@ -125,6 +125,7 @@ Bugs Fixed:
- 3504607 CMPIRole Support in brokerUpc
- 3510458 Malformed XML response to GetProperty
- 3510456 GetProperty calls not passing keys to providers
+- 3408288 Safer Signal Handlers
Changes in 1.3.13
=================
diff --git a/providerDrv.c b/providerDrv.c
index c506947..5660743 100644
--- a/providerDrv.c
+++ b/providerDrv.c
@@ -174,6 +174,10 @@ extern void uninitSocketPairs();
extern void sunsetControl();
extern void uninitGarbageCollector();
+static BinResponseHdr *err_crash_resp; /* holds generic "we crashed" response */
+static long ecr_len;
+static long makeSafeResponse(BinResponseHdr *hdr, BinResponseHdr **out);
+
typedef struct parms {
int requestor;
BinRequestHdr *req;
@@ -520,19 +524,14 @@ static void
handleSigSegv(int sig)
{
Parms *threads = activeThreadsFirst;
- char msg[1024];
- BinResponseHdr *resp;
+ int dmy = -1;
mlogf(M_ERROR, M_SHOW,
"-#- %s - %d provider exiting due to a SIGSEGV signal\n",
processName, currentProc);
while (threads) {
- snprintf(msg, 1023,
- "*** Provider %s(%d) exiting due to a SIGSEGV signal",
- threads->pInfo->providerName, currentProc);
- resp = errorCharsResp(CMPI_RC_ERR_FAILED, msg);
- sendResponse(threads->requestor, resp);
- threads = threads->next;
+ spSendResult(&threads->requestor, &dmy, err_crash_resp, ecr_len);
+ threads=threads->next;
}
}
@@ -1005,6 +1004,13 @@ getProcess(ProviderInfo * info, ProviderProcess ** proc)
_SFCB_ABORT();
}
+ char msg[1024];
+ snprintf(msg,1023, "*** Provider %s(%d) exiting due to a SIGSEGV signal",
+ processName, currentProc);
+ BinResponseHdr* buf = errorCharsResp(CMPI_RC_ERR_FAILED, msg);
+
+ ecr_len = makeSafeResponse(buf, &err_crash_resp);
+
processProviderInvocationRequests(info->providerName);
_SFCB_RETURN(0);
}
@@ -1116,123 +1122,127 @@ typedef struct provHandler {
int requestor);
} ProvHandler;
-static int
-sendResponse(int requestor, BinResponseHdr * hdr)
+static long
+makeSafeResponse(BinResponseHdr* hdr, BinResponseHdr** out)
{
- _SFCB_ENTER(TRACE_PROVIDERDRV, "sendResponse");
- int i,
- rvl = 0,
- ol,
- size,
- dmy = -1;
- long l;
- char str_time[26];
- BinResponseHdr *buf;
+ int i, rvl=0, ol, size;
+ long len;
+ char str_time[26];
+ BinResponseHdr *outHdr = NULL;
size = sizeof(BinResponseHdr) + ((hdr->count - 1) * sizeof(MsgSegment));
if (hdr->rvValue) {
- switch (hdr->rv.type) {
+ switch(hdr->rv.type) {
case CMPI_string:
if (hdr->rv.value.string) {
- if (hdr->rv.value.string->hdl) {
- hdr->rv.value.string = hdr->rv.value.string->hdl;
- } else
- hdr->rv.value.string = NULL;
+ if (hdr->rv.value.string->hdl) {
+ hdr->rv.value.string= hdr->rv.value.string->hdl;
+ }
+ else hdr->rv.value.string=NULL;
}
- hdr->rv.type = CMPI_chars;
+
+ hdr->rv.type=CMPI_chars;
+ /* note: a break statement is NOT missing here... */
case CMPI_chars:
- hdr->rvEnc = setCharsMsgSegment((char *) hdr->rv.value.string);
- rvl = hdr->rvEnc.length;
+ hdr->rvEnc=setCharsMsgSegment((char*)hdr->rv.value.string);
+ rvl=hdr->rvEnc.length;
break;
case CMPI_dateTime:
dateTime2chars(hdr->rv.value.dateTime, NULL, str_time);
- hdr->rvEnc.type = MSG_SEG_CHARS;
- hdr->rvEnc.length = rvl = 26;
- hdr->rvEnc.data = &str_time;
+ hdr->rvEnc.type=MSG_SEG_CHARS;
+ hdr->rvEnc.length=rvl=26;
+ hdr->rvEnc.data=&str_time;
break;
case CMPI_ref:
- mlogf(M_ERROR, M_SHOW, "-#- not supporting refs\n");
+ mlogf(M_ERROR,M_SHOW,"-#- not supporting refs\n");
abort();
- default:;
+ default: ;
}
}
- for (l = size, i = 0; i < hdr->count; i++) {
- /*
- * add padding length to calculation
- */
- l += (hdr->object[i].type ==
- MSG_SEG_CHARS ? PADDED_LEN(hdr->object[i].length) : hdr->
- object[i].length);
+ for (len = size, i = 0; i < hdr->count; i++) {
+ /* add padding length to calculation */
+ len += (hdr->object[i].type == MSG_SEG_CHARS ? PADDED_LEN(hdr->object[i].length) : hdr->object[i].length);
}
- buf = (BinResponseHdr *) malloc(l + rvl + 8);
- memcpy(buf, hdr, size);
+ outHdr = malloc(len +rvl + 8);
+ memcpy(outHdr, hdr, size);
if (rvl) {
ol = hdr->rvEnc.length;
- l = size;
+ len=size;
switch (hdr->rvEnc.type) {
case MSG_SEG_CHARS:
- memcpy(((char *) buf) + l, hdr->rvEnc.data, ol);
- buf->rvEnc.data = (void *) l;
- l += ol;
+ memcpy(((char *) outHdr) + len, hdr->rvEnc.data, ol);
+ outHdr->rvEnc.data = (void *) len;
+ len += ol;
break;
- }
- size = l;
+ }
+ size=len;
}
- for (l = size, i = 0; i < hdr->count; i++) {
+ for (len = size, i = 0; i < hdr->count; i++) {
ol = hdr->object[i].length;
switch (hdr->object[i].type) {
case MSG_SEG_OBJECTPATH:
getSerializedObjectPath((CMPIObjectPath *) hdr->object[i].data,
- ((char *) buf) + l);
- buf->object[i].data = (void *) l;
- l += ol;
+ ((char *) outHdr) + len);
+ outHdr->object[i].data = (void *) len;
+ len += ol;
break;
case MSG_SEG_INSTANCE:
getSerializedInstance((CMPIInstance *) hdr->object[i].data,
- ((char *) buf) + l);
- buf->object[i].data = (void *) l;
- l += ol;
+ ((char *) outHdr) + len);
+ outHdr->object[i].data = (void *) len;
+ len += ol;
break;
case MSG_SEG_CHARS:
- memcpy(((char *) buf) + l, hdr->object[i].data, ol);
- buf->object[i].data = (void *) l;
- buf->object[i].length = PADDED_LEN(ol);
- l += buf->object[i].length;
+ memcpy(((char *) outHdr) + len, hdr->object[i].data, ol);
+ outHdr->object[i].data = (void *) len;
+ outHdr->object[i].length = PADDED_LEN(ol);
+ len += outHdr->object[i].length;
break;
case MSG_SEG_CONSTCLASS:
getSerializedConstClass((CMPIConstClass *) hdr->object[i].data,
- ((char *) buf) + l);
- buf->object[i].data = (void *) l;
- l += ol;
+ ((char *) outHdr) + len);
+ outHdr->object[i].data = (void *) len;
+ len += ol;
break;
case MSG_SEG_ARGS:
getSerializedArgs((CMPIArgs *) hdr->object[i].data,
- ((char *) buf) + l);
- buf->object[i].data = (void *) l;
- l += ol;
+ ((char *) outHdr) + len);
+ outHdr->object[i].data = (void *) len;
+ len += ol;
break;
+
#ifdef HAVE_QUALREP
case MSG_SEG_QUALIFIER:
getSerializedQualifier((CMPIQualifierDecl *) hdr->object[i].data,
- ((char *) buf) + l);
- buf->object[i].data = (void *) l;
- l += ol;
+ ((char *) outHdr) + len);
+ outHdr->object[i].data = (void *) len;
+ len += ol;
break;
#endif
default:
- mlogf(M_ERROR, M_SHOW, "--- bad sendResponse request %d\n",
- hdr->object[i].type);
- _SFCB_ABORT();
+ mlogf(M_ERROR,M_SHOW,"--- bad sendResponse request %d\n", hdr->object[i].type);
+ abort();
}
}
- _SFCB_TRACE(1, ("--- Sending result to %d-%lu",
- requestor, getInode(requestor)));
+ *out = outHdr;
+ return len;
+}
+
+static int sendResponse(int requestor, BinResponseHdr * hdr)
+{
+ _SFCB_ENTER(TRACE_PROVIDERDRV, "sendResponse");
+ int dmy=-1;
+ BinResponseHdr* buf = (void*)&dmy;
+ long l = makeSafeResponse(hdr, &buf);
+
+ _SFCB_TRACE(1, ("--- Sending result %p to %d-%lu size %lu",
+ buf, requestor,getInode(requestor), l));
spSendResult(&requestor, &dmy, buf, l);
free(buf);
diff --git a/sfcb.cfg.pre.in b/sfcb.cfg.pre.in
index be7922a..bd587df 100644
--- a/sfcb.cfg.pre.in
+++ b/sfcb.cfg.pre.in
@@ -278,6 +278,25 @@ sslCiphers: ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH
## Default is 0. If trace mask is set (by any method) the default is 1.
#traceLevel: 0
+##---------------------------- Indications ----------------------------
+
+## Indication provider calls to CBDeliverIndication() cause a thread to spawn
+## which will handle the delivery. This allows CBDeliverIndication() to return
+## without waiting for the delivery to complete. However, spawning an unlimited
+## number of threads will cause increased resource usage. This limit will
+## prevent unlimited thread creation. If the limit is reached, calls to
+## CBDeliverIndication will block.
+## Default is 30
+#indicationDeliveryThreadLimit: 30
+
+## When the indicationDeliveryThreadLimit is reached, delivery requests will
+## block, waiting to create a thread. This timeout allows for the indication
+## to be dropped if a new thread cannot be created within a given time.
+## Note that this dropped indication will not be retried, even if reliable
+## indications support is enabled.
+## Default is 0 (no timeout)
+#indicationDeliveryThreadTimeout: 0
+
##----------------------------Reliable Indications ----------------------------
## Interval between indication retry attempts
## Default is 20 seconds
hooks/post-receive
--
SFCB - Small Footprint CIM Broker
|
|
From: Chris B. <buc...@us...> - 2012-03-29 21:19:47
|
Update of /cvsroot/sblim/sfcb
In directory vz-cvs-3.sog:/tmp/cvs-serv21543
Modified Files:
providerDrv.c ChangeLog NEWS
Log Message:
[ 3408288 ] Safer Signal Handlers
Index: NEWS
===================================================================
RCS file: /cvsroot/sblim/sfcb/NEWS,v
retrieving revision 1.671
retrieving revision 1.672
diff -u -d -r1.671 -r1.672
--- NEWS 29 Mar 2012 14:39:53 -0000 1.671
+++ NEWS 29 Mar 2012 21:19:43 -0000 1.672
@@ -62,6 +62,7 @@
- 3510458 Malformed XML response to GetProperty
- 3510456 GetProperty calls not passing keys to providers
- 3505407 Client openlog changes settings
+- 3408288 Safer Signal Handlers
Changes in 1.3.13
=================
Index: providerDrv.c
===================================================================
RCS file: /cvsroot/sblim/sfcb/providerDrv.c,v
retrieving revision 1.112
retrieving revision 1.113
diff -u -d -r1.112 -r1.113
--- providerDrv.c 29 Mar 2012 15:39:33 -0000 1.112
+++ providerDrv.c 29 Mar 2012 21:19:43 -0000 1.113
@@ -169,6 +169,9 @@
extern void sunsetControl();
extern void uninitGarbageCollector();
+static BinResponseHdr *err_crash_resp; /* holds generic "we crashed" response */
+static long ecr_len;
+static long makeSafeResponse(BinResponseHdr *hdr, BinResponseHdr **out);
typedef struct parms {
int requestor;
@@ -437,17 +440,13 @@
static void handleSigSegv(int sig)
{
Parms *threads=activeThreadsFirst;
- char msg[1024];
- BinResponseHdr *resp;
-
+ int dmy = -1;
+
mlogf(M_ERROR,M_SHOW, "-#- %s - %d provider exiting due to a SIGSEGV signal\n",
processName, currentProc);
while (threads) {
- snprintf(msg,1023, "*** Provider %s(%d) exiting due to a SIGSEGV signal",
- threads->pInfo->providerName, currentProc);
- resp = errorCharsResp(CMPI_RC_ERR_FAILED, msg);
- sendResponse(threads->requestor, resp);
- threads=threads->next;
+ spSendResult(&threads->requestor, &dmy, err_crash_resp, ecr_len);
+ threads=threads->next;
}
}
@@ -870,6 +869,13 @@
_SFCB_ABORT();
}
+ char msg[1024];
+ snprintf(msg,1023, "*** Provider %s(%d) exiting due to a SIGSEGV signal",
+ processName, currentProc);
+ BinResponseHdr* buf = errorCharsResp(CMPI_RC_ERR_FAILED, msg);
+
+ ecr_len = makeSafeResponse(buf, &err_crash_resp);
+
processProviderInvocationRequests(info->providerName);
_SFCB_RETURN(0);
}
@@ -979,122 +985,130 @@
BinResponseHdr *(*handler) (BinRequestHdr *, ProviderInfo * info, int requestor);
} ProvHandler;
+static long makeSafeResponse(BinResponseHdr* hdr, BinResponseHdr** out) {
-static int sendResponse(int requestor, BinResponseHdr * hdr)
-{
- _SFCB_ENTER(TRACE_PROVIDERDRV, "sendResponse");
- int i, rvl=0, ol, size, dmy=-1;
- long l;
- char str_time[26];
- BinResponseHdr *buf;
-
- size = sizeof(BinResponseHdr) + ((hdr->count - 1) * sizeof(MsgSegment));
+ int i, rvl=0, ol, size;
+ long len;
+ char str_time[26];
+ BinResponseHdr *outHdr = NULL;
- if (hdr->rvValue) {
- switch(hdr->rv.type) {
- case CMPI_string:
- if (hdr->rv.value.string) {
- if (hdr->rv.value.string->hdl) {
- hdr->rv.value.string= hdr->rv.value.string->hdl;
- }
- else hdr->rv.value.string=NULL;
- }
- hdr->rv.type=CMPI_chars;
- /* note: a break statement is NOT missing here... */
- case CMPI_chars:
- hdr->rvEnc=setCharsMsgSegment((char*)hdr->rv.value.string);
- rvl=hdr->rvEnc.length;
- break;
- case CMPI_dateTime:
- dateTime2chars(hdr->rv.value.dateTime, NULL, str_time);
- hdr->rvEnc.type=MSG_SEG_CHARS;
- hdr->rvEnc.length=rvl=26;
- hdr->rvEnc.data=&str_time;
- break;
- case CMPI_ref:
- mlogf(M_ERROR,M_SHOW,"-#- not supporting refs\n");
- abort();
- default: ;
+ size = sizeof(BinResponseHdr) + ((hdr->count - 1) * sizeof(MsgSegment));
+
+ if (hdr->rvValue) {
+ switch(hdr->rv.type) {
+ case CMPI_string:
+ if (hdr->rv.value.string) {
+ if (hdr->rv.value.string->hdl) {
+ hdr->rv.value.string= hdr->rv.value.string->hdl;
+ }
+ else hdr->rv.value.string=NULL;
}
- }
+ hdr->rv.type=CMPI_chars;
+ /* note: a break statement is NOT missing here... */
+ case CMPI_chars:
+ hdr->rvEnc=setCharsMsgSegment((char*)hdr->rv.value.string);
+ rvl=hdr->rvEnc.length;
+ break;
+ case CMPI_dateTime:
+ dateTime2chars(hdr->rv.value.dateTime, NULL, str_time);
+ hdr->rvEnc.type=MSG_SEG_CHARS;
+ hdr->rvEnc.length=rvl=26;
+ hdr->rvEnc.data=&str_time;
+ break;
+ case CMPI_ref:
+ mlogf(M_ERROR,M_SHOW,"-#- not supporting refs\n");
+ abort();
+ default: ;
+ }
+ }
- for (l = size, i = 0; i < hdr->count; i++) {
- /* add padding length to calculation */
- l += (hdr->object[i].type == MSG_SEG_CHARS ? PADDED_LEN(hdr->object[i].length) : hdr->object[i].length);
- }
+ for (len = size, i = 0; i < hdr->count; i++) {
+ /* add padding length to calculation */
+ len += (hdr->object[i].type == MSG_SEG_CHARS ? PADDED_LEN(hdr->object[i].length) : hdr->object[i].length);
+ }
- buf = (BinResponseHdr *) malloc(l +rvl + 8);
- memcpy(buf, hdr, size);
+ outHdr = malloc(len +rvl + 8);
+ memcpy(outHdr, hdr, size);
- if (rvl) {
- ol = hdr->rvEnc.length;
- l=size;
- switch (hdr->rvEnc.type) {
- case MSG_SEG_CHARS:
- memcpy(((char *) buf) + l, hdr->rvEnc.data, ol);
- buf->rvEnc.data = (void *) l;
- l += ol;
- break;
- }
- size=l;
- }
+ if (rvl) {
+ ol = hdr->rvEnc.length;
+ len=size;
+ switch (hdr->rvEnc.type) {
+ case MSG_SEG_CHARS:
+ memcpy(((char *) outHdr) + len, hdr->rvEnc.data, ol);
+ outHdr->rvEnc.data = (void *) len;
+ len += ol;
+ break;
+ }
+ size=len;
+ }
- for (l = size, i = 0; i < hdr->count; i++) {
- ol = hdr->object[i].length;
- switch (hdr->object[i].type) {
- case MSG_SEG_OBJECTPATH:
- getSerializedObjectPath((CMPIObjectPath *) hdr->object[i].data,
- ((char *) buf) + l);
- buf->object[i].data = (void *) l;
- l += ol;
- break;
- case MSG_SEG_INSTANCE:
- getSerializedInstance((CMPIInstance *) hdr->object[i].data,
- ((char *) buf) + l);
- buf->object[i].data = (void *) l;
- l += ol;
- break;
- case MSG_SEG_CHARS:
- memcpy(((char *) buf) + l, hdr->object[i].data, ol);
- buf->object[i].data = (void *) l;
- buf->object[i].length = PADDED_LEN(ol);
- l += buf->object[i].length;
- break;
- case MSG_SEG_CONSTCLASS:
- getSerializedConstClass((CMPIConstClass *) hdr->object[i].data,
- ((char *) buf) + l);
- buf->object[i].data = (void *) l;
- l += ol;
- break;
- case MSG_SEG_ARGS:
- getSerializedArgs((CMPIArgs *) hdr->object[i].data,
- ((char *) buf) + l);
- buf->object[i].data = (void *) l;
- l += ol;
- break;
+ for (len = size, i = 0; i < hdr->count; i++) {
+ ol = hdr->object[i].length;
+ switch (hdr->object[i].type) {
+ case MSG_SEG_OBJECTPATH:
+ getSerializedObjectPath((CMPIObjectPath *) hdr->object[i].data,
+ ((char *) outHdr) + len);
+ outHdr->object[i].data = (void *) len;
+ len += ol;
+ break;
+ case MSG_SEG_INSTANCE:
+ getSerializedInstance((CMPIInstance *) hdr->object[i].data,
+ ((char *) outHdr) + len);
+ outHdr->object[i].data = (void *) len;
+ len += ol;
+ break;
+ case MSG_SEG_CHARS:
+ memcpy(((char *) outHdr) + len, hdr->object[i].data, ol);
+ outHdr->object[i].data = (void *) len;
+ outHdr->object[i].length = PADDED_LEN(ol);
+ len += outHdr->object[i].length;
+ break;
+ case MSG_SEG_CONSTCLASS:
+ getSerializedConstClass((CMPIConstClass *) hdr->object[i].data,
+ ((char *) outHdr) + len);
+ outHdr->object[i].data = (void *) len;
+ len += ol;
+ break;
+ case MSG_SEG_ARGS:
+ getSerializedArgs((CMPIArgs *) hdr->object[i].data,
+ ((char *) outHdr) + len);
+ outHdr->object[i].data = (void *) len;
+ len += ol;
+ break;
#ifdef HAVE_QUALREP
- case MSG_SEG_QUALIFIER:
- getSerializedQualifier((CMPIQualifierDecl *) hdr->object[i].data,
- ((char *) buf) + l);
- buf->object[i].data = (void *) l;
- l += ol;
- break;
+ case MSG_SEG_QUALIFIER:
+ getSerializedQualifier((CMPIQualifierDecl *) hdr->object[i].data,
+ ((char *) outHdr) + len);
+ outHdr->object[i].data = (void *) len;
+ len += ol;
+ break;
#endif
- default:
- mlogf(M_ERROR,M_SHOW,"--- bad sendResponse request %d\n", hdr->object[i].type);
- _SFCB_ABORT();
- }
- }
+ default:
+ mlogf(M_ERROR,M_SHOW,"--- bad sendResponse request %d\n", hdr->object[i].type);
+ abort();
+ }
+ }
- _SFCB_TRACE(1, ("--- Sending result to %d-%lu",
- requestor,getInode(requestor)));
+ *out = outHdr;
+ return len;
+}
+
+static int sendResponse(int requestor, BinResponseHdr * hdr)
+{
+ _SFCB_ENTER(TRACE_PROVIDERDRV, "sendResponse");
+ int dmy=-1;
+ BinResponseHdr* buf = (void*)&dmy;
+ long l = makeSafeResponse(hdr, &buf);
+
+ _SFCB_TRACE(1, ("--- Sending result %p to %d-%lu size %lu",
+ buf, requestor,getInode(requestor), l));
spSendResult(&requestor, &dmy, buf, l);
free(buf);
_SFCB_RETURN(0);
}
-
int sendResponseChunk(CMPIArray *r,int requestor, CMPIType type)
{
int i, count;
Index: ChangeLog
===================================================================
RCS file: /cvsroot/sblim/sfcb/ChangeLog,v
retrieving revision 1.750
retrieving revision 1.751
diff -u -d -r1.750 -r1.751
--- ChangeLog 29 Mar 2012 14:39:53 -0000 1.750
+++ ChangeLog 29 Mar 2012 21:19:43 -0000 1.751
@@ -1,3 +1,8 @@
+2012-03-29 Chris Buccella <buc...@li...>
+
+ * providerDrv.c:
+ [ 3408288 ] Safer Signal Handlers
+
2012-03-29 Michael Chase-Salerno <br...@li...>
* cimcClientSfcbLocal.c:
|
|
From: Chris B. <buc...@us...> - 2012-03-29 18:26:20
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "SFCB - Small Footprint CIM Broker".
The branch, master has been updated
via a1daaf13257360db66b9bef6fc03961d90b4e2ac (commit)
from befeb9d217f804a51bd5536fa47a2f833803c18c (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit a1daaf13257360db66b9bef6fc03961d90b4e2ac
Author: buccella <buc...@li...>
Date: Thu Mar 29 14:25:55 2012 -0400
[ 3512575 ] Add indication delivery thread limit and timeout
-----------------------------------------------------------------------
Summary of changes:
diff --git a/ChangeLog b/ChangeLog
index 3740b12..c0af307 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2012-03-29 Chris Buccella <buc...@li...>
+
+ * interopProvider.c, providerDrv.c, control.c, sfcb.cfg.pre.in:
+ [ 3512575 ] Add indication delivery thread limit and timeout
+
2012-03-28 Chris Buccella <buc...@li...>
* cimXmlOps.y:
diff --git a/NEWS b/NEWS
index 7187ff2..f730c2e 100644
--- a/NEWS
+++ b/NEWS
@@ -100,6 +100,7 @@ New Features:
- 3367332 RHOST Support for PAM
- 3367361 Allow for releasing auth handle after CIM request completes
- 3367363 Add CMPIRole Support
+- 3512575 Add indication delivery thread limit and timeout
Bugs Fixed:
diff --git a/control.c b/control.c
index 108d227..3b2e7f3 100644
--- a/control.c
+++ b/control.c
@@ -126,6 +126,8 @@ Control init[] = {
{"DeliveryRetryAttempts",1,"3"},
{"SubscriptionRemovalTimeInterval",1,"2592000"},
{"SubscriptionRemovalAction",1,"2"},
+ {"indicationDeliveryThreadLimit",1,"30"},
+ {"indicationDeliveryThreadTimeout",1,"0"},
};
diff --git a/interopProvider.c b/interopProvider.c
index 84b4cd9..8f44a21 100644
--- a/interopProvider.c
+++ b/interopProvider.c
@@ -37,6 +37,7 @@
#include "objectpath.h"
#include <time.h>
#include "instance.h"
+#include "control.h"
#define LOCALCLASSNAME "InteropProvider"
@@ -87,6 +88,19 @@ static UtilHashTable *filterHt = NULL;
static UtilHashTable *handlerHt = NULL;
static UtilHashTable *subscriptionHt = NULL;
+/* for indication delivery */
+static long MAX_IND_THREADS;
+static long IND_THREAD_TO;
+static sem_t availThreadsSem;
+struct timespec availThreadWait;
+
+typedef struct delivery_info {
+ const CMPIContext* ctx;
+ CMPIObjectPath *hop;
+ CMPIArgs* hin;
+} DeliveryInfo;
+
+
/*
* -------------------------------------------------------------------------
*/
@@ -817,6 +831,10 @@ initInterOp(const CMPIBroker * broker, const CMPIContext *ctx)
}
CMRelease(ctxLocal);
+ getControlNum("indicationDeliveryThreadLimit",&MAX_IND_THREADS);
+ getControlNum("indicationDeliveryThreadTimeout",&IND_THREAD_TO);
+ sem_init(&availThreadsSem, 0, MAX_IND_THREADS);
+
_SFCB_EXIT();
}
@@ -1340,24 +1358,22 @@ InteropProviderMethodCleanup(CMPIMethodMI * mi,
* -------------------------------------------------------------------------
*/
-typedef struct delivery_info {
- const CMPIContext* ctx;
- CMPIObjectPath *hop;
- CMPIArgs* hin;
-} DeliveryInfo;
void * sendIndForDelivery(void *di) {
_SFCB_ENTER(TRACE_INDPROVIDER, "sendIndForDelivery");
+ fprintf(stderr, "thread started %p\n", (void*)pthread_self());
DeliveryInfo* delInfo;
delInfo = (DeliveryInfo*)di;
CBInvokeMethod(_broker,delInfo->ctx,delInfo->hop,"_deliver",delInfo->hin,NULL,NULL);
-
+ sleep(5);
CMRelease((CMPIContext*)delInfo->ctx);
CMRelease(delInfo->hop);
CMRelease(delInfo->hin);
free(di);
+ sem_post(&availThreadsSem);
+ fprintf(stderr, "thread exiting %p\n", (void*)pthread_self());
pthread_exit(NULL);
}
@@ -1438,10 +1454,25 @@ InteropProviderInvokeMethod(CMPIMethodMI * mi,
di->ctx = native_clone_CMPIContext(ctx);
di->hop = CMClone(su->ha->hop, NULL);
di->hin = CMClone(hin, NULL);
-
- pthread_create(&ind_thread, &it_attr,&sendIndForDelivery,(void *) di);
-
- _SFCB_TRACE(1, ("--- invoke handler status: %d", st.rc));
+ if (IND_THREAD_TO > 0) {
+ availThreadWait.tv_sec = time(NULL) + IND_THREAD_TO;
+ while ((sem_timedwait(&availThreadsSem, &availThreadWait)) == -1) {
+ if (errno == ETIMEDOUT) {
+ mlogf(M_ERROR,M_SHOW,"Timedout waiting to create indication delivery thread; dropping indication\n");
+ break;
+ }
+ else /* probably EINTR */
+ continue;
+ }
+ }
+ else {
+ sem_wait(&availThreadsSem);
+ }
+ int pcrc = pthread_create(&ind_thread, &it_attr,&sendIndForDelivery,(void *) di);
+
+ _SFCB_TRACE(1,("--- indication delivery thread status: %d", pcrc));
+ if (pcrc)
+ mlogf(M_ERROR,M_SHOW,"pthread_create() failed for indication delivery thread\n");
}
}
}
diff --git a/providerDrv.c b/providerDrv.c
index a198e81..c506947 100644
--- a/providerDrv.c
+++ b/providerDrv.c
@@ -3561,9 +3561,12 @@ processProviderInvocationRequests(char *name)
if (parms->req->operation == OPS_LoadProvider || debugMode) {
processProviderInvocationRequestsThread(parms);
} else {
- pthread_create(&t, &tattr, (void *(*)(void *))
- processProviderInvocationRequestsThread,
- (void *) parms);
+ int pcrc = pthread_create(&t, &tattr, (void *(*)(void *))
+ processProviderInvocationRequestsThread,
+ (void *) parms);
+ if (pcrc)
+ mlogf(M_ERROR,M_SHOW,"pthread_create() failed for handling provider request\n");
+
}
} else {
free(parms);
hooks/post-receive
--
SFCB - Small Footprint CIM Broker
|
|
From: Chris B. <buc...@us...> - 2012-03-29 15:39:36
|
Update of /cvsroot/sblim/sfcb
In directory vz-cvs-3.sog:/tmp/cvs-serv19647
Modified Files:
interopProvider.c providerDrv.c sfcb.cfg.pre.in
Log Message:
[ 3512575 ] Add indication delivery thread limit and timeout
Index: sfcb.cfg.pre.in
===================================================================
RCS file: /cvsroot/sblim/sfcb/sfcb.cfg.pre.in,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -d -r1.30 -r1.31
--- sfcb.cfg.pre.in 4 Feb 2012 01:03:31 -0000 1.30
+++ sfcb.cfg.pre.in 29 Mar 2012 15:39:33 -0000 1.31
@@ -256,6 +256,25 @@
## Default is 0. If trace mask is set (by any method) the default is 1.
#traceLevel: 0
+##---------------------------- Indications ----------------------------
+
+## Indication provider calls to CBDeliverIndication() cause a thread to spawn
+## which will handle the delivery. This allows CBDeliverIndication() to return
+## without waiting for the delivery to complete. However, spawning an unlimited
+## number of threads will cause increased resource usage. This limit will
+## prevent unlimited thread creation. If the limit is reached, calls to
+## CBDeliverIndication will block.
+## Default is 30
+#indicationDeliveryThreadLimit: 30
+
+## When the indicationDeliveryThreadLimit is reached, delivery requests will
+## block, waiting to create a thread. This timeout allows for the indication
+## to be dropped if a new thread cannot be created within a given time.
+## Note that this dropped indication will not be retried, even if reliable
+## indications support is enabled.
+## Default is 0 (no timeout)
+#indicationDeliveryThreadTimeout: 0
+
##----------------------------Reliable Indications ----------------------------
## Interval between indication retry attempts
## Default is 20 seconds
Index: interopProvider.c
===================================================================
RCS file: /cvsroot/sblim/sfcb/interopProvider.c,v
retrieving revision 1.57
retrieving revision 1.58
diff -u -d -r1.57 -r1.58
--- interopProvider.c 29 Mar 2012 13:57:10 -0000 1.57
+++ interopProvider.c 29 Mar 2012 15:39:33 -0000 1.58
@@ -86,6 +86,18 @@
static UtilHashTable *handlerHt = NULL;
static UtilHashTable *subscriptionHt = NULL;
+/* for indication delivery */
+static long MAX_IND_THREADS;
+static long IND_THREAD_TO;
+static sem_t availThreadsSem;
+struct timespec availThreadWait;
+
+typedef struct delivery_info {
+ const CMPIContext* ctx;
+ CMPIObjectPath *hop;
+ CMPIArgs* hin;
+} DeliveryInfo;
+
/* ------------------------------------------------------------------------- */
static int interOpNameSpace(
@@ -760,7 +772,11 @@
CMRelease(enm);
}
CMRelease(ctxLocal);
-
+
+ getControlNum("indicationDeliveryThreadLimit",&MAX_IND_THREADS);
+ getControlNum("indicationDeliveryThreadTimeout",&IND_THREAD_TO);
+ sem_init(&availThreadsSem, 0, MAX_IND_THREADS);
+
_SFCB_EXIT();
}
@@ -1241,12 +1257,6 @@
_SFCB_RETURN(st);
}
-typedef struct delivery_info {
- const CMPIContext* ctx;
- CMPIObjectPath *hop;
- CMPIArgs* hin;
-} DeliveryInfo;
-
void * sendIndForDelivery(void *di) {
_SFCB_ENTER(TRACE_INDPROVIDER, "sendIndForDelivery");
@@ -1259,6 +1269,7 @@
CMRelease(delInfo->hop);
CMRelease(delInfo->hin);
free(di);
+ sem_post(&availThreadsSem);
pthread_exit(NULL);
}
@@ -1334,9 +1345,25 @@
di->hop = CMClone(su->ha->hop, NULL);
di->hin = CMClone(hin, NULL);
- pthread_create(&ind_thread, &it_attr,&sendIndForDelivery,(void *) di);
+ if (IND_THREAD_TO > 0) {
+ availThreadWait.tv_sec = time(NULL) + IND_THREAD_TO;
+ while ((sem_timedwait(&availThreadsSem, &availThreadWait)) == -1) {
+ if (errno == ETIMEDOUT) {
+ mlogf(M_ERROR,M_SHOW,"Timedout waiting to create indication delivery thread; dropping indication\n");
+ break;
+ }
+ else /* probably EINTR */
+ continue;
+ }
+ }
+ else {
+ sem_wait(&availThreadsSem);
+ }
+ int pcrc = pthread_create(&ind_thread, &it_attr,&sendIndForDelivery,(void *) di);
+ _SFCB_TRACE(1,("--- indication delivery thread status: %d", pcrc));
+ if (pcrc)
+ mlogf(M_ERROR,M_SHOW,"pthread_create() failed for indication delivery thread\n");
- _SFCB_TRACE(1,("--- invoke handler status: %d",st.rc));
}
}
}
@@ -1383,7 +1410,7 @@
_SFCB_TRACE(1,("--- Invalid request method: %s",methodName));
setStatus(&st, CMPI_RC_ERR_METHOD_NOT_FOUND, "Invalid request method");
}
-
+
_SFCB_RETURN(st);
}
Index: providerDrv.c
===================================================================
RCS file: /cvsroot/sblim/sfcb/providerDrv.c,v
retrieving revision 1.111
retrieving revision 1.112
diff -u -d -r1.111 -r1.112
--- providerDrv.c 26 Mar 2012 18:32:25 -0000 1.111
+++ providerDrv.c 29 Mar 2012 15:39:33 -0000 1.112
@@ -3113,8 +3113,11 @@
processProviderInvocationRequestsThread(parms);
}
else {
- pthread_create(&t, &tattr, (void *(*)(void *))
+ int pcrc = pthread_create(&t, &tattr, (void *(*)(void *))
processProviderInvocationRequestsThread, (void *) parms);
+ if (pcrc)
+ mlogf(M_ERROR,M_SHOW,"pthread_create() failed for handling provider request\n");
+
}
}
else {
|
|
From: Michael Chase-S. <mc...@us...> - 2012-03-29 14:39:55
|
Update of /cvsroot/sblim/sfcb
In directory vz-cvs-3.sog:/tmp/cvs-serv12046
Modified Files:
ChangeLog NEWS cimcClientSfcbLocal.c
Log Message:
[ 3505407 ] Client openlog changes settings
Index: NEWS
===================================================================
RCS file: /cvsroot/sblim/sfcb/NEWS,v
retrieving revision 1.670
retrieving revision 1.671
diff -u -d -r1.670 -r1.671
--- NEWS 28 Mar 2012 15:48:12 -0000 1.670
+++ NEWS 29 Mar 2012 14:39:53 -0000 1.671
@@ -61,6 +61,7 @@
- 3512425 SequenceContext needs to be set at startup
- 3510458 Malformed XML response to GetProperty
- 3510456 GetProperty calls not passing keys to providers
+- 3505407 Client openlog changes settings
Changes in 1.3.13
=================
Index: cimcClientSfcbLocal.c
===================================================================
RCS file: /cvsroot/sblim/sfcb/cimcClientSfcbLocal.c,v
retrieving revision 1.45
retrieving revision 1.46
diff -u -d -r1.45 -r1.46
--- cimcClientSfcbLocal.c 12 Mar 2012 22:30:52 -0000 1.45
+++ cimcClientSfcbLocal.c 29 Mar 2012 14:39:53 -0000 1.46
@@ -2043,8 +2043,6 @@
ClientEnv *env = (ClientEnv*)malloc(sizeof(ClientEnv));
env->hdl=NULL;
env->ft=&localFT;
- // enable logging when called from sfcc
- startLogging(LOG_ERR,0);
// enable trace logging
_SFCB_TRACE_INIT();
Index: ChangeLog
===================================================================
RCS file: /cvsroot/sblim/sfcb/ChangeLog,v
retrieving revision 1.749
retrieving revision 1.750
diff -u -d -r1.749 -r1.750
--- ChangeLog 29 Mar 2012 13:57:09 -0000 1.749
+++ ChangeLog 29 Mar 2012 14:39:53 -0000 1.750
@@ -1,5 +1,10 @@
2012-03-29 Michael Chase-Salerno <br...@li...>
+ * cimcClientSfcbLocal.c:
+ [ 3505407 ] Client openlog changes settings
+
+2012-03-29 Michael Chase-Salerno <br...@li...>
+
* interopProvider.c:
[ 3512425 ] SequenceContext needs to be set at startup
(fixed compiler warning)
|
|
From: Michael Chase-S. <mc...@us...> - 2012-03-29 13:57:12
|
Update of /cvsroot/sblim/sfcb
In directory vz-cvs-3.sog:/tmp/cvs-serv9282
Modified Files:
ChangeLog interopProvider.c
Log Message:
[ 3512425 ] SequenceContext needs to be set at startup
(fixed compiler warning)
Index: interopProvider.c
===================================================================
RCS file: /cvsroot/sblim/sfcb/interopProvider.c,v
retrieving revision 1.56
retrieving revision 1.57
diff -u -d -r1.56 -r1.57
--- interopProvider.c 28 Mar 2012 15:27:38 -0000 1.56
+++ interopProvider.c 29 Mar 2012 13:57:10 -0000 1.57
@@ -738,7 +738,6 @@
addHandler(ci,cop);
}
CMRelease(enm);
- free(context);
}
_SFCB_TRACE(1,("--- checking for cim_indicationsubscription"));
op=CMNewObjectPath(broker,"root/interop","cim_indicationsubscription",&st);
Index: ChangeLog
===================================================================
RCS file: /cvsroot/sblim/sfcb/ChangeLog,v
retrieving revision 1.748
retrieving revision 1.749
diff -u -d -r1.748 -r1.749
--- ChangeLog 28 Mar 2012 15:48:12 -0000 1.748
+++ ChangeLog 29 Mar 2012 13:57:09 -0000 1.749
@@ -1,3 +1,9 @@
+2012-03-29 Michael Chase-Salerno <br...@li...>
+
+ * interopProvider.c:
+ [ 3512425 ] SequenceContext needs to be set at startup
+ (fixed compiler warning)
+
2012-03-28 Chris Buccella <buc...@li...>
* cimXmlRequest.c:
|
|
From: Chris B. <buc...@us...> - 2012-03-28 16:06:17
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "SFCB - Small Footprint CIM Broker".
The branch, master has been updated
via befeb9d217f804a51bd5536fa47a2f833803c18c (commit)
via 258fd679beb5f382e3f20d866fc13c26a39267f0 (commit)
from 56496a5d8e82c3053409f1060f3c1c3fa5baa2af (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit befeb9d217f804a51bd5536fa47a2f833803c18c
Author: buccella <buc...@li...>
Date: Wed Mar 28 12:06:07 2012 -0400
[ 3510456 ] GetProperty calls not passing keys to providers
commit 258fd679beb5f382e3f20d866fc13c26a39267f0
Author: buccella <buc...@li...>
Date: Wed Mar 28 12:00:02 2012 -0400
[ 3510458 ] Malformed XML response to GetProperty
-----------------------------------------------------------------------
Summary of changes:
diff --git a/ChangeLog b/ChangeLog
index b8973c9..3740b12 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2012-03-28 Chris Buccella <buc...@li...>
+
+ * cimXmlOps.y:
+ [ 3510456 ] GetProperty calls not passing keys to providers
+ (patch by Zane Bitter)
+
+ * cimRequest.c:
+ [ 3510458 ] Malformed XML response to GetProperty
+ (patch by Zane Bitter)
+
2012-03-16 Dave Heller <hel...@us...>
* control.c, indCIMXMLExport.c, sfcb.cfg.pre.in:
diff --git a/NEWS b/NEWS
index 7abe185..7187ff2 100644
--- a/NEWS
+++ b/NEWS
@@ -122,6 +122,8 @@ Bugs Fixed:
- 3499930 Check file repository writes
- 3457460 PAM_RHOST set wrong
- 3504607 CMPIRole Support in brokerUpc
+- 3510458 Malformed XML response to GetProperty
+- 3510456 GetProperty calls not passing keys to providers
Changes in 1.3.13
=================
diff --git a/cimRequest.c b/cimRequest.c
index 9f0e0b7..44da6f5 100644
--- a/cimRequest.c
+++ b/cimRequest.c
@@ -1460,7 +1460,6 @@ getProperty(CimRequestContext * ctx, RequestHdr * hdr)
CMPIInstance *inst;
CMPIData data;
UtilStringBuffer *sb;
- CMPIString *tmpString = NewCMPIString(NULL, NULL);
int irc;
BinResponseHdr *resp;
RespSegments rsegs;
@@ -1479,9 +1478,7 @@ getProperty(CimRequestContext * ctx, RequestHdr * hdr)
inst = relocateSerializedInstance(resp->object[0].data);
sb = UtilFactory->newStrinBuffer(1024);
data = inst->ft->getProperty(inst, req->name, NULL);
- data2xml(&data, NULL, tmpString, NULL, NULL, 0, NULL, 0, sb, NULL, 0,
- 0);
- CMRelease(tmpString);
+ value2xml(data, sb, 1);
rsegs = iMethodResponse(hdr, sb);
if (resp) {
free(resp);
@@ -1495,11 +1492,9 @@ getProperty(CimRequestContext * ctx, RequestHdr * hdr)
if (resp) {
free(resp);
}
- CMRelease(tmpString);
free(hdr->binCtx->bHdr);
_SFCB_RETURN(rs);
}
- CMRelease(tmpString);
free(hdr->binCtx->bHdr);
closeProviderContext(hdr->binCtx);
diff --git a/cimXmlOps.y b/cimXmlOps.y
index 1891cbd..2903c31 100644
--- a/cimXmlOps.y
+++ b/cimXmlOps.y
@@ -1065,6 +1065,7 @@ buildGetPropertyRequest(void *parm)
GetPropertyReq *sreq;//BINREQ(OPS_GetProperty, 3);
RequestHdr *hdr = &(((ParserControl *)parm)->reqHdr);
BinRequestContext *binCtx = hdr->binCtx;
+ int i, m;
_SFCB_ENTER(TRACE_CIMXMLPROC, "buildGetPropertyRequest");
@@ -1075,6 +1076,16 @@ buildGetPropertyRequest(void *parm)
path =
TrackedCMPIObjectPath(req->op.nameSpace.data,
req->instanceName.className, &rc);
+ for (i = 0, m = req->instanceName.bindings.next; i < m; i++) {
+ CMPIType type;
+ CMPIValue val, *valp;
+
+ valp = getKeyValueTypePtr(req->instanceName.bindings.keyBindings[i].type,
+ req->instanceName.bindings.keyBindings[i].value,
+ &req->instanceName.bindings.keyBindings[i].ref,
+ &val, &type, req->op.nameSpace.data);
+ CMAddKey(path, req->instanceName.bindings.keyBindings[i].name, valp, type);
+ }
sreq = calloc(1, sizeof(*sreq));
sreq->hdr.operation = OPS_GetProperty;
diff --git a/contributions.txt b/contributions.txt
index 90663e0..83f0dda 100644
--- a/contributions.txt
+++ b/contributions.txt
@@ -198,3 +198,8 @@ Josef Moellers
Santosh Bidaralli, Dell
-----------------------
06/22/2011 [ 3324578 ] getInstance() up call does not close provider context
+
+Zane Bitter, Red Hat
+--------------------
+03/28/2012 [ 3510458 ] Malformed XML response to GetProperty
+03/28/2012 [ 3510456 ] GetProperty calls not passing keys to providers
hooks/post-receive
--
SFCB - Small Footprint CIM Broker
|
|
From: Chris B. <buc...@us...> - 2012-03-28 15:48:14
|
Update of /cvsroot/sblim/sfcb
In directory vz-cvs-3.sog:/tmp/cvs-serv1552
Modified Files:
cimXmlRequest.c ChangeLog NEWS contributions.txt
Log Message:
[ 3510456 ] GetProperty calls not passing keys to providers
Index: NEWS
===================================================================
RCS file: /cvsroot/sblim/sfcb/NEWS,v
retrieving revision 1.669
retrieving revision 1.670
diff -u -d -r1.669 -r1.670
--- NEWS 28 Mar 2012 15:44:30 -0000 1.669
+++ NEWS 28 Mar 2012 15:48:12 -0000 1.670
@@ -60,6 +60,7 @@
- 3498496 sfcb hangs and fails to respond to CIM requests
- 3512425 SequenceContext needs to be set at startup
- 3510458 Malformed XML response to GetProperty
+- 3510456 GetProperty calls not passing keys to providers
Changes in 1.3.13
=================
Index: cimXmlRequest.c
===================================================================
RCS file: /cvsroot/sblim/sfcb/cimXmlRequest.c,v
retrieving revision 1.69
retrieving revision 1.70
diff -u -d -r1.69 -r1.70
--- cimXmlRequest.c 28 Mar 2012 15:44:30 -0000 1.69
+++ cimXmlRequest.c 28 Mar 2012 15:48:12 -0000 1.70
@@ -2238,7 +2238,7 @@
CMPIData data;
CMPIStatus rc;
UtilStringBuffer *sb;
- int irc;
+ int irc, i, m;
BinRequestContext binCtx;
BinResponseHdr *resp;
RespSegments rsegs;
@@ -2249,6 +2249,16 @@
hdr->className=req->op.className.data;
path = TrackedCMPIObjectPath(req->op.nameSpace.data, req->instanceName.className, &rc);
+ for (i = 0, m = req->instanceName.bindings.next; i < m; i++) {
+ CMPIType type;
+ CMPIValue val, *valp;
+
+ valp = getKeyValueTypePtr(req->instanceName.bindings.keyBindings[i].type,
+ req->instanceName.bindings.keyBindings[i].value,
+ &req->instanceName.bindings.keyBindings[i].ref,
+ &val, &type, req->op.nameSpace.data);
+ CMAddKey(path, req->instanceName.bindings.keyBindings[i].name, valp, type);
+ }
sreq.principal = setCharsMsgSegment(ctx->principal);
sreq.path = setObjectPathMsgSegment(path);
Index: contributions.txt
===================================================================
RCS file: /cvsroot/sblim/sfcb/contributions.txt,v
retrieving revision 1.70
retrieving revision 1.71
diff -u -d -r1.70 -r1.71
--- contributions.txt 28 Mar 2012 15:44:30 -0000 1.70
+++ contributions.txt 28 Mar 2012 15:48:12 -0000 1.71
@@ -198,3 +198,4 @@
Zane Bitter, Red Hat
--------------------
03/28/2012 [ 3510458 ] Malformed XML response to GetProperty
+03/28/2012 [ 3510456 ] GetProperty calls not passing keys to providers
Index: ChangeLog
===================================================================
RCS file: /cvsroot/sblim/sfcb/ChangeLog,v
retrieving revision 1.747
retrieving revision 1.748
diff -u -d -r1.747 -r1.748
--- ChangeLog 28 Mar 2012 15:44:30 -0000 1.747
+++ ChangeLog 28 Mar 2012 15:48:12 -0000 1.748
@@ -1,6 +1,10 @@
2012-03-28 Chris Buccella <buc...@li...>
* cimXmlRequest.c:
+ [ 3510456 ] GetProperty calls not passing keys to providers
+ (patch by Zane Bitter)
+
+ * cimXmlRequest.c:
[ 3510458 ] Malformed XML response to GetProperty
(patch by Zane Bitter)
|
|
From: Chris B. <buc...@us...> - 2012-03-28 15:44:34
|
Update of /cvsroot/sblim/sfcb
In directory vz-cvs-3.sog:/tmp/cvs-serv1448
Modified Files:
cimXmlRequest.c ChangeLog NEWS contributions.txt
Log Message:
[ 3510458 ] Malformed XML response to GetProperty
Index: NEWS
===================================================================
RCS file: /cvsroot/sblim/sfcb/NEWS,v
retrieving revision 1.668
retrieving revision 1.669
diff -u -d -r1.668 -r1.669
--- NEWS 28 Mar 2012 15:27:38 -0000 1.668
+++ NEWS 28 Mar 2012 15:44:30 -0000 1.669
@@ -59,6 +59,7 @@
- 3506306 Fix count for InvokeMethod requests
- 3498496 sfcb hangs and fails to respond to CIM requests
- 3512425 SequenceContext needs to be set at startup
+- 3510458 Malformed XML response to GetProperty
Changes in 1.3.13
=================
Index: cimXmlRequest.c
===================================================================
RCS file: /cvsroot/sblim/sfcb/cimXmlRequest.c,v
retrieving revision 1.68
retrieving revision 1.69
diff -u -d -r1.68 -r1.69
--- cimXmlRequest.c 26 Mar 2012 19:39:36 -0000 1.68
+++ cimXmlRequest.c 28 Mar 2012 15:44:30 -0000 1.69
@@ -2238,7 +2238,6 @@
CMPIData data;
CMPIStatus rc;
UtilStringBuffer *sb;
- CMPIString *tmpString = NewCMPIString(NULL, NULL);
int irc;
BinRequestContext binCtx;
BinResponseHdr *resp;
@@ -2276,8 +2275,7 @@
inst = relocateSerializedInstance(resp->object[0].data);
sb = UtilFactory->newStrinBuffer(1024);
data = inst->ft->getProperty(inst, req->name, NULL);
- data2xml(&data, NULL, tmpString, NULL, NULL, 0, NULL, 0, sb, NULL, 0, 0);
- CMRelease(tmpString);
+ value2xml(data, sb, 1);
rsegs=iMethodResponse(hdr, sb);
if (resp) {
free(resp);
@@ -2289,10 +2287,8 @@
if (resp) {
free(resp);
}
- CMRelease(tmpString);
_SFCB_RETURN(rs);
}
- CMRelease(tmpString);
closeProviderContext(&binCtx);
_SFCB_RETURN(ctxErrResponse(hdr, &binCtx,0));
Index: contributions.txt
===================================================================
RCS file: /cvsroot/sblim/sfcb/contributions.txt,v
retrieving revision 1.69
retrieving revision 1.70
diff -u -d -r1.69 -r1.70
--- contributions.txt 30 Sep 2011 17:14:05 -0000 1.69
+++ contributions.txt 28 Mar 2012 15:44:30 -0000 1.70
@@ -194,3 +194,7 @@
Santosh Bidaralli, Dell
-----------------------
06/22/2011 [ 3324578 ] getInstance() up call does not close provider context
+
+Zane Bitter, Red Hat
+--------------------
+03/28/2012 [ 3510458 ] Malformed XML response to GetProperty
Index: ChangeLog
===================================================================
RCS file: /cvsroot/sblim/sfcb/ChangeLog,v
retrieving revision 1.746
retrieving revision 1.747
diff -u -d -r1.746 -r1.747
--- ChangeLog 28 Mar 2012 15:27:38 -0000 1.746
+++ ChangeLog 28 Mar 2012 15:44:30 -0000 1.747
@@ -1,3 +1,9 @@
+2012-03-28 Chris Buccella <buc...@li...>
+
+ * cimXmlRequest.c:
+ [ 3510458 ] Malformed XML response to GetProperty
+ (patch by Zane Bitter)
+
2012-03-28 Michael Chase-Salerno <br...@li...>
* interopProvider.c:
|
|
From: Michael Chase-S. <mc...@us...> - 2012-03-28 15:27:41
|
Update of /cvsroot/sblim/sfcb
In directory vz-cvs-3.sog:/tmp/cvs-serv32679
Modified Files:
ChangeLog NEWS interopProvider.c
Log Message:
3512425 SequenceContext needs to be set at startup
Index: NEWS
===================================================================
RCS file: /cvsroot/sblim/sfcb/NEWS,v
retrieving revision 1.667
retrieving revision 1.668
diff -u -d -r1.667 -r1.668
--- NEWS 26 Mar 2012 18:32:51 -0000 1.667
+++ NEWS 28 Mar 2012 15:27:38 -0000 1.668
@@ -58,6 +58,7 @@
- 3504607 CMPIRole Support in brokerUpc
- 3506306 Fix count for InvokeMethod requests
- 3498496 sfcb hangs and fails to respond to CIM requests
+- 3512425 SequenceContext needs to be set at startup
Changes in 1.3.13
=================
Index: interopProvider.c
===================================================================
RCS file: /cvsroot/sblim/sfcb/interopProvider.c,v
retrieving revision 1.55
retrieving revision 1.56
diff -u -d -r1.55 -r1.56
--- interopProvider.c 7 Mar 2012 20:59:42 -0000 1.55
+++ interopProvider.c 28 Mar 2012 15:27:38 -0000 1.56
@@ -38,6 +38,7 @@
#include "objectpath.h"
#include <time.h>
#include "instance.h"
+#include "control.h"
#define LOCALCLASSNAME "InteropProvider"
@@ -703,12 +704,33 @@
enm = _broker->bft->enumerateInstances(_broker, ctx, op, NULL, &st);
if(enm) {
+ // Get the IndicationService name for SequenceContext migration
+ CMPIObjectPath * isop = CMNewObjectPath(_broker, "root/interop", "CIM_IndicationService", NULL);
+ CMPIEnumeration * isenm = _broker->bft->enumerateInstances(_broker, ctx, isop, NULL, NULL);
+ CMPIData isinst = CMGetNext(isenm, NULL);
+ CMPIData mc = CMGetProperty(isinst.value.inst, "Name", NULL);
+ CMPIData ld;
+ // Loop through all the listeners
+ int ldcount=0;
+ char context[100];
while(enm->ft->hasNext(enm, &st) && (ci=(enm->ft->getNext(enm, &st)).value.inst)) {
cop=CMGetObjectPath(ci,&st);
-
if (RIEnabled) {
- // Reset the sequence numbers on sfcb restart
+ // check and set context for migrated listeners.
CMPIInstance *ldi = _broker->bft->getInstance(_broker, ctxLocal, cop, NULL, NULL);
+ ld = CMGetProperty(ldi, "SequenceContext", NULL);
+ if (ld.state != CMPI_goodValue) {
+ _SFCB_TRACE(1,("--- adding SequenceContext to migrated cim_listenerdestination"));
+ // build and set the context string, we can't know the actual creation
+ // time, so just use SFCB start time + index.
+ ldcount++;
+ sprintf (context,"%s#%sM%d#",mc.value.string->ft->getCharPtr(mc.value.string,NULL),sfcBrokerStart,ldcount);
+ CMPIValue scontext;
+ scontext.string = sfcb_native_new_CMPIString(context, NULL, 0);
+ CMSetProperty(ldi, "SequenceContext", &scontext, CMPI_string);
+ }
+
+ // Reset the sequence numbers on sfcb restart
CMPIValue zarro = {.sint64 = -1 };
CMSetProperty(ldi, "LastSequenceNumber", &zarro, CMPI_sint64);
CBModifyInstance(_broker, ctxLocal, cop, ldi, NULL);
@@ -716,6 +738,7 @@
addHandler(ci,cop);
}
CMRelease(enm);
+ free(context);
}
_SFCB_TRACE(1,("--- checking for cim_indicationsubscription"));
op=CMNewObjectPath(broker,"root/interop","cim_indicationsubscription",&st);
Index: ChangeLog
===================================================================
RCS file: /cvsroot/sblim/sfcb/ChangeLog,v
retrieving revision 1.745
retrieving revision 1.746
diff -u -d -r1.745 -r1.746
--- ChangeLog 26 Mar 2012 18:33:08 -0000 1.745
+++ ChangeLog 28 Mar 2012 15:27:38 -0000 1.746
@@ -1,3 +1,8 @@
+2012-03-28 Michael Chase-Salerno <br...@li...>
+
+ * interopProvider.c:
+ [ 3512425 ] SequenceContext needs to be set at startup
+
2012-03-26 Narasimha Sharoff <nsh...@us...>
* providerDrv.c:
|
Update of /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/cimxml/sax/node
In directory vz-cvs-3.sog:/tmp/cvs-serv30703/src/org/sblim/cimclient/internal/cimxml/sax/node
Modified Files:
Tag: Experimental
ValueObjectWithPathNode.java QualifiedNodeHandler.java
MultiExpReqNode.java ExpMethodCallNode.java
AbstractMethodCallNode.java InstancePathNode.java
QualiDeclNode.java IMethodResponseNode.java
MultiExpRspNode.java SimpleExpReqNode.java
IReturnValueNode.java MultiReqNode.java MultiRspNode.java
MethodResponseNode.java ValueObjectWithLocalPathNode.java
ExpParamValueNode.java ClassPathNode.java
ValueReferenceNode.java ExpMethodResponseNode.java
NameSpacePathNode.java SimpleReqNode.java MessageNode.java
CIMNode.java SimpleExpRspNode.java SimpleRspNode.java
LocalInstancePathNode.java ValueRefArrayNode.java
Log Message:
3511454 - SAX nodes not reinitialized properly
Index: SimpleExpRspNode.java
===================================================================
RCS file: /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/cimxml/sax/node/SimpleExpRspNode.java,v
retrieving revision 1.1.2.8
retrieving revision 1.1.2.9
diff -u -d -r1.1.2.8 -r1.1.2.9
--- SimpleExpRspNode.java 1 Jun 2009 17:01:10 -0000 1.1.2.8
+++ SimpleExpRspNode.java 27 Mar 2012 19:06:32 -0000 1.1.2.9
@@ -1,5 +1,5 @@
/**
- * (C) Copyright IBM Corp. 2006, 2009
+ * (C) Copyright IBM Corp. 2006, 2012
*
* THIS FILE IS PROVIDED UNDER THE TERMS OF THE ECLIPSE PUBLIC LICENSE
* ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE
@@ -19,6 +19,7 @@
* 2003590 2008-06-30 blaschke-oss Change licensing from CPL to EPL
* 2524131 2009-01-21 raman_arora Upgrade client to JDK 1.5 (Phase 1)
* 2797550 2009-06-01 raman_arora JSR48 compliance - add Java Generics
+ * 3511454 2012-03-27 blaschke-oss SAX nodes not reinitialized properly
*/
package org.sblim.cimclient.internal.cimxml.sax.node;
@@ -57,7 +58,8 @@
*/
@Override
public void init(Attributes pAttribs, SAXSession pSession) {
- // no attribs
+ this.iExpMethodRspNode = null;
+ // no attribs
}
/**
@@ -101,7 +103,7 @@
}
public Object readReturnValue() {
- return this.iExpMethodRspNode.readReturnValue();
+ return this.iExpMethodRspNode == null ? null : this.iExpMethodRspNode.readReturnValue();
}
}
Index: ValueRefArrayNode.java
===================================================================
RCS file: /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/cimxml/sax/node/ValueRefArrayNode.java,v
retrieving revision 1.1.2.9
retrieving revision 1.1.2.10
diff -u -d -r1.1.2.9 -r1.1.2.10
--- ValueRefArrayNode.java 10 Apr 2009 16:01:10 -0000 1.1.2.9
+++ ValueRefArrayNode.java 27 Mar 2012 19:06:32 -0000 1.1.2.10
@@ -1,5 +1,5 @@
/**
- * (C) Copyright IBM Corp. 2006, 2009
+ * (C) Copyright IBM Corp. 2006, 2012
*
* THIS FILE IS PROVIDED UNDER THE TERMS OF THE ECLIPSE PUBLIC LICENSE
* ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE
@@ -20,6 +20,7 @@
* 2524131 2009-01-21 raman_arora Upgrade client to JDK 1.5 (Phase 1)
* 2531371 2009-02-10 raman_arora Upgrade client to JDK 1.5 (Phase 2)
* 2750520 2009-04-10 blaschke-oss Code cleanup from empty statement et al
+ * 3511454 2012-03-27 blaschke-oss SAX nodes not reinitialized properly
*/
package org.sblim.cimclient.internal.cimxml.sax.node;
@@ -29,6 +30,7 @@
import javax.cim.CIMDataType;
import javax.cim.CIMObjectPath;
+import org.sblim.cimclient.GenericExts;
import org.sblim.cimclient.internal.cimxml.sax.SAXSession;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
@@ -53,8 +55,7 @@
*/
@Override
public void init(Attributes pAttribs, SAXSession pSession) {
- if (this.iCIMObjPathAL != null) this.iCIMObjPathAL.clear();
- else this.iCIMObjPathAL = null;
+ this.iCIMObjPathAL = GenericExts.initClearArrayList(this.iCIMObjPathAL);
// no attributes
}
@@ -88,7 +89,7 @@
* @return CIMObjectPath
*/
public Object elementAt(int pIdx) {
- return this.iCIMObjPathAL.get(pIdx);
+ return this.iCIMObjPathAL == null ? null : this.iCIMObjPathAL.get(pIdx);
}
public int size() {
Index: IReturnValueNode.java
===================================================================
RCS file: /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/cimxml/sax/node/IReturnValueNode.java,v
retrieving revision 1.1.2.9
retrieving revision 1.1.2.10
diff -u -d -r1.1.2.9 -r1.1.2.10
--- IReturnValueNode.java 2 Sep 2009 20:25:52 -0000 1.1.2.9
+++ IReturnValueNode.java 27 Mar 2012 19:06:32 -0000 1.1.2.10
@@ -1,5 +1,5 @@
/**
- * (C) Copyright IBM Corp. 2006, 2009
+ * (C) Copyright IBM Corp. 2006, 2012
*
* THIS FILE IS PROVIDED UNDER THE TERMS OF THE ECLIPSE PUBLIC LICENSE
* ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE
@@ -18,8 +18,9 @@
* 1720707 2007-05-17 ebak Conventional Node factory for CIM-XML SAX parser
* 2003590 2008-06-30 blaschke-oss Change licensing from CPL to EPL
* 2524131 2009-01-21 raman_arora Upgrade client to JDK 1.5 (Phase 1)
- * 2531371 2009-02-10 raman_arora Upgrade client to JDK 1.5 (Phase 2)
+ * 2531371 2009-02-10 raman_arora Upgrade client to JDK 1.5 (Phase 2)
* 2845211 2009-08-27 raman_arora Pull Enumeration Feature (SAX Parser)
+ * 3511454 2012-03-27 blaschke-oss SAX nodes not reinitialized properly
*/
package org.sblim.cimclient.internal.cimxml.sax.node;
@@ -67,6 +68,7 @@
// currently it's not really necessary here, since the Node is
// NonVolatile
this.iChildNameEnum = null;
+ this.iChildValueLL = null;
// no attribs
}
@@ -127,7 +129,7 @@
}
public Object readReturnValue() {
- return this.iChildValueLL.removeFirst();
+ return this.iChildValueLL == null ? null : this.iChildValueLL.removeFirst();
}
}
Index: ExpMethodResponseNode.java
===================================================================
RCS file: /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/cimxml/sax/node/ExpMethodResponseNode.java,v
retrieving revision 1.1.2.8
retrieving revision 1.1.2.9
diff -u -d -r1.1.2.8 -r1.1.2.9
--- ExpMethodResponseNode.java 14 Apr 2009 22:21:54 -0000 1.1.2.8
+++ ExpMethodResponseNode.java 27 Mar 2012 19:06:32 -0000 1.1.2.9
@@ -1,5 +1,5 @@
/**
- * (C) Copyright IBM Corp. 2006, 2009
+ * (C) Copyright IBM Corp. 2006, 2012
*
* THIS FILE IS PROVIDED UNDER THE TERMS OF THE ECLIPSE PUBLIC LICENSE
* ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE
@@ -19,6 +19,7 @@
* 2003590 2008-06-30 blaschke-oss Change licensing from CPL to EPL
* 2524131 2009-01-21 raman_arora Upgrade client to JDK 1.5 (Phase 1)
* 2763216 2009-04-14 blaschke-oss Code cleanup: visible spelling/grammar errors
+ * 3511454 2012-03-27 blaschke-oss SAX nodes not reinitialized properly
*/
package org.sblim.cimclient.internal.cimxml.sax.node;
@@ -61,6 +62,8 @@
@Override
public void init(Attributes pAttribs, SAXSession pSession) throws SAXException {
this.iName = getCIMName(pAttribs);
+ this.iErrorNode = null;
+ this.iRetValNode = null;
}
/**
@@ -99,7 +102,7 @@
}
public CIMError getCIMError() {
- return this.iErrorNode.getCIMError();
+ return this.iErrorNode == null ? null : this.iErrorNode.getCIMError();
}
public int getReturnValueCount() {
Index: ValueObjectWithLocalPathNode.java
===================================================================
RCS file: /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/cimxml/sax/node/ValueObjectWithLocalPathNode.java,v
retrieving revision 1.1.2.9
retrieving revision 1.1.2.10
diff -u -d -r1.1.2.9 -r1.1.2.10
--- ValueObjectWithLocalPathNode.java 23 Feb 2009 18:25:57 -0000 1.1.2.9
+++ ValueObjectWithLocalPathNode.java 27 Mar 2012 19:06:32 -0000 1.1.2.10
@@ -1,5 +1,5 @@
/**
- * (C) Copyright IBM Corp. 2006, 2009
+ * (C) Copyright IBM Corp. 2006, 2012
*
* THIS FILE IS PROVIDED UNDER THE TERMS OF THE ECLIPSE PUBLIC LICENSE
* ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE
@@ -18,7 +18,8 @@
* 1720707 2007-05-17 ebak Conventional Node factory for CIM-XML SAX parser
* 2003590 2008-06-30 blaschke-oss Change licensing from CPL to EPL
* 2524131 2009-01-21 raman_arora Upgrade client to JDK 1.5 (Phase 1)
- * 2531371 2009-02-10 raman_arora Upgrade client to JDK 1.5 (Phase 2)
+ * 2531371 2009-02-10 raman_arora Upgrade client to JDK 1.5 (Phase 2)
+ * 3511454 2012-03-27 blaschke-oss SAX nodes not reinitialized properly
*/
package org.sblim.cimclient.internal.cimxml.sax.node;
@@ -62,6 +63,8 @@
@Override
public void init(Attributes pAttribs, SAXSession pSession) {
this.iPathNodeNameEnum = this.iObjNodeNameEnum = null;
+ this.iObjPath = null;
+ this.iCIMObj = null;
// no attributes
}
Index: ClassPathNode.java
===================================================================
RCS file: /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/cimxml/sax/node/ClassPathNode.java,v
retrieving revision 1.1.2.8
retrieving revision 1.1.2.9
diff -u -d -r1.1.2.8 -r1.1.2.9
--- ClassPathNode.java 23 Feb 2009 18:25:57 -0000 1.1.2.8
+++ ClassPathNode.java 27 Mar 2012 19:06:32 -0000 1.1.2.9
@@ -1,5 +1,5 @@
/**
- * (C) Copyright IBM Corp. 2006, 2009
+ * (C) Copyright IBM Corp. 2006, 2012
*
* THIS FILE IS PROVIDED UNDER THE TERMS OF THE ECLIPSE PUBLIC LICENSE
* ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE
@@ -19,6 +19,7 @@
* 1742873 2007-06-25 ebak IPv6 ready cim-client
* 2003590 2008-06-30 blaschke-oss Change licensing from CPL to EPL
* 2524131 2009-01-21 raman_arora Upgrade client to JDK 1.5 (Phase 1)
+ * 3511454 2012-03-27 blaschke-oss SAX nodes not reinitialized properly
*/
package org.sblim.cimclient.internal.cimxml.sax.node;
@@ -40,7 +41,7 @@
private String iLocalNameSpacePathStr;
- private XMLHostStr iHostStr = new XMLHostStr();
+ private XMLHostStr iHostStr;
private String iClassNameStr;
@@ -60,6 +61,7 @@
// reset
this.iHasNameSpacePath = this.iHasClassName = false;
this.iLocalNameSpacePathStr = this.iClassNameStr = null;
+ this.iHostStr = new XMLHostStr();
}
/**
Index: QualifiedNodeHandler.java
===================================================================
RCS file: /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/cimxml/sax/node/QualifiedNodeHandler.java,v
retrieving revision 1.1.2.18
retrieving revision 1.1.2.19
diff -u -d -r1.1.2.18 -r1.1.2.19
--- QualifiedNodeHandler.java 29 Jul 2010 18:44:09 -0000 1.1.2.18
+++ QualifiedNodeHandler.java 27 Mar 2012 19:06:32 -0000 1.1.2.19
@@ -1,5 +1,5 @@
/**
- * (C) Copyright IBM Corp. 2006, 2010
+ * (C) Copyright IBM Corp. 2006, 2012
*
* THIS FILE IS PROVIDED UNDER THE TERMS OF THE ECLIPSE PUBLIC LICENSE
* ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE
@@ -20,10 +20,11 @@
* 2003590 2008-06-30 blaschke-oss Change licensing from CPL to EPL
* 2013628 2008-07-30 rgummada SAXException when listing classes
* 2524131 2009-01-21 raman_arora Upgrade client to JDK 1.5 (Phase 1)
- * 2531371 2009-02-10 raman_arora Upgrade client to JDK 1.5 (Phase 2)
+ * 2531371 2009-02-10 raman_arora Upgrade client to JDK 1.5 (Phase 2)
* 2797550 2009-06-01 raman_arora JSR48 compliance - add Java Generics
* 2823494 2009-08-03 rgummada Change Boolean constructor to static
* 2957387 2010-03-03 blaschke-oss EmbededObject XML attribute must not be all uppercases
+ * 3511454 2012-03-27 blaschke-oss SAX nodes not reinitialized properly
*/
package org.sblim.cimclient.internal.cimxml.sax.node;
@@ -33,6 +34,7 @@
import javax.cim.CIMDataType;
import javax.cim.CIMQualifier;
+import org.sblim.cimclient.GenericExts;
import org.sblim.cimclient.internal.cim.CIMQualifiedElementInterfaceImpl;
/**
@@ -69,11 +71,7 @@
* init - for reusing an existing QualifiedNodeHandler instance
*/
public void init() {
- if (this.iQualiAL != null) {
- this.iQualiAL.clear();
- } else {
- this.iQualiAL = new ArrayList<CIMQualifier<?>>();
- }
+ this.iQualiAL = GenericExts.initClearArrayList(this.iQualiAL);
this.iHasEmbObjQuali = this.iHasEmbInstQuali = this.iHasKeyQuali = this.iHasAssocQuali = false;
this.iQualiImpl = null;
}
Index: SimpleReqNode.java
===================================================================
RCS file: /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/cimxml/sax/node/SimpleReqNode.java,v
retrieving revision 1.1.2.8
retrieving revision 1.1.2.9
diff -u -d -r1.1.2.8 -r1.1.2.9
--- SimpleReqNode.java 23 Feb 2009 18:25:57 -0000 1.1.2.8
+++ SimpleReqNode.java 27 Mar 2012 19:06:32 -0000 1.1.2.9
@@ -1,5 +1,5 @@
/**
- * (C) Copyright IBM Corp. 2006, 2009
+ * (C) Copyright IBM Corp. 2006, 2012
*
* THIS FILE IS PROVIDED UNDER THE TERMS OF THE ECLIPSE PUBLIC LICENSE
* ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE
@@ -19,6 +19,7 @@
* 1720707 2007-05-17 ebak Conventional Node factory for CIM-XML SAX parser
* 2003590 2008-06-30 blaschke-oss Change licensing from CPL to EPL
* 2524131 2009-01-21 raman_arora Upgrade client to JDK 1.5 (Phase 1)
+ * 3511454 2012-03-27 blaschke-oss SAX nodes not reinitialized properly
*/
package org.sblim.cimclient.internal.cimxml.sax.node;
@@ -51,7 +52,8 @@
*/
@Override
public void init(Attributes pAttribs, SAXSession pSession) {
- // no attributes
+ this.iMethodCallNode = null;
+ // no attributes
}
/**
Index: CIMNode.java
===================================================================
RCS file: /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/cimxml/sax/node/CIMNode.java,v
retrieving revision 1.1.2.7
retrieving revision 1.1.2.8
diff -u -d -r1.1.2.7 -r1.1.2.8
--- CIMNode.java 23 Feb 2009 18:25:57 -0000 1.1.2.7
+++ CIMNode.java 27 Mar 2012 19:06:32 -0000 1.1.2.8
@@ -1,5 +1,5 @@
/**
- * (C) Copyright IBM Corp. 2006, 2009
+ * (C) Copyright IBM Corp. 2006, 2012
*
* THIS FILE IS PROVIDED UNDER THE TERMS OF THE ECLIPSE PUBLIC LICENSE
* ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE
@@ -18,6 +18,7 @@
* 1720707 2007-05-17 ebak Conventional Node factory for CIM-XML SAX parser
* 2003590 2008-06-30 blaschke-oss Change licensing from CPL to EPL
* 2524131 2009-01-21 raman_arora Upgrade client to JDK 1.5 (Phase 1)
+ * 3511454 2012-03-27 blaschke-oss SAX nodes not reinitialized properly
*/
package org.sblim.cimclient.internal.cimxml.sax.node;
@@ -60,7 +61,7 @@
if (this.iCimVersion == null) { throw new SAXException("CIMVERSION attribute is mandatory!"); }
this.iDtdVersion = pAttribs.getValue("DTDVERSION");
if (this.iDtdVersion == null) { throw new SAXException("DTDVERSION attribute is mandatory!"); }
-
+ this.iContent = null;
}
/**
Index: LocalInstancePathNode.java
===================================================================
RCS file: /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/cimxml/sax/node/LocalInstancePathNode.java,v
retrieving revision 1.1.2.9
retrieving revision 1.1.2.10
diff -u -d -r1.1.2.9 -r1.1.2.10
--- LocalInstancePathNode.java 1 Jun 2009 17:01:10 -0000 1.1.2.9
+++ LocalInstancePathNode.java 27 Mar 2012 19:06:32 -0000 1.1.2.10
@@ -1,5 +1,5 @@
/**
- * (C) Copyright IBM Corp. 2006, 2009
+ * (C) Copyright IBM Corp. 2006, 2012
*
* THIS FILE IS PROVIDED UNDER THE TERMS OF THE ECLIPSE PUBLIC LICENSE
* ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE
@@ -18,8 +18,9 @@
* 1720707 2007-05-17 ebak Conventional Node factory for CIM-XML SAX parser
* 2003590 2008-06-30 blaschke-oss Change licensing from CPL to EPL
* 2524131 2009-01-21 raman_arora Upgrade client to JDK 1.5 (Phase 1)
- * 2531371 2009-02-10 raman_arora Upgrade client to JDK 1.5 (Phase 2)
+ * 2531371 2009-02-10 raman_arora Upgrade client to JDK 1.5 (Phase 2)
* 2797550 2009-06-01 raman_arora JSR48 compliance - add Java Generics
+ * 3511454 2012-03-27 blaschke-oss SAX nodes not reinitialized properly
*/
package org.sblim.cimclient.internal.cimxml.sax.node;
@@ -66,6 +67,8 @@
public void init(Attributes pAttribs, SAXSession pSession) {
this.iLocalPath = pSession.getDefLocalPath();
this.iHasLocalNameSpacePath = this.iHasInstanceName = false;
+ this.iNameSpaceStr = this.iClassNameStr = null;
+ this.iKeys = null;
// no attributes
}
Index: NameSpacePathNode.java
===================================================================
RCS file: /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/cimxml/sax/node/NameSpacePathNode.java,v
retrieving revision 1.1.2.9
retrieving revision 1.1.2.10
diff -u -d -r1.1.2.9 -r1.1.2.10
--- NameSpacePathNode.java 23 Feb 2009 18:25:57 -0000 1.1.2.9
+++ NameSpacePathNode.java 27 Mar 2012 19:06:32 -0000 1.1.2.10
@@ -1,5 +1,5 @@
/**
- * (C) Copyright IBM Corp. 2006, 2009
+ * (C) Copyright IBM Corp. 2006, 2012
*
* THIS FILE IS PROVIDED UNDER THE TERMS OF THE ECLIPSE PUBLIC LICENSE
* ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE
@@ -19,7 +19,8 @@
* 1742873 2007-06-25 ebak IPv6 ready cim-client
* 2003590 2008-06-30 blaschke-oss Change licensing from CPL to EPL
* 2524131 2009-01-21 raman_arora Upgrade client to JDK 1.5 (Phase 1)
- * 2531371 2009-02-10 raman_arora Upgrade client to JDK 1.5 (Phase 2)
+ * 2531371 2009-02-10 raman_arora Upgrade client to JDK 1.5 (Phase 2)
+ * 3511454 2012-03-27 blaschke-oss SAX nodes not reinitialized properly
*/
package org.sblim.cimclient.internal.cimxml.sax.node;
@@ -57,6 +58,7 @@
@Override
public void init(Attributes pAttribs, SAXSession pSession) {
this.iHasHost = this.iHasLocalNameSpacePath = false;
+ this.iHostStr = this.iLocalNameSpacePathStr = null;
// no attributes
}
Index: IMethodResponseNode.java
===================================================================
RCS file: /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/cimxml/sax/node/IMethodResponseNode.java,v
retrieving revision 1.1.2.9
retrieving revision 1.1.2.10
diff -u -d -r1.1.2.9 -r1.1.2.10
--- IMethodResponseNode.java 2 Sep 2009 20:25:52 -0000 1.1.2.9
+++ IMethodResponseNode.java 27 Mar 2012 19:06:32 -0000 1.1.2.10
@@ -1,5 +1,5 @@
/**
- * (C) Copyright IBM Corp. 2006, 2009
+ * (C) Copyright IBM Corp. 2006, 2012
*
* THIS FILE IS PROVIDED UNDER THE TERMS OF THE ECLIPSE PUBLIC LICENSE
* ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE
@@ -20,6 +20,7 @@
* 2524131 2009-01-21 raman_arora Upgrade client to JDK 1.5 (Phase 1)
* 2763216 2009-04-14 blaschke-oss Code cleanup: visible spelling/grammar errors
* 2845211 2009-08-27 raman_arora Pull Enumeration Feature (SAX Parser)
+ * 3511454 2012-03-27 blaschke-oss SAX nodes not reinitialized properly
*/
package org.sblim.cimclient.internal.cimxml.sax.node;
@@ -77,6 +78,9 @@
@Override
public void init(Attributes pAttribs, SAXSession pSession) throws SAXException {
this.iName = getCIMName(pAttribs);
+ this.iErrorNode = null;
+ this.iRetValNode = null;
+ if (this.iCIMArgAL != null) this.iCIMArgAL.clear();
}
/**
Index: MultiExpRspNode.java
===================================================================
RCS file: /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/cimxml/sax/node/MultiExpRspNode.java,v
retrieving revision 1.1.2.9
retrieving revision 1.1.2.10
diff -u -d -r1.1.2.9 -r1.1.2.10
--- MultiExpRspNode.java 14 Apr 2009 22:21:54 -0000 1.1.2.9
+++ MultiExpRspNode.java 27 Mar 2012 19:06:32 -0000 1.1.2.10
@@ -1,5 +1,5 @@
/**
- * (C) Copyright IBM Corp. 2006, 2009
+ * (C) Copyright IBM Corp. 2006, 2012
*
* THIS FILE IS PROVIDED UNDER THE TERMS OF THE ECLIPSE PUBLIC LICENSE
* ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE
@@ -20,6 +20,7 @@
* 2524131 2009-01-21 raman_arora Upgrade client to JDK 1.5 (Phase 1)
* 2531371 2009-02-10 raman_arora Upgrade client to JDK 1.5 (Phase 2)
* 2763216 2009-04-14 blaschke-oss Code cleanup: visible spelling/grammar errors
+ * 3511454 2012-03-27 blaschke-oss SAX nodes not reinitialized properly
*/
package org.sblim.cimclient.internal.cimxml.sax.node;
@@ -55,7 +56,8 @@
*/
@Override
public void init(Attributes pAttribs, SAXSession pSession) {
- // no attributes
+ if (this.iSimpleExpRspAList != null) this.iSimpleExpRspAList.clear();
+ // no attributes
}
/**
Index: MessageNode.java
===================================================================
RCS file: /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/cimxml/sax/node/MessageNode.java,v
retrieving revision 1.1.2.7
retrieving revision 1.1.2.8
diff -u -d -r1.1.2.7 -r1.1.2.8
--- MessageNode.java 23 Feb 2009 18:25:57 -0000 1.1.2.7
+++ MessageNode.java 27 Mar 2012 19:06:32 -0000 1.1.2.8
@@ -1,5 +1,5 @@
/**
- * (C) Copyright IBM Corp. 2006, 2009
+ * (C) Copyright IBM Corp. 2006, 2012
*
* THIS FILE IS PROVIDED UNDER THE TERMS OF THE ECLIPSE PUBLIC LICENSE
* ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE
@@ -18,6 +18,7 @@
* 1720707 2007-05-17 ebak Conventional Node factory for CIM-XML SAX parser
* 2003590 2008-06-30 blaschke-oss Change licensing from CPL to EPL
* 2524131 2009-01-21 raman_arora Upgrade client to JDK 1.5 (Phase 1)
+ * 3511454 2012-03-27 blaschke-oss SAX nodes not reinitialized properly
*/
package org.sblim.cimclient.internal.cimxml.sax.node;
@@ -64,6 +65,7 @@
this.iProtocolVersion = pAttribs.getValue("PROTOCOLVERSION");
if (this.iProtocolVersion == null) throw new SAXException(
"PROTOCOLVERSION attribute is mandatory for MESSAGE node!");
+ this.iAbstractMsgNode = null;
}
/**
Index: ValueObjectWithPathNode.java
===================================================================
RCS file: /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/cimxml/sax/node/ValueObjectWithPathNode.java,v
retrieving revision 1.1.2.9
retrieving revision 1.1.2.10
diff -u -d -r1.1.2.9 -r1.1.2.10
--- ValueObjectWithPathNode.java 23 Feb 2009 18:25:57 -0000 1.1.2.9
+++ ValueObjectWithPathNode.java 27 Mar 2012 19:06:32 -0000 1.1.2.10
@@ -1,5 +1,5 @@
/**
- * (C) Copyright IBM Corp. 2006, 2009
+ * (C) Copyright IBM Corp. 2006, 2012
*
* THIS FILE IS PROVIDED UNDER THE TERMS OF THE ECLIPSE PUBLIC LICENSE
* ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE
@@ -18,7 +18,8 @@
* 1720707 2007-05-17 ebak Conventional Node factory for CIM-XML SAX parser
* 2003590 2008-06-30 blaschke-oss Change licensing from CPL to EPL
* 2524131 2009-01-21 raman_arora Upgrade client to JDK 1.5 (Phase 1)
- * 2531371 2009-02-10 raman_arora Upgrade client to JDK 1.5 (Phase 2)
+ * 2531371 2009-02-10 raman_arora Upgrade client to JDK 1.5 (Phase 2)
+ * 3511454 2012-03-27 blaschke-oss SAX nodes not reinitialized properly
*/
package org.sblim.cimclient.internal.cimxml.sax.node;
@@ -61,6 +62,8 @@
@Override
public void init(Attributes pAttribs, SAXSession pSession) {
this.iPathNodeNameEnum = this.iObjNodeNameEnum = null;
+ this.iObjPath = null;
+ this.iCIMObj = null;
// no attributes
}
Index: MultiRspNode.java
===================================================================
RCS file: /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/cimxml/sax/node/MultiRspNode.java,v
retrieving revision 1.1.2.8
retrieving revision 1.1.2.9
diff -u -d -r1.1.2.8 -r1.1.2.9
--- MultiRspNode.java 23 Feb 2009 18:25:57 -0000 1.1.2.8
+++ MultiRspNode.java 27 Mar 2012 19:06:32 -0000 1.1.2.9
@@ -1,5 +1,5 @@
/**
- * (C) Copyright IBM Corp. 2006, 2009
+ * (C) Copyright IBM Corp. 2006, 2012
*
* THIS FILE IS PROVIDED UNDER THE TERMS OF THE ECLIPSE PUBLIC LICENSE
* ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE
@@ -18,7 +18,8 @@
* 1720707 2007-05-17 ebak Conventional Node factory for CIM-XML SAX parser
* 2003590 2008-06-30 blaschke-oss Change licensing from CPL to EPL
* 2524131 2009-01-21 raman_arora Upgrade client to JDK 1.5 (Phase 1)
- * 2531371 2009-02-10 raman_arora Upgrade client to JDK 1.5 (Phase 2)
+ * 2531371 2009-02-10 raman_arora Upgrade client to JDK 1.5 (Phase 2)
+ * 3511454 2012-03-27 blaschke-oss SAX nodes not reinitialized properly
*/
package org.sblim.cimclient.internal.cimxml.sax.node;
@@ -54,7 +55,8 @@
*/
@Override
public void init(Attributes pAttribs, SAXSession pSession) {
- // no attribs
+ if (this.iSimpleRspAList != null) this.iSimpleRspAList.clear();
+ // no attribs
}
/**
Index: MultiReqNode.java
===================================================================
RCS file: /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/cimxml/sax/node/MultiReqNode.java,v
retrieving revision 1.1.2.8
retrieving revision 1.1.2.9
diff -u -d -r1.1.2.8 -r1.1.2.9
--- MultiReqNode.java 23 Feb 2009 18:25:57 -0000 1.1.2.8
+++ MultiReqNode.java 27 Mar 2012 19:06:32 -0000 1.1.2.9
@@ -1,5 +1,5 @@
/**
- * (C) Copyright IBM Corp. 2006, 2009
+ * (C) Copyright IBM Corp. 2006, 2012
*
* THIS FILE IS PROVIDED UNDER THE TERMS OF THE ECLIPSE PUBLIC LICENSE
* ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE
@@ -18,7 +18,8 @@
* 1720707 2007-05-17 ebak Conventional Node factory for CIM-XML SAX parser
* 2003590 2008-06-30 blaschke-oss Change licensing from CPL to EPL
* 2524131 2009-01-21 raman_arora Upgrade client to JDK 1.5 (Phase 1)
- * 2531371 2009-02-10 raman_arora Upgrade client to JDK 1.5 (Phase 2)
+ * 2531371 2009-02-10 raman_arora Upgrade client to JDK 1.5 (Phase 2)
+ * 3511454 2012-03-27 blaschke-oss SAX nodes not reinitialized properly
*/
package org.sblim.cimclient.internal.cimxml.sax.node;
@@ -54,7 +55,8 @@
*/
@Override
public void init(Attributes pAttribs, SAXSession pSession) {
- // no attributes
+ if (this.iSimpleReqAList != null) this.iSimpleReqAList.clear();
+ // no attributes
}
/**
Index: ExpParamValueNode.java
===================================================================
RCS file: /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/cimxml/sax/node/ExpParamValueNode.java,v
retrieving revision 1.1.2.7
retrieving revision 1.1.2.8
diff -u -d -r1.1.2.7 -r1.1.2.8
--- ExpParamValueNode.java 23 Feb 2009 18:25:57 -0000 1.1.2.7
+++ ExpParamValueNode.java 27 Mar 2012 19:06:32 -0000 1.1.2.8
@@ -1,5 +1,5 @@
/**
- * (C) Copyright IBM Corp. 2006, 2009
+ * (C) Copyright IBM Corp. 2006, 2012
*
* THIS FILE IS PROVIDED UNDER THE TERMS OF THE ECLIPSE PUBLIC LICENSE
* ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE
@@ -18,6 +18,7 @@
* 1720707 2007-05-17 ebak Conventional Node factory for CIM-XML SAX parser
* 2003590 2008-06-30 blaschke-oss Change licensing from CPL to EPL
* 2524131 2009-01-21 raman_arora Upgrade client to JDK 1.5 (Phase 1)
+ * 3511454 2012-03-27 blaschke-oss SAX nodes not reinitialized properly
*/
package org.sblim.cimclient.internal.cimxml.sax.node;
@@ -56,6 +57,7 @@
@Override
public void init(Attributes pAttribs, SAXSession pSession) throws SAXException {
this.iName = getCIMName(pAttribs);
+ this.iChildNode = null;
}
/**
Index: SimpleExpReqNode.java
===================================================================
RCS file: /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/cimxml/sax/node/SimpleExpReqNode.java,v
retrieving revision 1.1.2.7
retrieving revision 1.1.2.8
diff -u -d -r1.1.2.7 -r1.1.2.8
--- SimpleExpReqNode.java 23 Feb 2009 18:25:57 -0000 1.1.2.7
+++ SimpleExpReqNode.java 27 Mar 2012 19:06:32 -0000 1.1.2.8
@@ -1,5 +1,5 @@
/**
- * (C) Copyright IBM Corp. 2006, 2009
+ * (C) Copyright IBM Corp. 2006, 2012
*
* THIS FILE IS PROVIDED UNDER THE TERMS OF THE ECLIPSE PUBLIC LICENSE
* ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE
@@ -18,6 +18,7 @@
* 1720707 2007-05-17 ebak Conventional Node factory for CIM-XML SAX parser
* 2003590 2008-06-30 blaschke-oss Change licensing from CPL to EPL
* 2524131 2009-01-21 raman_arora Upgrade client to JDK 1.5 (Phase 1)
+ * 3511454 2012-03-27 blaschke-oss SAX nodes not reinitialized properly
*/
package org.sblim.cimclient.internal.cimxml.sax.node;
@@ -50,7 +51,8 @@
*/
@Override
public void init(Attributes pAttribs, SAXSession pSession) {
- // no attributes
+ this.iMethodCallNode = null;
+ // no attributes
}
/**
Index: MultiExpReqNode.java
===================================================================
RCS file: /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/cimxml/sax/node/MultiExpReqNode.java,v
retrieving revision 1.1.2.8
retrieving revision 1.1.2.9
diff -u -d -r1.1.2.8 -r1.1.2.9
--- MultiExpReqNode.java 23 Feb 2009 18:25:57 -0000 1.1.2.8
+++ MultiExpReqNode.java 27 Mar 2012 19:06:32 -0000 1.1.2.9
@@ -1,5 +1,5 @@
/**
- * (C) Copyright IBM Corp. 2006, 2009
+ * (C) Copyright IBM Corp. 2006, 2012
*
* THIS FILE IS PROVIDED UNDER THE TERMS OF THE ECLIPSE PUBLIC LICENSE
* ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE
@@ -18,7 +18,8 @@
* 1720707 2007-05-17 ebak Conventional Node factory for CIM-XML SAX parser
* 2003590 2008-06-30 blaschke-oss Change licensing from CPL to EPL
* 2524131 2009-01-21 raman_arora Upgrade client to JDK 1.5 (Phase 1)
- * 2531371 2009-02-10 raman_arora Upgrade client to JDK 1.5 (Phase 2)
+ * 2531371 2009-02-10 raman_arora Upgrade client to JDK 1.5 (Phase 2)
+ * 3511454 2012-03-27 blaschke-oss SAX nodes not reinitialized properly
*/
package org.sblim.cimclient.internal.cimxml.sax.node;
@@ -54,7 +55,8 @@
*/
@Override
public void init(Attributes pAttribs, SAXSession pSession) {
- // no attributes
+ if (this.iSimpleExpReqAList != null) this.iSimpleExpReqAList.clear();
+ // no attributes
}
/**
Index: AbstractMethodCallNode.java
===================================================================
RCS file: /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/cimxml/sax/node/AbstractMethodCallNode.java,v
retrieving revision 1.1.2.9
retrieving revision 1.1.2.10
diff -u -d -r1.1.2.9 -r1.1.2.10
--- AbstractMethodCallNode.java 1 Jun 2009 17:01:10 -0000 1.1.2.9
+++ AbstractMethodCallNode.java 27 Mar 2012 19:06:32 -0000 1.1.2.10
@@ -1,5 +1,5 @@
/**
- * (C) Copyright IBM Corp. 2006, 2009
+ * (C) Copyright IBM Corp. 2006, 2012
*
* THIS FILE IS PROVIDED UNDER THE TERMS OF THE ECLIPSE PUBLIC LICENSE
* ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE
@@ -19,7 +19,8 @@
* 2003590 2008-06-30 blaschke-oss Change licensing from CPL to EPL
* 2524131 2009-01-21 raman_arora Upgrade client to JDK 1.5 (Phase 1)
* 2531371 2009-02-10 raman_arora Upgrade client to JDK 1.5 (Phase 2)
- * 2797550 2009-06-01 raman_arora JSR48 compliance - add Java Generics
+ * 2797550 2009-06-01 raman_arora JSR48 compliance - add Java Generics
+ * 3511454 2012-03-27 blaschke-oss SAX nodes not reinitialized properly
*/
package org.sblim.cimclient.internal.cimxml.sax.node;
@@ -78,6 +79,10 @@
@Override
public void init(Attributes pAttribs, SAXSession pSession) throws SAXException {
this.iName = getCIMName(pAttribs);
+ this.iPath = null;
+ this.iRespDstNode = null;
+ this.iArgAL = null;
+ this.iArgA = null;
}
/**
@@ -179,7 +184,7 @@
*/
public CIMArgument<?> getArgument(int pIdx) {
getCIMArguments();
- return this.iArgA[pIdx];
+ return this.iArgA == null ? null : this.iArgA[pIdx];
}
@Override
Index: SimpleRspNode.java
===================================================================
RCS file: /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/cimxml/sax/node/SimpleRspNode.java,v
retrieving revision 1.1.2.10
retrieving revision 1.1.2.11
diff -u -d -r1.1.2.10 -r1.1.2.11
--- SimpleRspNode.java 2 Sep 2009 20:25:52 -0000 1.1.2.10
+++ SimpleRspNode.java 27 Mar 2012 19:06:32 -0000 1.1.2.11
@@ -1,5 +1,5 @@
/**
- * (C) Copyright IBM Corp. 2006, 2009
+ * (C) Copyright IBM Corp. 2006, 2012
*
* THIS FILE IS PROVIDED UNDER THE TERMS OF THE ECLIPSE PUBLIC LICENSE
* ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE
@@ -20,6 +20,7 @@
* 2531371 2009-02-10 raman_arora Upgrade client to JDK 1.5 (Phase 2)
* 2797550 2009-06-01 raman_arora JSR48 compliance - add Java Generics
* 2845211 2009-08-27 raman_arora Pull Enumeration Feature (SAX Parser)
+ * 3511454 2012-03-27 blaschke-oss SAX nodes not reinitialized properly
*/
package org.sblim.cimclient.internal.cimxml.sax.node;
@@ -60,7 +61,8 @@
*/
@Override
public void init(Attributes pAttribs, SAXSession pSession) {
- // no attributes
+ this.iChildNode = null;
+ // no attributes
}
/**
Index: InstancePathNode.java
===================================================================
RCS file: /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/cimxml/sax/node/InstancePathNode.java,v
retrieving revision 1.1.2.9
retrieving revision 1.1.2.10
diff -u -d -r1.1.2.9 -r1.1.2.10
--- InstancePathNode.java 1 Jun 2009 17:01:10 -0000 1.1.2.9
+++ InstancePathNode.java 27 Mar 2012 19:06:32 -0000 1.1.2.10
@@ -1,5 +1,5 @@
/**
- * (C) Copyright IBM Corp. 2006, 2009
+ * (C) Copyright IBM Corp. 2006, 2012
*
* THIS FILE IS PROVIDED UNDER THE TERMS OF THE ECLIPSE PUBLIC LICENSE
* ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE
@@ -20,6 +20,7 @@
* 2003590 2008-06-30 blaschke-oss Change licensing from CPL to EPL
* 2524131 2009-01-21 raman_arora Upgrade client to JDK 1.5 (Phase 1)
* 2797550 2009-06-01 raman_arora JSR48 compliance - add Java Generics
+ * 3511454 2012-03-27 blaschke-oss SAX nodes not reinitialized properly
*/
package org.sblim.cimclient.internal.cimxml.sax.node;
@@ -42,7 +43,7 @@
private String iLocalNameSpacePathStr;
- private XMLHostStr iHostStr = new XMLHostStr();
+ private XMLHostStr iHostStr;
// INSTANCENAME
private boolean iHasInstanceName;
@@ -65,6 +66,9 @@
@Override
public void init(Attributes pAttribs, SAXSession pSession) {
this.iHasInstanceName = this.iHasInstancePath = false;
+ this.iLocalNameSpacePathStr = this.iClassNameStr = null;
+ this.iHostStr = new XMLHostStr();
+ this.iKeys = null;
}
@Override
Index: QualiDeclNode.java
===================================================================
RCS file: /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/cimxml/sax/node/QualiDeclNode.java,v
retrieving revision 1.1.2.10
retrieving revision 1.1.2.11
diff -u -d -r1.1.2.10 -r1.1.2.11
--- QualiDeclNode.java 1 Jun 2009 17:01:09 -0000 1.1.2.10
+++ QualiDeclNode.java 27 Mar 2012 19:06:32 -0000 1.1.2.11
@@ -1,5 +1,5 @@
/**
- * (C) Copyright IBM Corp. 2006, 2009
+ * (C) Copyright IBM Corp. 2006, 2012
*
* THIS FILE IS PROVIDED UNDER THE TERMS OF THE ECLIPSE PUBLIC LICENSE
* ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE
@@ -19,8 +19,9 @@
* 1720707 2007-05-17 ebak Conventional Node factory for CIM-XML SAX parser
* 2003590 2008-06-30 blaschke-oss Change licensing from CPL to EPL
* 2524131 2009-01-21 raman_arora Upgrade client to JDK 1.5 (Phase 1)
- * 2531371 2009-02-10 raman_arora Upgrade client to JDK 1.5 (Phase 2)
+ * 2531371 2009-02-10 raman_arora Upgrade client to JDK 1.5 (Phase 2)
* 2797550 2009-06-01 raman_arora JSR48 compliance - add Java Generics
+ * 3511454 2012-03-27 blaschke-oss SAX nodes not reinitialized properly
*/
package org.sblim.cimclient.internal.cimxml.sax.node;
@@ -100,7 +101,9 @@
@Override
public void init(Attributes pAttribs, SAXSession pSession) throws SAXException {
this.iHasScope = false;
+ this.iScope = 0;
this.iValueNodeName = null;
+ this.iValue = null;
this.iName = getCIMName(pAttribs);
this.iType = getCIMType(pAttribs, true);
this.iFlavor = getQualifierFlavor(pAttribs);
Index: ValueReferenceNode.java
===================================================================
RCS file: /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/cimxml/sax/node/ValueReferenceNode.java,v
retrieving revision 1.1.2.8
retrieving revision 1.1.2.9
diff -u -d -r1.1.2.8 -r1.1.2.9
--- ValueReferenceNode.java 23 Feb 2009 18:25:57 -0000 1.1.2.8
+++ ValueReferenceNode.java 27 Mar 2012 19:06:32 -0000 1.1.2.9
@@ -1,5 +1,5 @@
/**
- * (C) Copyright IBM Corp. 2006, 2009
+ * (C) Copyright IBM Corp. 2006, 2012
*
* THIS FILE IS PROVIDED UNDER THE TERMS OF THE ECLIPSE PUBLIC LICENSE
* ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE
@@ -18,7 +18,8 @@
* 1720707 2007-05-17 ebak Conventional Node factory for CIM-XML SAX parser
* 2003590 2008-06-30 blaschke-oss Change licensing from CPL to EPL
* 2524131 2009-01-21 raman_arora Upgrade client to JDK 1.5 (Phase 1)
- * 2531371 2009-02-10 raman_arora Upgrade client to JDK 1.5 (Phase 2)
+ * 2531371 2009-02-10 raman_arora Upgrade client to JDK 1.5 (Phase 2)
+ * 3511454 2012-03-27 blaschke-oss SAX nodes not reinitialized properly
*/
package org.sblim.cimclient.internal.cimxml.sax.node;
@@ -97,7 +98,7 @@
}
public CIMDataType getType() {
- return new CIMDataType(this.iCIMObjPath.getObjectName());
+ return this.iCIMObjPath == null ? null : new CIMDataType(this.iCIMObjPath.getObjectName());
}
public CIMObjectPath getCIMObjectPath() {
Index: ExpMethodCallNode.java
===================================================================
RCS file: /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/cimxml/sax/node/ExpMethodCallNode.java,v
retrieving revision 1.1.2.8
retrieving revision 1.1.2.9
diff -u -d -r1.1.2.8 -r1.1.2.9
--- ExpMethodCallNode.java 23 Feb 2009 18:25:57 -0000 1.1.2.8
+++ ExpMethodCallNode.java 27 Mar 2012 19:06:32 -0000 1.1.2.9
@@ -1,5 +1,5 @@
/**
- * (C) Copyright IBM Corp. 2006, 2009
+ * (C) Copyright IBM Corp. 2006, 2012
*
* THIS FILE IS PROVIDED UNDER THE TERMS OF THE ECLIPSE PUBLIC LICENSE
* ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE
@@ -18,7 +18,8 @@
* 1720707 2007-05-17 ebak Conventional Node factory for CIM-XML SAX parser
* 2003590 2008-06-30 blaschke-oss Change licensing from CPL to EPL
* 2524131 2009-01-21 raman_arora Upgrade client to JDK 1.5 (Phase 1)
- * 2531371 2009-02-10 raman_arora Upgrade client to JDK 1.5 (Phase 2)
+ * 2531371 2009-02-10 raman_arora Upgrade client to JDK 1.5 (Phase 2)
+ * 3511454 2012-03-27 blaschke-oss SAX nodes not reinitialized properly
*/
package org.sblim.cimclient.internal.cimxml.sax.node;
@@ -64,6 +65,7 @@
@Override
public void init(Attributes pAttribs, SAXSession pSession) throws SAXException {
this.iName = getCIMName(pAttribs);
+ if (this.iExpParamValNodeAList != null) this.iExpParamValNodeAList.clear();
}
/**
Index: MethodResponseNode.java
===================================================================
RCS file: /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/cimxml/sax/node/MethodResponseNode.java,v
retrieving revision 1.1.2.11
retrieving revision 1.1.2.12
diff -u -d -r1.1.2.11 -r1.1.2.12
--- MethodResponseNode.java 2 Sep 2009 20:25:52 -0000 1.1.2.11
+++ MethodResponseNode.java 27 Mar 2012 19:06:32 -0000 1.1.2.12
@@ -1,5 +1,5 @@
/**
- * (C) Copyright IBM Corp. 2006, 2009
+ * (C) Copyright IBM Corp. 2006, 2012
*
* THIS FILE IS PROVIDED UNDER THE TERMS OF THE ECLIPSE PUBLIC LICENSE
* ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE
@@ -22,6 +22,7 @@
* 2763216 2009-04-14 blaschke-oss Code cleanup: visible spelling/grammar errors
* 2797550 2009-06-01 raman_arora JSR48 compliance - add Java Generics
* 2845211 2009-08-27 raman_arora Pull Enumeration Feature (SAX Parser)
+ * 3511454 2012-03-27 blaschke-oss SAX nodes not reinitialized properly
*/
package org.sblim.cimclient.internal.cimxml.sax.node;
@@ -72,6 +73,9 @@
@Override
public void init(Attributes pAttribs, SAXSession pSession) throws SAXException {
this.iName = getCIMName(pAttribs);
+ this.iError = null;
+ this.iRetVal = null;
+ if (this.iCIMArgAL != null) this.iCIMArgAL.clear();
}
/**
|
|
From: Chris B. <buc...@us...> - 2012-03-26 19:39:38
|
Update of /cvsroot/sblim/sfcb
In directory vz-cvs-3.sog:/tmp/cvs-serv8079
Modified Files:
cimXmlRequest.c objectImpl.c
Log Message:
code cleanup: errant printf and unused var warning
Index: objectImpl.c
===================================================================
RCS file: /cvsroot/sblim/sfcb/objectImpl.c,v
retrieving revision 1.54
retrieving revision 1.55
diff -u -d -r1.54 -r1.55
--- objectImpl.c 8 Mar 2012 06:26:23 -0000 1.54
+++ objectImpl.c 26 Mar 2012 19:39:36 -0000 1.55
@@ -494,7 +494,8 @@
{
_SFCB_ENTER(TRACE_OBJECTIMPL, "removeClObject");
// fprintf(stderr, "replaceClString: %p replacing entry for we're skipping %d\n", hdr, (id-1));
- char *ts, *fs, *tmpstr = NULL;
+ char *ts, *fs;
+ // char *tmpstr = NULL;
long i, l, u;
ClStrBuf *fb;
Index: cimXmlRequest.c
===================================================================
RCS file: /cvsroot/sblim/sfcb/cimXmlRequest.c,v
retrieving revision 1.67
retrieving revision 1.68
diff -u -d -r1.67 -r1.68
--- cimXmlRequest.c 16 Mar 2012 19:07:53 -0000 1.67
+++ cimXmlRequest.c 26 Mar 2012 19:39:36 -0000 1.68
@@ -2189,8 +2189,6 @@
_SFCB_TRACE(1, ("--- Provider context gotten"));
if (irc == MSG_X_PROVIDER) {
- fprintf(stderr, "cimXmlRequest: before invokeProvider, ctx.role is \"%s\"\n", ctx->role);
-
RespSegments rs;
resp = invokeProvider(&binCtx);
closeProviderContext(&binCtx);
|
|
From: Narasimha S. <nsh...@us...> - 2012-03-26 18:33:10
|
Update of /cvsroot/sblim/sfcb In directory vz-cvs-3.sog:/tmp/cvs-serv31786 Modified Files: ChangeLog Log Message: [ 3498496 ] sfcb hangs and fails to respond to CIM requests Index: ChangeLog =================================================================== RCS file: /cvsroot/sblim/sfcb/ChangeLog,v retrieving revision 1.744 retrieving revision 1.745 diff -u -d -r1.744 -r1.745 --- ChangeLog 16 Mar 2012 19:07:53 -0000 1.744 +++ ChangeLog 26 Mar 2012 18:33:08 -0000 1.745 @@ -1,3 +1,8 @@ +2012-03-26 Narasimha Sharoff <nsh...@us...> + + * providerDrv.c: + [ 3498496 ] sfcb hangs and fails to respond to CIM requests + 2012-03-16 Chris Buccella <buc...@li...> * cimXmlRequest.c: |
|
From: Narasimha S. <nsh...@us...> - 2012-03-26 18:32:53
|
Update of /cvsroot/sblim/sfcb In directory vz-cvs-3.sog:/tmp/cvs-serv31766 Modified Files: NEWS Log Message: [ 3498496 ] sfcb hangs and fails to respond to CIM requests Index: NEWS =================================================================== RCS file: /cvsroot/sblim/sfcb/NEWS,v retrieving revision 1.666 retrieving revision 1.667 diff -u -d -r1.666 -r1.667 --- NEWS 16 Mar 2012 19:07:53 -0000 1.666 +++ NEWS 26 Mar 2012 18:32:51 -0000 1.667 @@ -57,6 +57,7 @@ - 3497209 oom panic: out of memory using fsp indprovider - 3504607 CMPIRole Support in brokerUpc - 3506306 Fix count for InvokeMethod requests +- 3498496 sfcb hangs and fails to respond to CIM requests Changes in 1.3.13 ================= |
|
From: Narasimha S. <nsh...@us...> - 2012-03-26 18:32:27
|
Update of /cvsroot/sblim/sfcb
In directory vz-cvs-3.sog:/tmp/cvs-serv30618
Modified Files:
providerDrv.c
Log Message:
[ 3498496 ] sfcb hangs and fails to respond to CIM requests
Index: providerDrv.c
===================================================================
RCS file: /cvsroot/sblim/sfcb/providerDrv.c,v
retrieving revision 1.110
retrieving revision 1.111
diff -u -d -r1.110 -r1.111
--- providerDrv.c 12 Mar 2012 22:30:52 -0000 1.110
+++ providerDrv.c 26 Mar 2012 18:32:25 -0000 1.111
@@ -2416,7 +2416,7 @@
IndicationReq *req = (IndicationReq*)hdr;
BinResponseHdr *resp=NULL;
CMPIStatus rci = { CMPI_RC_OK, NULL };
- NativeSelectExp *se=NULL,**sef=&activFilters;
+ NativeSelectExp *se=NULL, *prev = NULL;
CMPIObjectPath *path = relocateSerializedObjectPath(req->objectPath.data);
CMPIContext *ctx = native_new_CMPIContext(MEM_TRACKED,info);
CMPIResult *result = native_new_CMPIResult(0,1,NULL);
@@ -2432,9 +2432,9 @@
_SFCB_TRACE(1, ("--- pid: %d activFilters %p",currentProc,activFilters));
if (info->indicationMI==NULL || activFilters==NULL) _SFCB_RETURN(resp);
- for (se = activFilters; se; se = se->next) {
+ for (se = activFilters; se; prev = se, se = se->next) {
+ //_SFCB_TRACE(1, ("---- se->filterid:%p, req=>filterid:%p, se:%p, activFilters:%p, prev:%p", se->filterId, req->filterId, se, activFilters, prev));
if (se->filterId == req->filterId) {
- *sef=se->next;
if (activFilters==NULL) {
_SFCB_TRACE(1, ("--- Calling disableIndications %s",info->providerName));
info->indicationEnabled=0;
@@ -2458,6 +2458,16 @@
if (rci.rc==CMPI_RC_OK) {
decreaseInUseSem(info->provIds.procId);
resp->rc=1;
+ /*79580-3498496*/
+ if (prev == NULL) {
+ activFilters = activFilters->next;
+ }
+ else {
+ prev->next = se->next;
+ }
+ _SFCB_TRACE(1, ("---- pid:%d, freeing: %p", currentProc, se));
+ CMRelease((CMPISelectExp *)se);
+
_SFCB_RETURN(resp);
}
@@ -2465,8 +2475,6 @@
resp = errorResp(&rci);
_SFCB_RETURN(resp);
}
- sef=&se->next;
- CMRelease((CMPISelectExp*)se);
}
_SFCB_RETURN(resp);
|
|
From: Dave B. <bla...@us...> - 2012-03-23 16:44:49
|
Update of /cvsroot/sblim/jsr48-client/src/javax/cim
In directory vz-cvs-3.sog:/tmp/cvs-serv12055/src/javax/cim
Modified Files:
Tag: Experimental
CIMObjectPath.java
Log Message:
3510090 - Fix CIMObjectPath.toString() inconsistencies
Index: CIMObjectPath.java
===================================================================
RCS file: /cvsroot/sblim/jsr48-client/src/javax/cim/CIMObjectPath.java,v
retrieving revision 1.11.2.16
retrieving revision 1.11.2.17
diff -u -d -r1.11.2.16 -r1.11.2.17
--- CIMObjectPath.java 2 Mar 2012 19:01:53 -0000 1.11.2.16
+++ CIMObjectPath.java 23 Mar 2012 16:44:46 -0000 1.11.2.17
@@ -27,6 +27,7 @@
* 2975975 2010-03-24 blaschke-oss TCK: CIMObjectPath(String) does not handle null
* 3023141 2010-07-01 blaschke-oss CIMObjectPath uses # constructor instead of valueOf
* 3496349 2012-03-02 blaschke-oss JSR48 1.0.0: add CIMObjectPath getKeyValue
+ * 3510090 2012-03-23 blaschke-oss Fix CIMObjectPath.toString() inconsistencies
*/
package javax.cim;
@@ -665,7 +666,7 @@
*/
@Override
public String toString() {
- return MOF.objectHandle(this, false, true);
+ return MOF.objectHandle(this, false, false);
}
}
|
|
From: Dave B. <bla...@us...> - 2012-03-23 13:18:46
|
Update of /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/cimxml
In directory vz-cvs-3.sog:/tmp/cvs-serv27982/src/org/sblim/cimclient/internal/cimxml
Modified Files:
Tag: Experimental
CimXmlSerializer.java
Log Message:
3510321 - Handle CDATA in CimXmlSerializer
Index: CimXmlSerializer.java
===================================================================
RCS file: /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/cimxml/CimXmlSerializer.java,v
retrieving revision 1.1.2.8
retrieving revision 1.1.2.9
diff -u -d -r1.1.2.8 -r1.1.2.9
--- CimXmlSerializer.java 14 Apr 2009 22:21:54 -0000 1.1.2.8
+++ CimXmlSerializer.java 23 Mar 2012 13:18:43 -0000 1.1.2.9
@@ -1,5 +1,5 @@
/**
- * (C) Copyright IBM Corp. 2007, 2009
+ * (C) Copyright IBM Corp. 2007, 2012
*
* THIS FILE IS PROVIDED UNDER THE TERMS OF THE ECLIPSE PUBLIC LICENSE
* ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE
@@ -17,6 +17,7 @@
* 2003590 2008-06-30 blaschke-oss Change licensing from CPL to EPL
* 2524131 2009-01-21 raman_arora Upgrade client to JDK 1.5 (Phase 1)
* 2763216 2009-04-14 blaschke-oss Code cleanup: visible spelling/grammar errors
+ * 3510321 2012-03-23 blaschke-oss Handle CDATA in CimXmlSerializer
*/
package org.sblim.cimclient.internal.cimxml;
@@ -320,7 +321,12 @@
pWriter.write("\"");
break;
case Node.TEXT_NODE:
- pWriter.writeValue(pNode.getNodeValue());
+ String value = pNode.getNodeValue();
+ if (value != null && value.startsWith("<![CDATA[") && value.endsWith("]]>")) {
+ pWriter.write(value);
+ } else {
+ pWriter.writeValue(value);
+ }
}
}
|
|
From: Dave H. <hel...@us...> - 2012-03-16 23:29:38
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "SFCB - Small Footprint CIM Broker".
The branch, master has been updated
via 56496a5d8e82c3053409f1060f3c1c3fa5baa2af (commit)
from 8291ca31eabb4fc700efa729b6021e122e14db2c (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 56496a5d8e82c3053409f1060f3c1c3fa5baa2af
Author: Dave Heller <hel...@us...>
Date: Fri Mar 16 19:20:12 2012 -0400
[ 3506453 ] Support peer cert verification for SSL indications
-----------------------------------------------------------------------
Summary of changes:
diff --git a/ChangeLog b/ChangeLog
index 7dc0bb0..b8973c9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2012-03-16 Dave Heller <hel...@us...>
+
+ * control.c, indCIMXMLExport.c, sfcb.cfg.pre.in:
+ [ 3506453 ] Support peer cert verification for SSL indications
+
2012-03-15 Chris Buccella <buc...@li...>
* brokerUpc.c:
diff --git a/NEWS b/NEWS
index 593b98d..7abe185 100644
--- a/NEWS
+++ b/NEWS
@@ -6,6 +6,7 @@ Everything in 1.3.13 and 1.3.14, plus:
New features:
- 3441679 Add a feature to validate CMPI types
- 3497831 Updates to sfcb-ps test script
+- 3506453 Support peer cert verification for SSL indications
Bugs fixed:
- 3495804 Cleanup: httpProcId still defined, wrong define in cimXmlGen
diff --git a/control.c b/control.c
index d84810d..108d227 100644
--- a/control.c
+++ b/control.c
@@ -108,6 +108,7 @@ Control init[] = {
{"enableInterOp", 2, "true"},
{"sslClientTrustStore", 0, SFCB_CONFDIR "/client.pem"},
{"sslClientCertificate", 0, "ignore"},
+ {"sslIndicationReceiverCert", 0, "ignore" },
{"certificateAuthLib", 0, "sfcCertificateAuthentication"},
{"localSocketPath", 0, "/tmp/sfcbLocalSocket"},
{"httpSocketPath", 0, "/tmp/sfcbHttpSocket"},
diff --git a/indCIMXMLExport.c b/indCIMXMLExport.c
index 959c4e0..1c00e0d 100644
--- a/indCIMXMLExport.c
+++ b/indCIMXMLExport.c
@@ -150,7 +150,9 @@ genRequest(CurlData * cd, char *url, char **msg)
{
CURLcode rv;
char *fnc,
- *fnk;
+ *fnk,
+ *fnt,
+ *fnl;
*msg = NULL;
@@ -180,10 +182,38 @@ genRequest(CurlData * cd, char *url, char **msg)
rv = curl_easy_setopt(cd->mHandle, CURLOPT_POST, 1);
/*
- * Disable SSL verification
+ * Enable endpoint cert verification as required
*/
- rv = curl_easy_setopt(cd->mHandle, CURLOPT_SSL_VERIFYHOST, 0);
- rv = curl_easy_setopt(cd->mHandle, CURLOPT_SSL_VERIFYPEER, 0);
+ getControlChars("sslIndicationReceiverCert", &fnl);
+ for(;;) {
+ if (strcasecmp(fnl, "ignore") == 0) {
+ rv = curl_easy_setopt(cd->mHandle, CURLOPT_SSL_VERIFYPEER, 0);
+ rv = curl_easy_setopt(cd->mHandle, CURLOPT_SSL_VERIFYHOST, 0);
+ break;
+ } else if ((strcasecmp(fnl, "verify") == 0) ||
+ (strcasecmp(fnl, "verifyhostname") == 0)) {
+ if (getControlChars("sslClientTrustStore", &fnt) == 0) {
+ rv = curl_easy_setopt(cd->mHandle, CURLOPT_CAINFO, fnt);
+ } else {
+ /* possible? */
+ *msg=strdup("Cannot determine value of sslClientTrustStore parameter.");
+ return 3;
+ }
+ rv = curl_easy_setopt(cd->mHandle, CURLOPT_SSL_VERIFYPEER, 1);
+ if (strcasecmp(fnl, "verify") == 0) {
+ rv = curl_easy_setopt(cd->mHandle, CURLOPT_SSL_VERIFYHOST, 0);
+ break;
+ } else { /* verifyhostname */
+ rv = curl_easy_setopt(cd->mHandle, CURLOPT_SSL_VERIFYHOST, 2);
+ break;
+ }
+ } else {
+ // Since we don't know user intent in this case, assume the strictest.
+ mlogf(M_ERROR,M_SHOW,
+ "--- ERROR: Invalid value for sslIndicationReceiverCert, setting to: verifyhostname.\n");
+ fnl = "verifyhostname";
+ }
+ }
/*
* set up client side cert usage
@@ -228,7 +258,7 @@ genRequest(CurlData * cd, char *url, char **msg)
rv = curl_easy_setopt(cd->mHandle, CURLOPT_FAILONERROR, 1);
// Turn this on to enable debugging
- // rv = curl_easy_setopt(mHandle, CURLOPT_VERBOSE, 1);
+ // rv = curl_easy_setopt(cd->mHandle, CURLOPT_VERBOSE, 1);
return 0;
}
diff --git a/sfcb.cfg.pre.in b/sfcb.cfg.pre.in
index 47a2acb..be7922a 100644
--- a/sfcb.cfg.pre.in
+++ b/sfcb.cfg.pre.in
@@ -172,15 +172,24 @@ enableHttps: @SFCB_CONF_HTTPS@
httpsPort: 5989
## Filename containing the private key for the server's certificate. The file
-## must be in PEM format and may not be passphrase-protected.
+## must be in PEM format and may not be passphrase-protected. The file is
+## relevant for both client connect and indications sent via https.
+## For client connect: the file must be present if enableHttps is true.
+## For indications: the file is required only if the indication receiver
+## will attempt to verify the sender (sfcb) certificate.
## Default is @sysconfdir@/sfcb/file.pem
sslKeyFilePath: @sysconfdir@/sfcb/file.pem
## Filename containing the server's certificate. Must be in PEM format.
+## The file is relevant for both client connect and indications sent via https.
+## For client connect: the file must be present if enableHttps is true.
+## For indications: the file is required only if the indication receiver
+## will attempt to verify the sender (sfcb) certificate.
## Default is @sysconfdir@/sfcb/server.pem
sslCertificateFilePath: @sysconfdir@/sfcb/server.pem
-## Filename containing list of certificates server accepts
+## Filename containing list of certificates server accepts.
+## The file is relevant client connect only.
## Default is @sysconfdir@/sfcb/clist.pem
sslCertList: @sysconfdir@/sfcb/clist.pem
@@ -192,8 +201,23 @@ sslCertList: @sysconfdir@/sfcb/clist.pem
## Default is ignore
sslClientCertificate: ignore
-## Location of the trust store. If sslClientCertificate is set to "require",
+## How SFCB handles verification of the endpoint certificate when sending
+## an indication via https.
+## ignore - do not attempt to validate the endpoint certificate
+## verify - validate the certificate against known CA certs in the trust store;
+## do not send the indication if verification fails.
+## verifyhostname - additionally validate the certificate CN (common name)
+## against the indication handler Destination address;
+## do not send the indication if verification fails.
+## Default is ignore (always send the indication)
+sslIndicationReceiverCert: ignore
+
+## Location of the trust store. Contains one or more CA certificates.
+## The file is relevant for both client connect and indications sent via https.
+## For client connect: if sslClientCertificate is set to "require",
## certificate presented must present valid according to the trust store.
+## For indications: if sslIndicationReceiverCert is set to "verify" or
+## "verifyhostname", the endpoint's certificate is checked against this file.
## Default: @sysconfdir@/sfcb/client.pem
sslClientTrustStore: @sysconfdir@/sfcb/client.pem
hooks/post-receive
--
SFCB - Small Footprint CIM Broker
|