};
int main(int argc, char *argv[]) {
+#if defined(__OpenBSD__)
+ if (pledge("stdio rpath unix", NULL) == -1)
+ err(EXIT_FAILURE, "pledge");
+#endif
char *env_socket_path = getenv("I3SOCK");
if (env_socket_path)
socket_path = sstrdup(env_socket_path);
font = load_font(pattern, true);
set_font(&font);
+#if defined(__OpenBSD__)
+ if (pledge("stdio rpath wpath cpath getpw proc exec", NULL) == -1)
+ err(EXIT_FAILURE, "pledge");
+#endif
+
xcb_rectangle_t win_pos = get_window_position();
xcb_cursor_t cursor;
static int logbuffer_size;
/* File descriptor for shm_open. */
static int logbuffer_shm;
+/* Size (in bytes) of physical memory */
+static long long physical_mem_bytes;
/*
* Writes the offsets for the next write and for the last wrap to the
}
}
}
+ if (physical_mem_bytes == 0) {
+#if defined(__APPLE__)
+ int mib[2] = {CTL_HW, HW_MEMSIZE};
+ size_t length = sizeof(long long);
+ sysctl(mib, 2, &physical_mem_bytes, &length, NULL, 0);
+#else
+ physical_mem_bytes = (long long)sysconf(_SC_PHYS_PAGES) *
+ sysconf(_SC_PAGESIZE);
+#endif
+ }
/* Start SHM logging if shmlog_size is > 0. shmlog_size is SHMLOG_SIZE by
* default on development versions, and 0 on release versions. If it is
* not > 0, the user has turned it off, so let's close the logbuffer. */
* For 512 MiB of RAM this will lead to a 5 MiB log buffer.
* At the moment (2011-12-10), no testcase leads to an i3 log
* of more than ~ 600 KiB. */
- long long physical_mem_bytes;
-#if defined(__APPLE__)
- int mib[2] = {CTL_HW, HW_MEMSIZE};
- size_t length = sizeof(long long);
- sysctl(mib, 2, &physical_mem_bytes, &length, NULL, 0);
-#else
- physical_mem_bytes = (long long)sysconf(_SC_PHYS_PAGES) *
- sysconf(_SC_PAGESIZE);
-#endif
logbuffer_size = min(physical_mem_bytes * 0.01, shmlog_size);
#if defined(__FreeBSD__)
sasprintf(&shmlogname, "/tmp/i3-log-%d", getpid());
xcb_free_pixmap(conn, pixmap);
}
+#if defined(__OpenBSD__)
+ if (pledge("stdio rpath wpath cpath proc exec unix", NULL) == -1)
+ err(EXIT_FAILURE, "pledge");
+#endif
+
struct sigaction action;
action.sa_sigaction = handle_signal;