]> prime8.dev >> repos - ttyd.git/commitdiff
src: move pty code to protocol
authorShuanglei Tao <tsl0922@gmail.com>
Wed, 3 Feb 2021 13:32:51 +0000 (21:32 +0800)
committerShuanglei Tao <tsl0922@gmail.com>
Wed, 3 Feb 2021 13:34:41 +0000 (21:34 +0800)
CMakeLists.txt
src/protocol.c
src/terminal.c [deleted file]
src/terminal.h [deleted file]

index fe9f468064e02e32e4480d0e73225f70af2e430f..85fc63c05f0493f824c21b5b07a2a7c38a731bc2 100644 (file)
@@ -28,7 +28,7 @@ else()
     set(CMAKE_C_STANDARD 99)
 endif()
 
-set(SOURCE_FILES src/server.c src/http.c src/protocol.c src/terminal.c src/utils.c)
+set(SOURCE_FILES src/server.c src/http.c src/protocol.c src/utils.c)
 
 include(FindPackageHandleStandardArgs)
 
index a02d3bae46f3926f6f818a5ff6ca1938c1d61814..2675d4946523522459afe03030afebcc7b371bae 100644 (file)
@@ -1,4 +1,5 @@
 #include <errno.h>
+#include <fcntl.h>
 #include <json.h>
 #include <libwebsockets.h>
 #include <signal.h>
@@ -6,10 +7,19 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
+#include <sys/ioctl.h>
 #include <sys/wait.h>
+#include <unistd.h>
+
+#if defined(__OpenBSD__) || defined(__APPLE__)
+#include <util.h>
+#elif defined(__FreeBSD__)
+#include <libutil.h>
+#else
+#include <pty.h>
+#endif
 
 #include "server.h"
-#include "terminal.h"
 #include "utils.h"
 
 // initial message list
@@ -87,6 +97,42 @@ static bool check_host_origin(struct lws *wsi) {
   return len > 0 && strcasecmp(buf, host_buf) == 0;
 }
 
+pid_t pty_fork(int *pty, const char *file, char *const argv[], const char *term) {
+  pid_t pid = forkpty(pty, NULL, NULL, NULL);
+
+  if (pid < 0) {
+    return pid;
+  } else if (pid == 0) {
+    setenv("TERM", term, true);
+    int ret = execvp(file, argv);
+    if (ret < 0) {
+      perror("execvp failed\n");
+      _exit(-errno);
+    }
+  }
+
+  // set the file descriptor non blocking
+  int flags = fcntl(*pty, F_GETFL);
+  if (flags != -1) {
+    fcntl(*pty, F_SETFD, flags | O_NONBLOCK);
+  }
+  // set the file descriptor close-on-exec
+  fd_set_cloexec(*pty);
+
+  return pid;
+}
+
+int pty_resize(int pty, int cols, int rows) {
+  struct winsize size;
+
+  size.ws_col = (unsigned short)cols;
+  size.ws_row = (unsigned short)rows;
+  size.ws_xpixel = 0;
+  size.ws_ypixel = 0;
+
+  return ioctl(pty, TIOCSWINSZ, &size);
+}
+
 static void close_cb(uv_handle_t *handle) {
   struct pty_proc *proc = container_of((uv_pipe_t *)handle, struct pty_proc, pipe);
   free(proc);
diff --git a/src/terminal.c b/src/terminal.c
deleted file mode 100644 (file)
index 2954669..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-#include <errno.h>
-#include <fcntl.h>
-#include <stdbool.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <sys/ioctl.h>
-#include <unistd.h>
-
-#if defined(__OpenBSD__) || defined(__APPLE__)
-#include <util.h>
-#elif defined(__FreeBSD__)
-#include <libutil.h>
-#else
-#include <pty.h>
-#endif
-
-#include "utils.h"
-
-pid_t pty_fork(int *pty, const char *file, char *const argv[], const char *term) {
-  pid_t pid = forkpty(pty, NULL, NULL, NULL);
-
-  if (pid < 0) {
-    return pid;
-  } else if (pid == 0) {
-    setenv("TERM", term, true);
-    int ret = execvp(file, argv);
-    if (ret < 0) {
-      perror("execvp failed\n");
-      _exit(-errno);
-    }
-  }
-
-  // set the file descriptor non blocking
-  int flags = fcntl(*pty, F_GETFL);
-  if (flags != -1) {
-    fcntl(*pty, F_SETFD, flags | O_NONBLOCK);
-  }
-  // set the file descriptor close-on-exec
-  fd_set_cloexec(*pty);
-
-  return pid;
-}
-
-int pty_resize(int pty, int cols, int rows) {
-  struct winsize size;
-
-  size.ws_col = (unsigned short)cols;
-  size.ws_row = (unsigned short)rows;
-  size.ws_xpixel = 0;
-  size.ws_ypixel = 0;
-
-  return ioctl(pty, TIOCSWINSZ, &size);
-}
diff --git a/src/terminal.h b/src/terminal.h
deleted file mode 100644 (file)
index 63253e9..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-#ifndef TTYD_TERMINAL_H
-#define TTYD_TERMINAL_H
-
-int pty_fork(int *pty, const char *file, char *const argv[], const char *term);
-
-int pty_resize(int pty, int cols, int rows);
-
-#endif  // TTYD_TERMINAL_H