summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/src/cmd/nusb/ptp/ptp.c18
1 files changed, 16 insertions, 2 deletions
diff --git a/sys/src/cmd/nusb/ptp/ptp.c b/sys/src/cmd/nusb/ptp/ptp.c
index 8cc000385..328c0f321 100644
--- a/sys/src/cmd/nusb/ptp/ptp.c
+++ b/sys/src/cmd/nusb/ptp/ptp.c
@@ -526,8 +526,22 @@ getnode(Req *r, uvlong path)
x->handle = 0xffffffff;
x->d.qid.type = QTDIR;
x->d.mode = DMDIR|0777;
- x->d.name = emalloc9p(10);
- sprint(x->d.name, "%x", x->store);
+
+ if(ptprpc(r, GetStorageInfo, 1|DataRecv, NUM(path), &p, &np) < 0)
+ break;
+ if(debug)
+ hexdump("storageinfo", p, np);
+ if(np < 26){
+ werrstr("bad storageinfo");
+ break;
+ }
+
+ if((x->d.name = ptpstring2(p+26, p+np)) == nil){
+ werrstr("bad storageinfo");
+ break;
+ }
+
+ free(p);
goto Addnode;
case Qobj: