Changes in / [25eec4e:289cb7dd] in mainline
- Files:
-
- 14 deleted
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
boot/Makefile.common
r25eec4e r289cb7dd 112 112 $(USPACE_PATH)/srv/hid/remcons/remcons \ 113 113 $(USPACE_PATH)/srv/hid/isdv4_tablet/isdv4_tablet \ 114 $(USPACE_PATH)/srv/net/dnsres/dnsres \115 114 $(USPACE_PATH)/srv/net/ethip/ethip \ 116 115 $(USPACE_PATH)/srv/net/inetsrv/inetsrv \ -
uspace/Makefile
r25eec4e r289cb7dd 82 82 srv/devman \ 83 83 srv/loader \ 84 srv/net/dnsres \85 84 srv/net/ethip \ 86 85 srv/net/inetsrv \ -
uspace/srv/net/inetsrv/addrobj.c
r25eec4e r289cb7dd 221 221 222 222 lsrc_addr.ipv4 = addr->naddr.ipv4; 223 ldest_addr = ldest;223 ldest_addr = &dgram->dest; 224 224 225 225 return inet_link_send_dgram(addr->ilink, &lsrc_addr, ldest_addr, dgram, -
uspace/srv/net/inetsrv/inetsrv.c
r25eec4e r289cb7dd 98 98 } 99 99 100 inet_sroute_t *sroute = inet_sroute_new(); 101 if (sroute == NULL) { 102 log_msg(LOG_DEFAULT, LVL_ERROR, "Failed creating default route (%d).", rc); 103 return ENOMEM; 104 } 105 106 sroute->dest.ipv4 = 0; 107 sroute->dest.bits = 0; 108 sroute->router.ipv4 = (192 << 24) | (168 << 16) | (0 << 8) | 1; 109 sroute->name = str_dup("default"); 110 inet_sroute_add(sroute); 111 112 rc = inet_link_discovery_start(); 100 rc = inet_link_discovery_start(); 113 101 if (rc != EOK) 114 102 return EEXIST; -
uspace/srv/net/udp/assoc.c
r25eec4e r289cb7dd 279 279 280 280 fibril_mutex_lock(&assoc->lock); 281 while (list_empty(&assoc->rcv_queue) && !assoc->reset) {281 while (list_empty(&assoc->rcv_queue)) { 282 282 log_msg(LOG_DEFAULT, LVL_DEBUG, "udp_assoc_recv() - waiting"); 283 283 fibril_condvar_wait(&assoc->rcv_queue_cv, &assoc->lock); 284 }285 286 if (assoc->reset) {287 log_msg(LOG_DEFAULT, LVL_DEBUG, "udp_assoc_recv() - association was reset");288 fibril_mutex_unlock(&assoc->lock);289 return ECONNABORTED;290 284 } 291 285 … … 329 323 } 330 324 331 /** Reset association.332 *333 * This causes any pendingreceive operations to return immediately with334 * UDP_ERESET.335 */336 void udp_assoc_reset(udp_assoc_t *assoc)337 {338 fibril_mutex_lock(&assoc->lock);339 assoc->reset = true;340 fibril_condvar_broadcast(&assoc->rcv_queue_cv);341 fibril_mutex_unlock(&assoc->lock);342 }343 344 325 static int udp_assoc_queue_msg(udp_assoc_t *assoc, udp_sockpair_t *sp, 345 326 udp_msg_t *msg) -
uspace/srv/net/udp/assoc.h
r25eec4e r289cb7dd 51 51 extern int udp_assoc_recv(udp_assoc_t *, udp_msg_t **, udp_sock_t *); 52 52 extern void udp_assoc_received(udp_sockpair_t *, udp_msg_t *); 53 extern void udp_assoc_reset(udp_assoc_t *); 53 54 54 55 55 #endif -
uspace/srv/net/udp/sock.c
r25eec4e r289cb7dd 537 537 log_msg(LOG_DEFAULT, LVL_DEBUG, "tcp_sock_close()"); 538 538 int socket_id = SOCKET_GET_SOCKET_ID(call); 539 539 540 540 socket_core_t *sock_core = 541 541 socket_cores_find(&client->sockets, socket_id); … … 544 544 return; 545 545 } 546 546 547 547 udp_sockdata_t *socket = 548 548 (udp_sockdata_t *) sock_core->specific_data; 549 549 fibril_mutex_lock(&socket->lock); 550 551 fibril_mutex_lock(&socket->recv_buffer_lock); 552 log_msg(LOG_DEFAULT, LVL_DEBUG, "udp_sock_close - set socket->sock_core = NULL"); 553 socket->sock_core = NULL; 554 fibril_mutex_unlock(&socket->recv_buffer_lock); 555 556 udp_uc_reset(socket->assoc); 557 550 558 551 int rc = socket_destroy(NULL, socket_id, &client->sockets, &gsock, 559 552 udp_free_sock_data); 560 553 if (rc != EOK) { 561 log_msg(LOG_DEFAULT, LVL_DEBUG, "udp_sock_close - socket_destroy failed");562 554 fibril_mutex_unlock(&socket->lock); 563 555 async_answer_0(callid, rc); 564 556 return; 565 557 } 566 567 log_msg(LOG_DEFAULT, LVL_DEBUG, "udp_sock_close - broadcast recv_buffer_cv"); 568 fibril_condvar_broadcast(&socket->recv_buffer_cv); 569 558 570 559 fibril_mutex_unlock(&socket->lock); 571 560 async_answer_0(callid, EOK); … … 593 582 log_msg(LOG_DEFAULT, LVL_DEBUG, "udp_sock_recv_fibril()"); 594 583 595 fibril_mutex_lock(&sock->recv_buffer_lock);596 597 584 while (true) { 598 585 log_msg(LOG_DEFAULT, LVL_DEBUG, "[] wait for rcv buffer empty()"); 599 while (sock->recv_buffer_used != 0 && sock->sock_core != NULL) { 586 fibril_mutex_lock(&sock->recv_buffer_lock); 587 while (sock->recv_buffer_used != 0) { 600 588 fibril_condvar_wait(&sock->recv_buffer_cv, 601 589 &sock->recv_buffer_lock); … … 606 594 UDP_FRAGMENT_SIZE, &rcvd, &xflags, &sock->recv_fsock); 607 595 sock->recv_error = urc; 608 609 log_msg(LOG_DEFAULT, LVL_DEBUG, "[] udp_uc_receive -> %d", urc);610 611 if (sock->sock_core != NULL)612 udp_sock_notify_data(sock->sock_core);613 614 596 615 597 udp_sock_notify_data(sock->sock_core); 616 598 617 599 if (urc != UDP_EOK) { 618 log_msg(LOG_DEFAULT, LVL_DEBUG, "[] urc != UDP_EOK, break");619 600 fibril_condvar_broadcast(&sock->recv_buffer_cv); 601 fibril_mutex_unlock(&sock->recv_buffer_lock); 620 602 break; 621 603 } … … 624 606 625 607 sock->recv_buffer_used = rcvd; 608 fibril_mutex_unlock(&sock->recv_buffer_lock); 626 609 fibril_condvar_broadcast(&sock->recv_buffer_cv); 627 610 } 628 611 629 log_msg(LOG_DEFAULT, LVL_DEBUG, "udp_sock_recv_fibril() exited loop");630 fibril_mutex_unlock(&sock->recv_buffer_lock);631 612 udp_uc_destroy(sock->assoc); 632 633 log_msg(LOG_DEFAULT, LVL_DEBUG, "udp_sock_recv_fibril() terminated");634 613 635 614 return 0; -
uspace/srv/net/udp/ucall.c
r25eec4e r289cb7dd 113 113 log_msg(LOG_DEFAULT, LVL_DEBUG, "%s: udp_uc_receive()", assoc->name); 114 114 rc = udp_assoc_recv(assoc, &msg, fsock); 115 log_msg(LOG_DEFAULT, LVL_DEBUG, "udp_assoc_recv -> %d", rc);116 115 switch (rc) { 117 case EOK:118 break;119 case ECONNABORTED:120 return UDP_ERESET;121 default:122 assert(false);123 116 } 124 117 … … 140 133 { 141 134 log_msg(LOG_DEFAULT, LVL_DEBUG, "udp_uc_destroy()"); 142 udp_assoc_reset(assoc);143 135 udp_assoc_remove(assoc); 144 136 udp_assoc_delete(assoc); 145 }146 147 void udp_uc_reset(udp_assoc_t *assoc)148 {149 udp_assoc_reset(assoc);150 137 } 151 138 -
uspace/srv/net/udp/ucall.h
r25eec4e r289cb7dd 49 49 extern void udp_uc_status(udp_assoc_t *, udp_assoc_status_t *); 50 50 extern void udp_uc_destroy(udp_assoc_t *); 51 extern void udp_uc_reset(udp_assoc_t *);52 51 53 52 #endif -
uspace/srv/net/udp/udp_type.h
r25eec4e r289cb7dd 51 51 UDP_EUNSPEC, 52 52 /* No route to destination */ 53 UDP_ENOROUTE, 54 /** Association reset by user */ 55 UDP_ERESET 53 UDP_ENOROUTE 56 54 } udp_error_t; 57 55 … … 121 119 udp_sockpair_t ident; 122 120 123 /** True if association was reset by user */124 bool reset;125 126 121 /** True if association was deleted by user */ 127 122 bool deleted;
Note:
See TracChangeset
for help on using the changeset viewer.