Changes in uspace/lib/c/generic/net/socket_client.c [16ac756:e721462] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/generic/net/socket_client.c
r16ac756 re721462 43 43 #include <stdlib.h> 44 44 #include <errno.h> 45 #include <err.h> 45 46 46 47 #include <ipc/services.h> … … 211 212 static void socket_connection(ipc_callid_t iid, ipc_call_t * icall) 212 213 { 214 ERROR_DECLARE; 215 213 216 ipc_callid_t callid; 214 217 ipc_call_t call; 215 218 socket_ref socket; 216 int rc;217 219 218 220 loop: … … 229 231 SOCKET_GET_SOCKET_ID(call)); 230 232 if (!socket) { 231 rc= ENOTSOCK;233 ERROR_CODE = ENOTSOCK; 232 234 fibril_rwlock_read_unlock(&socket_globals.lock); 233 235 break; … … 238 240 fibril_mutex_lock(&socket->receive_lock); 239 241 // push the number of received packet fragments 240 rc =dyn_fifo_push(&socket->received,242 if (!ERROR_OCCURRED(dyn_fifo_push(&socket->received, 241 243 SOCKET_GET_DATA_FRAGMENTS(call), 242 SOCKET_MAX_RECEIVED_SIZE); 243 if (rc == EOK) { 244 SOCKET_MAX_RECEIVED_SIZE))) { 244 245 // signal the received packet 245 246 fibril_condvar_signal(&socket->receive_signal); … … 251 252 // push the new socket identifier 252 253 fibril_mutex_lock(&socket->accept_lock); 253 rc = dyn_fifo_push(&socket->accepted, 1, 254 SOCKET_MAX_ACCEPTED_SIZE); 255 if (rc != EOK) { 254 if (!ERROR_OCCURRED(dyn_fifo_push(&socket->accepted, 255 1, SOCKET_MAX_ACCEPTED_SIZE))) { 256 256 // signal the accepted socket 257 257 fibril_condvar_signal(&socket->accept_signal); … … 261 261 262 262 default: 263 rc= ENOTSUP;263 ERROR_CODE = ENOTSUP; 264 264 } 265 265 … … 280 280 281 281 default: 282 rc= ENOTSUP;283 } 284 285 ipc_answer_0(callid, (ipcarg_t) rc);282 ERROR_CODE = ENOTSUP; 283 } 284 285 ipc_answer_0(callid, (ipcarg_t) ERROR_CODE); 286 286 goto loop; 287 287 } … … 405 405 int socket(int domain, int type, int protocol) 406 406 { 407 ERROR_DECLARE; 408 407 409 socket_ref socket; 408 410 int phone; … … 411 413 ipcarg_t fragment_size; 412 414 ipcarg_t header_size; 413 int rc;414 415 415 416 // find the appropriate service … … 478 479 } 479 480 480 rc = (int) async_req_3_3(phone, NET_SOCKET, socket_id, 0, service, NULL, 481 &fragment_size, &header_size); 482 if (rc != EOK) { 481 if (ERROR_OCCURRED((int) async_req_3_3(phone, NET_SOCKET, socket_id, 0, 482 service, NULL, &fragment_size, &header_size))) { 483 483 fibril_rwlock_write_unlock(&socket_globals.lock); 484 484 free(socket); 485 return rc;485 return ERROR_CODE; 486 486 } 487 487 … … 492 492 socket_initialize(socket, socket_id, phone, service); 493 493 // store the new socket 494 rc= sockets_add(socket_get_sockets(), socket_id, socket);494 ERROR_CODE = sockets_add(socket_get_sockets(), socket_id, socket); 495 495 496 496 fibril_rwlock_write_unlock(&socket_globals.lock); 497 if ( rc< 0) {497 if (ERROR_CODE < 0) { 498 498 dyn_fifo_destroy(&socket->received); 499 499 dyn_fifo_destroy(&socket->accepted); … … 501 501 async_msg_3(phone, NET_SOCKET_CLOSE, (ipcarg_t) socket_id, 0, 502 502 service); 503 return rc;503 return ERROR_CODE; 504 504 } 505 505 … … 770 770 int closesocket(int socket_id) 771 771 { 772 ERROR_DECLARE; 773 772 774 socket_ref socket; 773 int rc;774 775 775 776 fibril_rwlock_write_lock(&socket_globals.lock); … … 786 787 787 788 // request close 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 } 789 ERROR_PROPAGATE((int) async_req_3_0(socket->phone, NET_SOCKET_CLOSE, 790 (ipcarg_t) socket->socket_id, 0, socket->service)); 794 791 // free the socket structure 795 792 socket_destroy(socket);
Note:
See TracChangeset
for help on using the changeset viewer.