[sr-dev] [kamailio/kamailio] acc: use acc.time_mode to save cdrs in gmtime (#1368)

Daniel-Constantin Mierla notifications at github.com
Fri Dec 15 12:02:09 CET 2017


miconda commented on this pull request.



>  				VAL_NULL(db_cdr_vals+i)=0;
 				if(string2time(&cdr_value_array[i], &timeval_val) < 0) {
 					LM_ERR("failed to convert string to timeval.\n");
 					goto error;
 				}
-				VAL_TIME(db_cdr_vals+i) = timeval_val.tv_sec;
+				if (acc_time_mode==4) {
+					VAL_TYPE(db_cdr_vals+i)=DB1_STR;
+					t = gmtime(&timeval_val.tv_sec);
+					/* Convert time_t structure to format accepted by the database */
+					if (strftime(cdr_time_format_buf[i], TIME_STR_BUFFER_SIZE, TIME_STRING_FORMAT, t) <= 0) {
+						cdr_time_format_buf[i][0] = '\0';
+					}
+
+					VAL_STR(db_cdr_vals+i) = (str){cdr_time_format_buf[i], TIME_STR_BUFFER_SIZE-1};

Is this cast compliant with strict C standard? Kamailio is used on some old/embedded systems with more strict compilers.

Otherwise, I think this should just be a DB1_STRING data type, because the buffer is zero-terminated.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/1368#pullrequestreview-83776806
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.kamailio.org/pipermail/sr-dev/attachments/20171215/fbcd74b8/attachment.html>


More information about the sr-dev mailing list