summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ao-tools/ao-chaosread/Makefile.am2
-rw-r--r--ao-tools/ao-chaosread/ao-chaosread.c24
2 files changed, 15 insertions, 11 deletions
diff --git a/ao-tools/ao-chaosread/Makefile.am b/ao-tools/ao-chaosread/Makefile.am
index 581eb2d2..6ba8885c 100644
--- a/ao-tools/ao-chaosread/Makefile.am
+++ b/ao-tools/ao-chaosread/Makefile.am
@@ -1,6 +1,6 @@
bin_PROGRAMS=ao-chaosread
-AM_CFLAGS=-I$(top_srcdir)/ao-tools/lib $(LIBUSB_CFLAGS)
+AM_CFLAGS=$(LIBUSB_CFLAGS) -Wall -Wextra
ao_chaosread_LDADD=$(LIBUSB_LIBS)
diff --git a/ao-tools/ao-chaosread/ao-chaosread.c b/ao-tools/ao-chaosread/ao-chaosread.c
index 7808f6c9..6d860139 100644
--- a/ao-tools/ao-chaosread/ao-chaosread.c
+++ b/ao-tools/ao-chaosread/ao-chaosread.c
@@ -74,7 +74,7 @@ chaoskey_match(libusb_device *dev, char *match_serial)
goto out;
}
- ret = libusb_get_string_descriptor_ascii(handle, desc.iSerialNumber, device_serial, match_len + 1);
+ ret = libusb_get_string_descriptor_ascii(handle, desc.iSerialNumber, (unsigned char *) device_serial, match_len + 1);
if (ret < 0) {
fprintf(stderr, "failed to get serial number: %s\n", libusb_strerror(ret));
@@ -103,7 +103,6 @@ chaoskey_open(char *serial)
int ret;
ssize_t num;
libusb_device **list;
- libusb_device *device = NULL;
int d;
ck = calloc(sizeof (struct chaoskey), 1);
@@ -173,12 +172,6 @@ chaoskey_close(struct chaoskey *ck)
free(ck);
}
-void
-chaoskey_transfer_callback(struct libusb_transfer *transfer)
-{
- struct chaoskey *ck = transfer->user_data;
-}
-
#define ENDPOINT 0x86
int
@@ -202,7 +195,9 @@ chaoskey_read(struct chaoskey *ck, void *buffer, int len)
}
len -= transferred;
buf += transferred;
+ total += transferred;
}
+ return total;
}
static const struct option options[] = {
@@ -283,8 +278,17 @@ main (int argc, char **argv)
int i;
for (i = 0; i < got / 2; i++)
putchar((buf[i] >> 1 & 0xff));
- } else
- write(1, buf, got);
+ } else {
+ int i;
+ int ret;
+ for (i = 0; i < got; i += ret) {
+ ret = write(1, ((char *) buf) + i, got - i);
+ if (ret <= 0) {
+ perror("write");
+ exit(1);
+ }
+ }
+ }
length -= got;
}
exit(0);