Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/net/tcp/sock.c

    rdb81577 r05bfce7  
    9191static void tcp_sock_notify_data(socket_core_t *sock_core)
    9292{
    93         log_msg(LVL_DEBUG, "tcp_sock_notify_data(%d)", sock_core->socket_id);
     93        log_msg(LOG_DEFAULT, LVL_DEBUG, "tcp_sock_notify_data(%d)", sock_core->socket_id);
    9494        async_exch_t *exch = async_exchange_begin(sock_core->sess);
    9595        async_msg_5(exch, NET_SOCKET_RECEIVED, (sysarg_t)sock_core->socket_id,
     
    100100static void tcp_sock_notify_aconn(socket_core_t *lsock_core)
    101101{
    102         log_msg(LVL_DEBUG, "tcp_sock_notify_aconn(%d)", lsock_core->socket_id);
     102        log_msg(LOG_DEFAULT, LVL_DEBUG, "tcp_sock_notify_aconn(%d)", lsock_core->socket_id);
    103103        async_exch_t *exch = async_exchange_begin(lsock_core->sess);
    104104        async_msg_5(exch, NET_SOCKET_ACCEPTED, (sysarg_t)lsock_core->socket_id,
     
    111111        tcp_sockdata_t *sock;
    112112
    113         log_msg(LVL_DEBUG, "tcp_sock_create()");
     113        log_msg(LOG_DEFAULT, LVL_DEBUG, "tcp_sock_create()");
    114114        *rsock = NULL;
    115115
     
    133133static void tcp_sock_uncreate(tcp_sockdata_t *sock)
    134134{
    135         log_msg(LVL_DEBUG, "tcp_sock_uncreate()");
     135        log_msg(LOG_DEFAULT, LVL_DEBUG, "tcp_sock_uncreate()");
    136136        free(sock);
    137137}
     
    142142        int rc;
    143143
    144         log_msg(LVL_DEBUG, "tcp_sock_finish_setup()");
     144        log_msg(LOG_DEFAULT, LVL_DEBUG, "tcp_sock_finish_setup()");
    145145
    146146        sock->recv_fibril = fibril_create(tcp_sock_recv_fibril, sock);
     
    171171        ipc_call_t answer;
    172172
    173         log_msg(LVL_DEBUG, "tcp_sock_socket()");
     173        log_msg(LOG_DEFAULT, LVL_DEBUG, "tcp_sock_socket()");
    174174
    175175        rc = tcp_sock_create(client, &sock);
     
    203203{
    204204        int rc;
    205         struct sockaddr *addr;
    206         size_t addr_len;
     205        struct sockaddr_in *addr;
     206        size_t addr_size;
    207207        socket_core_t *sock_core;
    208208        tcp_sockdata_t *socket;
    209 
    210         log_msg(LVL_DEBUG, "tcp_sock_bind()");
    211         log_msg(LVL_DEBUG, " - async_data_write_accept");
    212         rc = async_data_write_accept((void **) &addr, false, 0, 0, 0, &addr_len);
     209       
     210        log_msg(LOG_DEFAULT, LVL_DEBUG, "tcp_sock_bind()");
     211        log_msg(LOG_DEFAULT, LVL_DEBUG, " - async_data_write_accept");
     212       
     213        addr = NULL;
     214       
     215        rc = async_data_write_accept((void **) &addr, false, 0, 0, 0, &addr_size);
    213216        if (rc != EOK) {
    214217                async_answer_0(callid, rc);
    215                 return;
    216         }
    217 
    218         log_msg(LVL_DEBUG, " - call socket_bind");
     218                goto out;
     219        }
     220       
     221        if (addr_size != sizeof(struct sockaddr_in)) {
     222                async_answer_0(callid, EINVAL);
     223                goto out;
     224        }
     225       
     226        log_msg(LOG_DEFAULT, LVL_DEBUG, " - call socket_bind");
    219227        rc = socket_bind(&client->sockets, &gsock, SOCKET_GET_SOCKET_ID(call),
    220             addr, addr_len, TCP_FREE_PORTS_START, TCP_FREE_PORTS_END,
     228            addr, addr_size, TCP_FREE_PORTS_START, TCP_FREE_PORTS_END,
    221229            last_used_port);
    222230        if (rc != EOK) {
    223231                async_answer_0(callid, rc);
    224                 return;
    225         }
    226 
    227         log_msg(LVL_DEBUG, " - call socket_cores_find");
     232                goto out;
     233        }
     234       
     235        log_msg(LOG_DEFAULT, LVL_DEBUG, " - call socket_cores_find");
    228236        sock_core = socket_cores_find(&client->sockets, SOCKET_GET_SOCKET_ID(call));
    229         if (sock_core != NULL) {
    230                 socket = (tcp_sockdata_t *)sock_core->specific_data;
    231                 /* XXX Anything to do? */
    232                 (void) socket;
    233         }
    234 
    235         log_msg(LVL_DEBUG, " - success");
     237        if (sock_core == NULL) {
     238                async_answer_0(callid, ENOENT);
     239                goto out;
     240        }
     241       
     242        socket = (tcp_sockdata_t *)sock_core->specific_data;
     243        /* XXX Anything to do? */
     244        (void) socket;
     245       
     246        log_msg(LOG_DEFAULT, LVL_DEBUG, " - success");
    236247        async_answer_0(callid, EOK);
     248       
     249out:
     250        if (addr != NULL)
     251                free(addr);
    237252}
    238253
     
    249264        tcp_sock_lconn_t *lconn;
    250265        int i;
    251 
    252         log_msg(LVL_DEBUG, "tcp_sock_listen()");
     266        int rc;
     267
     268        log_msg(LOG_DEFAULT, LVL_DEBUG, "tcp_sock_listen()");
    253269
    254270        socket_id = SOCKET_GET_SOCKET_ID(call);
     
    268284                return;
    269285        }
    270 
    271         socket = (tcp_sockdata_t *)sock_core->specific_data;
    272 
     286       
     287        if (sock_core->port <= 0) {
     288                rc = socket_bind_free_port(&gsock, sock_core,
     289                    TCP_FREE_PORTS_START, TCP_FREE_PORTS_END,
     290                    last_used_port);
     291                if (rc != EOK) {
     292                        async_answer_0(callid, rc);
     293                        return;
     294                }
     295               
     296                last_used_port = sock_core->port;
     297        }
     298       
     299        socket = (tcp_sockdata_t *) sock_core->specific_data;
     300       
    273301        /*
    274302         * Prepare @c backlog listening connections.
    275303         */
    276304        fibril_mutex_lock(&socket->lock);
    277 
     305       
    278306        socket->backlog = backlog;
    279307        socket->lconn = calloc(backlog, sizeof(tcp_conn_t *));
     
    283311                return;
    284312        }
    285 
    286         log_msg(LVL_DEBUG, " - open connections");
    287 
     313       
     314        log_msg(LOG_DEFAULT, LVL_DEBUG, " - open connections");
     315       
    288316        lsocket.addr.ipv4 = TCP_IPV4_ANY;
    289317        lsocket.port = sock_core->port;
    290318        fsocket.addr.ipv4 = TCP_IPV4_ANY;
    291319        fsocket.port = TCP_PORT_ANY;
    292 
     320       
    293321        for (i = 0; i < backlog; i++) {
    294322
     
    337365        tcp_sock_t fsocket;
    338366
    339         log_msg(LVL_DEBUG, "tcp_sock_connect()");
     367        log_msg(LOG_DEFAULT, LVL_DEBUG, "tcp_sock_connect()");
    340368
    341369        rc = async_data_write_accept((void **) &addr, false, 0, 0, 0, &addr_len);
     
    362390                        return;
    363391                }
    364 
     392               
    365393                last_used_port = sock_core->port;
    366394        }
     
    377405                        fibril_mutex_unlock(&socket->lock);
    378406                        async_answer_0(callid, rc);
    379                         log_msg(LVL_DEBUG, "tcp_sock_connect: Failed to "
     407                        log_msg(LOG_DEFAULT, LVL_DEBUG, "tcp_sock_connect: Failed to "
    380408                            "determine local address.");
    381409                        return;
     
    383411
    384412                socket->laddr.ipv4 = loc_addr.ipv4;
    385                 log_msg(LVL_DEBUG, "Local IP address is %x", socket->laddr.ipv4);
     413                log_msg(LOG_DEFAULT, LVL_DEBUG, "Local IP address is %x", socket->laddr.ipv4);
    386414        }
    387415
     
    431459        int rc;
    432460
    433         log_msg(LVL_DEBUG, "tcp_sock_accept()");
     461        log_msg(LOG_DEFAULT, LVL_DEBUG, "tcp_sock_accept()");
    434462
    435463        socket_id = SOCKET_GET_SOCKET_ID(call);
     
    441469                return;
    442470        }
     471       
     472        if (sock_core->port <= 0) {
     473                rc = socket_bind_free_port(&gsock, sock_core,
     474                    TCP_FREE_PORTS_START, TCP_FREE_PORTS_END,
     475                    last_used_port);
     476                if (rc != EOK) {
     477                        async_answer_0(callid, rc);
     478                        return;
     479                }
     480               
     481                last_used_port = sock_core->port;
     482        }
    443483
    444484        socket = (tcp_sockdata_t *)sock_core->specific_data;
    445485        fibril_mutex_lock(&socket->lock);
    446486
    447         log_msg(LVL_DEBUG, " - verify socket->conn");
     487        log_msg(LOG_DEFAULT, LVL_DEBUG, " - verify socket->conn");
    448488        if (socket->conn != NULL) {
    449489                fibril_mutex_unlock(&socket->lock);
     
    498538
    499539        asocket->conn = conn;
    500         log_msg(LVL_DEBUG, "tcp_sock_accept():create asocket\n");
     540        log_msg(LOG_DEFAULT, LVL_DEBUG, "tcp_sock_accept():create asocket\n");
    501541
    502542        rc = tcp_sock_finish_setup(asocket, &asock_id);
     
    510550        fibril_add_ready(asocket->recv_fibril);
    511551
    512         log_msg(LVL_DEBUG, "tcp_sock_accept(): find acore\n");
     552        log_msg(LOG_DEFAULT, LVL_DEBUG, "tcp_sock_accept(): find acore\n");
    513553
    514554        SOCKET_SET_DATA_FRAGMENT_SIZE(answer, TCP_SOCK_FRAGMENT_SIZE);
     
    521561       
    522562        /* Push one fragment notification to client's queue */
    523         log_msg(LVL_DEBUG, "tcp_sock_accept(): notify data\n");
     563        log_msg(LOG_DEFAULT, LVL_DEBUG, "tcp_sock_accept(): notify data\n");
    524564        fibril_mutex_unlock(&socket->lock);
    525565}
     
    539579        int rc;
    540580
    541         log_msg(LVL_DEBUG, "tcp_sock_send()");
     581        log_msg(LOG_DEFAULT, LVL_DEBUG, "tcp_sock_send()");
    542582        socket_id = SOCKET_GET_SOCKET_ID(call);
    543583        fragments = SOCKET_GET_DATA_FRAGMENTS(call);
     
    611651static void tcp_sock_sendto(tcp_client_t *client, ipc_callid_t callid, ipc_call_t call)
    612652{
    613         log_msg(LVL_DEBUG, "tcp_sock_sendto()");
     653        log_msg(LOG_DEFAULT, LVL_DEBUG, "tcp_sock_sendto()");
    614654        async_answer_0(callid, ENOTSUP);
    615655}
     
    629669        int rc;
    630670
    631         log_msg(LVL_DEBUG, "%p: tcp_sock_recv[from]()", client);
     671        log_msg(LOG_DEFAULT, LVL_DEBUG, "%p: tcp_sock_recv[from]()", client);
    632672
    633673        socket_id = SOCKET_GET_SOCKET_ID(call);
     
    651691        (void)flags;
    652692
    653         log_msg(LVL_DEBUG, "tcp_sock_recvfrom(): lock recv_buffer_lock");
     693        log_msg(LOG_DEFAULT, LVL_DEBUG, "tcp_sock_recvfrom(): lock recv_buffer_lock");
    654694        fibril_mutex_lock(&socket->recv_buffer_lock);
    655695        while (socket->recv_buffer_used == 0 && socket->recv_error == TCP_EOK) {
    656                 log_msg(LVL_DEBUG, "wait for recv_buffer_cv + recv_buffer_used != 0");
     696                log_msg(LOG_DEFAULT, LVL_DEBUG, "wait for recv_buffer_cv + recv_buffer_used != 0");
    657697                fibril_condvar_wait(&socket->recv_buffer_cv,
    658698                    &socket->recv_buffer_lock);
    659699        }
    660700
    661         log_msg(LVL_DEBUG, "Got data in sock recv_buffer");
     701        log_msg(LOG_DEFAULT, LVL_DEBUG, "Got data in sock recv_buffer");
    662702
    663703        data_len = socket->recv_buffer_used;
     
    679719        }
    680720
    681         log_msg(LVL_DEBUG, "**** recv result -> %d", rc);
     721        log_msg(LOG_DEFAULT, LVL_DEBUG, "**** recv result -> %d", rc);
    682722        if (rc != EOK) {
    683723                fibril_mutex_unlock(&socket->recv_buffer_lock);
     
    694734                addr.sin_port = host2uint16_t_be(rsock->port);
    695735
    696                 log_msg(LVL_DEBUG, "addr read receive");
     736                log_msg(LOG_DEFAULT, LVL_DEBUG, "addr read receive");
    697737                if (!async_data_read_receive(&rcallid, &addr_length)) {
    698738                        fibril_mutex_unlock(&socket->recv_buffer_lock);
     
    705745                        addr_length = sizeof(addr);
    706746
    707                 log_msg(LVL_DEBUG, "addr read finalize");
     747                log_msg(LOG_DEFAULT, LVL_DEBUG, "addr read finalize");
    708748                rc = async_data_read_finalize(rcallid, &addr, addr_length);
    709749                if (rc != EOK) {
     
    715755        }
    716756
    717         log_msg(LVL_DEBUG, "data read receive");
     757        log_msg(LOG_DEFAULT, LVL_DEBUG, "data read receive");
    718758        if (!async_data_read_receive(&rcallid, &length)) {
    719759                fibril_mutex_unlock(&socket->recv_buffer_lock);
     
    726766                length = data_len;
    727767
    728         log_msg(LVL_DEBUG, "data read finalize");
     768        log_msg(LOG_DEFAULT, LVL_DEBUG, "data read finalize");
    729769        rc = async_data_read_finalize(rcallid, socket->recv_buffer, length);
    730770
    731771        socket->recv_buffer_used -= length;
    732         log_msg(LVL_DEBUG, "tcp_sock_recvfrom: %zu left in buffer",
     772        log_msg(LOG_DEFAULT, LVL_DEBUG, "tcp_sock_recvfrom: %zu left in buffer",
    733773            socket->recv_buffer_used);
    734774        if (socket->recv_buffer_used > 0) {
     
    758798        int rc;
    759799
    760         log_msg(LVL_DEBUG, "tcp_sock_close()");
     800        log_msg(LOG_DEFAULT, LVL_DEBUG, "tcp_sock_close()");
    761801        socket_id = SOCKET_GET_SOCKET_ID(call);
    762802
     
    798838static void tcp_sock_getsockopt(tcp_client_t *client, ipc_callid_t callid, ipc_call_t call)
    799839{
    800         log_msg(LVL_DEBUG, "tcp_sock_getsockopt()");
     840        log_msg(LOG_DEFAULT, LVL_DEBUG, "tcp_sock_getsockopt()");
    801841        async_answer_0(callid, ENOTSUP);
    802842}
     
    804844static void tcp_sock_setsockopt(tcp_client_t *client, ipc_callid_t callid, ipc_call_t call)
    805845{
    806         log_msg(LVL_DEBUG, "tcp_sock_setsockopt()");
     846        log_msg(LOG_DEFAULT, LVL_DEBUG, "tcp_sock_setsockopt()");
    807847        async_answer_0(callid, ENOTSUP);
    808848}
     
    815855        tcp_sockdata_t *socket = lconn->socket;
    816856
    817         log_msg(LVL_DEBUG, "tcp_sock_cstate_cb()");
     857        log_msg(LOG_DEFAULT, LVL_DEBUG, "tcp_sock_cstate_cb()");
    818858        fibril_mutex_lock(&socket->lock);
    819859        assert(conn == lconn->conn);
     
    828868        list_append(&lconn->ready_list, &socket->ready);
    829869
    830         log_msg(LVL_DEBUG, "tcp_sock_cstate_cb(): notify accept");
     870        log_msg(LOG_DEFAULT, LVL_DEBUG, "tcp_sock_cstate_cb(): notify accept");
    831871
    832872        /* Push one accept notification to client's queue */
     
    842882        tcp_error_t trc;
    843883
    844         log_msg(LVL_DEBUG, "tcp_sock_recv_fibril()");
     884        log_msg(LOG_DEFAULT, LVL_DEBUG, "tcp_sock_recv_fibril()");
    845885
    846886        fibril_mutex_lock(&sock->recv_buffer_lock);
    847887
    848888        while (true) {
    849                 log_msg(LVL_DEBUG, "call tcp_uc_receive()");
     889                log_msg(LOG_DEFAULT, LVL_DEBUG, "call tcp_uc_receive()");
    850890                while (sock->recv_buffer_used != 0 && sock->sock_core != NULL)
    851891                        fibril_condvar_wait(&sock->recv_buffer_cv,
     
    863903                }
    864904
    865                 log_msg(LVL_DEBUG, "got data - broadcast recv_buffer_cv");
     905                log_msg(LOG_DEFAULT, LVL_DEBUG, "got data - broadcast recv_buffer_cv");
    866906
    867907                sock->recv_buffer_used = data_len;
     
    895935                        break;
    896936
    897                 log_msg(LVL_DEBUG, "tcp_sock_connection: METHOD=%d\n",
     937                log_msg(LOG_DEFAULT, LVL_DEBUG, "tcp_sock_connection: METHOD=%d\n",
    898938                    (int)IPC_GET_IMETHOD(call));
    899939
     
    940980
    941981        /* Clean up */
    942         log_msg(LVL_DEBUG, "tcp_sock_connection: Clean up");
     982        log_msg(LOG_DEFAULT, LVL_DEBUG, "tcp_sock_connection: Clean up");
    943983        async_hangup(client.sess);
    944984        socket_cores_release(NULL, &client.sockets, &gsock, tcp_free_sock_data);
Note: See TracChangeset for help on using the changeset viewer.