]> git.sur5r.net Git - i3/i3/commitdiff
add libi3/ipc_connect, use it in i3-config-wizard, i3-input, i3bar
authorMichael Stapelberg <michael@stapelberg.de>
Sun, 23 Oct 2011 16:18:14 +0000 (17:18 +0100)
committerMichael Stapelberg <michael@stapelberg.de>
Sun, 23 Oct 2011 16:18:14 +0000 (17:18 +0100)
i3-config-wizard/ipc.c [deleted file]
i3-config-wizard/ipc.h [deleted file]
i3-config-wizard/main.c
i3-input/i3-input.h
i3-input/ipc.c [deleted file]
i3-input/main.c
i3bar/src/ipc.c
include/libi3.h
libi3/ipc_connect.c [new file with mode: 0644]

diff --git a/i3-config-wizard/ipc.c b/i3-config-wizard/ipc.c
deleted file mode 100644 (file)
index 1d99e90..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * vim:ts=8:expandtab
- *
- * i3 - an improved dynamic tiling window manager
- *
- * © 2009 Michael Stapelberg and contributors
- *
- * See file LICENSE for license information.
- *
- */
-#include <stdint.h>
-#include <string.h>
-#include <stdlib.h>
-#include <sys/socket.h>
-#include <sys/un.h>
-#include <unistd.h>
-#include <err.h>
-
-/*
- * Connects to the i3 IPC socket and returns the file descriptor for the
- * socket. die()s if anything goes wrong.
- *
- */
-int connect_ipc(char *socket_path) {
-       int sockfd = socket(AF_LOCAL, SOCK_STREAM, 0);
-        if (sockfd == -1)
-                err(EXIT_FAILURE, "Could not create socket");
-
-        struct sockaddr_un addr;
-        memset(&addr, 0, sizeof(struct sockaddr_un));
-        addr.sun_family = AF_LOCAL;
-        strcpy(addr.sun_path, socket_path);
-        if (connect(sockfd, (const struct sockaddr*)&addr, sizeof(struct sockaddr_un)) < 0)
-                err(EXIT_FAILURE, "Could not connect to i3");
-
-       return sockfd;
-}
diff --git a/i3-config-wizard/ipc.h b/i3-config-wizard/ipc.h
deleted file mode 100644 (file)
index a6e3e0d..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-#ifndef _IPC_H
-#define _IPC_H
-
-int connect_ipc(char *socket_path);
-
-#endif
index 56ebf3b2e0cb24204a0ceb147881fabe07e59b10..d3f9bcbf439c923bad01f17032a68df0d7bc23e8 100644 (file)
@@ -51,7 +51,6 @@
 while (0)
 
 #include "xcb.h"
-#include "ipc.h"
 #include "libi3.h"
 
 enum { STEP_WELCOME, STEP_GENERATE } current_step = STEP_WELCOME;
