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: Narasimha S. <nsh...@us...> - 2011-06-01 21:01:46
|
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 db20e94be2bb895cacf61b5648c11403edb66b01 (commit) from a308ad3ec7861cf10d27cd1f5214d17ba023e8c7 (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 db20e94be2bb895cacf61b5648c11403edb66b01 Author: Narasimha Sharoff <nsh...@us...> Date: Wed Jun 1 13:57:29 2011 -0700 [ 3259627 ] provide a list of acceptable CAs to client ----------------------------------------------------------------------- Summary of changes: diff --git a/ChangeLog b/ChangeLog index f75ffcc..24f1cc4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2011-06-01 Narasimha Sharoff <nsh...@us...> + + * control.c, genSslCert.sh, httpAdapter.c, sfcb.cfg.pre.in + [ 3259627 ] provide a list acceptable CAs to client + 2011-05-30 Chris Buccella <buc...@li...> * 10_interop.mof, default.reg.in, interopServerProvider.c, diff --git a/NEWS b/NEWS index 510938b..dec5553 100644 --- a/NEWS +++ b/NEWS @@ -6,6 +6,7 @@ New features: - 3280992 Add systemd file to SFCB sources - 3177587 create sfcCommon (SFCB 1.4 now requires sfcCommon lib to be installed) - 3309374 Implement CIM_CIMXMLCommunicationMechanism +- 3259627 provide a list acceptable CAs to client Bugs fixed: - 3199899 sfcb uninstall process should remove test mof's diff --git a/control.c b/control.c index 5ed1d8a..217bffa 100644 --- a/control.c +++ b/control.c @@ -93,6 +93,7 @@ Control init[] = { {"sslKeyFilePath", 0, SFCB_CONFDIR "/file.pem"}, {"sslCertificateFilePath", 0, SFCB_CONFDIR "/server.pem"}, + {"sslCertList", 0, SFCB_CONFDIR "/clist.pem"}, {"registrationDir", 0, SFCB_STATEDIR "/registration"}, {"providerDirs", 3, SFCB_LIBDIR " " CMPI_LIBDIR " " LIBDIR}, /* 3: diff --git a/genSslCert.sh b/genSslCert.sh index 1e7d544..9bf6320 100644 --- a/genSslCert.sh +++ b/genSslCert.sh @@ -47,8 +47,9 @@ chmod 700 $DIR/*.pem if [ $DO_SERVER = yes ] then cp $DIR/cert.pem $TARGETDIR/server.pem + cp $DIR/cert.pem $TARGETDIR/clist.pem cp $DIR/key.pem $TARGETDIR/file.pem - chmod 400 $TARGETDIR/server.pem $TARGETDIR/file.pem + chmod 400 $TARGETDIR/server.pem $TARGETDIR/file.pem $TARGETDIR/clist.pem fi if [ $DO_CLIENT = yes ] diff --git a/httpAdapter.c b/httpAdapter.c index 130e633..aa2bee0 100644 --- a/httpAdapter.c +++ b/httpAdapter.c @@ -105,6 +105,8 @@ static X509 *x509 = NULL; int ccVerifyMode = CC_VERIFY_IGNORE; static int get_cert(int, X509_STORE_CTX *); static int ccValidate(X509 *, char **, int); +static int load_cert(const char *); +static void print_cert(const char *cert_file, const STACK_OF(X509_NAME) *); #endif /* return codes used by baValidate */ @@ -1549,7 +1551,8 @@ initSSL() char *fnc, *fnk, *fnt, - *fnl; + *fnl, + *fcert; int rc; ctx = SSL_CTX_new(SSLv23_method()); getControlChars("sslCertificateFilePath", &fnc); @@ -1562,6 +1565,8 @@ initSSL() intSSLerror("Error loading private key from file"); getControlChars("sslClientCertificate", &fnl); _SFCB_TRACE(1, ("--- sslClientCertificate = %s", fnl)); + getControlChars("sslCertList", &fcert); + load_cert(fcert); if (strcasecmp(fnl, "ignore") == 0) { ccVerifyMode = CC_VERIFY_IGNORE; SSL_CTX_set_verify(ctx, SSL_VERIFY_NONE, 0); @@ -1955,6 +1960,54 @@ ccValidate(X509 * certificate, char **principal, int mode) } _SFCB_RETURN(result); } + +/* + * Load the list of certificates accepted by the server into ctx object + * This information will be sent to the client during SSL handshake +*/ +static int +load_cert(const char *cert_file) +{ + STACK_OF(x509_NAME) *cert_names; + + if (cert_file == NULL) { + mlogf(M_ERROR, M_SHOW, + "--- SSL CA list: file %s not found\n", cert_file); + return -1; + } + cert_names = SSL_load_client_CA_file(cert_file); + if (cert_names == NULL) { + mlogf(M_ERROR, M_SHOW, + "--- SSL CA list: cannot read file %s\n", cert_file); + return -1; + } else { +#ifdef SFCB_DEBUG + print_cert(cert_file, cert_names); +#endif + SSL_CTX_set_client_CA_list(ctx, cert_names); + } + + return 0; +} + +/* Print the list of certificates in CTX */ +static void +print_cert(const char *cert_file, const STACK_OF(X509_NAME) *cert_names) +{ + char *str = NULL; + int i = 0; + + _SFCB_ENTER(TRACE_HTTPDAEMON, "print_cert"); + mlogf(M_INFO, M_SHOW, "--- SSL CA list loaded from %s\n", cert_file); + if (sk_X509_NAME_num(cert_names) > 0) { + for (i=0; i < sk_X509_NAME_num(cert_names); i++) { + str = X509_NAME_oneline(sk_X509_NAME_value(cert_names, i),0,0); + _SFCB_TRACE(4, ("\t Name #%d:%s\n", (i+1), str)); + free(str); + } + } + return; +} #endif /* MODELINES */ /* DO NOT EDIT BELOW THIS COMMENT */ diff --git a/sfcb.cfg.pre.in b/sfcb.cfg.pre.in index acc28ba..70385f2 100644 --- a/sfcb.cfg.pre.in +++ b/sfcb.cfg.pre.in @@ -166,6 +166,10 @@ sslKeyFilePath: @sysconfdir@/sfcb/file.pem ## Default is @sysconfdir@/sfcb/server.pem sslCertificateFilePath: @sysconfdir@/sfcb/server.pem +## Filename containing list of certificates server accepts +## Default is @sysconfdir@/sfcb/clist.pem +sslCertList: @sysconfdir@/sfcb/clist.pem + ## How SFCB handles client certificate based authentication. ## ignore - do not request a certificate from the client ## accept - request a certificate from the client; do not fail if not presented hooks/post-receive -- SFCB - Small Footprint CIM Broker |
From: Dave B. <bla...@us...> - 2011-05-31 16:29:08
|
Update of /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/http In directory vz-cvs-3.sog:/tmp/cvs-serv5486/src/org/sblim/cimclient/internal/http Modified Files: HttpServerConnection.java Log Message: 3206904 - Indication listener deadlock causes JVM to run out sockets Index: HttpServerConnection.java =================================================================== RCS file: /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/http/HttpServerConnection.java,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- HttpServerConnection.java 29 Jul 2010 13:53:07 -0000 1.14 +++ HttpServerConnection.java 31 May 2011 16:29:06 -0000 1.15 @@ -1,5 +1,5 @@ /** - * (C) Copyright IBM Corp. 2005, 2010 + * (C) Copyright IBM Corp. 2005, 2011 * * THIS FILE IS PROVIDED UNDER THE TERMS OF THE ECLIPSE PUBLIC LICENSE * ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE @@ -28,6 +28,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) * 3027392 2010-07-09 blaschke-oss Nullcheck of value previously dereferenced + * 3206904 2011-03-11 lupusalex Indication listener deadlock causes JVM to run out sockets */ package org.sblim.cimclient.internal.http; @@ -38,8 +39,9 @@ import java.net.Socket; import java.net.SocketException; import java.net.UnknownHostException; -import java.util.LinkedList; -import java.util.List; +import java.util.concurrent.ArrayBlockingQueue; +import java.util.concurrent.BlockingQueue; +import java.util.concurrent.TimeUnit; import java.util.logging.Level; import javax.net.ssl.SSLContext; @@ -65,7 +67,7 @@ private HttpConnectionDispatcher iDispatcher; - private boolean iClose = true; + private volatile boolean iClose = true; private String iServerName; @@ -180,7 +182,8 @@ this.iSessionProperties.getListenerMinPoolSize(), this.iSessionProperties .getListenerMaxPoolSize(), this.iSessionProperties.getListenerBacklog(), this.iSessionProperties - .getListenerMaxIdle(), group, "Handler ")); + .getListenerMaxIdle(), group, "Handler "), this.iSessionProperties + .getListenerMaxQueueSize()); this.iDispatcher.start(); this.iRunner = new Thread(group, this, this.iServerName); this.iRunner.setDaemon(true); @@ -194,14 +197,34 @@ try { Socket socket = this.iServerSocket.accept(); try { - // socket.setKeepAlive(true); socket.setTcpNoDelay(true); socket.setSoTimeout(this.iTimeout); } catch (IOException e) { LogAndTraceBroker.getBroker().trace(Level.FINE, "Exception while adjusting socket options", e); } - this.iDispatcher.dispatch(socket); + boolean dispatched = this.iDispatcher.dispatch(socket); + if (!dispatched) { + MessageWriter writer = new MessageWriter(socket.getOutputStream(), false, false); + try { + writer.setMethod(new HttpServerMethod(1, 1, 503, + "Service temporarily overloaded")); + writer.getHeader().addField("Retry-After", "10"); + writer.close(); + } catch (IOException e) { + LogAndTraceBroker.getBroker().trace(Level.FINE, + "Exception while sending HTTP 503", e); + } finally { + socket.close(); + } + LogAndTraceBroker + .getBroker() + .trace(Level.FINE, + "HttpServerConnection failed to dispatch incoming connection, sent 503"); + } else { + LogAndTraceBroker.getBroker().trace(Level.FINE, + "HttpServerConnection dispatched incoming connection"); + } } catch (Throwable t) { if (t instanceof SocketException && this.iClose) { break; @@ -265,9 +288,9 @@ */ private static class HttpConnectionDispatcher extends Thread { - private List<Socket> iConnectionPool = new LinkedList<Socket>(); + private BlockingQueue<Socket> iConnectionPool; - private boolean iAlive = true; + private volatile boolean iAlive = true; private HttpConnectionHandler iHandler; @@ -282,33 +305,32 @@ * The connection handler * @param pPool * The thread pool + * @param pQueueSize + * The fixed capacity for the queue of pending connections */ public HttpConnectionDispatcher(ThreadGroup pGroup, HttpConnectionHandler pHandler, - ThreadPool pPool) { + ThreadPool pPool, int pQueueSize) { super(pGroup, "Connection Dispatcher"); setDaemon(true); + this.iConnectionPool = new ArrayBlockingQueue<Socket>(pQueueSize > 0 ? pQueueSize : 1); this.iHandler = pHandler; this.iThreadPool = pPool; } /** - * Returns the connection pool - * - * @return The connection pool - */ - public List<Socket> getConnectionPool() { - return this.iConnectionPool; - } - - /** * Dispatches a connection * * @param pSocket * The socket of the connection + * @return true if dispatch was successful */ - public synchronized void dispatch(Socket pSocket) { - this.iConnectionPool.add(pSocket); - notify(); + public boolean dispatch(Socket pSocket) { + try { + return this.iConnectionPool.offer(pSocket, 20, TimeUnit.MILLISECONDS); + } catch (InterruptedException e) { + /* */ + } + return false; } /** @@ -316,16 +338,13 @@ * * @return The socket of the connection */ - public synchronized Socket getConnection() { - while (this.iConnectionPool.size() == 0) { - try { - wait(); - } catch (InterruptedException e) { - // just ignore it, it is expected - } - if (!this.iAlive) return null; + public Socket getConnection() { + try { + return this.iConnectionPool.poll(100, TimeUnit.MILLISECONDS); + } catch (InterruptedException e) { + // just ignore it, it is expected } - return this.iConnectionPool.remove(0); + return null; } @Override @@ -334,7 +353,7 @@ try { Socket socket = getConnection(); if (socket != null) { - this.iThreadPool.execute(new HttpServerWorker(this.iHandler, socket), true); + this.iThreadPool.execute(new HttpServerWorker(this.iHandler, socket)); } } catch (Throwable t) { try { @@ -362,9 +381,8 @@ /** * Closes the dispatcher */ - public synchronized void close() { + public void close() { this.iAlive = false; - notifyAll(); } } } |
From: Dave B. <bla...@us...> - 2011-05-31 14:23:14
|
Update of /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/cimxml In directory vz-cvs-3.sog:/tmp/cvs-serv15788/src/org/sblim/cimclient/internal/cimxml Modified Files: CIMXMLParserImpl.java Log Message: 3297028 - Instances contain CIMClassProperty with DOM parser Index: CIMXMLParserImpl.java =================================================================== RCS file: /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/cimxml/CIMXMLParserImpl.java,v retrieving revision 1.41 retrieving revision 1.42 diff -u -d -r1.41 -r1.42 --- CIMXMLParserImpl.java 31 May 2011 14:06:47 -0000 1.41 +++ CIMXMLParserImpl.java 31 May 2011 14:23:12 -0000 1.42 @@ -48,6 +48,7 @@ * 3027479 2010-07-09 blaschke-oss Dead store to local variable * 3027615 2010-07-12 blaschke-oss Use CLASS_ARRAY_T instead of new CIMDataType(CLASS,0) * 3293248 2011-05-03 blaschke-oss Support for CIM_ERROR instances within ERROR + * 3297028 2011-05-03 blaschke-oss Instances contain CIMClassProperty with DOM parser */ package org.sblim.cimclient.internal.cimxml; @@ -1523,7 +1524,20 @@ */ public static CIMProperty<?>[] parsePROPERTIES(Element pElement) throws CIMXMLParseException { Vector<CIMClassProperty<?>> classPropVec = parseClassPropsToVec(pElement); - return classPropVec.toArray(new CIMProperty[0]); + // The following does not convert Vector<CIMClassProperty> to + // CIMProperty[], it is still CIMClassProperty[]!!! You can treat it + // like a CIMProperty (property.getValue(), etc.) but (property + // instanceof CIMProperty) will return false! + // return classPropVec.toArray(new CIMProperty[0]); + + int arraySize = classPropVec.size(); + CIMProperty<?>[] retA = new CIMProperty[arraySize]; + for (int i = 0; i < arraySize; i++) { + CIMClassProperty<?> prop = classPropVec.get(i); + retA[i] = new CIMProperty<Object>(prop.getName(), prop.getDataType(), prop.getValue(), + prop.isKey(), prop.isPropagated(), prop.getOriginClass()); + } + return retA; } /** |
From: Dave B. <bla...@us...> - 2011-05-31 14:06:50
|
Update of /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/cimxml In directory vz-cvs-3.sog:/tmp/cvs-serv12124/src/org/sblim/cimclient/internal/cimxml Modified Files: CIMXMLParserImpl.java Log Message: 3293248 - Support for CIM_ERROR instances within ERROR Index: CIMXMLParserImpl.java =================================================================== RCS file: /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/cimxml/CIMXMLParserImpl.java,v retrieving revision 1.40 retrieving revision 1.41 diff -u -d -r1.40 -r1.41 --- CIMXMLParserImpl.java 16 Aug 2010 17:20:50 -0000 1.40 +++ CIMXMLParserImpl.java 31 May 2011 14:06:47 -0000 1.41 @@ -1,7 +1,7 @@ /** * CIMXMLParserImpl.java * - * (C) Copyright IBM Corp. 2005, 2010 + * (C) Copyright IBM Corp. 2005, 2011 * * THIS FILE IS PROVIDED UNDER THE TERMS OF THE ECLIPSE PUBLIC LICENSE * ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE @@ -47,6 +47,7 @@ * 3023143 2010-07-01 blaschke-oss CIMXMLParserImpl uses # constructor instead of valueOf * 3027479 2010-07-09 blaschke-oss Dead store to local variable * 3027615 2010-07-12 blaschke-oss Use CLASS_ARRAY_T instead of new CIMDataType(CLASS,0) + * 3293248 2011-05-03 blaschke-oss Support for CIM_ERROR instances within ERROR */ package org.sblim.cimclient.internal.cimxml; @@ -2596,9 +2597,10 @@ * * @param pErrorE * @return WBEMException + * @throws CIMXMLParseException */ - public static WBEMException parseERROR(Element pErrorE) { - // <!ELEMENT ERROR EMPTY> + public static WBEMException parseERROR(Element pErrorE) throws CIMXMLParseException { + // <!ELEMENT ERROR (INSTANCE*)> // <!ATTLSIT ERROR %CODE;%DESCRIPTION;> Attr error_codeA = (Attr) searchAttribute(pErrorE, "CODE"); @@ -2616,8 +2618,22 @@ description = error_descriptionA.getNodeValue(); } + Vector<Object> rtnV = new Vector<Object>(); + + // INSTANCE + Element[] instElementA = searchNodes(pErrorE, "INSTANCE"); + if (instElementA != null && instElementA.length > 0) { + for (int i = 0; i < instElementA.length; i++) { + Element instanceE = instElementA[i]; + CIMInstance inst = parseINSTANCE(instanceE); + rtnV.add(inst); + } + } + // throw new CIMException(CIMException.getErrorName(errorCode), // description.substring(description.indexOf(':')+1)); + if (!rtnV.isEmpty()) return new WBEMException(WBEMException.CIM_ERR_FAILED, "ErrorCode:" + + errorCode + " description:" + description, rtnV.toArray(new CIMInstance[0])); return new WBEMException("ErrorCode:" + errorCode + " description:" + description); } |
From: Chris B. <buc...@us...> - 2011-05-30 21:17:52
|
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 a308ad3ec7861cf10d27cd1f5214d17ba023e8c7 (commit) via 58efd63da97f82721789acf826abb2e48647c37b (commit) via e7bf71b3ff4c8f6e347b3c922db47554830bfaf4 (commit) from f466bb31d62ddb41072e5fc3b9de4df497f85b27 (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 a308ad3ec7861cf10d27cd1f5214d17ba023e8c7 Merge: 58efd63da97f82721789acf826abb2e48647c37b f466bb31d62ddb41072e5fc3b9de4df497f85b27 Author: buccella <buc...@li...> Date: Mon May 30 16:05:43 2011 -0400 Merge branch 'master' of ssh://sblim.git.sourceforge.net/gitroot/sblim/sfcb Conflicts: ChangeLog commit 58efd63da97f82721789acf826abb2e48647c37b Author: buccella <buc...@li...> Date: Mon May 30 16:00:43 2011 -0400 [ 3309374 ] Implement CIM_CIMXMLCommunicationMechanism commit e7bf71b3ff4c8f6e347b3c922db47554830bfaf4 Author: buccella <buc...@li...> Date: Mon May 30 14:52:42 2011 -0400 [ 3309374 ] Implement CIM_CIMXMLCommunicationMechanism ----------------------------------------------------------------------- Summary of changes: diff --git a/10_interop.mof b/10_interop.mof index 6bdcd83..a726caa 100644 --- a/10_interop.mof +++ b/10_interop.mof @@ -15,7 +15,7 @@ class DMY_IndicationService : CIM_IndicationService { }; -class DMY_ObjectManagerCommunicationMechanism : CIM_ObjectManagerCommunicationMechanism +class SFCB_CIMXMLCommunicationMechanism : CIM_CIMXMLCommunicationMechanism { }; @@ -70,6 +70,11 @@ class DMY_HostedService : CIM_HostedService { }; +class DMY_NamespaceInManager : CIM_NamespaceInManager +{ +}; + + class SFCB_ElementConformsToProfile : CIM_ElementConformsToProfile { }; diff --git a/ChangeLog b/ChangeLog index e8f8812..f75ffcc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2011-05-30 Chris Buccella <buc...@li...> + + * 10_interop.mof, default.reg.in, interopServerProvider.c, + test/xmltest/enumerateinstancenames.ComMech.lines: + [ 3309374 ] Implement CIM_CIMXMLCommunicationMechanism + 2011-05-27 Narasimha Sharoff <nsh...@us...> * Makefile.am diff --git a/NEWS b/NEWS index e342661..510938b 100644 --- a/NEWS +++ b/NEWS @@ -5,6 +5,7 @@ New features: - 3190623 Set *IsSettable propperties to false for IndicationService - 3280992 Add systemd file to SFCB sources - 3177587 create sfcCommon (SFCB 1.4 now requires sfcCommon lib to be installed) +- 3309374 Implement CIM_CIMXMLCommunicationMechanism Bugs fixed: - 3199899 sfcb uninstall process should remove test mof's diff --git a/default.reg.in b/default.reg.in index db71500..e2aab7e 100644 --- a/default.reg.in +++ b/default.reg.in @@ -95,7 +95,7 @@ type: instance namespace: root/interop # -[CIM_ObjectManagerCommunicationMechanism] +[SFCB_CIMXMLCommunicationMechanism] provider: ServerProvider location: sfcInteropServerProvider type: instance @@ -132,4 +132,9 @@ unload: never namespace: root/interop # - +[CIM_NamespaceInManager] + provider: ServerProvider + location: sfcInteropServerProvider + type: association + namespace: root/interop +# diff --git a/interopServerProvider.c b/interopServerProvider.c index 67ccafd..19e1507 100644 --- a/interopServerProvider.c +++ b/interopServerProvider.c @@ -1,8 +1,8 @@ /* - * classProvider.c + * interopServerProvider.c * - * (C) Copyright IBM Corp. 2005 + * (C) Copyright IBM Corp. 2005, 2010, 2011 * * THIS FILE IS PROVIDED UNDER THE TERMS OF THE ECLIPSE PUBLIC LICENSE * ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE @@ -15,7 +15,18 @@ * * Description: * - * InteropServer provider for sfcb . + * InteropServer provider for sfcb + * + * Has implementation for the following classes: + * + * Namespace + * ObjectManager + * CIMXMLCommunicationMechanism + * IndicationService + * IndicationServiceCapabilities + * ServiceAffectsElement + * HostedService + * ElementConformsToProfile * */ @@ -553,11 +564,11 @@ ComMechProviderEnumInstanceNames(CMPIInstanceMI * mi, _SFCB_ENTER(TRACE_PROVIDERS, "ComMechProviderEnumInstanceNames"); op = CMNewObjectPath(_broker, "root/interop", - "CIM_ObjectManagerCommunicationMechanism", NULL); + "SFCB_CIMXMLCommunicationMechanism", NULL); CMAddKey(op, "SystemCreationClassName", "CIM_ObjectManager", CMPI_chars); CMAddKey(op, "CreationClassName", - "CIM_ObjectManagerCommunicationMechanism", CMPI_chars); + "SFCB_CIMXMLCommunicationMechanism", CMPI_chars); hostName[0] = 0; gethostname(hostName, 511); CMAddKey(op, "SystemName", hostName, CMPI_chars); @@ -591,13 +602,13 @@ ComMechProviderEnumInstances(CMPIInstanceMI * mi, _SFCB_ENTER(TRACE_PROVIDERS, "ComMechProviderEnumInstanceNames"); op = CMNewObjectPath(_broker, "root/interop", - "CIM_ObjectManagerCommunicationMechanism", NULL); + "SFCB_CIMXMLCommunicationMechanism", NULL); ci = CMNewInstance(_broker, op, NULL); CMSetProperty(ci, "SystemCreationClassName", "CIM_ObjectManager", CMPI_chars); CMSetProperty(ci, "CreationClassName", - "CIM_ObjectManagerCommunicationMechanism", CMPI_chars); + "SFCB_CIMXMLCommunicationMechanism", CMPI_chars); hostName[0] = 0; gethostname(hostName, 511); CMSetProperty(ci, "SystemName", hostName, CMPI_chars); @@ -626,6 +637,8 @@ ComMechProviderEnumInstances(CMPIInstanceMI * mi, CMSetProperty(ci, "MultipleOperationsSupported", &bul, CMPI_boolean); + CMSetProperty(ci, "CIMValidated", &bul, CMPI_boolean); + CMReturnInstance(rslt, ci); _SFCB_RETURN(st); @@ -648,7 +661,7 @@ ServiceProviderGetInstance(CMPIInstanceMI * mi, if (strcasecmp(className, "cim_objectmanager") == 0) return ObjectManagerProviderEnumInstances(mi, ctx, rslt, ref, properties); - if (strcasecmp(className, "cim_objectmanagercommunicationMechanism") + if (strcasecmp(className, "sfcb_cimxmlcommunicationMechanism") == 0) return ComMechProviderEnumInstances(mi, ctx, rslt, ref, properties); @@ -693,9 +706,9 @@ ServerProviderGetInstance(CMPIInstanceMI * mi, return ServiceProviderGetInstance(mi, ctx, rslt, ref, properties, "cim_objectmanager"); if (strcasecmp - ((char *) cls->hdl, "cim_objectmanagercommunicationMechanism") == 0) + ((char *) cls->hdl, "sfcb_cimxmlcommunicationMechanism") == 0) return ServiceProviderGetInstance(mi, ctx, rslt, ref, properties, - "cim_objectmanagercommunicationMechanism"); + "sfcb_cimxmlcommunicationMechanism"); if (strcasecmp((char *) cls->hdl, "cim_indicationservice") == 0) return ServiceProviderGetInstance(mi, ctx, rslt, ref, properties, "cim_indicationservice"); @@ -724,7 +737,7 @@ ServerProviderEnumInstanceNames(CMPIInstanceMI * mi, "CIM_ObjectManager", "CIM_ComputerSystem"); if (strcasecmp - ((char *) cls->hdl, "cim_objectmanagercommunicationMechanism") == 0) + ((char *) cls->hdl, "sfcb_cimxmlcommunicationMechanism") == 0) return ComMechProviderEnumInstanceNames(mi, ctx, rslt, ref); if (strcasecmp((char *) cls->hdl, "cim_indicationservice") == 0) return ServiceProviderEnumInstanceNames(mi, ctx, rslt, ref, @@ -757,7 +770,7 @@ ServerProviderEnumInstances(CMPIInstanceMI * mi, return ObjectManagerProviderEnumInstances(mi, ctx, rslt, ref, properties); if (strcasecmp - ((char *) cls->hdl, "cim_objectmanagercommunicationMechanism") == 0) + ((char *) cls->hdl, "sfcb_cimxmlcommunicationMechanism") == 0) return ComMechProviderEnumInstances(mi, ctx, rslt, ref, properties); if (strcasecmp((char *) cls->hdl, "cim_interopservice") == 0) /* do we * * still * diff --git a/test/xmltest/enumerateinstancenames.ComMech.lines b/test/xmltest/enumerateinstancenames.ComMech.lines index c71c6b9..502fd19 100644 --- a/test/xmltest/enumerateinstancenames.ComMech.lines +++ b/test/xmltest/enumerateinstancenames.ComMech.lines @@ -1,8 +1,8 @@ -<INSTANCENAME CLASSNAME="CIM_ObjectManagerCommunicationMechanism"> +<INSTANCENAME CLASSNAME="SFCB_CIMXMLCommunicationMechanism"> <KEYBINDING NAME="SystemCreationClassName"> <KEYVALUE VALUETYPE="string">CIM_ObjectManager</KEYVALUE> </KEYBINDING> <KEYBINDING NAME="CreationClassName"> -<KEYVALUE VALUETYPE="string">CIM_ObjectManagerCommunicationMechanism</KEYVALUE> +<KEYVALUE VALUETYPE="string">SFCB_CIMXMLCommunicationMechanism</KEYVALUE> </KEYBINDING> </INSTANCENAME> hooks/post-receive -- SFCB - Small Footprint CIM Broker |
From: Chris B. <buc...@us...> - 2011-05-28 00:03:27
|
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 "SFCC - Small Footprint CIM Client". The branch, master has been updated via adb28fdea528588bde6201d420f062551184d3db (commit) from 876cd43f69dcbafdd4506fb7c2ca8a06b5a7495d (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 adb28fdea528588bde6201d420f062551184d3db Author: buccella <buc...@li...> Date: Fri May 27 20:04:08 2011 -0400 added 3286489 ----------------------------------------------------------------------- Summary of changes: diff --git a/contributions.txt b/contributions.txt index df15190..d37e6a4 100644 --- a/contributions.txt +++ b/contributions.txt @@ -37,6 +37,7 @@ Klaus Kampf, Novell 09/02/2009 [ 2847782 ] sfcc getClass crashes if cimom isn't running 09/22/2009 [ 2849853 ] getClass reports most property types as CMPI_Instance 03/23/2011 [ 2990315 ] cmciRelease not called in case of error +04/25/2011 [ 2967265 ] code cleanup in sfcclient Suresh Sundriyal, VMWare ------------------------ @@ -46,6 +47,7 @@ Suresh Sundriyal, VMWare Josef Moellers, Fujitsu ----------------------- 03/29/2011 [ 3196128 ] enumInstances does not set NameSpace in ObjectPath in XML mode +05/27/2011 [ 3286489 ] getInstance does not return key/value through XML J. Bart Whiteley, Novell ------------------------ hooks/post-receive -- SFCC - Small Footprint CIM Client |
From: Chris B. <buc...@us...> - 2011-05-27 23:41:28
|
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 "SFCC - Small Footprint CIM Client". The branch, master has been updated via 876cd43f69dcbafdd4506fb7c2ca8a06b5a7495d (commit) via 98bed70f031dcdc677475112b22f7d3ea1857986 (commit) via fdb60c78dd12e70af0e9e5252edd9d2d556f497e (commit) from 45fde32053f8903900d7ea5242e27fad84663a78 (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 876cd43f69dcbafdd4506fb7c2ca8a06b5a7495d Merge: 98bed70f031dcdc677475112b22f7d3ea1857986 45fde32053f8903900d7ea5242e27fad84663a78 Author: buccella <buc...@li...> Date: Fri May 27 19:41:59 2011 -0400 Merge branch 'master' of ssh://sblim.git.sourceforge.net/gitroot/sblim/sfcc Conflicts: ChangeLog NEWS commit 98bed70f031dcdc677475112b22f7d3ea1857986 Author: buccella <buc...@li...> Date: Fri May 27 19:34:39 2011 -0400 [ 3286489 ] getInstance does not return key/value through XML commit fdb60c78dd12e70af0e9e5252edd9d2d556f497e Author: buccella <buc...@li...> Date: Fri May 27 19:27:20 2011 -0400 added .gitignore ----------------------------------------------------------------------- Summary of changes: diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..97a323a --- /dev/null +++ b/.gitignore @@ -0,0 +1,66 @@ +*.lo +*.o +.deps/ +.gitignore +.libs/ +Makefile +Makefile.in +TAGS +TEST/.deps/ +TEST/.libs/ +TEST/Makefile +TEST/Makefile.in +TEST/TAGS +TEST/stress.sh +TEST/test +TEST/test_an +TEST/test_an_2 +TEST/test_as +TEST/test_as_2 +TEST/test_ci +TEST/test_cpp +TEST/test_di +TEST/test_ec +TEST/test_ecn +TEST/test_ecn_ssl +TEST/test_ei +TEST/test_ein +TEST/test_gc +TEST/test_gi +TEST/test_gp +TEST/test_im1 +TEST/test_im2 +TEST/test_im3 +TEST/test_im4 +TEST/test_imos +TEST/test_leak +TEST/test_qualifiers +TEST/test_qualifiers2 +TEST/test_rf +TEST/test_rfn +TEST/test_si +TEST/test_sp +TEST/test_xq +TEST/v2test_ec +TEST/v2test_ecn +TEST/v2test_ei +TEST/v2test_ein +TEST/v2test_gc +TEST/v2test_im +aclocal.m4 +autom4te.cache/ +*~ +config.guess +config.h +config.h.in +config.log +config.status +config.sub +configure +depcomp +install-sh +*.la +libtool +ltmain.sh +missing +sfcc.spec diff --git a/ChangeLog b/ChangeLog index e8450ab..3d55979 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2011-05-27 Chris Buccella <buc...@li...> + + * backend/cimxml/grammar.c, backend/cimxml/cimXmlParser.h, + backend/cimxml/cimXmlParser.c, backend/cimxml/instance.c, + backend/cimxml/objectpath.c, frontend/sfcc/native.h: + [ 3286489 ] getInstance does not return key/value through XML + (patch originated by Josef Moellers) + 2011-04-25 Narasimha Sharoff <nsh...@us...> * frontend/sfcc/sfcclient.c: diff --git a/NEWS b/NEWS index 2e3e90d..f2be3ed 100644 --- a/NEWS +++ b/NEWS @@ -2,8 +2,10 @@ Small Footprint CIM Client Library NEWS Changes in 2.2.3 ================ + Bugs: - 2967265: Code cleanup in frontend/sfcc/sfcclient.c +- 3286489: getInstance does not return key/value through XML Changes in 2.2.2 ================ diff --git a/backend/cimxml/cimXmlParser.c b/backend/cimxml/cimXmlParser.c index 3e0baef..c6a0908 100644 --- a/backend/cimxml/cimXmlParser.c +++ b/backend/cimxml/cimXmlParser.c @@ -1386,9 +1386,7 @@ ResponseHdr scanCimXmlResponse(const char *xmlData, CMPIObjectPath *cop) control.respHdr.rvArray=newCMPIArray(0,0,NULL); - if(cop) { - control.da_nameSpace=(char*)getNameSpaceChars(cop); - } + control.requestObjectPath = cop; control.heap = parser_heap_init(); @@ -1531,9 +1529,7 @@ void * enumScanThrd(struct native_enum *NatEnum) local_enmp->data = control.respHdr.rvArray ; - if(cop) { - control.da_nameSpace=(char*)getNameSpaceChars(cop); - } + control.requestObjectPath = cop; control.heap = parser_heap_init(); diff --git a/backend/cimxml/cimXmlParser.h b/backend/cimxml/cimXmlParser.h index 191fa52..f34d36b 100644 --- a/backend/cimxml/cimXmlParser.h +++ b/backend/cimxml/cimXmlParser.h @@ -426,7 +426,7 @@ typedef struct parser_heap { typedef struct parser_control { XmlBuffer *xmb; ResponseHdr respHdr; - char *da_nameSpace; + CMPIObjectPath *requestObjectPath; ParserHeap *heap; #ifdef LARGE_VOL_SUPPORT CMCIConnection * econ ; /* enumeration connection */ diff --git a/backend/cimxml/grammar.c b/backend/cimxml/grammar.c index 871c58a..8fb5f91 100644 --- a/backend/cimxml/grammar.c +++ b/backend/cimxml/grammar.c @@ -193,7 +193,7 @@ static void exParamValue(ParserControl *parm, parseUnion *stateUnion) dontLex = 1; instance(parm, (parseUnion*)&lvalp.xtokInstance); inst = native_new_CMPIInstance(NULL,NULL); - setInstNsAndCn(inst,parm->da_nameSpace,lvalp.xtokInstance.className); + setInstNsAndCn(inst,getNameSpaceChars(parm->requestObjectPath),lvalp.xtokInstance.className); setInstProperties(inst, &lvalp.xtokInstance.properties); simpleArrayAdd(parm->respHdr.rvArray,(CMPIValue*)&inst,CMPI_instance); } @@ -295,7 +295,7 @@ static void returnValue(ParserControl *parm, parseUnion *stateUnion) else if(stateUnion->xtokReturnValue.data.value.type == typeValue_Instance) { t = CMPI_instance; inst = native_new_CMPIInstance(NULL,NULL); - setInstNsAndCn(inst,parm->da_nameSpace,stateUnion->xtokReturnValue.data.value.data.inst->className); + setInstNsAndCn(inst,getNameSpaceChars(parm->requestObjectPath),stateUnion->xtokReturnValue.data.value.data.inst->className); setInstProperties(inst, &stateUnion->xtokReturnValue.data.value.data.inst->properties); val.inst = inst; } @@ -452,8 +452,7 @@ static void iReturnValueContent(ParserControl *parm, parseUnion *stateUnion) do { dontLex = 1; instance(parm, (parseUnion*)&lvalp.xtokInstance); - inst = native_new_CMPIInstance(NULL,NULL); - setInstNsAndCn(inst,parm->da_nameSpace,lvalp.xtokInstance.className); + inst = native_new_CMPIInstance(parm->requestObjectPath,NULL); setInstProperties(inst, &lvalp.xtokInstance.properties); simpleArrayAdd(parm->respHdr.rvArray,(CMPIValue*)&inst,CMPI_instance); ct = localLex(&lvalp, parm); @@ -477,7 +476,7 @@ static void iReturnValueContent(ParserControl *parm, parseUnion *stateUnion) dontLex = 1; valueNamedInstance(parm, (parseUnion*)&lvalp.xtokNamedInstance); createPath(&op,&(lvalp.xtokNamedInstance.path)); - CMSetNameSpace(op, parm->da_nameSpace); + CMSetNameSpace(op, getNameSpaceChars(parm->requestObjectPath)); inst = native_new_CMPIInstance(op,NULL); //setInstQualifiers(inst, &lvalp.xtokNamedInstance.instance.qualifiers); setInstProperties(inst, &lvalp.xtokNamedInstance.instance.properties); diff --git a/backend/cimxml/instance.c b/backend/cimxml/instance.c index 43df5a4..72f034b 100644 --- a/backend/cimxml/instance.c +++ b/backend/cimxml/instance.c @@ -375,7 +375,7 @@ CMPIInstance * native_new_CMPIInstance ( CMPIObjectPath * cop, return (CMPIInstance *) instance; } -void setInstNsAndCn(CMPIInstance *ci, char *ns, char *cn) +void setInstNsAndCn(CMPIInstance *ci, const char *ns, char *cn) { struct native_instance * i = (struct native_instance *) ci; diff --git a/backend/cimxml/objectpath.c b/backend/cimxml/objectpath.c index 09d0cd9..2e4df1e 100644 --- a/backend/cimxml/objectpath.c +++ b/backend/cimxml/objectpath.c @@ -438,6 +438,8 @@ static CMPIString *__oft_toString(CMPIObjectPath * cop, CMPIStatus * rc) const char *getNameSpaceChars(CMPIObjectPath * cop) { + if (cop == NULL) return NULL; + struct native_cop * o = (struct native_cop *) cop; return o->nameSpace; } diff --git a/frontend/sfcc/native.h b/frontend/sfcc/native.h index cb1b5a7..2b14ab9 100644 --- a/frontend/sfcc/native.h +++ b/frontend/sfcc/native.h @@ -225,7 +225,7 @@ CMPIDateTime * native_new_CMPIDateTime_fromChars ( const char *, struct xtokValueReference; CMPIValue str2CMPIValue(CMPIType type, char *val, struct xtokValueReference *ref); -void setInstNsAndCn(CMPIInstance *ci, char *ns, char *cn); +void setInstNsAndCn(CMPIInstance *ci, const char *ns, char *cn); CMPIStatus simpleArrayAdd(CMPIArray * array, CMPIValue * val, CMPIType type); const char *getNameSpaceChars(CMPIObjectPath * cop); CMPIValue *getKeyValueTypePtr(char *type, char *value, struct xtokValueReference *ref, hooks/post-receive -- SFCC - Small Footprint CIM Client |
From: Narasimha S. <nsh...@us...> - 2011-05-27 20:40:26
|
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 f466bb31d62ddb41072e5fc3b9de4df497f85b27 (commit) from f3df5ee6f20aa07751fa96f7016849cf6ea0283b (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 f466bb31d62ddb41072e5fc3b9de4df497f85b27 Author: Narasimha Sharoff <nsh...@us...> Date: Fri May 27 13:39:13 2011 -0700 [3199899] sfcb uninstall process should remove test mof's ----------------------------------------------------------------------- Summary of changes: diff --git a/ChangeLog b/ChangeLog index 40d4a95..e8f8812 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2011-05-27 Narasimha Sharoff <nsh...@us...> + + * Makefile.am + [ 3199899 ] sfcb uninstall process should remove test mof's + 2011-05-16 Michael Chase-Salerno <br...@li...> * indCIMXMLHandler.c diff --git a/Makefile.am b/Makefile.am index fd87371..7326377 100644 --- a/Makefile.am +++ b/Makefile.am @@ -521,6 +521,9 @@ endif if DOCS rm -rf $(DESTDIR)$(sfcbdocdir)/html endif +if TEST_ENABLED + ./test/stageschema.sh -d test/schema -p $(prefix) -u +endif clean-local: rm -f sfcbrepos sfcbstage sfcbunstage sfcbuuid sfcb.cfg getSchema.sh sfcb \ diff --git a/NEWS b/NEWS index da506dc..e342661 100644 --- a/NEWS +++ b/NEWS @@ -7,6 +7,7 @@ New features: - 3177587 create sfcCommon (SFCB 1.4 now requires sfcCommon lib to be installed) Bugs fixed: +- 3199899 sfcb uninstall process should remove test mof's Everything in 1.3.12, plus: hooks/post-receive -- SFCB - Small Footprint CIM Broker |
From: Chris B. <buc...@us...> - 2011-05-24 18:44:13
|
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 f3df5ee6f20aa07751fa96f7016849cf6ea0283b (commit) via 00ceb42e91fce604644e80035de908a525759ee3 (commit) from e3955a0fd2f91e869f55facd63261ebd58a63986 (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 f3df5ee6f20aa07751fa96f7016849cf6ea0283b Author: buccella <buc...@li...> Date: Tue May 24 14:44:50 2011 -0400 added cmpi-devel Require commit 00ceb42e91fce604644e80035de908a525759ee3 Author: buccella <buc...@li...> Date: Tue May 24 14:42:47 2011 -0400 updated with new URL; added sfcCommon Require ----------------------------------------------------------------------- Summary of changes: diff --git a/sfcb.spec.in b/sfcb.spec.in index 7c8ba0e..08adb9d 100644 --- a/sfcb.spec.in +++ b/sfcb.spec.in @@ -12,17 +12,19 @@ Version: @PACKAGE_VERSION@ Release: 0 Group: Systems Management/Base License: EPL -URL: http://www.sblim.org -Source0: ftp://dl.sourceforge.net/pub/s/sb/sblim/%{name}-%{version}.tar.bz2 +URL: https://sourceforge.net/projects/sblim/ +Source0: https://downloads.sourceforge.net/project/sblim/sblim-sfcb/1.4%20branch%20%28unstable%29/%{name}-%{version}.tar.bz2 Provides: cimserver BuildRequires: curl-devel BuildRequires: zlib-devel BuildRequires: openssl-devel BuildRequires: pam-devel +BuildRequires: sblim-cmpi-devel Requires: curl Requires: zlib Requires: openssl Requires: pam +Requires: libsblim-sfccommon %Description Small Footprint CIM Broker (sfcb) is a CIM server conforming to the hooks/post-receive -- SFCB - Small Footprint CIM Broker |
From: Tyrel D. <ty...@us...> - 2011-05-24 01:36:31
|
Update of /cvsroot/sblim/cmpi-base In directory vz-cvs-3.sog:/tmp/cvs-serv1786 Modified Files: NEWS OSBase_OperatingSystem.c Log Message: Fixed 3306580: wrong OperatingSystem.Version prop value on RHEL6 Index: NEWS =================================================================== RCS file: /cvsroot/sblim/cmpi-base/NEWS,v retrieving revision 1.43 retrieving revision 1.44 diff -u -d -r1.43 -r1.44 --- NEWS 24 May 2011 00:31:39 -0000 1.43 +++ NEWS 24 May 2011 01:36:29 -0000 1.44 @@ -3,6 +3,7 @@ Bugs Fixed: - 3275169 bash error reported in provider bootstrap scripts +- 3306580 wrong OperatingSystem.Version prop value on RHEL6 Changes in Version 1.6.1 ======================== Index: OSBase_OperatingSystem.c =================================================================== RCS file: /cvsroot/sblim/cmpi-base/OSBase_OperatingSystem.c,v retrieving revision 1.30 retrieving revision 1.31 diff -u -d -r1.30 -r1.31 --- OSBase_OperatingSystem.c 25 Jul 2009 00:37:30 -0000 1.30 +++ OSBase_OperatingSystem.c 24 May 2011 01:36:29 -0000 1.31 @@ -143,7 +143,7 @@ _OSBASE_TRACE(4,("--- _init_os_distro() called : init")); - rc = runcommand( "find /etc/ -type f -maxdepth 1 -name *release* 2>/dev/null" , NULL , &hdout , NULL ); + rc = runcommand( "find /etc/ -maxdepth 1 -type f -name *release 2>/dev/null" , NULL , &hdout , NULL ); if( rc == 0 && *hdout != NULL) { while (hdout[j] && hdout[j][0]) { if (strstr(hdout[j],"lsb-release") && hdout[j+1] && hdout[j+1][0]) { |
From: Tyrel D. <ty...@us...> - 2011-05-24 00:31:42
|
Update of /cvsroot/sblim/cmpi-base In directory vz-cvs-3.sog:/tmp/cvs-serv26118 Modified Files: NEWS Log Message: Fixed 3275169: bash error reported in provider bootstrap scripts Index: NEWS =================================================================== RCS file: /cvsroot/sblim/cmpi-base/NEWS,v retrieving revision 1.42 retrieving revision 1.43 diff -u -d -r1.42 -r1.43 --- NEWS 4 Jan 2011 23:26:21 -0000 1.42 +++ NEWS 24 May 2011 00:31:39 -0000 1.43 @@ -1,3 +1,9 @@ +Changes in Version 1.6.2 +======================== + +Bugs Fixed: +- 3275169 bash error reported in provider bootstrap scripts + Changes in Version 1.6.1 ======================== |
From: Dave B. <bla...@us...> - 2011-05-20 15:45:01
|
Update of /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/wbem/indications In directory vz-cvs-3.sog:/tmp/cvs-serv3968/src/org/sblim/cimclient/internal/wbem/indications Modified Files: Tag: Experimental CIMIndicationHandler.java Log Message: 3304953 - Indication URL mapped to lower case Index: CIMIndicationHandler.java =================================================================== RCS file: /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/wbem/indications/CIMIndicationHandler.java,v retrieving revision 1.10.2.13 retrieving revision 1.10.2.14 diff -u -d -r1.10.2.13 -r1.10.2.14 --- CIMIndicationHandler.java 20 May 2011 14:39:45 -0000 1.10.2.13 +++ CIMIndicationHandler.java 20 May 2011 15:44:58 -0000 1.10.2.14 @@ -32,6 +32,7 @@ * 3185763 2011-02-25 blaschke-oss Reliable indication support - Phase 1 * 3288721 2011-05-20 blaschke-oss Need the function of indication reordering * 3304058 2011-05-20 blaschke-oss Use same date format in change history + * 3304953 2011-05-20 blaschke-oss Indication URL mapped to lower case */ package org.sblim.cimclient.internal.wbem.indications; @@ -323,19 +324,21 @@ if (cimEvent instanceof CIMInstance) { CIMInstance indicationInst = (CIMInstance) cimEvent; - String path = pReader.getMethod().getFile().toLowerCase(); - String id = path; + String path = pReader.getMethod().getFile(); + String id; if (path == null) { id = pLocalAddress + "/"; } else if (path.equalsIgnoreCase("/cimom")) { id = path; - } else if (!path.startsWith("http")) { + } else if (path.length() < 4 || !path.regionMatches(true, 0, "http", 0, 4)) { if (path.startsWith("/")) { id = pLocalAddress + path; } else { id = pLocalAddress + "/" + path; } + } else /* path.startsWith("http") */{ + id = path; } if (this.iReliableIndicationsDisabled |
From: Dave B. <bla...@us...> - 2011-05-20 14:39:47
|
Update of /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/wbem/indications In directory vz-cvs-3.sog:/tmp/cvs-serv26038/src/org/sblim/cimclient/internal/wbem/indications Modified Files: Tag: Experimental CIMIndicationHandler.java Log Message: 3304058 - Use same date format in change history Index: CIMIndicationHandler.java =================================================================== RCS file: /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/wbem/indications/CIMIndicationHandler.java,v retrieving revision 1.10.2.12 retrieving revision 1.10.2.13 diff -u -d -r1.10.2.12 -r1.10.2.13 --- CIMIndicationHandler.java 20 May 2011 14:03:03 -0000 1.10.2.12 +++ CIMIndicationHandler.java 20 May 2011 14:39:45 -0000 1.10.2.13 @@ -15,7 +15,7 @@ * Change History * Flag Date Prog Description *------------------------------------------------------------------------------- - * 17931 07/28/2005 thschaef Add InetAddress to CIM Event + * 17931 2005-07-28 thschaef Add InetAddress to CIM Event * 1438152 2006-05-15 lupusalex Wrong message ID in ExportResponseMessage * 1498938 2006-06-01 lupusalex Multiple events in single cim-xml request are not handled * 1498130 2006-05-31 lupusalex Selection of xml parser on a per connection basis @@ -31,6 +31,7 @@ * 3186176 2011-02-18 blaschke-oss XML response for indication not traced * 3185763 2011-02-25 blaschke-oss Reliable indication support - Phase 1 * 3288721 2011-05-20 blaschke-oss Need the function of indication reordering + * 3304058 2011-05-20 blaschke-oss Use same date format in change history */ package org.sblim.cimclient.internal.wbem.indications; |
From: Dave B. <bla...@us...> - 2011-05-20 14:03:06
|
Update of /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/wbem/indications In directory vz-cvs-3.sog:/tmp/cvs-serv17930/src/org/sblim/cimclient/internal/wbem/indications Modified Files: Tag: Experimental CIMIndicationHandler.java Added Files: Tag: Experimental ReliableIndicationHandler.java Log Message: 3288721 - Need the function of indication reordering Index: CIMIndicationHandler.java =================================================================== RCS file: /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/wbem/indications/CIMIndicationHandler.java,v retrieving revision 1.10.2.11 retrieving revision 1.10.2.12 diff -u -d -r1.10.2.11 -r1.10.2.12 --- CIMIndicationHandler.java 25 Feb 2011 17:59:02 -0000 1.10.2.11 +++ CIMIndicationHandler.java 20 May 2011 14:03:03 -0000 1.10.2.12 @@ -30,6 +30,7 @@ * 3185818 2011-02-18 blaschke-oss indicationOccured URL incorrect * 3186176 2011-02-18 blaschke-oss XML response for indication not traced * 3185763 2011-02-25 blaschke-oss Reliable indication support - Phase 1 + * 3288721 2011-05-20 blaschke-oss Need the function of indication reordering */ package org.sblim.cimclient.internal.wbem.indications; @@ -63,6 +64,7 @@ import org.sblim.cimclient.internal.http.io.DebugInputStream; import org.sblim.cimclient.internal.logging.LogAndTraceBroker; import org.sblim.cimclient.internal.util.WBEMConfiguration; +import org.sblim.cimclient.internal.util.WBEMConfigurationDefaults; import org.sblim.cimclient.internal.wbem.CIMError; import org.w3c.dom.Document; import org.w3c.dom.Element; @@ -84,6 +86,12 @@ private boolean iReliableIndicationsDisabled = true; + private boolean iRIInitialized = false; + + private boolean iRISupported = false; + + private ReliableIndicationHandler iRIHandler; + /** * Ctor. * @@ -210,110 +218,98 @@ } } - /* - * Private variables beginning with iRI are for reliable indication support + /** + * deliverIndication handles reliable indications and returns a boolean + * indicating whether the indication should be delivered or not + * + * @param pIndication + * Indication. + * @param pId + * Path portion of indication URL. + * @param pInetAddress + * Host portion of indication URL. + * @return <code>true</code> if indication should be delivered, + * <code>false</code> if <code>ReliableIndicationHandler</code> will + * deliver indication */ - private boolean iRIInitialized = false; - - private boolean iRISupported = false; - - private String iRISequenceContext; - - private Long iRISequenceNumber; - - private long iRIArrivalTime; - - private long iRIIndentifierLifetime; - - private boolean deliverIndication(CIMInstance pIndication) { - // Nothing to check if reliable indications not supported + private boolean deliverIndication(CIMInstance pIndication, String pId, InetAddress pInetAddress) { + // Nothing to do if reliable indications initialized but not supported, + // go ahead and deliver if (this.iRIInitialized && !this.iRISupported) return true; - long arrivalTime = System.currentTimeMillis(); - - // Get reliable indication properties + // Get reliable indication properties from indication CIMProperty<?> seqCtxProp = pIndication.getProperty("SequenceContext"); CIMProperty<?> seqNumProp = pIndication.getProperty("SequenceNumber"); // Initialize (if not yet done so) to check if indication is reliable if (!this.iRIInitialized) { this.iRIInitialized = true; - if (seqCtxProp != null && seqNumProp != null) { - this.iRISupported = true; - - this.iRISequenceContext = (String) seqCtxProp.getValue(); - this.iRISequenceNumber = (Long) seqNumProp.getValue(); - this.iRIArrivalTime = arrivalTime; - - // Calculate sequence identifier lifetime (in milliseconds) - long attempts = this.iSessionProperties.getListenerDeliveryRetryAttempts(); - long interval = this.iSessionProperties.getListenerDeliveryRetryInterval(); - this.iRIIndentifierLifetime = attempts * interval * 10 * 1000; - this.iLogger.trace(Level.FINE, - "Reliable indication support enabled with DeliveryRetryAttempts=" - + attempts + ", DeliveryRetryInterval=" + interval); - } else { + // Reliable indication not found, disable support and go ahead and + // deliver + if (seqCtxProp == null || seqNumProp == null) { this.iRISupported = false; + this.iLogger .trace( Level.FINE, "Reliable indication support disabled, initial indication does not contain SequenceContext and SequenceNumber properties"); + + return true; } - return true; - } - if (seqCtxProp == null || seqNumProp == null) { + // Reliable indication found, enable support + this.iRISupported = true; + + // Validate DeliveryRetryAttempts property + long attempts = this.iSessionProperties.getListenerDeliveryRetryAttempts(); + if (attempts <= 0 || attempts > 1000) { + this.iLogger.trace(Level.FINE, "DeliveryRetryAttempts of " + attempts + + " outside range, using default value"); + + attempts = Long.valueOf(WBEMConfigurationDefaults.LISTENER_DELIVERY_RETRY_ATTEMPTS) + .longValue(); + + } + + // Validate DeliveryRetryInterval property + long interval = this.iSessionProperties.getListenerDeliveryRetryInterval(); + if (interval <= 0 || interval > 86400) { + this.iLogger.trace(Level.FINE, "DeliveryRetryInterval of " + interval + + " outside range, using default value"); + + interval = Long.valueOf(WBEMConfigurationDefaults.LISTENER_DELIVERY_RETRY_INTERVAL) + .longValue(); + } + + // Create new ReliableIndicationHandler for this + // CIMIndicationHandler + this.iRIHandler = new ReliableIndicationHandler(this.iDispatcher, attempts * interval + * 10 * 1000); + this.iLogger.trace(Level.FINE, - "Reliable indications supported but sequence property missing:\n" - + pIndication.toString()); - return true; - } + "Reliable indication support enabled, DeliveryRetryAttempts=" + attempts + + ", DeliveryRetryInterval=" + interval); - String seqCtx = (String) seqCtxProp.getValue(); - Long seqNum = (Long) seqNumProp.getValue(); + // Let ReliableIndicationHandler deliver it + this.iRIHandler.handleIndication(pIndication, pId, pInetAddress); + return false; - if (seqCtx.compareTo(this.iRISequenceContext) != 0) { + } + + // Reliable indication support is enabled but indication does not + // contain both properties, go ahead and deliver + if (seqCtxProp == null || seqNumProp == null) { this.iLogger.trace(Level.FINE, - "Reliable indications supported but context does not match:\n" + "Reliable indication support enabled but sequence property(s) missing:\n" + pIndication.toString()); - return true; - } - // Forget previous information if its lifetime expired - if (arrivalTime > this.iRIArrivalTime + this.iRIIndentifierLifetime) { - this.iLogger.trace(Level.FINE, "Sequence identifier lifetime expired for indication #" - + this.iRISequenceNumber.toString()); - this.iRISequenceNumber = seqNum; - this.iRIArrivalTime = arrivalTime; return true; } - long expectedNum = this.iRISequenceNumber.longValue() + 1; - int compareResult = seqNum.compareTo(this.iRISequenceNumber); - if (compareResult == 0) { - // Duplicate indication received, log and ignore - this.iLogger.trace(Level.FINE, "Duplicate indication #" + seqNum.toString() - + " received; indication ignored"); - return false; - } else if (compareResult < 0) { - // Out-of-order indication received, log and ignore - this.iLogger.trace(Level.FINE, "Out-of-order indication #" + seqNum.toString() - + " received (#" + expectedNum + " expected); indication ignored, logged:\n" - + pIndication.toString()); - return false; - } else { - if (seqNum.compareTo(Long.valueOf(expectedNum)) == 0) { - // Expected indication received, deliver - } else { - // Missing indication(s) detected, log and deliver - this.iLogger.trace(Level.FINE, "Missing indication(s) detected, #" - + seqNum.toString() + " received, #" + expectedNum + " expected"); - } - this.iRISequenceNumber = seqNum; - this.iRIArrivalTime = arrivalTime; - return true; - } + // Let ReliableIndicationHandler deliver it + this.iRIHandler.handleIndication(pIndication, pId, pInetAddress); + return false; } private CIMError dispatchIndications(MessageReader pReader, InetAddress pInetAddress, @@ -326,21 +322,23 @@ if (cimEvent instanceof CIMInstance) { CIMInstance indicationInst = (CIMInstance) cimEvent; - if (this.iReliableIndicationsDisabled || deliverIndication(indicationInst)) { - String path = pReader.getMethod().getFile().toLowerCase(); - String id = path; + String path = pReader.getMethod().getFile().toLowerCase(); + String id = path; - if (path == null) { - id = pLocalAddress + "/"; - } else if (path.equalsIgnoreCase("/cimom")) { - id = path; - } else if (!path.startsWith("http")) { - if (path.startsWith("/")) { - id = pLocalAddress + path; - } else { - id = pLocalAddress + "/" + path; - } + if (path == null) { + id = pLocalAddress + "/"; + } else if (path.equalsIgnoreCase("/cimom")) { + id = path; + } else if (!path.startsWith("http")) { + if (path.startsWith("/")) { + id = pLocalAddress + path; + } else { + id = pLocalAddress + "/" + path; } + } + + if (this.iReliableIndicationsDisabled + || deliverIndication(indicationInst, id, pInetAddress)) { this.iDispatcher.dispatchEvent(new CIMEvent(indicationInst, id, pInetAddress)); } --- NEW FILE: ReliableIndicationHandler.java --- /** * (C) Copyright IBM Corp. 2011 * * THIS FILE IS PROVIDED UNDER THE TERMS OF THE ECLIPSE PUBLIC LICENSE * ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE * CONSTITUTES RECIPIENTS ACCEPTANCE OF THE AGREEMENT. * * You can obtain a current copy of the Eclipse Public License from * http://www.opensource.org/licenses/eclipse-1.0.php * * @author : Dave Blaschke, IBM, bla...@us... * * * Change History * Flag Date Prog Description *------------------------------------------------------------------------------- * 3288721 2011-05-20 blaschke-oss Need the function of indication reordering */ package org.sblim.cimclient.internal.wbem.indications; import java.net.InetAddress; import java.util.Iterator; import java.util.LinkedList; import java.util.logging.Level; import javax.cim.CIMInstance; import javax.cim.CIMProperty; import org.sblim.cimclient.internal.logging.LogAndTraceBroker; /** * <code>ReliableIndicationHandler</code> is responsible for determining when to * dispatch reliable indications, which includes queuing unexpected indications, * caching all indications for the duration of their sequence identifier * lifetime, and logging missing, duplicate and out-of-order indications. This * functionality is based on the changes first introduced by DSP1054 v1.1. * * The <code>handleIndication</code>, <code>areAllEmpty</code> and * <code>processAll</code> methods need to be synchronized because they are the * entry points into <code>ReliableIndicationHandler</code> - the first is the * public entry point that needs to be passed each and every reliable * indication, the other two are only called by the DataManager thread and hence * protected. All of the private methods are only called from one of the three * synchronized methods. * * NOTE: <code>ReliableIndicationHandler</code> does NOT contain any logic for * handling sequence number wrapping. It was deemed unnecessary because of the * performance impact to each and every indication for a VERY rare occurrence: * sequence numbers are longs (signed 64-bit integers) that are are supposed to * start at 0, so even if the listener handled 1,000,00 indications per second, * it would take over 292,471 years for the sequence number to wrap. */ public class ReliableIndicationHandler { /** * <code>DataManager</code> is responsible for background processing of the * reliable indication queue and cache. */ private class DataManager extends Thread { private boolean iAlive = true; public DataManager() { setDaemon(true); } @Override public void run() { while (this.iAlive) { try { if (areAllEmpty()) { sleep(Integer.MAX_VALUE); } else { processAll(); sleep(1000); } } catch (Throwable t) { // Expected, ignore and try again } } } } /** * <code>ReliableIndication</code> represents an entry in the indication * delivery queue, and contains all the information required to manage and * dispatch the indication. Entries in the queue are stored in order of * increasing sequence number and are dispatched when the missing * indication(s) arrive or their sequence identifier lifetime expires. Only * one sequence context can be in the queue at any one time. */ private class ReliableIndication { private long iDiscardTime; private String iId; private CIMInstance iIndication; private InetAddress iInetAddress; private long iSequenceNumber; public ReliableIndication(CIMInstance pIndication, long pSequenceNumber, long pDiscardTime, String pId, InetAddress pInetAddress) { this.iIndication = pIndication; this.iSequenceNumber = pSequenceNumber; this.iDiscardTime = pDiscardTime; this.iId = pId; this.iInetAddress = pInetAddress; } public long getDiscardTime() { return this.iDiscardTime; } public String getId() { return this.iId; } public CIMInstance getIndication() { return this.iIndication; } public InetAddress getInetAddress() { return this.iInetAddress; } public long getSequenceNumber() { return this.iSequenceNumber; } } /** * <code>CacheEntry</code> represents an entry in the sequence identifier * cache. The sequence identifier is comprised of the sequence context and * sequence number, and must be cached for the duration of the sequence * identifier lifetime. Entries in the cache are stored in order of * increasing discard time. */ private class CacheEntry { private String iSeqContext; private long iSeqNumber; private long iDiscardTime; public CacheEntry(String pSequenceContext, long pSequenceNumber, long pDiscardTime) { this.iSeqContext = pSequenceContext; this.iSeqNumber = pSequenceNumber; this.iDiscardTime = pDiscardTime; } public long getDiscardTime() { return this.iDiscardTime; } public String getSequenceContext() { return this.iSeqContext; } public long getSequenceNumber() { return this.iSeqNumber; } } private LinkedList<ReliableIndication> iQueue = new LinkedList<ReliableIndication>(); private LinkedList<CacheEntry> iCache = new LinkedList<CacheEntry>(); private CIMEventDispatcher iDispatcher; private DataManager iDataManagerThread; private LogAndTraceBroker iLogger = LogAndTraceBroker.getBroker(); private long iIndentifierLifetime; // private long iLastArrivalTime; private String iLastSequenceContext; private Long iLastSequenceNumber; private long iExpectedSequenceNumber = 0; /** * Constructs a <code>ReliableIndicationHandler</code> instance that uses * the specified event dispatcher and sequence identifier lifetime to handle * reliable indications. * * @param pDispatcher * <code>CIMEventDispatcher</code> that does the actual * indication dispatching. * @param pIdentiferLifetime * Sequence identifier lifetime. */ public ReliableIndicationHandler(CIMEventDispatcher pDispatcher, long pIdentiferLifetime) { this.iDispatcher = pDispatcher; this.iIndentifierLifetime = pIdentiferLifetime; this.iDataManagerThread = new DataManager(); this.iDataManagerThread.start(); } /** * Adds a reliable indication to the indication delivery queue. * * @param pIndication * Reliable indication to be queued for delivery. */ private void addToQueue(ReliableIndication pIndication) { int size = this.iQueue.size(); if ((size == 0) || (this.iQueue.getLast().getSequenceNumber()) < pIndication.getSequenceNumber()) { this.iQueue.addLast(pIndication); } else { int i; for (i = size - 1; i >= 0; i--) { ReliableIndication indication = this.iQueue.get(i); if (indication.getSequenceNumber() < pIndication.getSequenceNumber()) { this.iQueue.add(i + 1, pIndication); // printQueue(); processQueue(); return; } } this.iQueue.addFirst(pIndication); } // printQueue(); // Process queue if there are two or more entries if (size > 0) processQueue(); } /** * Delivers all reliable indications in the indication delivery queue. */ private void flushQueue() { if (this.iQueue.isEmpty()) return; for (int i = this.iQueue.size() - 1; i >= 0; i--) { ReliableIndication indication = this.iQueue.removeFirst(); logMissingQueueEntries(indication.getSequenceNumber()); this.iDispatcher.dispatchEvent(new CIMEvent(indication.getIndication(), indication .getId(), indication.getInetAddress())); this.iExpectedSequenceNumber = indication.getSequenceNumber() + 1; } } /** * Determines if the indication delivery queue is empty. * * @return <code>true</code> if indication delivery queue is empty, * <code>false</code> otherwise. */ private boolean isQueueEmpty() { return this.iQueue.isEmpty(); } /** * Logs any missing reliable indications at the front of the indication * delivery queue. * * @param pSequenceNumber * Sequence number of first indication present in delivery queue. */ private void logMissingQueueEntries(long pSequenceNumber) { if (pSequenceNumber > this.iExpectedSequenceNumber) { for (long l = this.iExpectedSequenceNumber; l < pSequenceNumber; l++) { this.iLogger.trace(Level.FINE, "Missing indication #" + l + " detected"); } } } /** * Prints all reliable indications in the indication delivery queue. */ // private void printQueue() { // System.out.println("ReliableInidcation queue >"); // for (int i = 0; i < this.iQueue.size(); i++) { // ReliableIndication indication = this.iQueue.get(i); // System.out.println(" Q[" + i + "]: " + indication.getSequenceNumber() + // "@" // + indication.getDiscardTime()); // } // } /* */ /** * Processes the indication delivery queue and dispatches all reliable * indications whose sequence identifier lifetime has expired or whose * sequence numbers are in the expected order. */ private void processQueue() { if (this.iQueue.isEmpty()) return; long currentTime = System.currentTimeMillis(); ReliableIndication indication = this.iQueue.getFirst(); // First dispatch all indications whose lifetimes have expired while (indication.getDiscardTime() <= currentTime) { indication = this.iQueue.removeFirst(); logMissingQueueEntries(indication.getSequenceNumber()); this.iDispatcher.dispatchEvent(new CIMEvent(indication.getIndication(), indication .getId(), indication.getInetAddress())); this.iExpectedSequenceNumber = indication.getSequenceNumber() + 1; if (this.iQueue.isEmpty()) return; indication = this.iQueue.getFirst(); } // Second dispatch all indications that are in the expected order while (indication.getSequenceNumber() == this.iExpectedSequenceNumber) { indication = this.iQueue.removeFirst(); this.iDispatcher.dispatchEvent(new CIMEvent(indication.getIndication(), indication .getId(), indication.getInetAddress())); this.iExpectedSequenceNumber++; if (this.iQueue.isEmpty()) return; indication = this.iQueue.getFirst(); } } /** * Adds a reliable indication to the . * * @param pSequenceContext * Sequence context of reliable indication to be cached. * @param pSequenceNumber * Sequence number of reliable indication to be cached. * @param pDiscardTime * Sequence identifier lifetime expiration time. */ private void addToCache(String pSequenceContext, long pSequenceNumber, long pDiscardTime) { CacheEntry newEntry = new CacheEntry(pSequenceContext, pSequenceNumber, pDiscardTime); int size = this.iCache.size(); if ((size == 0) || (this.iCache.getLast().getDiscardTime() <= pDiscardTime)) { this.iCache.addLast(newEntry); } else { int i; for (i = size - 1; i >= 0; i--) { CacheEntry entry = this.iCache.get(i); if (entry.getDiscardTime() <= pDiscardTime) { this.iCache.add(i + 1, newEntry); // printCache(); return; } } this.iCache.addFirst(newEntry); } // printCache(); // Wake up thread if this is first entry in cache if (size == 0) this.iDataManagerThread.interrupt(); } /** * Removes all entries in the sequence identifier cache. */ // private void flushCache() { // this.iCache.clear(); // } /* */ /** * Determines if the sequence identifier cache is empty. * * @return <code>true</code> if sequence identifier cache is empty, * <code>false</code> otherwise. */ private boolean isCacheEmpty() { return this.iCache.isEmpty(); } /** * Determines if the sequence context is in the sequence identifier cache. * * @param pSequenceContext * Sequence context to look for. * @return <code>true</code> if sequence context is in sequence identifier * cache, <code>false</code> otherwise. */ private boolean isInCache(String pSequenceContext) { if (this.iCache.isEmpty()) return false; Iterator<CacheEntry> iterator = this.iCache.iterator(); while (iterator.hasNext()) { if (iterator.next().getSequenceContext().compareTo(pSequenceContext) == 0) return true; } return false; } /** * Determines if the sequence identifier (context and number) is in the * sequence identifier cache. * * @param pSequenceContext * Sequence context to look for. * @param pSequenceNumber * Sequence number to look for. * @return <code>true</code> if sequence identifier is in sequence * identifier cache, <code>false</code> otherwise. */ private boolean isInCache(String pSequenceContext, long pSequenceNumber) { if (this.iCache.isEmpty()) return false; Iterator<CacheEntry> iterator = this.iCache.iterator(); while (iterator.hasNext()) { CacheEntry entry = iterator.next(); if ((entry.getSequenceContext().compareTo(pSequenceContext) == 0) && (entry.getSequenceNumber() == pSequenceNumber)) return true; } return false; } /** * Prints all entries in the sequence identifier cache. */ // private void printCache() { // System.out.println("ReliableIndication cache >"); // for (int i = 0; i < this.iCache.size(); i++) { // CacheEntry entry = this.iCache.get(i); // System.out.println(" C[" + i + "]: " + entry.getSequenceContext() + "," // + entry.getSequenceNumber() + "@" + entry.getDiscardTime()); // } // } /* */ /** * Processes the sequence identifier cache and removes all entries whose * sequence identifier lifetime has expired. */ private void processCache() { if (this.iCache.isEmpty()) return; long currentTime = System.currentTimeMillis(); for (int i = this.iCache.size() - 1; i >= 0; i--) { if (this.iCache.getFirst().getDiscardTime() > currentTime) break; this.iCache.removeFirst(); } } /** * Determines if both the indication delivery queue and sequence identifier * cache are empty. * * @return <code>true</code> if both the indication delivery queue and * sequence identifier cache are empty, <code>false</code> * otherwise. */ protected synchronized boolean areAllEmpty() { return isCacheEmpty() && isQueueEmpty(); } /** * Flushes both the indication delivery queue and sequence identifier cache. */ // private void flushAll() { // flushQueue(); // flushCache(); // } /* */ /** * Processes both the indication delivery queue and sequence identifier * cache. */ protected synchronized void processAll() { processQueue(); processCache(); } /** * Main worker routine for <code>ReliableIndicationHandler</code>. The * indication is either sent directly to the <code>CIMEventDispatcher</code> * or placed in the indication delivery queue to be dispatched later. All * indications are placed in the sequence identifier cache. * * @param pIndication * Reliable indication. * @param pId * Path portion of reliable indication URL. * @param pInetAddress * Host portion of reliable indication URL. */ public synchronized void handleIndication(CIMInstance pIndication, String pId, InetAddress pInetAddress) { // Get current time long arrivalTime = System.currentTimeMillis(); // Get reliable indication properties from indication CIMProperty<?> seqCtxProp = pIndication.getProperty("SequenceContext"); CIMProperty<?> seqNumProp = pIndication.getProperty("SequenceNumber"); // Initial indication arrived, save knowledge about sequence identifier // and deliver if (this.iLastSequenceNumber == null) { // Remember sequence context/number and arrival time this.iLastSequenceContext = (String) seqCtxProp.getValue(); this.iLastSequenceNumber = (Long) seqNumProp.getValue(); this.iExpectedSequenceNumber = this.iLastSequenceNumber.longValue() + 1; // this.iLastArrivalTime = arrivalTime; // Cache sequence identifier addToCache(this.iLastSequenceContext, this.iLastSequenceNumber.longValue(), arrivalTime + this.iIndentifierLifetime); // Deliver indication this.iDispatcher.dispatchEvent(new CIMEvent(pIndication, pId, pInetAddress)); return; } String seqCtx = (String) seqCtxProp.getValue(); Long seqNum = (Long) seqNumProp.getValue(); long seqNumVal = seqNum.longValue(); // Indication arrived after sequence identifier lifetime of previous // indication expired, discard knowledge about previous sequence // identifier and deliver // if (arrivalTime > (this.iLastArrivalTime + // this.iIndentifierLifetime)) { // this.iLogger.trace(Level.FINE, // "Discarding knowledge of previous sequence identifier because lifetime expired"); // Nothing should be cached or enqueued at this point // flushAll(); // Remember sequence context/number and arrival time // this.iLastSequenceContext = seqCtx; // this.iLastSequenceNumber = seqNum; // this.iExpectedSequenceNumber = seqNumVal + 1; // this.iLastArrivalTime = arrivalTime; // Cache sequence identifier // addToCache(seqCtx, seqNumVal, arrivalTime + // this.iIndentifierLifetime); // Deliver indication // this.iDispatcher.dispatchEvent(new CIMEvent(pIndication, pId, // pInetAddress)); // return; // } // Indication arrived with different sequence context than expected if (seqCtx.compareTo(this.iLastSequenceContext) != 0) { // Cached sequence context indicates this indication arrived // out-of-order from previous context, log and ignore if (isInCache(seqCtx)) { this.iLogger.trace(Level.FINE, "Out-of-order indication #" + seqNumVal + " received from previous context; indication ignored, logged: " + pIndication.toString()); return; } this.iLogger.trace(Level.FINE, "Discarding knowledge of previous sequence identifier because context changed"); // Deliver all enqueued indications from previous context flushQueue(); // Remember sequence context and arrival time, sequence number // should be zero this.iLastSequenceContext = seqCtx; this.iLastSequenceNumber = Long.valueOf(0); this.iExpectedSequenceNumber = 1; // this.iLastArrivalTime = arrivalTime; // Cache sequence identifier addToCache(seqCtx, seqNumVal, arrivalTime + this.iIndentifierLifetime); // Expected sequence number, go ahead and deliver if (seqNumVal == 0) { this.iDispatcher.dispatchEvent(new CIMEvent(pIndication, pId, pInetAddress)); return; } // Unexpected (non-zero) sequence number, enqueue this.iLastSequenceNumber = Long.valueOf(-1); this.iExpectedSequenceNumber = 0; addToQueue(new ReliableIndication(pIndication, seqNumVal, arrivalTime + this.iIndentifierLifetime, pId, pInetAddress)); return; } // Indication arrived with expected sequence number, go ahead and // deliver if (seqNumVal == this.iExpectedSequenceNumber) { // Remember sequence context/number and arrival time this.iLastSequenceNumber = seqNum; this.iExpectedSequenceNumber = seqNumVal + 1; // this.iLastArrivalTime = arrivalTime; // Cache sequence identifier addToCache(seqCtx, seqNumVal, arrivalTime + this.iIndentifierLifetime); // Deliver indication this.iDispatcher.dispatchEvent(new CIMEvent(pIndication, pId, pInetAddress)); return; } // Duplicate indication arrived, log and ignore if (isInCache(seqCtx, seqNumVal)) { this.iLogger.trace(Level.FINE, "Duplicate indication #" + seqNumVal + " received; indication ignored"); // Cache sequence identifier (duplicate entries okay and much easier // than deleting/adding or moving) addToCache(seqCtx, seqNumVal, arrivalTime + this.iIndentifierLifetime); return; } // Out-of-order indication arrived, log and ignore if (seqNumVal < this.iExpectedSequenceNumber) { this.iLogger.trace(Level.FINE, "Out-of-order indication #" + seqNumVal + " received (#" + this.iExpectedSequenceNumber + " expected); indication ignored, logged: " + pIndication.toString()); // Cache sequence identifier addToCache(seqCtx, seqNumVal, arrivalTime + this.iIndentifierLifetime); return; } // Indication with higher sequence number than expected received, cache // and enqueue it addToCache(seqCtx, seqNumVal, arrivalTime + this.iIndentifierLifetime); addToQueue(new ReliableIndication(pIndication, seqNumVal, arrivalTime + this.iIndentifierLifetime, pId, pInetAddress)); return; } } |
From: Chris B. <buc...@us...> - 2011-05-19 20:33:21
|
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 e3955a0fd2f91e869f55facd63261ebd58a63986 (commit) via c423b022cfce051fda184b73c01f8e2f6a925366 (commit) from aa690fbc3760e88ef35e48c8c0435eab177ed47c (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 e3955a0fd2f91e869f55facd63261ebd58a63986 Merge: c423b022cfce051fda184b73c01f8e2f6a925366 aa690fbc3760e88ef35e48c8c0435eab177ed47c Author: buccella <buc...@li...> Date: Thu May 19 16:33:52 2011 -0400 Merge branch 'master' of ssh://sblim.git.sourceforge.net/gitroot/sblim/sfcb commit c423b022cfce051fda184b73c01f8e2f6a925366 Author: buccella <buc...@li...> Date: Thu May 19 16:33:32 2011 -0400 added 20_indication.mof ----------------------------------------------------------------------- Summary of changes: diff --git a/.gitignore b/.gitignore index 3e07a13..84d80d6 100644 --- a/.gitignore +++ b/.gitignore @@ -93,3 +93,5 @@ compile *.rej mofc/ \#*\# +20_indication.mof +20_indication.mof.pre hooks/post-receive -- SFCB - Small Footprint CIM Broker |
From: Tyrel D. <ty...@us...> - 2011-05-18 04:06:36
|
Update of /cvsroot/sblim/cmpi-nfsv3 In directory vz-cvs-3.sog:/tmp/cvs-serv17460 Modified Files: ChangeLog Log Message: Updated for release version 1.1.1 Index: ChangeLog =================================================================== RCS file: /cvsroot/sblim/cmpi-nfsv3/ChangeLog,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- ChangeLog 11 May 2011 17:54:03 -0000 1.7 +++ ChangeLog 18 May 2011 04:06:34 -0000 1.8 @@ -1,11 +1,52 @@ +2011-05-17 Tyrel Datwyler <ty...@us...> + + * NEWS, configure.ac: + + Fixed 3303687: remove old cmpi version definition + 2011-05-11 Narasimmha Sharoff <nsh...@us...> - * mof/Linux_NFSv3SystemSetting.mof, GLOBALS.h - util/Linux_NFSv3SystemConfigurationUtil.c, - util/parser/lexer.l util/parser/parser.y - util/xmlparser/xmllexer.l + * configure.ac: - 3299507 obtain fully qualified hostname using etab entry + [3299507] obtain full hostname using etab entry + +2011-05-11 Narasimmha Sharoff <nsh...@us...> + + * ChangeLog, NEWS: + + [3299507] obtain full hostname using etab entry + +2011-05-11 Narasimmha Sharoff <nsh...@us...> + + * util/Linux_NFSv3SystemConfigurationUtil.c, + mof/Linux_NFSv3SystemSetting.mof: + + [3299507] obtain full hostname using etab entry + +2011-05-11 Narasimmha Sharoff <nsh...@us...> + + * util/parser/lexer.l, util/parser/parser.y, + util/xmlparser/xmllexer.l, GLOBALS.h: + + [3299507] obtain full hostname using etab entry + +2011-04-04 Tyrel Datwyler <ty...@us...> + + * NEWS, test/sblim-cmpi-nfsv3-test.sh: + + Fixed 3275169: bash error reported in provider bootstrap scripts + +2011-04-04 Tyrel Datwyler <ty...@us...> + + * .cvsignore: + + generated files to be ignored by CVS + +2009-06-02 Tyrel Datwyler <ty...@us...> + + * ChangeLog, NEWS, configure.ac: + + Updated for 1.1.0 release 2009-05-22 Tyrel Datwyler <ty...@us...> @@ -66,7 +107,7 @@ bug #1600348: fixed association behaviour if /etc/exports file is empty -2006-03-10 lynnmoss +2006-03-10 Lynn Moss <ly...@us...> * Linux_NFSv3SettingContext.c, Linux_NFSv3SystemConfiguration.c, Linux_NFSv3SystemSetting.c, NEWS, configure.ac, @@ -77,13 +118,13 @@ bug# 1199129 - Providers won't compile with CMPI 1.0 -2006-01-18 lynnmoss +2006-01-18 Lynn Moss <ly...@us...> * ChangeLog: bug# 1183805: Autoconfiscate all Provider Packages -2006-01-18 lynnmoss +2006-01-18 Lynn Moss <ly...@us...> * AUTHORS, COPYING, DEBUG, INSTALL, Linux_NFSv3SettingContext.c, Linux_NFSv3SystemConfiguration.c, Linux_NFSv3SystemSetting.c, |
From: Tyrel D. <ty...@us...> - 2011-05-18 03:47:06
|
Update of /cvsroot/sblim/cmpi-devel In directory vz-cvs-3.sog:/tmp/cvs-serv13870 Modified Files: NEWS Log Message: Fixed 3005546: cmp thread key typed defined wrong on s390x Index: NEWS =================================================================== RCS file: /cvsroot/sblim/cmpi-devel/NEWS,v retrieving revision 1.17 retrieving revision 1.18 diff -u -d -r1.17 -r1.18 --- NEWS 19 Aug 2009 01:21:57 -0000 1.17 +++ NEWS 18 May 2011 03:47:04 -0000 1.18 @@ -1,5 +1,6 @@ Bugs Fixed: - 2817255 CmpiData constructor for CmpiString argument produce garbage +- 3005546 cmpi thread key typed defined wrong on s390x Changes in 2.0.1 ================= |
From: Tyrel D. <ty...@us...> - 2011-05-18 02:52:51
|
Update of /cvsroot/sblim/cmpi-nfsv3 In directory vz-cvs-3.sog:/tmp/cvs-serv5530 Modified Files: NEWS configure.ac Log Message: Fixed 3303687: remove old cmpi version definition Index: NEWS =================================================================== RCS file: /cvsroot/sblim/cmpi-nfsv3/NEWS,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- NEWS 11 May 2011 17:54:30 -0000 1.9 +++ NEWS 18 May 2011 02:52:49 -0000 1.10 @@ -5,6 +5,7 @@ Bugs: - 3275169 bash error reported in provider bootstrap scripts +- 3303687 remove old cmpi version definition Changes in 1.1.0 ================ Index: configure.ac =================================================================== RCS file: /cvsroot/sblim/cmpi-nfsv3/configure.ac,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- configure.ac 11 May 2011 19:42:45 -0000 1.4 +++ configure.ac 18 May 2011 02:52:49 -0000 1.5 @@ -77,7 +77,7 @@ # Extend CPPFLAGS if echo $CPPFLAGS | grep -v CMPI_VERSION then - CPPFLAGS="$CPPFLAGS -DCMPI_VERSION=90" + CPPFLAGS="$CPPFLAGS" fi # Display configuration options |
From: Tyrel D. <ty...@us...> - 2011-05-18 02:40:45
|
Update of /cvsroot/sblim/cmpi-fsvol In directory vz-cvs-3.sog:/tmp/cvs-serv3398 Modified Files: ChangeLog configure.ac Added Files: .cvsignore Log Message: Updated for 1.5.1 release --- NEW FILE: .cvsignore --- .deps .libs Makefile Makefile.in OSBase_BlockStorageStatisticalData.lo OSBase_CommonFsvol.lo OSBase_LocalFileSystem.lo OSBase_NFS.lo aclocal.m4 autom4te.cache cmpiOSBase_BlockStorageStatisticalData.lo cmpiOSBase_BlockStorageStatisticalDataProvider.lo cmpiOSBase_BootOSFromFS.lo cmpiOSBase_BootOSFromFSProvider.lo cmpiOSBase_CommonFsvol.lo cmpiOSBase_HostedFileSystemProvider.lo cmpiOSBase_LocalFileSystem.lo cmpiOSBase_LocalFileSystemProvider.lo cmpiOSBase_NFS.lo cmpiOSBase_NFSProvider.lo config.h config.h.in config.log config.status configure libcmpiOSBase_BlockStorageStatisticalDataProvider.la libcmpiOSBase_BootOSFromFSProvider.la libcmpiOSBase_CommonFsvol.la libcmpiOSBase_HostedFileSystemProvider.la libcmpiOSBase_LocalFileSystemProvider.la libcmpiOSBase_NFSProvider.la libtool sblim-cmpi-fsvol.spec stamp-h1 Index: configure.ac =================================================================== RCS file: /cvsroot/sblim/cmpi-fsvol/configure.ac,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- configure.ac 2 Jun 2009 22:44:39 -0000 1.11 +++ configure.ac 18 May 2011 02:40:43 -0000 1.12 @@ -2,7 +2,7 @@ # Process this file with autoconf to produce a configure script. AC_PREREQ(2.59) -AC_INIT(SBLIM BaseOS Filesystem Providers, 1.5.0, sbl...@li...,sblim-cmpi-fsvol) +AC_INIT(SBLIM BaseOS Filesystem Providers, 1.5.1, sbl...@li...,sblim-cmpi-fsvol) AC_CONFIG_SRCDIR([OSBase_CommonFsvol.c]) AC_CONFIG_HEADER([config.h]) AM_INIT_AUTOMAKE Index: ChangeLog =================================================================== RCS file: /cvsroot/sblim/cmpi-fsvol/ChangeLog,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- ChangeLog 2 Jun 2009 20:22:32 -0000 1.14 +++ ChangeLog 18 May 2011 02:40:43 -0000 1.15 @@ -1,3 +1,39 @@ +2011-05-17 Tyrel Datwyler <ty...@us...> + + * NEWS, OSBase_BlockStorageStatisticalData.c: + + Fixed 3303682: include virtio devices in disk query + +2011-04-04 Tyrel Datwyler <ty...@us...> + + * NEWS, test/test-cmpi-fsvol.sh: + + Fixed 3275169: bash error reported in provider bootstrap scripts + +2011-04-04 Tyrel Datwyler <ty...@us...> + + * NEWS, test/test-cmpi-fsvol.sh: + + Fixed 3275200: provider scripts don't pass all command line opts + +2010-08-13 Tyrel Datwyler <ty...@us...> + + * NEWS, mof/Linux_Fsvol.registration: + + Fixed 3044649: remove Linux_CSProcessor from reg file + +2009-06-02 Tyrel Datwyler <ty...@us...> + + * configure.ac: + + Updated ChangeLog for 1.5.0 release + +2009-06-02 Tyrel Datwyler <ty...@us...> + + * ChangeLog: + + Updated ChangeLog for 1.5.0 release + 2009-06-02 Tyrel Datwyler <ty...@us...> * COPYING, Makefile.am, NEWS, OSBase_BlockStorageStatisticalData.c, |
From: Tyrel D. <ty...@us...> - 2011-05-18 02:33:47
|
Update of /cvsroot/sblim/cmpi-fsvol In directory vz-cvs-3.sog:/tmp/cvs-serv1838 Modified Files: NEWS OSBase_BlockStorageStatisticalData.c Log Message: Fixed 3303682: include virtio devices in disk query Index: NEWS =================================================================== RCS file: /cvsroot/sblim/cmpi-fsvol/NEWS,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- NEWS 5 Apr 2011 01:24:15 -0000 1.15 +++ NEWS 18 May 2011 02:33:45 -0000 1.16 @@ -1,7 +1,11 @@ +Changes in 1.5.1 +================ + Bugs: - 3044649 remove Linux_CSProcessor from reg file - 3275200 provider scripts don't pass all command line opts - 3275169 bash error reported in provider bootstrap scripts +- 3303682 include virtio devices in disk query Changes in 1.5.0 ================ Index: OSBase_BlockStorageStatisticalData.c =================================================================== RCS file: /cvsroot/sblim/cmpi-fsvol/OSBase_BlockStorageStatisticalData.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- OSBase_BlockStorageStatisticalData.c 2 Jun 2009 19:42:24 -0000 1.4 +++ OSBase_BlockStorageStatisticalData.c 18 May 2011 02:33:45 -0000 1.5 @@ -30,8 +30,8 @@ #define CHECK_FCT_PARAM -#define HD_CMD "grep \"[hs]d[a-z] \" /proc/partitions" -#define HD_CMD_26 "grep \"[hs]d[a-z] \" /proc/diskstats" +#define HD_CMD "grep \"[hsv]d[a-z] \" /proc/partitions" +#define HD_CMD_26 "grep \"[hsv]d[a-z] \" /proc/diskstats" #define STATS_FILE "/proc/partitions" #define STATS_FILE_26 "/proc/diskstats" |
From: Michael Chase-S. <mc...@us...> - 2011-05-16 22:14:10
|
Update of /cvsroot/sblim/sfcb In directory vz-cvs-3.sog:/tmp/cvs-serv20359 Modified Files: ChangeLog NEWS indCIMXMLHandler.c Log Message: [ 3296541 ] CIM_IndicationSubscription corrupts after delilvery fails Index: NEWS =================================================================== RCS file: /cvsroot/sblim/sfcb/NEWS,v retrieving revision 1.583 retrieving revision 1.584 diff -u -d -r1.583 -r1.584 --- NEWS 10 May 2011 23:01:33 -0000 1.583 +++ NEWS 16 May 2011 22:14:08 -0000 1.584 @@ -11,6 +11,7 @@ - 3291646 Unused var in __NullEvaluate - 3202466 Single item on method param of array type rejected via Local - 3287789 interopServerProvider not conservative when answering reqs +- 3296541 CIM_IndicationSubscription corrupts after delilvery fails Changes in 1.3.11 ================= Index: indCIMXMLHandler.c =================================================================== RCS file: /cvsroot/sblim/sfcb/indCIMXMLHandler.c,v retrieving revision 1.34 retrieving revision 1.35 diff -u -d -r1.34 -r1.35 --- indCIMXMLHandler.c 30 Mar 2011 19:32:41 -0000 1.34 +++ indCIMXMLHandler.c 16 May 2011 22:14:08 -0000 1.35 @@ -645,9 +645,9 @@ if (sfc == 0 ) { // if the time isn't set, this is the first failure sfc=tv.tv_sec; - cur=cur->next; CMSetProperty(sub,"DeliveryFailureTime",&sfc,CMPI_uint64); CBModifyInstance(_broker, ctxLocal, cur->sub, sub, NULL); + cur=cur->next; } else if (sfc+rtint < tv.tv_sec) { // Exceeded subscription removal threshold, if action is: // 2, delete the sub; 3, disable the sub; otherwise, nothing Index: ChangeLog =================================================================== RCS file: /cvsroot/sblim/sfcb/ChangeLog,v retrieving revision 1.656 retrieving revision 1.657 diff -u -d -r1.656 -r1.657 --- ChangeLog 10 May 2011 23:01:33 -0000 1.656 +++ ChangeLog 16 May 2011 22:14:08 -0000 1.657 @@ -1,3 +1,8 @@ +2011-05-16 Michael Chase-Salerno <br...@li...> + + * indCIMXMLHandler.c + [ 3296541 ] CIM_IndicationSubscription corrupts after delilvery fails + 2011-05-10 Michael Chase-Salerno <br...@li...> * interopServerProvider.c |
From: Michael Chase-S. <mc...@us...> - 2011-05-16 22:05:24
|
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 aa690fbc3760e88ef35e48c8c0435eab177ed47c (commit) from a4c90e9a342adf10b99f00c3dbca3aa8d955f0ab (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 aa690fbc3760e88ef35e48c8c0435eab177ed47c Author: Michael Chase-Salerno <br...@li...> Date: Mon May 16 18:04:44 2011 -0400 [ 3296541 ] CIM_IndicationSubscription corrupts after delilvery fails ----------------------------------------------------------------------- Summary of changes: diff --git a/ChangeLog b/ChangeLog index 6012ab0..40d4a95 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2011-05-16 Michael Chase-Salerno <br...@li...> + + * indCIMXMLHandler.c + [ 3296541 ] CIM_IndicationSubscription corrupts after delilvery fails + 2011-05-11 Chris Buccella <buc...@li...> * cimRequest.c: diff --git a/indCIMXMLHandler.c b/indCIMXMLHandler.c index 7dcf882..360ca24 100644 --- a/indCIMXMLHandler.c +++ b/indCIMXMLHandler.c @@ -749,9 +749,9 @@ retryExport(void *lctx) if (sfc == 0) { // if the time isn't set, this is the first failure sfc = tv.tv_sec; - cur = cur->next; CMSetProperty(sub, "DeliveryFailureTime", &sfc, CMPI_uint64); CBModifyInstance(_broker, ctxLocal, cur->sub, sub, NULL); + cur = cur->next; } else if (sfc + rtint < tv.tv_sec) { // Exceeded subscription removal threshold, if action is: // 2, delete the sub; 3, disable the sub; otherwise, nothing hooks/post-receive -- SFCB - Small Footprint CIM Broker |
From: Dave B. <bla...@us...> - 2011-05-16 16:34:27
|
Update of /cvsroot/sblim/jsr48-client In directory vz-cvs-3.sog:/tmp/cvs-serv22217 Modified Files: Tag: Experimental sblim-cim-client2.properties Log Message: 3206904 - Indication listener deadlock causes JVM to run out sockets Index: sblim-cim-client2.properties =================================================================== RCS file: /cvsroot/sblim/jsr48-client/sblim-cim-client2.properties,v retrieving revision 1.1.2.21 retrieving revision 1.1.2.22 diff -u -d -r1.1.2.21 -r1.1.2.22 --- sblim-cim-client2.properties 6 Apr 2011 22:44:27 -0000 1.1.2.21 +++ sblim-cim-client2.properties 16 May 2011 16:34:25 -0000 1.1.2.22 @@ -512,7 +512,7 @@ # #sblim.wbem.listenerHttpTimeout=10000 -# The size of the thread pool for the connection handlers of the indicati +# The size of the thread pool for the connection handlers of the indication # for http connections of an indication listener. This is the maximum # number of handler threads the pool might create on heavy load. # A value of -1 is interpreted as infinity. @@ -525,7 +525,7 @@ #sblim.wbem.listenerPoolMaxSize=8 # The minimal number of connection handlers of the indication listener that -# will be kept open by the thread pool regardsless of the current load. +# will be kept open by the thread pool regardless of the current load. # # Type: Integer # Unit: Count @@ -535,6 +535,21 @@ # #sblim.wbem.listenerPoolMinSize=2 +# The maximum number of queued connections (the fixed capacity of the +# ArrayBlockingQueue of pending connections incoming to the listener). +# Whereas increasing this number will result in a correspondingly greater +# memory usage, making the number too small can result in HTTP 503 +# "Service temporarily overloaded" returned to server if there is no room +# in queue for an incoming connection. +# +# Type: Integer +# Unit: Count +# Recognition: On next creation of a WBEMListener +# Range: 1 .. Integer.MAX_VALUE +# Default: 32 +# +#sblim.wbem.listenerQueueMaxSize=32 + # The number of queued connections that is tolerated before the thread # pool creates an additional handler thread. Increasing this value leads to # a less "nervous" creation/destruction of handlers. However it |
From: Tyrel D. <ty...@us...> - 2011-05-16 07:00:53
|
Update of /cvsroot/sblim/gather In directory vz-cvs-3.sog:/tmp/cvs-serv17864 Modified Files: Makefile.am NEWS Log Message: Fixed 3302712: log libvirt connection failures. Index: NEWS =================================================================== RCS file: /cvsroot/sblim/gather/NEWS,v retrieving revision 1.101 retrieving revision 1.102 diff -u -d -r1.101 -r1.102 --- NEWS 16 May 2011 05:40:25 -0000 1.101 +++ NEWS 16 May 2011 07:00:50 -0000 1.102 @@ -7,6 +7,7 @@ Features added: - 3300216 new KVM scheduler counter metrics +- 3302712 log libvirt connection failures Changes in Version 2.2.2 ======================== Index: Makefile.am =================================================================== RCS file: /cvsroot/sblim/gather/Makefile.am,v retrieving revision 1.21 retrieving revision 1.22 diff -u -d -r1.21 -r1.22 --- Makefile.am 19 Apr 2010 23:53:39 -0000 1.21 +++ Makefile.am 16 May 2011 07:00:50 -0000 1.22 @@ -227,12 +227,12 @@ libmetricProcessor_la_DEPENDENCIES=libgatherutil.la libmetricProcessor_la_LDFLAGS=$(PLUG_FLAGS) -libmetricXen_la_SOURCES=plugin/metricXenV2.c plugin/metricVirt.c +libmetricXen_la_SOURCES=plugin/metricXenV2.c plugin/metricVirt.c util/mlog.c libmetricXen_la_LIBADD=$(srcdir)/libgatherutil.la -lvirt libmetricXen_la_DEPENDENCIES=libgatherutil.la libmetricXen_la_LDFLAGS=$(PLUG_FLAGS) -libmetricKvm_la_SOURCES=plugin/metricKvm.c plugin/metricVirt.c +libmetricKvm_la_SOURCES=plugin/metricKvm.c plugin/metricVirt.c util/mlog.c libmetricKvm_la_LIBADD=$(srcdir)/libgatherutil.la -lvirt libmetricKvm_la_DEPENDENCIES=libgatherutil.la libmetricKvm_la_LDFLAGS=$(PLUG_FLAGS) |
From: Tyrel D. <ty...@us...> - 2011-05-16 05:40:28
|
Update of /cvsroot/sblim/gather/plugin In directory vz-cvs-3.sog:/tmp/cvs-serv1636/plugin Modified Files: metricVirt.c Log Message: Fixed 3302709: leak libvir connections when no domains Index: metricVirt.c =================================================================== RCS file: /cvsroot/sblim/gather/plugin/metricVirt.c,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- metricVirt.c 12 May 2011 00:46:29 -0000 1.10 +++ metricVirt.c 16 May 2011 05:40:26 -0000 1.11 @@ -268,8 +268,10 @@ return VIRT_FAIL; /* no domains reported */ - if (node_statistics.total_domains == 0) - return VIRT_FAIL; + if (node_statistics.total_domains == 0) { + virConnectClose(conn); + return VIRT_SUCCESS; + } /* * get statistics from active domains |