osaf/tools/saflog/saflogger/saf_logger.c |  49 
++++++++++++++++++++++---------
  1 files changed, 35 insertions(+), 14 deletions(-)


If there are invalid non-options, show them, recommend use --help and 
then exit.

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
@@ -311,14 +311,48 @@ int main(int argc, char *argv[])
                        logRecord.logHeader.genericHdr.logSeverity = 
get_severity(optarg);
                        break;
                case 'h':
+                       usage();
+                       exit(EXIT_SUCCESS);
+                       break;
                case '?':
                default:
-                       usage();
+                       fprintf(stderr, "Try saflogger -h for more 
information.\n");
                        exit(EXIT_FAILURE);
                        break;
                }
        }

+       if (optind >= argc) {
+               /* No body of log record */
+       }
+       else if (optind == argc - 1) {
+               /* Create body of log record */
+               int sz;
+               char *logBuf = NULL;
+               sz = strlen(argv[optind]);
+               logBuf = malloc(sz + 64);       /* add space for index/id in 
periodic writes */
+               strcpy(logBuf, argv[optind]);
+               logBuffer.logBufSize = sz;
+               logBuffer.logBuf = (SaUint8T *)logBuf;
+               logRecord.logBuffer = &logBuffer;
+       }
+       else {
+               fprintf(stderr, "Invalid argument.\n");
+               fprintf(stderr, "Enclose message in quotation marks \"\" e.g. 
\"");
+               while (optind < argc)
+               {
+                       fprintf(stderr, "%s", argv[optind++]);
+                       if (optind < argc)
+                               fprintf(stderr, " ");
+                       else
+                               fprintf(stderr, "\"\n");
+               }
+               fprintf(stderr, "Try saflogger -h for more information.\n");
+               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;
@@ -329,19 +363,6 @@ int main(int argc, char *argv[])
                logRecord.logHeader.ntfHdr.eventTime = get_current_SaTime();
        }

-       logStreamName.length = strlen((char *)logStreamName.value);
-
-       /* Create body of log record (if any) */
-       if (optind < argc) {
-               int sz;
-               char *logBuf = NULL;
-               sz = strlen(argv[optind]);
-               logBuf = malloc(sz + 64);       /* add space for index/id in 
periodic writes */
-               strcpy(logBuf, argv[optind]);
-               logBuffer.logBufSize = sz;
-               logBuffer.logBuf = (SaUint8T *)logBuf;
-               logRecord.logBuffer = &logBuffer;
-       }

        wait_time = 0;
        error = saLogInitialize(&logHandle, &logCallbacks, &logVersion);

------------------------------------------------------------------------------
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to