#include <stdlib.h>
#include <unistd.h>
#include <zip.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <errno.h>
#include <glib.h>
#include <glib/gstdio.h>
#include "config.h" /* Needed for PACKAGE_VERSION and others. */
#include "libsigrok.h"
#include "libsigrok-internal.h"
-/* Message logging helpers with subsystem-specific prefix string. */
-#define LOG_PREFIX "session-file: "
-#define sr_log(l, s, args...) sr_log(l, LOG_PREFIX s, ## args)
-#define sr_spew(s, args...) sr_spew(LOG_PREFIX s, ## args)
-#define sr_dbg(s, args...) sr_dbg(LOG_PREFIX s, ## args)
-#define sr_info(s, args...) sr_info(LOG_PREFIX s, ## args)
-#define sr_warn(s, args...) sr_warn(LOG_PREFIX s, ## args)
-#define sr_err(s, args...) sr_err(LOG_PREFIX s, ## args)
+#define LOG_PREFIX "session-file"
/**
* @file
/** @private */
SR_PRIV int sr_sessionfile_check(const char *filename)
{
+ struct stat st;
struct zip *archive;
struct zip_file *zf;
struct zip_stat zs;
if (!filename)
return SR_ERR_ARG;
+ if (stat(filename, &st) == -1) {
+ sr_err("Couldn't stat %s: %s", filename, strerror(errno));
+ return SR_ERR;
+ }
+
if (!(archive = zip_open(filename, 0, &ret)))
/* No logging: this can be used just to check if it's
* a sigrok session file or not. */
g_variant_new_uint64(tmp_u64), sdi, NULL);
} else if (!strcmp(keys[j], "total probes")) {
total_probes = strtoull(val, NULL, 10);
- sdi->driver->config_set(SR_CONF_CAPTURE_NUM_PROBES,
+ sdi->driver->config_set(SR_CONF_NUM_LOGIC_PROBES,
g_variant_new_uint64(total_probes), sdi, NULL);
for (p = 0; p < total_probes; p++) {
snprintf(probename, SR_MAX_PROBENAME_LEN, "%" PRIu64, p);