luci-app-lldpd: Fix mysterious Command failed: Unknown error
authorPaul Donald <newtwen+github@gmail.com>
Thu, 10 Oct 2024 20:03:46 +0000 (22:03 +0200)
committerPaul Donald <newtwen+github@gmail.com>
Thu, 10 Oct 2024 20:03:46 +0000 (22:03 +0200)
Executing the following command:

ubus call luci.lldpd getStatus

always returned 'Command failed: Unknown error', but the underlying

lldpcli -f json0 show *

worked fine. Fixed with a chained ?.read?

Tested on 23.05.3

Signed-off-by: Paul Donald <newtwen+github@gmail.com>
applications/luci-app-lldpd/root/usr/share/rpcd/ucode/luci.lldpd

index fff7ac55f3a522853bf1a7842b56dbf22a3390b4..3774e222cec2f43f73edb6fb07978dab14ed6d36 100644 (file)
@@ -3,20 +3,20 @@
 import { popen } from 'fs';
 
 function lldpcli_json(section) {
-       return json(popen(`lldpcli -f json0 show ${section}`, 'r'));
+       return json(popen(`lldpcli -f json0 show ${section}`, 'r')?.read?.('all'));
 }
 
-return {
-       'luci.lldpd': {
-               getStatus: {
-                       call: function() {
-                               return {
-                                       statistics: lldpcli_json("statistics"),
-                                       neighbors:  lldpcli_json("neighbors details"),
-                                       interfaces: lldpcli_json("interfaces"),
-                                       chassis:    lldpcli_json("chassis")
-                               };
-                       }
+const methods = {
+       getStatus: {
+               call: function() {
+                       return {
+                               statistics: lldpcli_json("statistics"),
+                               neighbors:  lldpcli_json("neighbors details"),
+                               interfaces: lldpcli_json("interfaces"),
+                               chassis:    lldpcli_json("chassis")
+                       };
                }
        }
 };
+
+return { 'luci.lldpd': methods };
\ No newline at end of file