Ejemplo n.º 1
0
void print_additional_info(SaNtfNotificationHandleT notificationHandle,
			   const SaNtfNotificationHeaderT * notificationHeader)
{
	int i;
	char *dataPtr;
	SaNameT name;
	SaStringT info_value_str;
	SaUint16T dataSize;
	SaAisErrorT rc;

	if (notificationHeader->additionalInfo != NULL) {
		for (i=0; i<notificationHeader->numAdditionalInfo; i++) {
			printf("- additionalInfo: %d -\n",i);
			printf(" infoId = %u\n",notificationHeader->additionalInfo[i].infoId);
			printf(" infoType = %u\n",notificationHeader->additionalInfo[i].infoType);

			switch (notificationHeader->additionalInfo[i].infoType) {
			case SA_NTF_VALUE_LDAP_NAME:
				rc = saNtfPtrValGet(notificationHandle,
							&notificationHeader->
							additionalInfo[i].infoValue,
							(void **)&dataPtr,
							&dataSize);
				if (rc == SA_AIS_OK) {
					size_t strLength = dataSize - 2;
					char *newStr = (char*)malloc(strLength + 1);
					memcpy(newStr, dataPtr + 2, strLength);
					newStr[strLength] = '\0';
					saAisNameLend(newStr, &name);
					printf(" infoValue = \"%s\"\n", saAisNameBorrow(&name));
					free(newStr);
				} else
					fprintf(stderr, "saNtfPtrValGet Error "
						"%d\n", rc);
				break;

			case SA_NTF_VALUE_STRING:
				rc = saNtfPtrValGet(notificationHandle,
							&notificationHeader->
							additionalInfo[i].infoValue,
							(void **)&info_value_str,
							&dataSize);
				if (rc == SA_AIS_OK) {
					printf(" infoValue = \"%s\"\n",info_value_str);
				} else
					fprintf(stderr, "saNtfPtrValGet Error "
						"%d\n", rc);
				break;

			default:
				printf("Unimplemented additionalInfo type\n");
				break;
			}
		}
	}
}
Ejemplo n.º 2
0
static void print_additional_info(SaNtfNotificationHandleT notificationHandle,
				  const SaNtfNotificationHeaderT *notificationHeader)
{
	if (notificationHeader->additionalInfo != NULL) {
		switch (notificationHeader->additionalInfo[0].infoType) {
		case SA_NTF_VALUE_LDAP_NAME: {
			SaNameT *dataPtr;
			SaUint16T dataSize;
			SaAisErrorT rc;

			rc = saNtfPtrValGet(notificationHandle,
						   &notificationHeader->additionalInfo[0].infoValue,
						   (void **)&dataPtr, &dataSize);
			if (rc == SA_AIS_OK) {
				printf("additionalInfo = \"%s\"\n", dataPtr->value);
			} else
				fprintf(stderr, "saNtfPtrValGet Error %d\n", rc);
			break;
		}
		default:
			printf("Unimplemented additionalInfo type\n");
			break;
		}
	}
}
Ejemplo n.º 3
0
static void print_attribute_value(SaNtfNotificationHandleT notificationHandle,
		SaNtfValueTypeT attributeType,
		SaNtfValueT *attributeValue)
{
	SaStringT str_ptr;
	SaUint16T data_size;
	const SaUint16T max_size = 20;
	SaAisErrorT rc;
	SaUint8T *bin_ptr;
	char* tmp_str;
	int i;

	switch ((int)attributeType) {
	case SA_NTF_VALUE_INT32:
		printf(" Attribute Value: %d\n", attributeValue->int32Val);
		break;
	case SA_NTF_VALUE_UINT32:
		printf(" Attribute Value: %u\n", attributeValue->uint32Val);
		break;
	case SA_NTF_VALUE_INT64:
		printf(" Attribute Value: %llu\n",attributeValue->int64Val);
		break;
	case SA_NTF_VALUE_UINT64:
		printf(" Attribute Value: %llu\n", attributeValue->uint64Val);
		break;
	case SA_NTF_VALUE_FLOAT:
		printf(" Attribute Value: %g\n", attributeValue->floatVal);
		break;
	case SA_NTF_VALUE_DOUBLE:
		printf(" Attribute Value: %g\n", attributeValue->doubleVal);
		break;
	case SA_NTF_VALUE_LDAP_NAME:
	case SA_NTF_VALUE_STRING:
		rc = saNtfPtrValGet(notificationHandle,
					attributeValue,
					(void **)&str_ptr,
					&data_size);
		if (rc == SA_AIS_OK) {
			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);
		break;
	case SA_NTF_VALUE_BINARY:
		rc = saNtfPtrValGet(notificationHandle,
					attributeValue,
					(void **)&bin_ptr,
					&data_size);
		if (rc == SA_AIS_OK) {
			printf(" Attribute Value:\n ");
			for (i=0; i<data_size; i++) {
				printf("0x%02x ",bin_ptr[i]);
				if (((i+1) % max_size == 0) &&
					(i < (data_size - 1)))
					printf("\n ");
			}
			printf("\n");
		} else
			fprintf(stderr, "saNtfPtrValGet Error "
				"%d\n", rc);
		break;

	default:
		printf("Printing of attribute type %d not supported\n",
				(int)attributeType);
	}
}