Ignore:
File:
1 edited

Legend:

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

    rfab2746 r5d94b16c  
    3838#include <str_error.h>
    3939#include <loc.h>
     40#include <event.h>
    4041#include <io/keycode.h>
    4142#include <align.h>
     
    4445#include <fibril_synch.h>
    4546#include <task.h>
    46 #include <inet/tcp.h>
     47#include <net/in.h>
     48#include <net/inet.h>
     49#include <net/socket.h>
    4750#include <io/console.h>
    4851#include <inttypes.h>
     
    5659/** Create new telnet user.
    5760 *
    58  * @param conn Incoming connection.
     61 * @param socket Socket the user communicates through.
    5962 * @return New telnet user or NULL when out of memory.
    6063 */
    61 telnet_user_t *telnet_user_create(tcp_conn_t *conn)
     64telnet_user_t *telnet_user_create(int socket)
    6265{
    6366        static int telnet_user_id_counter = 0;
     
    7679        }
    7780
    78         user->conn = conn;
     81        user->socket = socket;
    7982        user->service_id = (service_id_t) -1;
    8083        prodcons_initialize(&user->in_events);
     
    125128
    126129        fibril_mutex_lock(&users_guard);
    127         list_foreach(users, link, telnet_user_t, tmp) {
     130        list_foreach(users, link) {
     131                telnet_user_t *tmp = list_get_instance(link, telnet_user_t, link);
    128132                if (tmp->service_id == id) {
    129133                        user = tmp;
     
    191195        /* No more buffered data? */
    192196        if (user->socket_buffer_len <= user->socket_buffer_pos) {
    193                 int rc;
    194                 size_t recv_length;
    195 
    196                 rc = tcp_conn_recv_wait(user->conn, user->socket_buffer,
    197                     BUFFER_SIZE, &recv_length);
    198                 if (rc != EOK)
    199                         return rc;
    200 
    201                 if (recv_length == 0) {
     197                int recv_length = recv(user->socket, user->socket_buffer, BUFFER_SIZE, 0);
     198                if ((recv_length == 0) || (recv_length == ENOTCONN)) {
    202199                        user->socket_closed = true;
    203200                        user->srvs.aborted = true;
    204201                        return ENOENT;
    205202                }
    206 
     203                if (recv_length < 0) {
     204                        return recv_length;
     205                }
    207206                user->socket_buffer_len = recv_length;
    208207                user->socket_buffer_pos = 0;
     
    362361
    363362
    364         int rc = tcp_conn_send(user->conn, converted, converted_size);
     363        int rc = send(user->socket, converted, converted_size, 0);
    365364        free(converted);
    366365
Note: See TracChangeset for help on using the changeset viewer.