| diff --git a/backend/kodakaio.c b/backend/kodakaio.c |
| index 8c4583a..b442e50 100644 |
| --- a/backend/kodakaio.c |
| +++ b/backend/kodakaio.c |
| @@ -127,7 +127,7 @@ for ubuntu 12.10 |
| |
| #define KODAKAIO_VERSION 02 |
| #define KODAKAIO_REVISION 4 |
| -#define KODAKAIO_BUILD 6 |
| +#define KODAKAIO_BUILD 7 |
| |
| /* for usb (but also used for net though it's not required). */ |
| #define MAX_BLOCK_SIZE 32768 |
| @@ -2184,6 +2184,7 @@ static void resolve_callback( |
| AvahiLookupResultFlags flags, |
| AVAHI_GCC_UNUSED void* userdata) { |
| |
| + AvahiStringList *vid_pair_list = NULL, *pid_pair_list = NULL; |
| char *pidkey, *pidvalue; |
| char *vidkey, *vidvalue; |
| size_t valuesize; |
| @@ -2204,20 +2205,40 @@ static void resolve_callback( |
| avahi_address_snprint(a, sizeof(a), address); |
| |
| /* Output short for Kodak ESP */ |
| - DBG(min(10,DBG_AUTO), "%s:%u %s ", a,port,host_name); |
| - avahi_string_list_get_pair(avahi_string_list_find(txt, "vid"), |
| - &vidkey, &vidvalue, &valuesize); |
| - DBG(min(10,DBG_AUTO), "%s=%s ", vidkey, vidvalue); |
| - avahi_string_list_get_pair(avahi_string_list_find(txt, "pid"), |
| - &pidkey, &pidvalue, &valuesize); |
| - DBG(min(10,DBG_AUTO), "%s=%s\n", pidkey, pidvalue); |
| + DBG(min(10,DBG_AUTO), "%s:%u %s\n", a,port,host_name); |
| |
| + vid_pair_list = avahi_string_list_find(txt, "vid"); |
| + if(vid_pair_list != NULL) { |
| + avahi_string_list_get_pair(vid_pair_list, &vidkey, &vidvalue, &valuesize); |
| + DBG(min(10,DBG_AUTO), "%s=%s ", vidkey, vidvalue); |
| + } |
| + else DBG(min(10,DBG_AUTO), "failed to find key vid\n"); |
| + |
| + pid_pair_list = avahi_string_list_find(txt, "pid"); |
| + if(pid_pair_list != NULL) { |
| + avahi_string_list_get_pair(pid_pair_list, &pidkey, &pidvalue, &valuesize); |
| + DBG(min(10,DBG_AUTO), "%s=%s\n", pidkey, pidvalue); |
| + } |
| + else DBG(min(10,DBG_AUTO), "failed to find key pid\n"); |
| + |
| + if(pid_pair_list != NULL && vid_pair_list != NULL) { |
| ProcessAvahiDevice(name, vidvalue, pidvalue, a); |
| - avahi_free(vidkey); avahi_free(vidvalue); |
| - avahi_free(pidkey); avahi_free(pidvalue); |
| + } |
| + else DBG(min(10,DBG_AUTO), "didn't call ProcessAvahiDevice\n"); |
| + |
| + if(vid_pair_list != NULL) { |
| + avahi_free(vidkey); |
| + avahi_free(vidvalue); |
| + DBG(min(15,DBG_AUTO), "vidkey and vidvalue freed\n"); |
| + } |
| + if(pid_pair_list != NULL) { |
| + avahi_free(pidkey); |
| + avahi_free(pidvalue); |
| + DBG(min(15,DBG_AUTO), "pidkey and pidvalue freed\n"); |
| + } |
| } |
| } |
| - |
| + DBG(min(10,DBG_AUTO), "ending resolve_callback\n"); |
| avahi_service_resolver_free(r); |
| } |
| |
| diff --git a/doc/descriptions/kodakaio.desc b/doc/descriptions/kodakaio.desc |
| index 7882513..5fb18ed 100644 |
| --- a/doc/descriptions/kodakaio.desc |
| +++ b/doc/descriptions/kodakaio.desc |
| @@ -1,6 +1,6 @@ |
| :backend "kodakaio" |
| :url "http://sourceforge.net/projects/cupsdriverkodak/" |
| -:version "2.4.6" |
| +:version "2.4.7" |
| :manpage "sane-kodakaio" |
| :comment "Backend for Kodak AiO ESP and Hero printers. Also possibly Advent AWL10" |
| :devicetype :scanner |