From 3b4936b6f2b870f9f2444ebb6ce1ca2de3f49d9f Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Fri, 19 Apr 2024 04:54:31 +0200 Subject: Adding upstream version 1.7.4. Signed-off-by: Daniel Baumann --- src/server.h | 85 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 src/server.h (limited to 'src/server.h') diff --git a/src/server.h b/src/server.h new file mode 100644 index 0000000..4a659b0 --- /dev/null +++ b/src/server.h @@ -0,0 +1,85 @@ +#include +#include +#include + +#include "pty.h" + +// client message +#define INPUT '0' +#define RESIZE_TERMINAL '1' +#define PAUSE '2' +#define RESUME '3' +#define JSON_DATA '{' + +// server message +#define OUTPUT '0' +#define SET_WINDOW_TITLE '1' +#define SET_PREFERENCES '2' + +// url paths +struct endpoints { + char *ws; + char *index; + char *token; + char *parent; +}; + +extern volatile bool force_exit; +extern struct lws_context *context; +extern struct server *server; +extern struct endpoints endpoints; + +struct pss_http { + char path[128]; + char *buffer; + char *ptr; + size_t len; +}; + +struct pss_tty { + bool initialized; + int initial_cmd_index; + bool authenticated; + char user[30]; + char address[50]; + char path[128]; + char **args; + int argc; + + struct lws *wsi; + char *buffer; + size_t len; + + pty_process *process; + pty_buf_t *pty_buf; + + int lws_close_status; +}; + +typedef struct { + struct pss_tty *pss; + bool ws_closed; +} pty_ctx_t ; + +struct server { + int client_count; // client count + char *prefs_json; // client preferences + char *credential; // encoded basic auth credential + char *auth_header; // header name used for auth proxy + char *index; // custom index.html + char *command; // full command line + char **argv; // command with arguments + int argc; // command + arguments count + char *cwd; // working directory + int sig_code; // close signal + char sig_name[20]; // human readable signal string + bool url_arg; // allow client to send cli arguments in URL + bool writable; // whether clients to write to the TTY + bool check_origin; // whether allow websocket connection from different origin + int max_clients; // maximum clients to support + bool once; // whether accept only one client and exit on disconnection + char socket_path[255]; // UNIX domain socket path + char terminal_type[30]; // terminal type to report + + uv_loop_t *loop; // the libuv event loop +}; -- cgit v1.2.3