Skip to content

Bug: Nodes not added to ProxyObject with root path ("/") #122

@bspot

Description

@bspot

When creating a ProxyObject at the root path, i.e.

const obj = await bus.getProxyObject('some.service.name', '/');

the sub-nodes contained in the XML returned by the introspect call will not be added to the ProxyObject's nodes attribute.

That is because of how the sub-nodes full object path is constructed in https://github.com/dbusjs/node-dbus-next/blob/master/lib/client/proxy-object.js#L95

const path = `${this.path}/${name}`;
if (isObjectPathValid(path)) {
  this.nodes.push(path);
}

Since this.path is /, the sub-nodes path will start with //, which is not a valid object path and therefore rejected by the following isObjectPathValid check.

I think this could be replaced with

const path = this.path === '/' ? `/${name}` : `${this.path}/${name}`;

since otherwise object paths can not end with '/'.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions