Commit Graph

51 Commits

Author SHA1 Message Date
Iwasaki Yudai
05d9267f20 Show message for force exit 2015-09-01 15:11:05 +09:00
Iwasaki Yudai
ff92777011 Use credential for auth_token 2015-09-01 15:11:02 +09:00
Iwasaki Yudai
00ddf781de Send ping/pong 2015-08-31 21:34:54 -07:00
Iwasaki Yudai
0e81c484a9 Authenticate WS connection using token
Safari doesn't support basic authentication for websocket sessions.
This commit introduces a token-based authentication only for websocket
connection.
The token is shared by all clients and that might be not secure. However,
basic authentication itself is insecure and the credential is already
shared by clients, so don't mind.
2015-08-31 15:54:34 +09:00
Iwasaki Yudai
e7e607b3d7 Fix TLS crt/key file loading 2015-08-31 07:16:34 +09:00
Iwasaki Yudai
ee77ec1b3a Add favicon 2015-08-30 16:44:18 +09:00
Iwasaki Yudai
678258ecf1 Log received hterm preferences in console 2015-08-30 06:51:05 +09:00
Iwasaki Yudai
d3e48aa3ae Merge profile and config files and support custom index file 2015-08-29 13:23:00 +09:00
Iwasaki Yudai
25a5bc0b89 Fix default config file loading 2015-08-28 21:11:46 -07:00
Iwasaki Yudai
02e0b6fafd Use WriteMessage to simplify 2015-08-28 17:49:25 +09:00
Iwasaki Yudai
c71cc21721 Send SIGHUP to process after closing PTY
POSIX doesn't grantee that a blocked Read() operation will be released
after closing the file. Moreover, the pty file left intact even after
closing the file and the process keeps running in this case.
2015-08-28 17:22:42 +09:00
Iwasaki Yudai
4b67e3059d Support config file 2015-08-27 17:59:49 +09:00
Iwasaki Yudai
f60fd58f9b Replace "cert" to "crt" 2015-08-25 21:14:15 -07:00
Iwasaki Yudai
783e3fd925 Don't translate input
When `send-encoding` is `utf-8`, hterm translate input from the
clipboard from UTF-16 to UTF-8, even when the input is indeed UTF-8.
This translation messes up all non ASCII input.
2015-08-25 11:23:38 +09:00
Iwasaki Yudai
d4475579ff Close listener after calling StartRoutine()
This change prevents the listener from closing itself before
establishing the websocket session with the client.
2015-08-24 12:15:24 -07:00
Iwasaki Yudai
470621f39e Add --once option that accepts only one client and exit 2015-08-24 19:35:49 +09:00
Iwasaki Yudai
e613b29cc3 Shutdown server gracefully with Ctrl-C 2015-08-24 19:22:25 +09:00
Iwasaki Yudai
7b6911d7dd Support TLS/SSL encryption 2015-08-24 16:43:03 +09:00
Iwasaki Yudai
c56e41b56b Extract function for loading profile files 2015-08-24 16:13:22 +09:00
Iwasaki Yudai
acacba6f03 Support auto reconnection
A new option `--auto-reconnect` which takes seconds to reconnect is
added.
2015-08-24 07:14:24 +09:00
Iwasaki Yudai
4df9ac8059 Use url.URL for constructing URLs 2015-08-24 05:34:56 +09:00
Iwasaki Yudai
ca14394ec8 Use net.JoinHostPort for better IPv6 handling 2015-08-24 05:22:47 +09:00
Iwasaki Yudai
5d2cdd2768 Show IPv6 addresses with [ and ]
So that users can open IPv6 URLs on web browsers.
2015-08-24 05:05:58 +09:00
Iwasaki Yudai
ee45d8e145 Replace user.Current() with os.Getenv("HOME")
`os/user.Current()` is not available on Darwin when a binary is cross
compiled from another platform.
See also: https://github.com/golang/go/issues/6376
2015-08-24 04:48:49 +09:00
Iwasaki Yudai
39293933c5 Show error when failed to get current user 2015-08-23 23:28:56 +09:00
Iwasaki Yudai
45f65bfc29 Support profile files to customize hterm 2015-08-23 22:58:01 +09:00
Iwasaki Yudai
ac0cb74f98 Log PermitWrite mode 2015-08-23 21:00:52 +09:00
Iwasaki Yudai
a765d6c660 Set window title by control message 2015-08-23 20:54:46 +09:00
Iwasaki Yudai
67b54b7f20 Show command and hostname in windows title 2015-08-23 14:09:13 +09:00
Iwasaki Yudai
b18d35f267 Show URLs on starting 2015-08-22 13:18:37 +09:00
Iwasaki Yudai
8923220528 Clean up app.Run() 2015-08-22 13:18:35 +09:00
Iwasaki Yudai
beda1d7ab7 Close pty 2015-08-21 19:08:51 +09:00
Iwasaki Yudai
b68e889762 Restructure handler function and move methods to clientContext 2015-08-21 19:01:09 +09:00
Iwasaki Yudai
25627da86f Restructure handler function 2015-08-21 19:01:09 +09:00
Iwasaki Yudai
5eea5067db Simplify structure of command messages
The first byte of a input message shows the type of that message.
0: normal keystrokes
1: resize window command
2015-08-21 19:01:06 +09:00
Iwasaki Yudai
ce96943af2 Create App instance with struct of options 2015-08-21 18:30:44 +09:00
Shoji Ihara
b15227c696 Random URL generation(Close #17) 2015-08-21 18:15:00 +09:00
Iwasaki Yudai
2aaa155a3e Call Wait() to prevent processes from being defunct 2015-08-21 12:36:26 +09:00
Iwasaki Yudai
b4b9435b58 Don't send EOT
It was a bug that sending EOT when closing connection.
2015-08-21 12:34:15 +09:00
Iwasaki Yudai
10d0bd8a17 Log PID of processes for clients 2015-08-21 12:33:44 +09:00
Iwasaki Yudai
6a43836f0b Add go fmt to check format of code 2015-08-20 16:48:35 +09:00
mattn
791e1e22cb HTTP Basic Authentication support. Close #8 2015-08-20 15:40:38 +09:00
Iwasaki Yudai
a09b060216 Show "Connection Closed" message as overlay
Closes #7.
2015-08-17 21:45:52 -07:00
Iwasaki Yudai
0718fbe7c4 Merge pull request #9 from shingt/fix-typo
Fix typo in starting message
2015-08-17 21:10:42 -07:00
David Horsley
8e5a277bb3 Only send EOF in writable sessions
Currently EOF is sent to the pty even when read-only mode is requested. This can cause trouble in attached tmux sessions, for example. Since the EOF typically used in shells as a shortcut exit, this can result in undesired disconnects.
2015-08-18 10:47:15 +10:00
shingt
be0758777d Fix typo 2015-08-18 06:39:28 +09:00
Iwasaki Yudai
87f8409068 Replace UTF8 bounds check with utf8reader 2015-08-16 23:46:35 -07:00
Iwasaki Yudai
2050775288 Send EOT before exiting
The processes were left behind when clients closed their windows.
2015-08-16 22:24:24 -07:00
Iwasaki Yudai
6de9b0515f Set position of body element to absolute
Some terminal massages were shown at strange positions.
2015-08-16 19:07:06 -07:00
Iwasaki Yudai
abe3f5c89f Don't send invalid UTF-8 string
When a rune stands over the buffer boundary, invalid UTF-8 bytes were
sent to the client. Now the logic checks if the tail of the buffer can
be decoded as a valid rune. When it's an invalid byte sequence, the logic
keeps it in the buffer and send it in the next loop with the following byte sequence.
2015-08-16 19:07:02 -07:00