Changeset 89e5c0c7 in mainline for uspace/srv/hid/remcons/user.c


Ignore:
Timestamp:
2024-10-01T09:43:36Z (10 days ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
master
Children:
357d9dd
Parents:
c23a1fe
git-author:
Jiri Svoboda <jiri@…> (2024-09-30 17:43:19)
git-committer:
Jiri Svoboda <jiri@…> (2024-10-01 09:43:36)
Message:

Control sequences must not alter telnet user's cursor_x/y

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/hid/remcons/user.c

    rc23a1fe r89e5c0c7  
    215215 * might be negative.
    216216 */
    217 static errno_t telnet_user_recv_next_byte_no_lock(telnet_user_t *user, char *byte)
     217static errno_t telnet_user_recv_next_byte_locked(telnet_user_t *user, char *byte)
    218218{
    219219        errno_t rc;
     
    322322                        fibril_mutex_unlock(&user->guard);
    323323
    324                         errno_t rc = telnet_user_recv_next_byte_no_lock(user, &next_byte);
     324                        errno_t rc = telnet_user_recv_next_byte_locked(user, &next_byte);
    325325                        if (rc != EOK)
    326326                                return rc;
     
    372372}
    373373
    374 static errno_t telnet_user_send_raw(telnet_user_t *user,
     374static errno_t telnet_user_send_raw_locked(telnet_user_t *user,
    375375    const void *data, size_t size)
    376376{
     
    408408 * @param size Size of @p data buffer in bytes.
    409409 */
    410 static errno_t telnet_user_send_data_no_lock(telnet_user_t *user,
     410static errno_t telnet_user_send_data_locked(telnet_user_t *user,
    411411    const char *data, size_t size)
    412412{
     
    433433        }
    434434
    435         errno_t rc = telnet_user_send_raw(user, converted, converted_size);
     435        errno_t rc = telnet_user_send_raw_locked(user, converted,
     436            converted_size);
    436437        free(converted);
    437438
     
    450451        fibril_mutex_lock(&user->guard);
    451452
    452         errno_t rc = telnet_user_send_data_no_lock(user, data, size);
     453        errno_t rc = telnet_user_send_data_locked(user, data, size);
     454
     455        fibril_mutex_unlock(&user->guard);
     456
     457        return rc;
     458}
     459
     460/** Send raw non-printable data to the socket.
     461 *
     462 * @param user Telnet user.
     463 * @param data Data buffer (not zero terminated).
     464 * @param size Size of @p data buffer in bytes.
     465 */
     466errno_t telnet_user_send_raw(telnet_user_t *user, const char *data,
     467    size_t size)
     468{
     469        fibril_mutex_lock(&user->guard);
     470
     471        errno_t rc = telnet_user_send_raw_locked(user, data, size);
    453472
    454473        fibril_mutex_unlock(&user->guard);
     
    487506                char data = '\b';
    488507                /* Ignore errors. */
    489                 telnet_user_send_data_no_lock(user, &data, 1);
     508                telnet_user_send_data_locked(user, &data, 1);
    490509        }
    491510        user->cursor_x = new_x;
Note: See TracChangeset for help on using the changeset viewer.