]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
Backport Minute and Request ID expansions
authorArran Cudbard-Bell <a.cudbardb@freeradius.org>
Thu, 12 Jul 2012 20:25:43 +0000 (21:25 +0100)
committerArran Cudbard-Bell <a.cudbardb@freeradius.org>
Thu, 12 Jul 2012 20:29:18 +0000 (21:29 +0100)
doc/variables.rst
src/main/xlat.c

index 1db65a0e8b8ab0da63d0cf0f86fabdc280b13745..e128899e3b4e23456c2bc94c5a5be0a287369b5e 100644 (file)
@@ -115,8 +115,12 @@ release.  They also do NOT permit the use of conditional syntax
 +-----------+---------------------------+-----------------------+
 |%D         |request date (YYYYMMDD)   |                       |
 +-----------+---------------------------+-----------------------+
+|%G         |request minute            |                       |
++-----------+---------------------------+-----------------------+
 |%H         |request hour              |                       |
 +-----------+---------------------------+-----------------------+
+|%I         |request ID                        |                       |
++-----------+---------------------------+-----------------------+
 |%L         |radlog_dir                        |%{config:logdir}       |
 +-----------+---------------------------+-----------------------+
 |%M         |MTU                       |%{Framed-MTU}          |
index 37ec1a84bad934ad88c943d79b391f7ea67e87e0..e9706dd72edc0fcfa3a422bd9d91a4d634e454cf 100644 (file)
@@ -1313,11 +1313,26 @@ int radius_xlat(char *out, int outlen, const char *fmt,
                                }
                                p++;
                                break;
+                       case 'I': /* Request ID */
+                               snprintf(tmpdt, sizeof(tmpdt), "%i", request->packet->id);
+                               strlcpy(q, tmpdt, freespace);
+                               q += strlen(q);
+                               p++;
+                               break;
                        case 'L': /* radlog_dir */
                                strlcpy(q,radlog_dir,freespace);
                                q += strlen(q);
                                p++;
                                break;
+                       case 'G': /* request minute */
+                               TM = localtime_r(&request->timestamp, &s_TM);
+                               len = strftime(tmpdt, sizeof(tmpdt), "%M", TM);
+                               if (len > 0) {
+                                       strlcpy(q, tmpdt, freespace);
+                                       q += strlen(q);
+                               }
+                               p++;
+                               break;
                        case 'M': /* MTU */
                                q += valuepair2str(q,freespace,pairfind(request->reply->vps,PW_FRAMED_MTU),PW_TYPE_INTEGER, func);
                                p++;