From: Arran Cudbard-Bell Date: Thu, 12 Jul 2012 20:25:43 +0000 (+0100) Subject: Backport Minute and Request ID expansions X-Git-Tag: release_2_2_0~111 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d7a2a4aaff08a593c9b0cbd46f15424fc9cbcae2;p=thirdparty%2Ffreeradius-server.git Backport Minute and Request ID expansions --- diff --git a/doc/variables.rst b/doc/variables.rst index 1db65a0e8b8..e128899e3b4 100644 --- a/doc/variables.rst +++ b/doc/variables.rst @@ -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} | diff --git a/src/main/xlat.c b/src/main/xlat.c index 37ec1a84bad..e9706dd72ed 100644 --- a/src/main/xlat.c +++ b/src/main/xlat.c @@ -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++;