Commit Graph

716 Commits

Author SHA1 Message Date
Jianhui Zhao
7970b5d602 Fix use-after-free in HTTP connection handling
Add HTTP_CON_FLAG_CONNECTING flag to track connection state and prevent
accessing freed connection objects during asynchronous operations.

Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-12-04 11:56:18 +08:00
Jianhui Zhao
706eb2046b replace https bool with flags bitmask in http_connection
Convert the `https` boolean field to a flags-based approach using
HTTP_CON_FLAG_HTTPS. This provides better extensibility for future
connection state flags while maintaining existing HTTPS functionality.

Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-12-04 11:45:00 +08:00
Rosen Penev
4e01ffdf91 fix compilation with newer CMake
less than 3.5 is not supported anymore.
2025-11-26 08:55:21 +08:00
Jianhui Zhao
52c84eaecc update FUNDING
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-11-09 12:32:02 +08:00
Jianhui Zhao
e577d2fc23 bump version 9.0.3
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
v9.0.3
2025-10-22 19:11:14 +08:00
Jianhui Zhao
c514633b0d Fix auto-reconnect when domain name resolution fails
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-10-22 19:04:26 +08:00
Jianhui Zhao
226a7dd76e update README
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-10-10 21:29:25 +08:00
Jianhui Zhao
1cfc93852c bump version 9.0.2
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
v9.0.2
2025-08-17 21:41:20 +08:00
Jianhui Zhao
f59c519d0c Improve HTTP connection termination with zero-length notifications
This commit enhances the handling of server-side HTTP disconnections by
implementing a zero-length message notification mechanism.

This change ensures proper notification of server-side disconnections to
device-side rtty instances, fixing cases where HTTP connections would remain
open after server disconnection.

Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-08-14 18:01:52 +08:00
Jianhui Zhao
e3e85e007d The remote cmd response must not exceed 65536 bytes.
If it exceeds 65536 bytes, it will cause a communication error.

Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-08-09 22:32:25 +08:00
Jianhui Zhao
74109c7b0b update README
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-08-01 10:20:07 +08:00
Jianhui Zhao
9b2208a255 bump version 9.0.1
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
v9.0.1
2025-07-22 21:18:49 +08:00
Jianhui Zhao
efe234beba ci: do not build on release
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-07-22 21:17:14 +08:00
Jianhui Zhao
b18be8d1a2 update README
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-07-20 22:40:43 +08:00
Jianhui Zhao
3cfa044ff8 simplify file context struct
- Remove redundant 'busy' flag, use ctlfd > -1 to check busy state
- Remove 'sid' field from file_context, use tty->sid directly
- Fix fd comparison to use > -1 instead of > 0 for consistency
- Simplify file_context_reset by removing unnecessary busy flag reset

This reduces memory usage and

Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-07-19 00:27:59 +08:00
Jianhui Zhao
6512eb566a fix #140
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-07-19 00:14:18 +08:00
Jianhui Zhao
c9f10afea4 fix #139
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-07-18 23:12:24 +08:00
Jianhui Zhao
fc6baa4bdd add downloads bage
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-07-15 09:41:42 +08:00
Jianhui Zhao
3256b316cf separate file message and file control types
Split file operation constants into two separate enums:
- RTTY_FILE_MSG_* for protocol messages between client/server
- RTTY_FILE_CTL_* for control messages via FIFO

This improves code clarity by distinguishing between different
types of file transfer communication channels.

Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-07-12 15:11:54 +08:00
Jianhui Zhao
f57222aeb7 correct typo in error message
Fix typo 'No such filen' to 'No such file' in file open error handling.

Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-07-12 14:25:02 +08:00
Jianhui Zhao
48146cd85c increase upload file buffer size from 16KB to 63KB
Increase UPLOAD_FILE_BUF_SIZE from 16KB to 63KB to improve
file transfer performance by reducing the number of read/write
operations and system calls during large file uploads.

Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-07-12 14:22:44 +08:00
Jianhui Zhao
a97726367a improve TTY timeout mechanism with ev_timer_again
Replace manual timestamp tracking with libev's ev_timer_again()
for more reliable timeout handling.

- Remove manual timeout calculation in tty_timer_cb()
- Use ev_timer_again() to restart timer on activity
- Remove unused 'active' field from tty struct

Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-07-11 20:40:47 +08:00
Jianhui Zhao
502fc1c064 update README
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-07-11 15:12:17 +08:00
Jianhui Zhao
ed517b97bb bump version 9.0.0
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
v9.0.0
2025-07-07 09:11:09 +08:00
Jianhui Zhao
ab1b468708 Simplify and optimize ID/group validation
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-07-04 12:14:39 +08:00
Jianhui Zhao
935a7589c2 Add support for device grouping
Introduce new '-g/--group' option to specify device group.

The changes allow organizing devices into groups by adding a new group
option that gets included in the registration message.

Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-07-04 11:39:10 +08:00
Jianhui Zhao
136e03aa33 Update device ID validation rules and help description
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-07-04 09:40:14 +08:00
Jianhui Zhao
d103b0cbf9 Validate device ID immediately during option parsing
Moved the device ID validation check from post-parsing to the point
of option handling for '-I'. This ensures invalid IDs are caught
earlier during command-line processing.

Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-07-04 09:21:17 +08:00
Jianhui Zhao
ae09ed51b9 Optimize the heartbeat processing logic.
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-07-03 10:26:05 +08:00
Jianhui Zhao
bab7a2f661 ci: release as a draft
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-07-02 17:04:03 +08:00
Jianhui Zhao
42b06c8710 Optimize heartbeat response processing
If other messages are received for a long time, causing the heartbeat
packet to be delayed in being received, it will lead to a heartbeat
timeout and disconnection. However, if other data arrives, we consider
the server to be active.

Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-07-02 17:00:36 +08:00
Jianhui Zhao
29f3625f42 update Who's using rtty
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-06-25 12:23:03 +08:00
Jianhui Zhao
b30f61d004 Increase the read buffer size in the HTTP proxy to 63KB.
This modification can reduce system calls, minimize packet fragmentation
to improve performance.

Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-06-23 11:32:17 +08:00
Jianhui Zhao
ed6600986f remove some doc
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-06-22 21:55:38 +08:00
Jianhui Zhao
cd4f90147d ci: improve release.yml
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-06-19 22:00:57 +08:00
Jianhui Zhao
7334cd6d81 chore: rename doc to img
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-06-19 21:18:55 +08:00
Jianhui Zhao
60660447b2 chore: update README
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-06-19 09:22:23 +08:00
Jianhui Zhao
ea7bcf930a perf: improve reconnect operation
Random delay of 5 to 14 seconds to prevent a large number of
devices connecting to the server simultaneously.

Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-06-17 11:03:23 +08:00
Jianhui Zhao
7b2fddbef0 chore: earlier check args
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-06-17 10:17:06 +08:00
Jianhui Zhao
5436f8ab5d refactor: Encode messages using TLV.
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-06-12 15:07:06 +08:00
Jianhui Zhao
b6bb4e69ca perf: Limit the heartbeat interval to no more than 255.
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-06-12 11:46:16 +08:00
Jianhui Zhao
682ce33cd2 perf: improve shortopts safety with compile-time concatenation
The fixed-size char array for shortopts risked buffer overflow
when appending options.

Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-06-12 10:22:21 +08:00
Jianhui Zhao
f18ee25d16 perf: set default heartbeat interval to 30s
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-06-11 14:38:55 +08:00
Jianhui Zhao
1cbe223d79 refactor: password not required for execute command
Usually, commands are executed in batches on multiple devices,
but the password for each device is different. Therefore, the
password parameter is removed.

Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-06-11 14:32:46 +08:00
Jianhui Zhao
db79642ae8 docs: update README
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-06-11 10:48:41 +08:00
Jianhui Zhao
3b3c759db8 feat: add support set heartbeat interval
Note: The communication protocol version has been changed to 5.

Change-Id: I44155cac65d0bc86b9b6e85420deb873929ab80b
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-06-10 18:41:42 +08:00
Jianhui Zhao
60ff9537e9 feat: update submodule ssl to latest
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-06-10 17:29:01 +08:00
Jianhui Zhao
8ffd614e72 docs: Add badge of readmex and deepwiki
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-06-10 17:29:01 +08:00
Jianhui Zhao
3e4a046145 chore: more debug log
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-06-10 17:29:01 +08:00
Jianhui Zhao
a4a066c2b0 feat: Set default log level to INFO.
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-06-10 17:28:46 +08:00