43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
-
+
+
+
+
|
#ifndef APPFS_CACHEDIR
#define APPFS_CACHEDIR "/var/cache/appfs"
#endif
/* Debugging macros */
#ifdef DEBUG
FILE *appfs_debug_fd = NULL;
#ifndef APPFS_DEBUG_FD
# ifdef APPFS_DEBUG_FILE
# define APPFS_DEBUG_FD fopen(APPFS_DEBUG_FILE, "a")
# else
# define APPFS_DEBUG_FD fopen("/tmp/appfsd.log", "a")
# endif
#endif
#define APPFS_DEBUG(x...) { \
char buf[8192]; \
int bufoff = 0; \
char *appfs_debug_file = NULL; \
if (appfs_debug_fd == NULL) { \
appfs_debug_file = getenv("APPFS_DEBUG_FILE"); \
if (appfs_debug_file == NULL) { \
appfs_debug_file = "stderr"; \
}; \
if (strcmp(appfs_debug_file, "stderr") == 0) { \
appfs_debug_fd = APPFS_DEBUG_FD; \
appfs_debug_fd = stderr; \
} else { \
appfs_debug_fd = fopen(appfs_debug_file, "a"); \
}; \
}; \
if (appfs_debug_fd == NULL) { appfs_debug_fd = stderr; } \
bufoff = snprintf(buf, sizeof(buf), "[debug] [t=%llx] %s:%i:%s: ", (unsigned long long) pthread_self(), __FILE__, __LINE__, __func__); \
if (bufoff < sizeof(buf)) { \
bufoff += snprintf(buf + bufoff, sizeof(buf) - bufoff, x); \
}; \
if (bufoff < sizeof(buf)) { \
|