got_data = FALSE;
vdev = sdi->priv;
+
if (!vdev->capfile) {
/* No capture file opened yet, or finished with the last
* chunked one. */
- if (vdev->cur_chunk == 0) {
+ if (vdev->capturefile && (vdev->cur_chunk == 0)) {
/* capturefile is always the unchunked base name. */
if (zip_stat(vdev->archive, vdev->capturefile, 0, &zs) != -1) {
/* No chunks, just a single capture file. */
buf = g_malloc(CHUNKSIZE);
- ret = zip_fread(vdev->capfile, buf,
- CHUNKSIZE / vdev->unitsize * vdev->unitsize);
+ /* unitsize is not defined for purely analog session files. */
+ if (vdev->unitsize)
+ ret = zip_fread(vdev->capfile, buf,
+ CHUNKSIZE / vdev->unitsize * vdev->unitsize);
+ else
+ ret = zip_fread(vdev->capfile, buf, CHUNKSIZE);
+
if (ret > 0) {
got_data = TRUE;
if (vdev->cur_analog_channel != 0) {