Ignore:
Timestamp:
2010-11-07T19:49:00Z (13 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
3090715
Parents:
3da12d74 (diff), 16ac756 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge from lp:~jakub/helenos/net.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/c/generic/net/socket_client.c

    r3da12d74 r9ce7eb5  
    4343#include <stdlib.h>
    4444#include <errno.h>
    45 #include <err.h>
    4645
    4746#include <ipc/services.h>
     
    212211static void socket_connection(ipc_callid_t iid, ipc_call_t * icall)
    213212{
    214         ERROR_DECLARE;
    215 
    216213        ipc_callid_t callid;
    217214        ipc_call_t call;
    218215        socket_ref socket;
     216        int rc;
    219217
    220218loop:
     
    231229                    SOCKET_GET_SOCKET_ID(call));
    232230                if (!socket) {
    233                         ERROR_CODE = ENOTSOCK;
     231                        rc = ENOTSOCK;
    234232                        fibril_rwlock_read_unlock(&socket_globals.lock);
    235233                        break;
     
    240238                        fibril_mutex_lock(&socket->receive_lock);
    241239                        // push the number of received packet fragments
    242                         if (!ERROR_OCCURRED(dyn_fifo_push(&socket->received,
     240                        rc = dyn_fifo_push(&socket->received,
    243241                            SOCKET_GET_DATA_FRAGMENTS(call),
    244                             SOCKET_MAX_RECEIVED_SIZE))) {
     242                            SOCKET_MAX_RECEIVED_SIZE);
     243                        if (rc == EOK) {
    245244                                // signal the received packet
    246245                                fibril_condvar_signal(&socket->receive_signal);
     
    252251                        // push the new socket identifier
    253252                        fibril_mutex_lock(&socket->accept_lock);
    254                         if (!ERROR_OCCURRED(dyn_fifo_push(&socket->accepted,
    255                             1, SOCKET_MAX_ACCEPTED_SIZE))) {
     253                        rc = dyn_fifo_push(&socket->accepted, 1,
     254                            SOCKET_MAX_ACCEPTED_SIZE);
     255                        if (rc != EOK) {
    256256                                // signal the accepted socket
    257257                                fibril_condvar_signal(&socket->accept_signal);
     
    261261
    262262                default:
    263                         ERROR_CODE = ENOTSUP;
     263                        rc = ENOTSUP;
    264264                }
    265265
     
    280280
    281281        default:
    282                 ERROR_CODE = ENOTSUP;
    283         }
    284 
    285         ipc_answer_0(callid, (ipcarg_t) ERROR_CODE);
     282                rc = ENOTSUP;
     283        }
     284
     285        ipc_answer_0(callid, (ipcarg_t) rc);
    286286        goto loop;
    287287}
     
    405405int socket(int domain, int type, int protocol)
    406406{
    407         ERROR_DECLARE;
    408 
    409407        socket_ref socket;
    410408        int phone;
     
    413411        ipcarg_t fragment_size;
    414412        ipcarg_t header_size;
     413        int rc;
    415414
    416415        // find the appropriate service
     
    479478        }
    480479
    481         if (ERROR_OCCURRED((int) async_req_3_3(phone, NET_SOCKET, socket_id, 0,
    482             service, NULL, &fragment_size, &header_size))) {
     480        rc = (int) async_req_3_3(phone, NET_SOCKET, socket_id, 0, service, NULL,
     481            &fragment_size, &header_size);
     482        if (rc != EOK) {
    483483                fibril_rwlock_write_unlock(&socket_globals.lock);
    484484                free(socket);
    485                 return ERROR_CODE;
     485                return rc;
    486486        }
    487487
     
    492492        socket_initialize(socket, socket_id, phone, service);
    493493        // store the new socket
    494         ERROR_CODE = sockets_add(socket_get_sockets(), socket_id, socket);
     494        rc = sockets_add(socket_get_sockets(), socket_id, socket);
    495495
    496496        fibril_rwlock_write_unlock(&socket_globals.lock);
    497         if (ERROR_CODE < 0) {
     497        if (rc < 0) {
    498498                dyn_fifo_destroy(&socket->received);
    499499                dyn_fifo_destroy(&socket->accepted);
     
    501501                async_msg_3(phone, NET_SOCKET_CLOSE, (ipcarg_t) socket_id, 0,
    502502                    service);
    503                 return ERROR_CODE;
     503                return rc;
    504504        }
    505505
     
    770770int closesocket(int socket_id)
    771771{
    772         ERROR_DECLARE;
    773 
    774772        socket_ref socket;
     773        int rc;
    775774
    776775        fibril_rwlock_write_lock(&socket_globals.lock);
     
    787786
    788787        // request close
    789         ERROR_PROPAGATE((int) async_req_3_0(socket->phone, NET_SOCKET_CLOSE,
    790             (ipcarg_t) socket->socket_id, 0, socket->service));
     788        rc = (int) async_req_3_0(socket->phone, NET_SOCKET_CLOSE,
     789            (ipcarg_t) socket->socket_id, 0, socket->service);
     790        if (rc != EOK) {
     791                fibril_rwlock_write_unlock(&socket_globals.lock);
     792                return rc;
     793        }
    791794        // free the socket structure
    792795        socket_destroy(socket);
Note: See TracChangeset for help on using the changeset viewer.