From 51b177c99259c5dcf07b14af59e04d8abdcf6c59 Mon Sep 17 00:00:00 2001 From: William Wilhelm Date: Fri, 22 May 2020 11:51:02 +1000 Subject: lumix: check req_acc return value --- camlibs/lumix/lumix.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/camlibs/lumix/lumix.c b/camlibs/lumix/lumix.c index d465f333d..481e08c05 100644 --- a/camlibs/lumix/lumix.c +++ b/camlibs/lumix/lumix.c @@ -1869,6 +1869,8 @@ camera_init (Camera *camera, GPContext *context) { GPPortInfo info; int ret; + int tries; + char *result; camera->pl = calloc(sizeof(CameraPrivateLibrary),1); @@ -1893,8 +1895,14 @@ camera_init (Camera *camera, GPContext *context) } gp_filesystem_set_funcs (camera->fs, &fsfuncs, camera); - loadCmd(camera,"cam.cgi?mode=accctrl&type=req_acc&value=0&value2=libgphoto2/lumix"); - loadCmd(camera,"cam.cgi?mode=setsetting&type=device_name&value=libgphoto2/lumix"); + tries = 3; + while (tries--) { + result = loadCmd(camera,"cam.cgi?mode=accctrl&type=req_acc&value=0&value2=libgphoto2/lumix"); + if (strstr(result,"ok,")) { + loadCmd(camera,"cam.cgi?mode=setsetting&type=device_name&value=libgphoto2/lumix"); + break; + } + } if (switchToRecMode (camera) != NULL) { int numpix; -- cgit v1.2.1