Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/net/tl/socket_core.c

    rccca251 r5fe7692  
    9191        int packet_id;
    9292
    93         /* If bound */
     93        // if bound
    9494        if (socket->port) {
    95                 /* Release the port */
     95                // release the port
    9696                socket_port_release(global_sockets, socket);
    9797        }
    9898       
    99         /* Release all received packets */
     99        // release all received packets
    100100        while ((packet_id = dyn_fifo_pop(&socket->received)) >= 0)
    101101                pq_release_remote(packet_phone, packet_id);
     
    166166        int rc;
    167167
    168         /* Create a wrapper */
     168        // create a wrapper
    169169        socket_ref = malloc(sizeof(*socket_ref));
    170170        if (!socket_ref)
     
    172172
    173173        *socket_ref = socket;
    174         /* Add the wrapper */
     174        // add the wrapper
    175175        rc = socket_port_map_add(&socket_port->map, key, key_length,
    176176            socket_ref);
     
    206206        int rc;
    207207
    208         /* Create a wrapper */
     208        // create a wrapper
    209209        socket_port = malloc(sizeof(*socket_port));
    210210        if (!socket_port)
     
    221221                goto fail;
    222222       
    223         /* Register the incoming port */
     223        // register the incomming port
    224224        rc = socket_ports_add(global_sockets, port, socket_port);
    225225        if (rc < 0)
     
    277277               
    278278                address_in = (struct sockaddr_in *) addr;
    279                 /* Find the socket */
     279                // find the socket
    280280                socket = socket_cores_find(local_sockets, socket_id);
    281281                if (!socket)
    282282                        return ENOTSOCK;
    283283               
    284                 /* Bind a free port? */
     284                // bind a free port?
    285285                if (address_in->sin_port <= 0)
    286286                        return socket_bind_free_port(global_sockets, socket,
    287287                             free_ports_start, free_ports_end, last_used_port);
    288288               
    289                 /* Try to find the port */
     289                // try to find the port
    290290                socket_port = socket_ports_find(global_sockets,
    291291                    ntohs(address_in->sin_port));
    292292                if (socket_port) {
    293                         /* Already used */
     293                        // already used
    294294                        return EADDRINUSE;
    295295                }
    296296               
    297                 /* If bound */
     297                // if bound
    298298                if (socket->port) {
    299                         /* Release the port */
     299                        // release the port
    300300                        socket_port_release(global_sockets, socket);
    301301                }
     
    333333        int index;
    334334
    335         /* From the last used one */
     335        // from the last used one
    336336        index = last_used_port;
    337337       
     
    339339                ++index;
    340340               
    341                 /* Till the range end */
     341                // til the range end
    342342                if (index >= free_ports_end) {
    343                         /* Start from the range beginning */
     343                        // start from the range beginning
    344344                        index = free_ports_start - 1;
    345345                        do {
    346346                                ++index;
    347                                 /* Till the last used one */
     347                                // til the last used one
    348348                                if (index >= last_used_port) {
    349                                         /* None found */
     349                                        // none found
    350350                                        return ENOTCONN;
    351351                                }
    352352                        } while (socket_ports_find(global_sockets, index));
    353353                       
    354                         /* Found, break immediately */
     354                        // found, break immediately
    355355                        break;
    356356                }
     
    376376
    377377        count = 0;
    378 #if 0
    379         socket_id = socket_globals.last_id;
    380 #endif
     378//      socket_id = socket_globals.last_id;
    381379        do {
    382380                if (count < SOCKET_ID_TRIES) {
     
    386384                        socket_id = 1;
    387385                        ++count;
    388                 /* Only this branch for last_id */
     386                // only this branch for last_id
    389387                } else {
    390388                        if (socket_id < INT_MAX) {
    391389                                ++ socket_id;
    392 #if 0
    393                         } else if(socket_globals.last_id) {
    394                                 socket_globals.last_id = 0;
    395                                 socket_id = 1;
    396 #endif
    397                         } else {
     390/*                      } else if(socket_globals.last_id) {
     391*                               socket_globals.last_id = 0;
     392*                               socket_id = 1;
     393*/                      } else {
    398394                                return ELIMIT;
    399395                        }
     
    429425                return EINVAL;
    430426       
    431         /* Store the socket */
     427        // store the socket
    432428        if (*socket_id <= 0) {
    433429                positive = (*socket_id == 0);
     
    445441                return ENOMEM;
    446442       
    447         /* Initialize */
     443        // initialize
    448444        socket->phone = app_phone;
    449445        socket->port = -1;
     
    497493        int accepted_id;
    498494
    499         /* Find the socket */
     495        // find the socket
    500496        socket = socket_cores_find(local_sockets, socket_id);
    501497        if (!socket)
    502498                return ENOTSOCK;
    503499       
    504         /* Destroy all accepted sockets */
     500        // destroy all accepted sockets
    505501        while ((accepted_id = dyn_fifo_pop(&socket->accepted)) >= 0)
    506502                socket_destroy(packet_phone, accepted_id, local_sockets,
     
    539535        next_packet = pq_next(packet);
    540536        if (!next_packet) {
    541                 /* Write all if only one fragment */
     537                // write all if only one fragment
    542538                rc = data_reply(packet_get_data(packet),
    543539                    packet_get_data_length(packet));
    544540                if (rc != EOK)
    545541                        return rc;
    546                 /* Store the total length */
     542                // store the total length
    547543                *length = packet_get_data_length(packet);
    548544        } else {
    549                 /* Count the packet fragments */
     545                // count the packet fragments
    550546                fragments = 1;
    551547                next_packet = pq_next(packet);
     
    553549                        ++fragments;
    554550               
    555                 /* Compute and store the fragment lengths */
     551                // compute and store the fragment lengths
    556552                lengths = (size_t *) malloc(sizeof(size_t) * fragments +
    557553                    sizeof(size_t));
     
    569565                }
    570566               
    571                 /* Write the fragment lengths */
     567                // write the fragment lengths
    572568                rc = data_reply(lengths, sizeof(int) * (fragments + 1));
    573569                if (rc != EOK) {
     
    577573                next_packet = packet;
    578574               
    579                 /* Write the fragments */
     575                // write the fragments
    580576                for (index = 0; index < fragments; ++index) {
    581577                        rc = data_reply(packet_get_data(next_packet),
     
    588584                }
    589585               
    590                 /* Store the total length */
     586                // store the total length
    591587                *length = lengths[fragments];
    592588                free(lengths);
     
    640636                return;
    641637       
    642         /* Find ports */
     638        // find ports
    643639        socket_port = socket_ports_find(global_sockets, socket->port);
    644640        if (socket_port) {
    645                 /* Find the socket */
     641                // find the socket
    646642                socket_ref = socket_port_map_find(&socket_port->map,
    647643                    socket->key, socket->key_length);
     
    650646                        --socket_port->count;
    651647                       
    652                         /* Release if empty */
     648                        // release if empty
    653649                        if (socket_port->count <= 0) {
    654                                 /* Destroy the map */
     650                                // destroy the map
    655651                                socket_port_map_destroy(&socket_port->map, free);
    656                                 /* Release the port */
     652                                // release the port
    657653                                socket_ports_exclude(global_sockets,
    658654                                    socket->port, free);
    659655                        } else {
    660                                 /* Remove */
     656                                // remove
    661657                                socket_port_map_exclude(&socket_port->map,
    662658                                    socket->key, socket->key_length, free);
     
    689685        int rc;
    690686
    691         /* Find ports */
     687        // find ports
    692688        socket_port = socket_ports_find(global_sockets, port);
    693689        if (!socket_port)
    694690                return ENOENT;
    695691       
    696         /* Add the socket */
     692        // add the socket
    697693        rc = socket_port_add_core(socket_port, socket, key, key_length);
    698694        if (rc != EOK)
Note: See TracChangeset for help on using the changeset viewer.