Hi!

The file "osaf_extended_name.h" and all the functions declared in it are 
intended to be used when implementing support for the extended SaNameT type in 
OpenSAF agent libraries. The saflogger tool is similar to any application which 
is using the OpenSAF libraries, so it should be adapted to the extended SaNameT 
type in the same way as ordinary applications as described in 
OpenSAF_Extensions_PR.odt.

/ Anders Widell

On 07/11/2016 07:17 AM, Vu Minh Nguyen wrote:
> Hi Mahesh,
>
> I would like to add Anders in for his comment.
>
> Your below concern belongs to extended SaNameT in general, not only for LOG.
> I am not sure that use case (?) is valid or not.
>
> Regards, Vu
>
>> -----Original Message-----
>> From: A V Mahesh [mailto:mahesh.va...@oracle.com]
>> Sent: Monday, July 11, 2016 11:06 AM
>> To: Vu Minh Nguyen <vu.m.ngu...@dektech.com.au>;
>> lennart.l...@ericsson.com
>> Cc: opensaf-devel@lists.sourceforge.net
>> Subject: Re: [PATCH 1 of 4] log: add one new option -f to saflogger tool
>> [#1315]
>>
>> Hi Vu,
>>
>> On 7/8/2016 4:08 PM, Vu Minh Nguyen wrote:
>>> Hi Mahesh,
>>>
>>> To make long DN work (e.g: long DN at @Ng token), we have to do some
>>> settings first. IMM is one of them.
>>> You can refer to ` setUpTestEnv()` @ tet_log_longDN.c for details on
> this.
>> [AVM]  I understand that the Agent has to do
>> `setenv("SA_ENABLE_EXTENDED_NAMES", "1", 1);`
>> to enable long DN , which I did for my LAG ( An application) , as we
>> know LAGA using IMMA,NTFA , ect ... implicitly,
>> in such case user will not expect , for each Agent that  implicitly
>> getting used ( user un aware) ,
>> what was trying to say is for all implicit agent long DN should be
>> enabled implicitly.
>>
>> -AVM
>>
>>> One question, have you tried to run the added test suite #13 for
> verifying
>>> long DN?
>>> With this test suite, before starting test, each TC does change
> precondition
>>> settings to make long DN work .
>>>
>>> If you want to see the verification data, enable the environment `
>>> LOGTEST_ENABLE_STDOUT`.
>>>
>>> E.g:
>>> # LOGTEST_ENABLE_STDOUT=1 logtest 13
>>>
>>> Regards, Vu
>>>
>>>> -----Original Message-----
>>>> From: A V Mahesh [mailto:mahesh.va...@oracle.com]
>>>> Sent: Friday, July 8, 2016 4:00 PM
>>>> To: Vu Minh Nguyen <vu.m.ngu...@dektech.com.au>;
>>>> lennart.l...@ericsson.com
>>>> Cc: opensaf-devel@lists.sourceforge.net
>>>> Subject: Re: [PATCH 1 of 4] log: add one new option -f to saflogger
> tool
>>>> [#1315]
>>>>
>>>> Hi Vu,
>>>>
>>>> While validating the patch , i received following errors , do we need
> to
>>>> apply any other IMM patchs
>>>>
>>>> to validate this patch ?
>>>>
>>>>
>> ==============================================================
>>>> ================
>>>>
>>>> # Jul  8 13:03:03 SC-1 osafimmnd[23888]: NO ERR_INVALID_PARAM: RDN
>>>> attribute value
>>>>
>> safLgStr=LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
>> LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
>> LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
>> LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
>> LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
>> LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
>> LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
>> LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
>> LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
>> LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
>> LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
>> LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
>> LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
>> LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
>>>> LLLLLLLLLLLLLLLLL
>>>> is too large: 997. Max length is 64 for SaStringT
>>>> Jul  8 13:03:03 SC-1 osaflogd[23903]: WA saImmOiRtObjectCreate_2
>>>> returned 7 for
>>>>
>> safLgStr=LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
>> LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
>> LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
>> LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
>> LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
>> LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
>> LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
>> LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
>> LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
>> LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
>> LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
>> LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
>> LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
>> LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
>>>> LLLLLLLLLLLLLLLLL,
>>>> parent (null)
>>>>
>>>>
>> ==============================================================
>>>> ================
>>>>
>>>> -AVM
>>>>
>>>>
>>>> On 7/8/2016 10:19 AM, A V Mahesh wrote:
>>>>> Hi Vu,
>>>>>
>>>>> On 7/8/2016 10:11 AM, Vu Minh Nguyen wrote:
>>>>>> I zipped all the patches in attached file, you can try to apply it in
>>>>>> the
>>>>>> meantime. Thanks.
>>>>> Thanks The attached patches are getting applied.
>>>>>
>>>>> -AVM
>>>>>
>>>>> On 7/8/2016 10:11 AM, Vu Minh Nguyen wrote:
>>>>>> Hi Mahesh,
>>>>>>
>>>>>> I have tried to apply these patches (copy from emails [PATCH x of 4])
>>> to
>>>>>> latest staging and it works.
>>>>>> And I see you get failed at the first patch (saflogger tool), then I
>>>>>> guess
>>>>>> the patches you applied were broken somehow.
>>>>>>
>>>>>> Can you send me the saflogger patch (1st patch) that you used? I will
>>>>>> check
>>>>>> it to see why you get failed.
>>>>>>
>>>>>> I zipped all the patches in attached file, you can try to apply it in
>>>>>> the
>>>>>> meantime. Thanks.
>>>>>>
>>>>>> Regards, Vu
>>>>>>
>>>>>>> -----Original Message-----
>>>>>>> From: A V Mahesh [mailto:mahesh.va...@oracle.com]
>>>>>>> Sent: Friday, July 8, 2016 11:07 AM
>>>>>>> To: Vu Minh Nguyen <vu.m.ngu...@dektech.com.au>;
>>>>>>> lennart.l...@ericsson.com
>>>>>>> Cc: opensaf-devel@lists.sourceforge.net
>>>>>>> Subject: Re: [PATCH 1 of 4] log: add one new option -f to saflogger
>>>>>>> tool
>>>>>>> [#1315]
>>>>>>>
>>>>>>> Hi Vu,
>>>>>>>
>>>>>>> This patch is not being applied on latest staging , can you tell on
>>>>>>> which changesset  this will cleanly appy ?
>>>>>>>
>>>>>>>
>> ==============================================================
>>>>>>> ====================
>>>>>>>
>>>>>>> patching file osaf/tools/saflog/saflogger/Makefile.am
>>>>>>> Hunk #1 FAILED at 22.
>>>>>>> 1 out of 1 hunk FAILED -- saving rejects to file
>>>>>>> osaf/tools/saflog/saflogger/Makefile.am.rej
>>>>>>> patching file osaf/tools/saflog/saflogger/saf_logger.c
>>>>>>> Hunk #2 FAILED at 84.
>>>>>>> Hunk #3 FAILED at 96.
>>>>>>> Hunk #4 FAILED at 236.
>>>>>>> Hunk #5 FAILED at 259.
>>>>>>> Hunk #6 FAILED at 268.
>>>>>>> Hunk #7 FAILED at 299.
>>>>>>> Hunk #8 FAILED at 367.
>>>>>>> Hunk #9 FAILED at 411.
>>>>>>> 8 out of 9 hunks FAILED -- saving rejects to file
>>>>>>> osaf/tools/saflog/saflogger/saf_logger.c.rej
>>>>>>>
>>>>>>>
>> ==============================================================
>>>>>>> ====================
>>>>>>>
>>>>>>> -AVM
>>>>>>>
>>>>>>> On 7/1/2016 4:12 PM, Vu Minh Nguyen wrote:
>>>>>>>> osaf/tools/saflog/saflogger/Makefile.am  |   1 +
>>>>>>>>      osaf/tools/saflog/saflogger/saf_logger.c |  90
>>>>>>> ++++++++++++++++++++++++++-----
>>>>>>>>      2 files changed, 75 insertions(+), 16 deletions(-)
>>>>>>>>
>>>>>>>>
>>>>>>>> With app stream, saflogger used app stream DN as logFileName.
>>>>>>>> With Long DN, the app stream DN could be longer than 255
>> characters
>>>> in
>>>>>>> length.
>>>>>>>> This patch provides one new option -f <filename>.
>>>>>>>> This option is only applicable for app stream.
>>>>>>>>
>>>>>>>> diff --git a/osaf/tools/saflog/saflogger/Makefile.am
>>>>>>> b/osaf/tools/saflog/saflogger/Makefile.am
>>>>>>>> --- a/osaf/tools/saflog/saflogger/Makefile.am
>>>>>>>> +++ b/osaf/tools/saflog/saflogger/Makefile.am
>>>>>>>> @@ -22,6 +22,7 @@ MAINTAINERCLEANFILES = Makefile.in
>>>>>>>>      bin_PROGRAMS = saflogger
>>>>>>>>
>>>>>>>>      saflogger_CPPFLAGS = \
>>>>>>>> +    -DSA_EXTENDED_NAME_SOURCE \
>>>>>>>>          $(AM_CPPFLAGS) \
>>>>>>>>          -I$(top_srcdir)/osaf/tools/saflog/include
>>>>>>>>
>>>>>>>> diff --git a/osaf/tools/saflog/saflogger/saf_logger.c
>>>>>>> b/osaf/tools/saflog/saflogger/saf_logger.c
>>>>>>>> --- a/osaf/tools/saflog/saflogger/saf_logger.c
>>>>>>>> +++ b/osaf/tools/saflog/saflogger/saf_logger.c
>>>>>>>> @@ -37,8 +37,9 @@
>>>>>>>>      #include <poll.h>
>>>>>>>>      #include <unistd.h>
>>>>>>>>      #include <limits.h>
>>>>>>>> +#include <stdbool.h>
>>>>>>>> +#include "osaf_extended_name.h"
>>>>>>>>
>>>>>>>> -#include <saAis.h>
>>>>>>>>      #include <saLog.h>
>>>>>>>>
>>>>>>>>      #include "saf_error.h"
>>>>>>>> @@ -83,7 +84,7 @@ static void usage(void)
>>>>>>>>          printf("\t%s - write log record to log stream\n",
> progname);
>>>>>>>>          printf("\nSYNOPSIS\n");
>>>>>>>> -    printf("\t%s [options] [message ...]\n", progname);
>>>>>>>> +    printf("\t%s [options] [-f <FILENAME>] [message ...]\n",
>>>>>>>> progname);
>>>>>>>>
>>>>>>>>          printf("\nDESCRIPTION\n");
>>>>>>>>          printf("\t%s is a SAF LOG client used to write a log record
>>>>>>>> into a
>>>>>>> specified log stream.\n", progname);
>>>>>>>> @@ -95,11 +96,16 @@ static void usage(void)
>>>>>>>>          printf("\t-n or --notification           write to
> notification
>>>>>> stream\n");
>>>>>>>>          printf("\t-y or --system                 write to system
>>> stream
>>>>>> (default)\n");
>>>>>>>>          printf("\t-a NAME or --application=NAME  write to
> application
>>>>>>> stream NAME (create it if not exist)\n");
>>>>>>>> +    printf("\t-f FILENAME                    write log record to
>>>>>> FILENAME\n");
>>>>>>>>          printf("\t-s SEV or --severity=SEV       use severity SEV,
>>>>>>>> default
>>>>>>> INFO\n");
>>>>>>>>          printf("\t\tvalid severity names: emerg, alert, crit,
> error,
>>>>>>>> warn,
>>>>>>> notice, info\n");
>>>>>>>> +    printf("\nNOTES\n");
>>>>>>>> +    printf("\t1) -f is only applicable for app stream.\n");
>>>>>>>> +    printf("\t1) <FILENAME> length must not be longer than 255
>>>>>>> characters.\n");
>>>>>>>>          printf("\nEXAMPLES\n");
>>>>>>>>          printf("\tsaflogger -a safLgStrCfg=Test \"Hello
> world\"\n");
>>>>>>>> +    printf("\tsaflogger -a safLgStrCfg=Test -f testLogFile \"Hello
>>>>>>> world\"\n");
>>>>>>>>          printf("\tsaflogger -s crit \"I am going down\"\n\n");
>>>>>>>>      }
>>>>>>>>
>>>>>>>> @@ -230,7 +236,7 @@ static SaLogSeverityT get_severity(char
>>>>>>>>      int main(int argc, char *argv[])
>>>>>>>>      {
>>>>>>>>          int c;
>>>>>>>> -    SaNameT logStreamName = {.length = 0 };
>>>>>>>> +    SaNameT logStreamName;
>>>>>>>>          SaLogFileCreateAttributesT_2 *logFileCreateAttributes =
> NULL;
>>>>>>>>          SaLogFileCreateAttributesT_2 appLogFileCreateAttributes;
>>>>>>>>          SaLogStreamOpenFlagsT logStreamOpenFlags = 0;
>>>>>>>> @@ -253,6 +259,7 @@ int main(int argc, char *argv[])
>>>>>>>>          SaLogStreamHandleT logStreamHandle;
>>>>>>>>          SaSelectionObjectT selectionObject;
>>>>>>>>          unsigned int wait_time;
>>>>>>>> +    bool is_appstream = false, f_opt = false;
>>>>>>>>
>>>>>>>>          srandom(getpid());
>>>>>>>>
>>>>>>>> @@ -261,11 +268,23 @@ int main(int argc, char *argv[])
>>>>>>>>              exit(EXIT_FAILURE);
>>>>>>>>          }
>>>>>>>>
>>>>>>>> -    sprintf((char *)logSvcUsrName.value, "%s.%u@%s", "saflogger",
>>>>>>> getpid(), hostname);
>>>>>>>> -    logSvcUsrName.length = strlen((char *)logSvcUsrName.value);
>>>>>>>> +    if (setenv("SA_ENABLE_EXTENDED_NAMES", "1", 1) != 0) {
>>>>>>>> +        fprintf(stderr, "Failed to enable Extended SaNameT");
>>>>>>>> +        exit(EXIT_FAILURE);
>>>>>>>> +    }
>>>>>>>> +
>>>>>>>> +    /**
>>>>>>>> +     * osaf_extended_name_init() is added in case osaf_extended_*
>>>>>>>> APIs
>>>>>>>> +     * are used before saLogInitialize().
>>>>>>>> +     */
>>>>>>>> +    osaf_extended_name_init();
>>>>>>>> +
>>>>>>>> +    char svcUserName[kOsafMaxDnLength];
>>>>>>>> +    snprintf(svcUserName, sizeof(svcUserName), "%s.%u@%s",
>>>>>>> "saflogger", getpid(), hostname);
>>>>>>>> +    saAisNameLend(svcUserName, &logSvcUsrName);
>>>>>>>>
>>>>>>>>          /* Setup default values */
>>>>>>>> -    strcpy((char *)logStreamName.value, SA_LOG_STREAM_SYSTEM);
>>>>>>>       /* system stream is default */
>>>>>>>> + saAisNameLend(SA_LOG_STREAM_SYSTEM, &logStreamName);
>>>>>>>>          logRecord.logTimeStamp = SA_TIME_UNKNOWN;    /* LOG
>>>>>>> service should supply timestamp */
>>>>>>>>          logRecord.logHdrType = SA_LOG_GENERIC_HEADER;
>>>>>>>>          logRecord.logHeader.genericHdr.notificationClassId = NULL;
>>>>>>>> @@ -280,32 +299,58 @@ int main(int argc, char *argv[])
>>>>>>>>          appLogFileCreateAttributes.maxFilesRotated =
>>>>>>> DEFAULT_MAX_FILES_ROTATED;
>>>>>>>>          /* Use built-in log file format in log server for app
> stream
>>> */
>>>>>>>>          appLogFileCreateAttributes.logFileFmt = NULL;
>>>>>>>> +    appLogFileCreateAttributes.logFileName = NULL;
>>>>>>>>
>>>>>>>>          while (1) {
>>>>>>>> -        c = getopt_long(argc, argv, "?hlnya:s:", long_options,
>>>>>> NULL);
>>>>>>>> +        c = getopt_long(argc, argv, "?hlnya:s:f:", long_options,
>>>>>>> NULL);
>>>>>>>>              if (c == -1) {
>>>>>>>>                  break;
>>>>>>>>              }
>>>>>>>>              switch (c) {
>>>>>>>>              case 'l':
>>>>>>>> -            strcpy((char *)logStreamName.value,
>>>>>>> SA_LOG_STREAM_ALARM);
>>>>>>>> + saAisNameLend(SA_LOG_STREAM_ALARM,
>>>>>>> &logStreamName);
>>>>>>>>                  logRecord.logHdrType = SA_LOG_NTF_HEADER;
>>>>>>>>                  break;
>>>>>>>>              case 'n':
>>>>>>>> -            strcpy((char *)logStreamName.value,
>>>>>>> SA_LOG_STREAM_NOTIFICATION);
>>>>>>>> + saAisNameLend(SA_LOG_STREAM_NOTIFICATION,
>>>>>>> &logStreamName);
>>>>>>>>                  logRecord.logHdrType = SA_LOG_NTF_HEADER;
>>>>>>>>                  break;
>>>>>>>>              case 'y':
>>>>>>>> -            strcpy((char *)logStreamName.value,
>>>>>>> SA_LOG_STREAM_SYSTEM);
>>>>>>>> + saAisNameLend(SA_LOG_STREAM_SYSTEM,
>>>>>>> &logStreamName);
>>>>>>>>                  break;
>>>>>>>>              case 'a':
>>>>>>>> +            logFileCreateAttributes =
>>>>>>> &appLogFileCreateAttributes;
>>>>>>>> +            logStreamOpenFlags = SA_LOG_STREAM_CREATE;
>>>>>>>> +
>>>>>>>> +            char tmpDn[kOsafMaxDnLength + 8 + 1] = {0};
>>>>>>>>                  if (strstr(optarg, "safLgStr"))
>>>>>>>> -                strcpy((char *)logStreamName.value,
>>>>>>> optarg);
>>>>>>>> +                strncpy(tmpDn, optarg, sizeof(tmpDn) - 1);
>>>>>>>>                  else
>>>>>>>> -                sprintf((char *)logStreamName.value,
>>>>>>> "safLgStr=%s", optarg);
>>>>>>>> -            logFileCreateAttributes =
>>>>>>> &appLogFileCreateAttributes;
>>>>>>>> +                snprintf(tmpDn, sizeof(tmpDn),
>>>>>>> "safLgStr=%s", optarg);
>>>>>>>> +
>>>>>>>> +            if (strlen(tmpDn) > kOsafMaxDnLength) {
>>>>>>>> +                fprintf(stderr, "Application stream DN is so
>>>>>>> long (%lu). Max: %d \n",
>>>>>>>> +                    strlen(optarg), kOsafMaxDnLength);
>>>>>>>> +                fprintf(stderr, "Shut down app. \n");
>>>>>>>> +                exit(EXIT_FAILURE);
>>>>>>>> +            }
>>>>>>>> +            saAisNameLend(tmpDn, &logStreamName);
>>>>>>>> +            is_appstream = true;
>>>>>>>> +            if (f_opt == false)
>>>>>>>> +                appLogFileCreateAttributes.logFileName =
>>>>>>> strdup(optarg);
>>>>>>>> +            break;
>>>>>>>> +        case 'f':
>>>>>>>> +            if (f_opt == true) {
>>>>>>>> +                fprintf(stderr, "More than one option -f are
>>>>>>> given.\n");
>>>>>>>> +                fprintf(stderr, "Try saflogger -h for more
>>>>>>> information.\n");
>>>>>>>> +                exit(EXIT_FAILURE);
>>>>>>>> +
>>>>>>>> +            }
>>>>>>>> +            if (appLogFileCreateAttributes.logFileName != NULL)
>>>>>>>> +
>>>>>>>       free(appLogFileCreateAttributes.logFileName);
>>>>>>>> +
>>>>>>>>                  appLogFileCreateAttributes.logFileName =
>>>>>>> strdup(optarg);
>>>>>>>> -            logStreamOpenFlags = SA_LOG_STREAM_CREATE;
>>>>>>>> +            f_opt = true;
>>>>>>>>                  break;
>>>>>>>>              case 's':
>>>>>>>>                  logRecord.logHeader.genericHdr.logSeverity =
>>>>>>> get_severity(optarg);
>>>>>>>> @@ -322,6 +367,21 @@ int main(int argc, char *argv[])
>>>>>>>>              }
>>>>>>>>          }
>>>>>>>>
>>>>>>>> +    if (f_opt == true && is_appstream == false) {
>>>>>>>> +        fprintf(stderr, "Note: -f is only applicaple for app
>>>>>> stream.\n");
>>>>>>>> +        fprintf(stderr, "Try saflogger -h for more
> information.\n");
>>>>>>>> +        exit(EXIT_FAILURE);
>>>>>>>> +    }
>>>>>>>> +
>>>>>>>> +    if (appLogFileCreateAttributes.logFileName != NULL &&
>>>>>>> is_appstream == true) {
>>>>>>>> +        size_t len = 0;
>>>>>>>> +        if ((len = strlen(appLogFileCreateAttributes.logFileName))
>>>>>>> 255) {
>>>>>>>> +            fprintf(stderr, "FILENAME is too long (%zu) (max:
>>>>>> 255
>>>>>>> characters).\n", len);
>>>>>>>> +            fprintf(stderr, "Try saflogger -h for more
>>>>>>> information.\n");
>>>>>>>> +            exit(EXIT_FAILURE);
>>>>>>>> +        }
>>>>>>>> +    }
>>>>>>>> +
>>>>>>>>          if (optind >= argc) {
>>>>>>>>              /* No body of log record */
>>>>>>>>          }
>>>>>>>> @@ -351,8 +411,6 @@ int main(int argc, char *argv[])
>>>>>>>>              exit(EXIT_FAILURE);
>>>>>>>>          }
>>>>>>>>
>>>>>>>> -    logStreamName.length = strlen((char *)logStreamName.value);
>>>>>>>> -
>>>>>>>>          if (logRecord.logHdrType == SA_LOG_NTF_HEADER) {
>>>>>>>>              /* Setup some valid values */
>>>>>>>>              logRecord.logHeader.ntfHdr.notificationId =
>>>>>>> SA_NTF_IDENTIFIER_UNUSED;
>


------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity planning
reports.http://sdm.link/zohodev2dev
_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to