diff --git a/dm/dmtree/deviceinfo.c b/dm/dmtree/deviceinfo.c index 8ba259e..d9a44a9 100644 --- a/dm/dmtree/deviceinfo.c +++ b/dm/dmtree/deviceinfo.c @@ -133,7 +133,20 @@ int get_device_info_uptime(char *refparam, struct dmctx *ctx, char **value) int get_device_devicelog (char *refparam, struct dmctx *ctx, char **value) { - *value = dmstrdup("TOCODE"); //TODO + *value = ""; + char buff[1024]; + int len = klogctl(3 , buff, 1024); /* read ring buffer */ + if (len <= 0) + return 0; + buff[len] = '\0'; + char *p = buff; + while (*p++) { //TODO to optimize, we can avoid this if the '<' and '>' does not cause problem in the tests. + if (*p == '<') + *p = '('; + else if (*p == '>') + *p = ')'; + } + *value = dmstrdup(buff); // MEM WILL BE FREED IN DMMEMCLEAN return 0; }