Change-Id: I44b3684c8172d6410d7e149258131f0130fe1939
Reviewed-on: http://photon-jenkins.eng.vmware.com:8082/4341
Tested-by: gerrit-photon <photon-checkins@vmware.com>
Reviewed-by: Sharath George
| ... | ... |
@@ -1,7 +1,7 @@ |
| 1 | 1 |
Name: c-rest-engine |
| 2 | 2 |
Summary: minimal http(s) server library |
| 3 | 3 |
Version: 1.1 |
| 4 |
-Release: 2%{?dist}
|
|
| 4 |
+Release: 3%{?dist}
|
|
| 5 | 5 |
Group: Applications/System |
| 6 | 6 |
Vendor: VMware, Inc. |
| 7 | 7 |
License: Apache 2.0 |
| ... | ... |
@@ -13,6 +13,7 @@ BuildRequires: coreutils >= 8.22 |
| 13 | 13 |
BuildRequires: openssl-devel >= 1.0.1 |
| 14 | 14 |
Source0: %{name}-%{version}.tar.gz
|
| 15 | 15 |
Patch0: socket_RW.patch |
| 16 |
+Patch1: syslog_noInit.patch |
|
| 16 | 17 |
%define sha1 c-rest-engine=a25927fd98ec92df5e210cc4941fa626604636f6 |
| 17 | 18 |
|
| 18 | 19 |
%description |
| ... | ... |
@@ -32,6 +33,7 @@ development libs and header files for c-rest-engine |
| 32 | 32 |
%prep |
| 33 | 33 |
%setup -q |
| 34 | 34 |
%patch0 -p1 |
| 35 |
+%patch1 -p1 |
|
| 35 | 36 |
|
| 36 | 37 |
%build |
| 37 | 38 |
cd build |
| ... | ... |
@@ -64,6 +66,8 @@ find %{buildroot} -name '*.la' -delete
|
| 64 | 64 |
# %doc ChangeLog README COPYING |
| 65 | 65 |
|
| 66 | 66 |
%changelog |
| 67 |
+* Fri Nov 17 2017 Kumar Kaushik <kaushikk@vmware.com> 1.1-3 |
|
| 68 |
+- Removing syslog open/close from library. |
|
| 67 | 69 |
* Fri Nov 10 2017 Kumar Kaushik <kaushikk@vmware.com> 1.1-2 |
| 68 | 70 |
- Fix 0 bytes error codition on socket read and write. |
| 69 | 71 |
* Tue Oct 31 2017 Kumar Kaushik <kaushikk@vmware.com> 1.1-1 |
| 70 | 72 |
new file mode 100644 |
| ... | ... |
@@ -0,0 +1,151 @@ |
| 0 |
+From 56c8c0ffd82c8fe8c396d8c00f23688adcdc9ecd Mon Sep 17 00:00:00 2001 |
|
| 1 |
+From: Kumar Kaushik <kaushikk@vmware.com> |
|
| 2 |
+Date: Wed, 15 Nov 2017 17:24:44 -0800 |
|
| 3 |
+Subject: [PATCH] Remove init/shutdown of syslog from library |
|
| 4 |
+ |
|
| 5 |
+Change-Id: I7705f44c468d2ce69a15b531e108ef0cfbe391b8 |
|
| 6 |
+--- |
|
| 7 |
+ build/package/rpm/c-rest-engine.spec | 4 +++- |
|
| 8 |
+ common/logging.c | 45 ++++++++---------------------------- |
|
| 9 |
+ server/vmrestd/main.c | 8 ++++++- |
|
| 10 |
+ 3 files changed, 20 insertions(+), 37 deletions(-) |
|
| 11 |
+ |
|
| 12 |
+diff --git a/build/package/rpm/c-rest-engine.spec b/build/package/rpm/c-rest-engine.spec |
|
| 13 |
+index 8730113..02c1e62 100644 |
|
| 14 |
+--- a/build/package/rpm/c-rest-engine.spec |
|
| 15 |
+@@ -1,7 +1,7 @@ |
|
| 16 |
+ Name: c-rest-engine |
|
| 17 |
+ Summary: Minimal http(s) server library |
|
| 18 |
+ Version: 1.1 |
|
| 19 |
+-Release: 1%{?dist}
|
|
| 20 |
++Release: 3%{?dist}
|
|
| 21 |
+ Group: Applications/System |
|
| 22 |
+ Vendor: VMware, Inc. |
|
| 23 |
+ License: Apache 2.0 |
|
| 24 |
+diff --git a/common/logging.c b/common/logging.c |
|
| 25 |
+index 6bef25c..385c0b6 100644 |
|
| 26 |
+--- a/common/logging.c |
|
| 27 |
+@@ -41,13 +41,7 @@ VmRESTLogInitialize( |
|
| 28 |
+ } |
|
| 29 |
+ BAIL_ON_VMREST_ERROR(dwError); |
|
| 30 |
+ |
|
| 31 |
+- if (pRESTHandle->pRESTConfig->useSysLog) |
|
| 32 |
+- {
|
|
| 33 |
+- /**** Use syslog ****/ |
|
| 34 |
+- openlog(pRESTHandle->pRESTConfig->pszDaemonName, 0, LOG_DAEMON); |
|
| 35 |
+- setlogmask(LOG_UPTO(logLevelToSysLogLevel(pRESTHandle->debugLogLevel))); |
|
| 36 |
+- } |
|
| 37 |
+- else if (!(IsNullOrEmptyString(pRESTHandle->pRESTConfig->pszDebugLogFile))) |
|
| 38 |
++ if ((!(IsNullOrEmptyString(pRESTHandle->pRESTConfig->pszDebugLogFile))) && (pRESTHandle->pRESTConfig->useSysLog == FALSE)) |
|
| 39 |
+ {
|
|
| 40 |
+ if ((pRESTHandle->logFile = fopen(pRESTHandle->pRESTConfig->pszDebugLogFile, "a")) == NULL) |
|
| 41 |
+ {
|
|
| 42 |
+@@ -55,10 +49,6 @@ VmRESTLogInitialize( |
|
| 43 |
+ dwError = REST_ENGINE_FAILURE; |
|
| 44 |
+ } |
|
| 45 |
+ } |
|
| 46 |
+- else |
|
| 47 |
+- {
|
|
| 48 |
+- dwError = REST_ENGINE_FAILURE; |
|
| 49 |
+- } |
|
| 50 |
+ BAIL_ON_VMREST_ERROR(dwError); |
|
| 51 |
+ |
|
| 52 |
+ cleanup: |
|
| 53 |
+@@ -76,11 +66,7 @@ VmRESTLogTerminate( |
|
| 54 |
+ PVMREST_HANDLE pRESTHandle |
|
| 55 |
+ ) |
|
| 56 |
+ {
|
|
| 57 |
+- if (pRESTHandle && pRESTHandle->pRESTConfig->useSysLog) |
|
| 58 |
+- {
|
|
| 59 |
+- closelog(); |
|
| 60 |
+- } |
|
| 61 |
+- else if (pRESTHandle && pRESTHandle->logFile != NULL) |
|
| 62 |
++ if (pRESTHandle && pRESTHandle->logFile != NULL) |
|
| 63 |
+ {
|
|
| 64 |
+ fclose(pRESTHandle->logFile); |
|
| 65 |
+ pRESTHandle->logFile = NULL; |
|
| 66 |
+@@ -95,10 +81,9 @@ VmRESTLog( |
|
| 67 |
+ ...) |
|
| 68 |
+ {
|
|
| 69 |
+ char extraLogMessage[EXTRA_LOG_MESSAGE_LEN] = {0};
|
|
| 70 |
+- struct timespec tspec = {0};
|
|
| 71 |
+- time_t ltime; |
|
| 72 |
+- struct tm mytm = {0};
|
|
| 73 |
+ char logMessage[MAX_LOG_MESSAGE_LEN]; |
|
| 74 |
++ struct tm* tm_info = NULL; |
|
| 75 |
++ struct timeval tv = {0};
|
|
| 76 |
+ |
|
| 77 |
+ va_list va; |
|
| 78 |
+ const char* logLevelTag = ""; |
|
| 79 |
+@@ -115,30 +100,20 @@ VmRESTLog( |
|
| 80 |
+ vsnprintf( logMessage, sizeof(logMessage), fmt, va ); |
|
| 81 |
+ logMessage[sizeof(logMessage)-1] = '\0'; |
|
| 82 |
+ va_end( va ); |
|
| 83 |
+- ltime = time(<ime); |
|
| 84 |
++ gettimeofday(&tv, NULL); |
|
| 85 |
++ |
|
| 86 |
++ tm_info = localtime(&tv.tv_sec); |
|
| 87 |
+ logLevelTag = logLevelToTag(level); |
|
| 88 |
+- localtime_r(<ime, &mytm); |
|
| 89 |
+- snprintf(extraLogMessage, sizeof(extraLogMessage) - 1, |
|
| 90 |
+- "%4d%2d%2d%2d%2d%2d.%03ld:t@%lu:%-3.7s: ", |
|
| 91 |
+- mytm.tm_year+1900, |
|
| 92 |
+- mytm.tm_mon+1, |
|
| 93 |
+- mytm.tm_mday, |
|
| 94 |
+- mytm.tm_hour, |
|
| 95 |
+- mytm.tm_min, |
|
| 96 |
+- mytm.tm_sec, |
|
| 97 |
+- tspec.tv_nsec/NSECS_PER_MSEC, |
|
| 98 |
+- (unsigned long) pthread_self(), |
|
| 99 |
+- logLevelTag? logLevelTag : "UNKNOWN"); |
|
| 100 |
++ strftime(extraLogMessage, sizeof(extraLogMessage) - 1, "%F %T", tm_info); |
|
| 101 |
+ |
|
| 102 |
+ if (pRESTHandle->pRESTConfig->useSysLog) |
|
| 103 |
+ {
|
|
| 104 |
+ sysLogLevel = logLevelToSysLogLevel(level); |
|
| 105 |
+- snprintf(extraLogMessage, sizeof(extraLogMessage) - 1, "t@%lu: ", (unsigned long) pthread_self()); |
|
| 106 |
+- syslog(sysLogLevel, "%s: %s%s", logLevelToTag(level), extraLogMessage, logMessage); |
|
| 107 |
++ syslog(sysLogLevel, "%s:%lu t@%lu %-3.7s: %s\n", extraLogMessage, (long unsigned)(tv.tv_usec), (unsigned long) pthread_self(),(logLevelTag? logLevelTag : "UNKNOWN"),logMessage); |
|
| 108 |
+ } |
|
| 109 |
+ else if (pRESTHandle->logFile != NULL) |
|
| 110 |
+ {
|
|
| 111 |
+- fprintf(pRESTHandle->logFile, "%s%s\n", extraLogMessage, logMessage); |
|
| 112 |
++ fprintf(pRESTHandle->logFile, "%s:%lu t@%lu %-3.7s: %s\n", extraLogMessage, (long unsigned)(tv.tv_usec), (unsigned long) pthread_self(),(logLevelTag? logLevelTag : "UNKNOWN"),logMessage); |
|
| 113 |
+ fflush( pRESTHandle->logFile ); |
|
| 114 |
+ } |
|
| 115 |
+ } |
|
| 116 |
+diff --git a/server/vmrestd/main.c b/server/vmrestd/main.c |
|
| 117 |
+index 353f597..214b28d 100644 |
|
| 118 |
+--- a/server/vmrestd/main.c |
|
| 119 |
+@@ -116,7 +116,7 @@ int main() |
|
| 120 |
+ pConfig1->maxDataPerConnMB = 10; |
|
| 121 |
+ pConfig1->nWorkerThr = 5; |
|
| 122 |
+ pConfig1->nClientCnt = 5; |
|
| 123 |
+- pConfig1->useSysLog = FALSE; |
|
| 124 |
++ pConfig1->useSysLog = TRUE; |
|
| 125 |
+ pConfig1->pszSSLCertificate = "/root/mycert.pem"; |
|
| 126 |
+ pConfig1->isSecure = TRUE; |
|
| 127 |
+ pConfig1->pszSSLKey = "/root/mycert.pem"; |
|
| 128 |
+@@ -127,6 +127,10 @@ int main() |
|
| 129 |
+ pConfig1->pszSSLCipherList = NULL; |
|
| 130 |
+ pConfig1->SSLCtxOptionsFlag = 0; |
|
| 131 |
+ |
|
| 132 |
++ /**** Init sys log ****/ |
|
| 133 |
++ openlog("VMREST_KAUSHIK", 0, LOG_DAEMON);
|
|
| 134 |
++ setlogmask(LOG_UPTO(LOG_DEBUG)); |
|
| 135 |
++ |
|
| 136 |
+ dwError = VmRESTInit(pConfig, &gpRESTHandle); |
|
| 137 |
+ dwError = VmRESTInit(pConfig1, &gpRESTHandle1); |
|
| 138 |
+ |
|
| 139 |
+@@ -177,6 +181,8 @@ int main() |
|
| 140 |
+ // VmRESTShutdownSSL(sslCtx1); |
|
| 141 |
+ #endif |
|
| 142 |
+ |
|
| 143 |
++ closelog(); |
|
| 144 |
++ |
|
| 145 |
+ return dwError; |
|
| 146 |
+ |
|
| 147 |
+ } |