Arran Cudbard-Bell wrote:
> Yes dual core Power PC G5 64bit CPU.
That's what I thought.
Posix says that "struct timeval" has member "time_t tv_sec". So it
*should* be safe to pass a pointer to tv_sec to a function that takes a
"time_t *", right?
Apparently not on the Mac. <sigh> Please try the attached patch.
Alan DeKok.
--
http://deployingradius.com - The web site of the book
http://deployingradius.com/blog/ - The blog
Index: src/main/event.c
===================================================================
RCS file: /source/radiusd/src/main/event.c,v
retrieving revision 1.33
diff -u -r1.33 event.c
--- src/main/event.c 24 Apr 2007 09:18:58 -0000 1.33
+++ src/main/event.c 9 May 2007 09:35:41 -0000
@@ -685,6 +685,8 @@
PW_POST_PROXY_TYPE, PW_TYPE_INTEGER);
vp->vp_integer = dval->value;
+ rad_assert(request->proxy_reply = NULL);
+
return 1;
}
@@ -1729,6 +1731,7 @@
request->next_callback = NULL;
gettimeofday(&request->received, NULL);
+ request->timestamp = request->received.tv_sec;
request->when = request->received;
request->delay = USEC / 10;
Index: src/main/xlat.c
===================================================================
RCS file: /source/radiusd/src/main/xlat.c,v
retrieving revision 1.119
diff -u -r1.119 xlat.c
--- src/main/xlat.c 23 Apr 2007 08:10:28 -0000 1.119
+++ src/main/xlat.c 9 May 2007 09:35:41 -0000
@@ -375,6 +375,7 @@
}
#endif /* HAVE_REGEX_H */
+
/*
* Compare two xlat_t structs, based ONLY on the module name.
*/
@@ -917,7 +918,7 @@
p++;
break;
case 'd': /* request day */
- TM = localtime_r(&request->received.tv_sec,
&s_TM);
+ TM = localtime_r(&request->timestamp, &s_TM);
len = strftime(tmpdt, sizeof(tmpdt), "%d", TM);
if (len > 0) {
strlcpy(q, tmpdt, freespace);
@@ -941,7 +942,7 @@
p++;
break;
case 'm': /* request month */
- TM = localtime_r(&request->received.tv_sec,
&s_TM);
+ TM = localtime_r(&request->timestamp, &s_TM);
len = strftime(tmpdt, sizeof(tmpdt), "%m", TM);
if (len > 0) {
strlcpy(q, tmpdt, freespace);
@@ -962,7 +963,7 @@
p++;
break;
case 't': /* request timestamp */
- CTIME_R(&request->received.tv_sec, tmpdt,
sizeof(tmpdt));
+ CTIME_R(&request->timestamp, tmpdt,
sizeof(tmpdt));
nl = strchr(tmpdt, '\n');
if (nl) *nl = '\0';
strlcpy(q, tmpdt, freespace);
@@ -984,7 +985,7 @@
p++;
break;
case 'D': /* request date */
- TM = localtime_r(&request->received.tv_sec,
&s_TM);
+ TM = localtime_r(&request->timestamp, &s_TM);
len = strftime(tmpdt, sizeof(tmpdt), "%Y%m%d",
TM);
if (len > 0) {
strlcpy(q, tmpdt, freespace);
@@ -993,7 +994,7 @@
p++;
break;
case 'H': /* request hour */
- TM = localtime_r(&request->received.tv_sec,
&s_TM);
+ TM = localtime_r(&request->timestamp, &s_TM);
len = strftime(tmpdt, sizeof(tmpdt), "%H", TM);
if (len > 0) {
strlcpy(q, tmpdt, freespace);
@@ -1016,7 +1017,7 @@
p++;
break;
case 'S': /* request timestamp in SQL format*/
- TM = localtime_r(&request->received.tv_sec,
&s_TM);
+ TM = localtime_r(&request->timestamp, &s_TM);
len = strftime(tmpdt, sizeof(tmpdt), "%Y-%m-%d
%H:%M:%S", TM);
if (len > 0) {
strlcpy(q, tmpdt, freespace);
@@ -1025,7 +1026,7 @@
p++;
break;
case 'T': /* request timestamp */
- TM = localtime_r(&request->received.tv_sec,
&s_TM);
+ TM = localtime_r(&request->timestamp, &s_TM);
len = strftime(tmpdt, sizeof(tmpdt),
"%Y-%m-%d-%H.%M.%S.000000", TM);
if (len > 0) {
strlcpy(q, tmpdt, freespace);
@@ -1043,7 +1044,7 @@
p++;
break;
case 'Y': /* request year */
- TM = localtime_r(&request->received.tv_sec,
&s_TM);
+ TM = localtime_r(&request->timestamp, &s_TM);
len = strftime(tmpdt, sizeof(tmpdt), "%Y", TM);
if (len > 0) {
strlcpy(q, tmpdt, freespace);
-
List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html