]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
Add radlog_hex function
authorArran Cudbard-Bell <a.cudbardb@freeradius.org>
Thu, 12 May 2016 19:37:22 +0000 (15:37 -0400)
committerArran Cudbard-Bell <a.cudbardb@freeradius.org>
Thu, 12 May 2016 19:37:33 +0000 (15:37 -0400)
src/include/log.h
src/main/log.c

index 7e2d646001c062a19e440727bf129f163c6c56af..393fa54be813a1ac7380efcfc89cae47344f1179 100644 (file)
@@ -118,6 +118,9 @@ void        radlog_request_hex(log_type_t type, log_lvl_t lvl, REQUEST *request,
                           uint8_t const *data, size_t data_len)
        CC_HINT(nonnull);
 
+void   radlog_hex(log_type_t type, log_lvl_t lvl, uint8_t const *data, size_t data_len)
+       CC_HINT(nonnull);
+
 /** Prefix for global log messages
  *
  * Should be defined in source file (before including radius.h) to add prefix to
index 1e56f2215c52738af89d7f11aebed73e4b994985..81595a5c72d3266b1ecd763caaae7681b09cb0c3 100644 (file)
@@ -960,3 +960,19 @@ void radlog_request_hex(log_type_t type, log_lvl_t lvl, REQUEST *request,
        for (p = buffer, j = i; j < data_len; j++, p += 3) sprintf(p, "%02x ", (uint8_t)data[j]);
        radlog_request(type, lvl, request, "%04x: %s", (int)i, buffer);
 }
+
+void radlog_hex(log_type_t type, log_lvl_t lvl, uint8_t const *data, size_t data_len)
+{
+       size_t i, j;
+       char buffer[(0x0f * 3) + 1];
+       char *p;
+
+       for (i = 0; (i + 0x0f) <= data_len; i += 0x0f) {
+               for (p = buffer, j = i; j < (i + 0x0f); j++, p += 3) sprintf(p, "%02x ", (uint8_t)data[j]);
+               radlog(type, lvl, "%04x: %s", (int)i, buffer);
+       }
+       if (i == data_len) return;
+
+       for (p = buffer, j = i; j < data_len; j++, p += 3) sprintf(p, "%02x ", (uint8_t)data[j]);
+       radlog(type, lvl, "%04x: %s", (int)i, buffer);
+}