core: Fix USB functionfs activation and clarify its documentation (#4188)

There was no certainty about how the path in service file should look
like for usb functionfs activation. Because of this it was treated
differently in different places, which made this feature unusable.

This patch fixes the path to be the *mount directory* of functionfs, not
ep0 file path and clarifies in the documentation that ListenUSBFunction should be
the location of functionfs mount point, not ep0 file itself.
This commit is contained in:
Paweł Szewczyk
2016-09-26 18:45:47 +02:00
committed by Zbigniew Jędrzejewski-Szmek
parent bc3bb330b8
commit 00bb64ecfa
2 changed files with 5 additions and 10 deletions
+2 -7
View File
@@ -1334,14 +1334,9 @@ static int usbffs_select_ep(const struct dirent *d) {
static int usbffs_dispatch_eps(SocketPort *p) {
_cleanup_free_ struct dirent **ent = NULL;
_cleanup_free_ char *path = NULL;
int r, i, n, k;
path = dirname_malloc(p->path);
if (!path)
return -ENOMEM;
r = scandir(path, &ent, usbffs_select_ep, alphasort);
r = scandir(p->path, &ent, usbffs_select_ep, alphasort);
if (r < 0)
return -errno;
@@ -1356,7 +1351,7 @@ static int usbffs_dispatch_eps(SocketPort *p) {
for (i = 0; i < n; ++i) {
_cleanup_free_ char *ep = NULL;
ep = path_make_absolute(ent[i]->d_name, path);
ep = path_make_absolute(ent[i]->d_name, p->path);
if (!ep)
return -ENOMEM;