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;


------------------------------------------------------------------------------
Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San
Francisco, CA to explore cutting-edge tech and listen to tech luminaries
present their vision of the future. This family event has something for
everyone, including kids. Get more information and register today.
http://sdm.link/attshape
_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to