osaf/tools/safntf/include/ntfclient.h | 3 +-
osaf/tools/safntf/ntfread/Makefile.am | 6 +-
osaf/tools/safntf/ntfread/ntfread.c | 23 +++++-----
osaf/tools/safntf/ntfsend/Makefile.am | 6 +-
osaf/tools/safntf/ntfsend/ntfsend.c | 29 ++++++-------
osaf/tools/safntf/ntfsubscribe/Makefile.am | 6 +-
osaf/tools/safntf/ntfsubscribe/ntfsubscribe.c | 4 +
osaf/tools/safntf/src/Makefile.am | 1 +
osaf/tools/safntf/src/ntfclient.c | 58 +++++++++++++-------------
9 files changed, 72 insertions(+), 64 deletions(-)
(1) Not allow objects specified in command having string greater than
kMaxDnLength
diff --git a/osaf/tools/safntf/include/ntfclient.h
b/osaf/tools/safntf/include/ntfclient.h
--- a/osaf/tools/safntf/include/ntfclient.h
+++ b/osaf/tools/safntf/include/ntfclient.h
@@ -23,7 +23,8 @@
#include <saNtf.h>
#include "ntfsv_msg.h"
-
+#include "ntfsv_mem.h"
+#include "osaf_extended_name.h"
/* Defines */
#define DEFAULT_FLAG 0x0001
/* #define MAX_NUMBER_OF_STATE_CHANGES 5 */
diff --git a/osaf/tools/safntf/ntfread/Makefile.am
b/osaf/tools/safntf/ntfread/Makefile.am
--- a/osaf/tools/safntf/ntfread/Makefile.am
+++ b/osaf/tools/safntf/ntfread/Makefile.am
@@ -23,6 +23,7 @@ bin_PROGRAMS = ntfread
ntfread_CPPFLAGS = \
$(AM_CPPFLAGS) \
+ -DSA_EXTENDED_NAME_SOURCE \
-I$(top_srcdir)/osaf/tools/safntf/include \
-I$(top_srcdir)/osaf/libs/common/ntfsv/include
@@ -30,6 +31,7 @@ ntfread_SOURCES = \
ntfread.c
ntfread_LDADD = \
+ $(top_builddir)/osaf/tools/safntf/src/libntfclient.la \
+ $(top_builddir)/osaf/libs/common/ntfsv/libntfsv_common.la \
$(top_builddir)/osaf/libs/core/libopensaf_core.la \
- $(top_builddir)/osaf/libs/saf/libSaNtf/libSaNtf.la \
- $(top_builddir)/osaf/tools/safntf/src/libntfclient.la
+ $(top_builddir)/osaf/libs/saf/libSaNtf/libSaNtf.la
diff --git a/osaf/tools/safntf/ntfread/ntfread.c
b/osaf/tools/safntf/ntfread/ntfread.c
--- a/osaf/tools/safntf/ntfread/ntfread.c
+++ b/osaf/tools/safntf/ntfread/ntfread.c
@@ -67,8 +67,8 @@ static SaUint16T nNyObj = 0;
static SaUint16T nCId = 0;
static SaNtfEventTypeT eType = 0;
-static SaNameT nObj = {0};
-static SaNameT nyObj = {0};
+static SaNameT nObj;
+static SaNameT nyObj;
static SaNtfClassIdT cId;
/* common alarm and security alarm */
@@ -272,6 +272,10 @@ int main(int argc, char *argv[]) {
verbose = 0;
progname = argv[0];
+ if (setenv("SA_ENABLE_EXTENDED_NAMES", "1", 1) != 0) {
+ LOG_ER("Failed to enable Extended SaNameT");
+ exit(EXIT_FAILURE);
+ }
/* Check options */
while (1) {
c = getopt_long(argc, argv, "b:c:d:hE:e:i:klN:n:op:s:v",
@@ -314,22 +318,19 @@ int main(int argc, char *argv[]) {
filterAlarm = false;
break;
case 'N':
- nyObj.length = (SaUint16T)strlen(optarg);
- if (SA_MAX_NAME_LENGTH < nyObj.length) {
+ if (strlen(optarg) > kMaxDnLength) {
fprintf(stderr, "notifyingObject too long\n");
exit(EXIT_FAILURE);
- }
- (void)memcpy(nyObj.value, optarg, nyObj.length);
+ }
+ saAisNameLend(optarg, &nyObj);
nNyObj = 1;
break;
case 'n':
- nObj.length = (SaUint16T)strlen(optarg);
- if (SA_MAX_NAME_LENGTH < nObj.length) {
- fprintf(stderr,
- "notificationObject too long\n");
+ if (strlen(optarg) > kMaxDnLength) {
+ fprintf(stderr, "notificationObject too
long\n");
exit(EXIT_FAILURE);
}
- (void)memcpy(nObj.value, optarg, nObj.length);
+ saAisNameLend(optarg, &nObj);
nNnObj = 1;
break;
case 'o':
diff --git a/osaf/tools/safntf/ntfsend/Makefile.am
b/osaf/tools/safntf/ntfsend/Makefile.am
--- a/osaf/tools/safntf/ntfsend/Makefile.am
+++ b/osaf/tools/safntf/ntfsend/Makefile.am
@@ -23,6 +23,7 @@ bin_PROGRAMS = ntfsend
ntfsend_CPPFLAGS = \
$(AM_CPPFLAGS) \
+ -DSA_EXTENDED_NAME_SOURCE \
-I$(top_srcdir)/osaf/tools/safntf/include \
-I$(top_srcdir)/osaf/libs/common/ntfsv/include
@@ -30,6 +31,7 @@ ntfsend_SOURCES = \
ntfsend.c
ntfsend_LDADD = \
+ $(top_builddir)/osaf/tools/safntf/src/libntfclient.la \
+ $(top_builddir)/osaf/libs/common/ntfsv/libntfsv_common.la \
$(top_builddir)/osaf/libs/core/libopensaf_core.la \
- $(top_builddir)/osaf/libs/saf/libSaNtf/libSaNtf.la \
- $(top_builddir)/osaf/tools/safntf/src/libntfclient.la
+ $(top_builddir)/osaf/libs/saf/libSaNtf/libSaNtf.la
diff --git a/osaf/tools/safntf/ntfsend/ntfsend.c
b/osaf/tools/safntf/ntfsend/ntfsend.c
--- a/osaf/tools/safntf/ntfsend/ntfsend.c
+++ b/osaf/tools/safntf/ntfsend/ntfsend.c
@@ -186,12 +186,8 @@ static void fillInDefaultValues(saNotifi
(void)strncpy(notificationParams->additionalText,
DEFAULT_ADDITIONAL_TEXT,
notificationAllocationParams->lengthAdditionalText);
- notificationParams->notificationObject.length =
strlen(DEFAULT_NOTIFICATION_OBJECT);
- (void)memcpy(notificationParams->notificationObject.value,
- DEFAULT_NOTIFICATION_OBJECT,
notificationParams->notificationObject.length);
- notificationParams->notifyingObject.length =
strlen(DEFAULT_NOTIFYING_OBJECT);
- (void)memcpy(notificationParams->notifyingObject.value,
- DEFAULT_NOTIFYING_OBJECT,
notificationParams->notifyingObject.length);
+ saAisNameLend(DEFAULT_NOTIFICATION_OBJECT,
¬ificationParams->notificationObject);
+ saAisNameLend(DEFAULT_NOTIFYING_OBJECT,
¬ificationParams->notifyingObject);
notificationParams->notificationClassId.vendorId = ERICSSON_VENDOR_ID;
notificationParams->notificationClassId.majorId = 0;
notificationParams->notificationClassId.minorId = 0;
@@ -802,6 +798,11 @@ int main(int argc, char *argv[])
{0, 0, 0, 0}
};
+ if (setenv("SA_ENABLE_EXTENDED_NAMES", "1", 1) != 0) {
+ LOG_ER("Failed to enable Extended SaNameT");
+ exit(EXIT_FAILURE);
+ }
+
fillInDefaultValues(&myNotificationAllocationParams,
&myNotificationFilterAllocationParams,
&myNotificationParams);
@@ -831,22 +832,18 @@ int main(int argc, char *argv[])
getVendorId(&myNotificationParams.notificationClassId);
break;
case 'n':
- myNotificationParams.notificationObject.length
= (SaUint16T)strlen(optarg);
- if (SA_MAX_NAME_LENGTH <
myNotificationParams.notificationObject.length) {
+ if (strlen(optarg) > kMaxDnLength) {
fprintf(stderr, "notificationObject too
long\n");
exit(EXIT_FAILURE);
- }
-
(void)memcpy(myNotificationParams.notificationObject.value,
- optarg,
myNotificationParams.notificationObject.length);
+ }
+ saAisNameLend(optarg,
&myNotificationParams.notificationObject);
break;
case 'N':
- myNotificationParams.notifyingObject.length =
(SaUint16T)strlen(optarg);
- if (SA_MAX_NAME_LENGTH <
myNotificationParams.notifyingObject.length) {
+ if (strlen(optarg) > kMaxDnLength) {
fprintf(stderr, "notifyingObject too
long\n");
exit(EXIT_FAILURE);
- }
-
(void)memcpy(myNotificationParams.notifyingObject.value,
- optarg,
myNotificationParams.notifyingObject.length);
+ }
+ saAisNameLend(optarg,
&myNotificationParams.notifyingObject);
break;
case 'e':
myNotificationParams.eventType =
(SaNtfEventTypeT)atoi(optarg);
diff --git a/osaf/tools/safntf/ntfsubscribe/Makefile.am
b/osaf/tools/safntf/ntfsubscribe/Makefile.am
--- a/osaf/tools/safntf/ntfsubscribe/Makefile.am
+++ b/osaf/tools/safntf/ntfsubscribe/Makefile.am
@@ -23,6 +23,7 @@ bin_PROGRAMS = ntfsubscribe
ntfsubscribe_CPPFLAGS = \
$(AM_CPPFLAGS) \
+ -DSA_EXTENDED_NAME_SOURCE \
-I$(top_srcdir)/osaf/tools/safntf/include \
-I$(top_srcdir)/osaf/libs/common/ntfsv/include
@@ -31,6 +32,7 @@ ntfsubscribe_SOURCES = \
ntfsubscribe_LDADD = \
+ $(top_builddir)/osaf/tools/safntf/src/libntfclient.la \
+ $(top_builddir)/osaf/libs/common/ntfsv/libntfsv_common.la \
$(top_builddir)/osaf/libs/core/libopensaf_core.la \
- $(top_builddir)/osaf/libs/saf/libSaNtf/libSaNtf.la \
- $(top_builddir)/osaf/tools/safntf/src/libntfclient.la
+ $(top_builddir)/osaf/libs/saf/libSaNtf/libSaNtf.la
diff --git a/osaf/tools/safntf/ntfsubscribe/ntfsubscribe.c
b/osaf/tools/safntf/ntfsubscribe/ntfsubscribe.c
--- a/osaf/tools/safntf/ntfsubscribe/ntfsubscribe.c
+++ b/osaf/tools/safntf/ntfsubscribe/ntfsubscribe.c
@@ -283,6 +283,10 @@ int main(int argc, char *argv[])
verbose = 0;
progname = argv[0];
+ if (setenv("SA_ENABLE_EXTENDED_NAMES", "1", 1) != 0) {
+ LOG_ER("Failed to enable Extended SaNameT");
+ exit(EXIT_FAILURE);
+ }
/* Check options */
while (1) {
c = getopt_long(argc, argv, "acosyht:v", long_options, NULL);
diff --git a/osaf/tools/safntf/src/Makefile.am
b/osaf/tools/safntf/src/Makefile.am
--- a/osaf/tools/safntf/src/Makefile.am
+++ b/osaf/tools/safntf/src/Makefile.am
@@ -22,6 +22,7 @@ noinst_LTLIBRARIES = libntfclient.la
libntfclient_la_CPPFLAGS = \
$(AM_CPPFLAGS) \
+ -DSA_EXTENDED_NAME_SOURCE \
-I$(top_srcdir)/osaf/libs/saf/include \
-I$(top_srcdir)/osaf/tools/safntf/include \
-I$(top_srcdir)/osaf/libs/common/ntfsv/include
diff --git a/osaf/tools/safntf/src/ntfclient.c
b/osaf/tools/safntf/src/ntfclient.c
--- a/osaf/tools/safntf/src/ntfclient.c
+++ b/osaf/tools/safntf/src/ntfclient.c
@@ -509,7 +509,7 @@ static void print_attribute_value(SaNtfN
const SaUint16T max_size = 20;
SaAisErrorT rc;
SaUint8T *bin_ptr;
- char tmp_str[SA_MAX_NAME_LENGTH+1];
+ char* tmp_str;
int i;
switch ((int)attributeType) {
@@ -538,12 +538,11 @@ static void print_attribute_value(SaNtfN
(void **)&str_ptr,
&data_size);
if (rc == SA_AIS_OK) {
- if (data_size > (SA_MAX_NAME_LENGTH+1)) {
- data_size = SA_MAX_NAME_LENGTH;
- }
- snprintf(tmp_str,data_size+1,"%s",str_ptr);
- printf(" Attribute Value: \"%s\"\n",
- tmp_str);
+ tmp_str = (char*) malloc(data_size + 1);
+ memcpy(tmp_str, str_ptr, data_size);
+ tmp_str[data_size] = '\0';
+ printf(" Attribute Value: \"%s\"\n", tmp_str);
+ free(tmp_str);
} else
fprintf(stderr, "saNtfPtrValGet Error "
"%d\n", rc);
@@ -635,8 +634,7 @@ static void print_header(const SaNtfNoti
SaNtfSubscriptionIdT subscriptionId,
SaNtfNotificationTypeT notificationType)
{
- char tmpObj[SA_MAX_NAME_LENGTH + 1];
-
+ char *temp_str;
if (verbose) {
printf("notificationID = %d\n",
(int)*(notificationHeader->notificationId));
@@ -648,25 +646,20 @@ static void print_header(const SaNtfNoti
print_event_type(*notificationHeader->eventType, notificationType);
if (verbose)
- printf("notificationObject.length = %u\n",
- notificationHeader->notificationObject->length);
+ printf("notificationObject.length = %zu\n",
+
ntfs_sanamet_length(notificationHeader->notificationObject));
+
+ temp_str = ntfs_sanamet_strdup(notificationHeader->notificationObject);
+ printf("notificationObject = \"%s\"\n", temp_str);
+ free(temp_str);
+
+ if (verbose)
+ printf("notifyingObject.length = %zu\n",
+
ntfs_sanamet_length(notificationHeader->notifyingObject));
- strncpy(tmpObj,
- (char *)notificationHeader->notificationObject->value,
- notificationHeader->notificationObject->length);
- tmpObj[notificationHeader->notificationObject->length] = '\0';
- printf("notificationObject = \"%s\"\n", tmpObj);
-
- strncpy(tmpObj,
- (char *)notificationHeader->notifyingObject->value,
- notificationHeader->notifyingObject->length);
- tmpObj[notificationHeader->notifyingObject->length] = '\0';
-
- if (verbose)
- printf("notifyingObject.length = %u\n",
- notificationHeader->notifyingObject->length);
-
- printf("notifyingObject = \"%s\"\n", tmpObj);
+ temp_str = ntfs_sanamet_strdup(notificationHeader->notifyingObject);
+ printf("notifyingObject = \"%s\"\n", temp_str);
+ free(temp_str);
/* Notification Class ID in compact dot notation */
if (notificationHeader->notificationClassId->vendorId ==
@@ -697,7 +690,8 @@ void print_additional_info(SaNtfNotifica
const SaNtfNotificationHeaderT * notificationHeader)
{
int i;
- SaNameT *dataPtr;
+ char *dataPtr;
+ SaNameT name;
SaStringT info_value_str;
SaUint16T dataSize;
SaAisErrorT rc;
@@ -716,8 +710,12 @@ void print_additional_info(SaNtfNotifica
(void **)&dataPtr,
&dataSize);
if (rc == SA_AIS_OK) {
- printf(" infoValue = \"%s\"\n",
- dataPtr->value);
+ char *newStr = (char*)malloc(dataSize +
1);
+ memcpy(newStr, dataPtr + 2, dataSize -
2);
+ newStr[dataSize] = '\0';
+ saAisNameLend(newStr, &name);
+ printf(" infoValue = \"%s\"\n",
saAisNameBorrow(&name));
+ free(newStr);
} else
fprintf(stderr, "saNtfPtrValGet Error "
"%d\n", rc);
------------------------------------------------------------------------------
Want fast and easy access to all the code in your enterprise? Index and
search up to 200,000 lines of code with a free copy of Black Duck
Code Sight - the same software that powers the world's largest code
search on Ohloh, the Black Duck Open Hub! Try it now.
http://p.sf.net/sfu/bds
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel