Add IPC policy to config

Also reduces enum abuse, cc @minus7
This commit is contained in:
Drew DeVault 2016-12-02 16:08:45 -05:00
parent 0a1b211e09
commit e9e1a6a409
4 changed files with 8 additions and 6 deletions

View file

@ -1,6 +1,8 @@
#ifndef _SWAY_IPC_H #ifndef _SWAY_IPC_H
#define _SWAY_IPC_H #define _SWAY_IPC_H
#define event_mask(ev) (1 << (ev & 0x7F))
enum ipc_command_type { enum ipc_command_type {
IPC_COMMAND = 0, IPC_COMMAND = 0,
IPC_GET_WORKSPACES = 1, IPC_GET_WORKSPACES = 1,

View file

@ -135,7 +135,7 @@ struct bar_config {
int height; // -1 not defined int height; // -1 not defined
int tray_padding; int tray_padding;
bool workspace_buttons; bool workspace_buttons;
bool wrap_scroll; bool wrap_scroll;
char *separator_symbol; char *separator_symbol;
bool strip_workspace_numbers; bool strip_workspace_numbers;
bool binding_mode_indicator; bool binding_mode_indicator;
@ -191,7 +191,7 @@ enum command_context {
struct command_policy { struct command_policy {
char *command; char *command;
enum command_context context; uint32_t context;
}; };
enum secure_feature { enum secure_feature {
@ -206,7 +206,7 @@ enum secure_feature {
struct feature_policy { struct feature_policy {
char *program; char *program;
enum secure_feature features; uint32_t features;
}; };
/** /**
@ -228,7 +228,7 @@ struct sway_config {
uint32_t floating_mod; uint32_t floating_mod;
uint32_t dragging_key; uint32_t dragging_key;
uint32_t resizing_key; uint32_t resizing_key;
char *floating_scroll_up_cmd; char *floating_scroll_up_cmd;
char *floating_scroll_down_cmd; char *floating_scroll_down_cmd;
char *floating_scroll_left_cmd; char *floating_scroll_left_cmd;
char *floating_scroll_right_cmd; char *floating_scroll_right_cmd;
@ -281,6 +281,7 @@ struct sway_config {
// Security // Security
list_t *command_policies; list_t *command_policies;
list_t *feature_policies; list_t *feature_policies;
uint32_t ipc_policy;
}; };
void pid_workspace_add(struct pid_workspace *pw); void pid_workspace_add(struct pid_workspace *pw);

View file

@ -345,6 +345,7 @@ static void config_defaults(struct sway_config *config) {
// Security // Security
config->command_policies = create_list(); config->command_policies = create_list();
config->feature_policies = create_list(); config->feature_policies = create_list();
config->ipc_policy = UINT32_MAX;
} }
static int compare_modifiers(const void *left, const void *right) { static int compare_modifiers(const void *left, const void *right) {

View file

@ -55,8 +55,6 @@ bool ipc_send_reply(struct ipc_client *client, const char *payload, uint32_t pay
void ipc_get_workspaces_callback(swayc_t *workspace, void *data); void ipc_get_workspaces_callback(swayc_t *workspace, void *data);
void ipc_get_outputs_callback(swayc_t *container, void *data); void ipc_get_outputs_callback(swayc_t *container, void *data);
#define event_mask(ev) (1 << (ev & 0x7F))
void ipc_init(void) { void ipc_init(void) {
ipc_socket = socket(AF_UNIX, SOCK_STREAM | SOCK_NONBLOCK | SOCK_CLOEXEC, 0); ipc_socket = socket(AF_UNIX, SOCK_STREAM | SOCK_NONBLOCK | SOCK_CLOEXEC, 0);
if (ipc_socket == -1) { if (ipc_socket == -1) {