@@ -371,7 +370,7 @@ static void finish() {
     fclose(ks_config);
 
     /* tell i3 to reload the config file */
-    int sockfd = connect_ipc(socket_path);
+    int sockfd = ipc_connect(socket_path);
     ipc_send_message(sockfd, strlen("reload"), 0, (uint8_t*)"reload");
     close(sockfd);
 
index d0861cedabb0a61c4592d7c9bd341ecd5b06c089..934ada038cb14a999270c44bef5e28fc88008015 100644 (file)
@@ -16,7 +16,6 @@ extern xcb_window_t root;
 
 char *convert_ucs_to_utf8(char *input);
 char *convert_utf8_to_ucs2(char *input, int *real_strlen);
-int connect_ipc(char *socket_path);
 uint32_t get_colorpixel(xcb_connection_t *conn, char *hex);
 uint32_t get_mod_mask(xcb_connection_t *conn, uint32_t keycode);
 xcb_window_t open_input_window(xcb_connection_t *conn, uint32_t width, uint32_t height);
diff --git a/i3-input/ipc.c b/i3-input/ipc.c
deleted file mode 100644 (file)
index 8851e81..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * vim:ts=8:expandtab
- *
- * i3 - an improved dynamic tiling window manager
- *
- * © 2009 Michael Stapelberg and contributors
- *
- * See file LICENSE for license information.
- *
- */
-#include <stdint.h>
-#include <string.h>
-#include <stdlib.h>
-#include <sys/socket.h>
-#include <sys/un.h>
-#include <unistd.h>
-#include <err.h>
-
-/*
- * Connects to the i3 IPC socket and returns the file descriptor for the
- * socket. die()s if anything goes wrong.
- *
- */
-int connect_ipc(char *socket_path) {
-       int sockfd = socket(AF_LOCAL, SOCK_STREAM, 0);
-        if (sockfd == -1)
-                err(EXIT_FAILURE, "Could not create socket");
-
-        struct sockaddr_un addr;
-        memset(&addr, 0, sizeof(struct sockaddr_un));
-        addr.sun_family = AF_LOCAL;
-        strncpy(addr.sun_path, socket_path, sizeof(addr.sun_path) - 1);
-        if (connect(sockfd, (const struct sockaddr*)&addr, sizeof(struct sockaddr_un)) < 0)
-                err(EXIT_FAILURE, "Could not connect to i3");
-
-       return sockfd;
-}
index 0d9d964e441bbab035bdfb5d43767a4ad0a68e35..ca6ae7a058c2954eb573926c6f997353c4662323 100644 (file)
@@ -341,7 +341,7 @@ int main(int argc, char *argv[]) {
     if (socket_path == NULL)
         socket_path = "/tmp/i3-ipc.sock";
 
-    sockfd = connect_ipc(socket_path);
+    sockfd = ipc_connect(socket_path);
 
     if (prompt != NULL)
         prompt = convert_utf8_to_ucs2(prompt, &prompt_len);
index cfbc404e2016477720ecd419178624976338349c..009c276f32b8e80bafe60e4a53c7960a867d7619 100644 (file)
@@ -271,21 +271,7 @@ int i3_send_msg(uint32_t type, const char *payload) {
  */
 int init_connection(const char *socket_path) {
     sock_path = socket_path;
-    int sockfd = socket(AF_LOCAL, SOCK_STREAM, 0);
-    if (sockfd == -1) {
-        ELOG("Could not create Socket: %s\n", strerror(errno));
-        exit(EXIT_FAILURE);
-    }
-
-    struct sockaddr_un addr;
-    memset(&addr, 0, sizeof(struct sockaddr_un));
-    addr.sun_family = AF_LOCAL;
-    strcpy(addr.sun_path, sock_path);
-    if (connect(sockfd, (const struct sockaddr*) &addr, sizeof(struct sockaddr_un)) < 0) {
-        ELOG("Could not connect to i3! %s: %s\n", sock_path, strerror(errno));
-        exit(EXIT_FAILURE);
-    }
-
+    int sockfd = ipc_connect(socket_path);
     i3_connection = smalloc(sizeof(ev_io));
     ev_io_init(i3_connection, &got_data, sockfd, EV_READ);
     ev_io_start(main_loop, i3_connection);
index 9613b7f34945bc76dfe72b9e08724514c7730831..9e9c401220ea5455b707b9369aec0a8e394c6a09 100644 (file)
@@ -53,6 +53,13 @@ char *sstrdup(const char *str);
  */
 int sasprintf(char **strp, const char *fmt, ...);
 
+/**
+ * Connects to the i3 IPC socket and returns the file descriptor for the
+ * socket. die()s if anything goes wrong.
+ *
+ */
+int ipc_connect(const char *socket_path);
+
 /**
  * Formats a message (payload) of the given size and type and sends it to i3 via
  * the given socket file descriptor.
diff --git a/libi3/ipc_connect.c b/libi3/ipc_connect.c
new file mode 100644 (file)
index 0000000..2c41fcc
--- /dev/null
@@ -0,0 +1,36 @@
+/*
+ * vim:ts=4:sw=4:expandtab
+ *
+ * i3 - an improved dynamic tiling window manager
+ *
+ * © 2009-2011 Michael Stapelberg and contributors
+ *
+ * See file LICENSE for license information.
+ *
+ */
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <sys/un.h>
+#include <string.h>
+#include <err.h>
+#include <stdlib.h>
+
+/*
+ * Connects to the i3 IPC socket and returns the file descriptor for the
+ * socket. die()s if anything goes wrong.
+ *
+ */
+int ipc_connect(const char *socket_path) {
+    int sockfd = socket(AF_LOCAL, SOCK_STREAM, 0);
+    if (sockfd == -1)
+        err(EXIT_FAILURE, "Could not create socket");
+
+    struct sockaddr_un addr;
+    memset(&addr, 0, sizeof(struct sockaddr_un));
+    addr.sun_family = AF_LOCAL;
+    strncpy(addr.sun_path, socket_path, sizeof(addr.sun_path) - 1);
+    if (connect(sockfd, (const struct sockaddr*)&addr, sizeof(struct sockaddr_un)) < 0)
+        err(EXIT_FAILURE, "Could not connect to i3");
+
+    return sockfd;
+}