Changeset a46e56b in mainline for uspace/srv/net/udp/service.c
- Timestamp:
- 2018-03-22T06:49:35Z (7 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 77f0a1d
- Parents:
- 3e242d2
- git-author:
- Jakub Jermar <jakub@…> (2018-03-21 23:29:06)
- git-committer:
- Jakub Jermar <jakub@…> (2018-03-22 06:49:35)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/net/udp/service.c
r3e242d2 ra46e56b 335 335 * @param icall Async request data 336 336 */ 337 static void udp_callback_create_srv(udp_client_t *client, cap_call_handle_t i id,337 static void udp_callback_create_srv(udp_client_t *client, cap_call_handle_t icall_handle, 338 338 ipc_call_t *icall) 339 339 { … … 342 342 async_sess_t *sess = async_callback_receive(EXCHANGE_SERIALIZE); 343 343 if (sess == NULL) { 344 async_answer_0(i id, ENOMEM);344 async_answer_0(icall_handle, ENOMEM); 345 345 return; 346 346 } 347 347 348 348 client->sess = sess; 349 async_answer_0(i id, EOK);349 async_answer_0(icall_handle, EOK); 350 350 } 351 351 … … 358 358 * @param icall Async request data 359 359 */ 360 static void udp_assoc_create_srv(udp_client_t *client, cap_call_handle_t i id,360 static void udp_assoc_create_srv(udp_client_t *client, cap_call_handle_t icall_handle, 361 361 ipc_call_t *icall) 362 362 { 363 cap_call_handle_t c allid;363 cap_call_handle_t chandle; 364 364 size_t size; 365 365 inet_ep2_t epp; … … 369 369 log_msg(LOG_DEFAULT, LVL_DEBUG, "udp_assoc_create_srv()"); 370 370 371 if (!async_data_write_receive(&c allid, &size)) {372 async_answer_0(c allid, EREFUSED);373 async_answer_0(i id, EREFUSED);371 if (!async_data_write_receive(&chandle, &size)) { 372 async_answer_0(chandle, EREFUSED); 373 async_answer_0(icall_handle, EREFUSED); 374 374 return; 375 375 } 376 376 377 377 if (size != sizeof(inet_ep2_t)) { 378 async_answer_0(c allid, EINVAL);379 async_answer_0(i id, EINVAL);380 return; 381 } 382 383 rc = async_data_write_finalize(c allid, &epp, size);384 if (rc != EOK) { 385 async_answer_0(c allid, rc);386 async_answer_0(i id, rc);378 async_answer_0(chandle, EINVAL); 379 async_answer_0(icall_handle, EINVAL); 380 return; 381 } 382 383 rc = async_data_write_finalize(chandle, &epp, size); 384 if (rc != EOK) { 385 async_answer_0(chandle, rc); 386 async_answer_0(icall_handle, rc); 387 387 return; 388 388 } … … 390 390 rc = udp_assoc_create_impl(client, &epp, &assoc_id); 391 391 if (rc != EOK) { 392 async_answer_0(i id, rc);393 return; 394 } 395 396 async_answer_1(i id, EOK, assoc_id);392 async_answer_0(icall_handle, rc); 393 return; 394 } 395 396 async_answer_1(icall_handle, EOK, assoc_id); 397 397 } 398 398 … … 405 405 * @param icall Async request data 406 406 */ 407 static void udp_assoc_destroy_srv(udp_client_t *client, cap_call_handle_t i id,407 static void udp_assoc_destroy_srv(udp_client_t *client, cap_call_handle_t icall_handle, 408 408 ipc_call_t *icall) 409 409 { … … 415 415 assoc_id = IPC_GET_ARG1(*icall); 416 416 rc = udp_assoc_destroy_impl(client, assoc_id); 417 async_answer_0(i id, rc);417 async_answer_0(icall_handle, rc); 418 418 } 419 419 … … 426 426 * @param icall Async request data 427 427 */ 428 static void udp_assoc_set_nolocal_srv(udp_client_t *client, cap_call_handle_t i id,428 static void udp_assoc_set_nolocal_srv(udp_client_t *client, cap_call_handle_t icall_handle, 429 429 ipc_call_t *icall) 430 430 { … … 436 436 assoc_id = IPC_GET_ARG1(*icall); 437 437 rc = udp_assoc_set_nolocal_impl(client, assoc_id); 438 async_answer_0(i id, rc);438 async_answer_0(icall_handle, rc); 439 439 } 440 440 … … 447 447 * @param icall Async request data 448 448 */ 449 static void udp_assoc_send_msg_srv(udp_client_t *client, cap_call_handle_t i id,449 static void udp_assoc_send_msg_srv(udp_client_t *client, cap_call_handle_t icall_handle, 450 450 ipc_call_t *icall) 451 451 { 452 cap_call_handle_t c allid;452 cap_call_handle_t chandle; 453 453 size_t size; 454 454 inet_ep_t dest; … … 461 461 /* Receive dest */ 462 462 463 if (!async_data_write_receive(&c allid, &size)) {464 async_answer_0(c allid, EREFUSED);465 async_answer_0(i id, EREFUSED);463 if (!async_data_write_receive(&chandle, &size)) { 464 async_answer_0(chandle, EREFUSED); 465 async_answer_0(icall_handle, EREFUSED); 466 466 return; 467 467 } 468 468 469 469 if (size != sizeof(inet_ep_t)) { 470 async_answer_0(c allid, EINVAL);471 async_answer_0(i id, EINVAL);472 return; 473 } 474 475 rc = async_data_write_finalize(c allid, &dest, size);476 if (rc != EOK) { 477 async_answer_0(c allid, rc);478 async_answer_0(i id, rc);470 async_answer_0(chandle, EINVAL); 471 async_answer_0(icall_handle, EINVAL); 472 return; 473 } 474 475 rc = async_data_write_finalize(chandle, &dest, size); 476 if (rc != EOK) { 477 async_answer_0(chandle, rc); 478 async_answer_0(icall_handle, rc); 479 479 return; 480 480 } … … 482 482 /* Receive message data */ 483 483 484 if (!async_data_write_receive(&c allid, &size)) {485 async_answer_0(c allid, EREFUSED);486 async_answer_0(i id, EREFUSED);484 if (!async_data_write_receive(&chandle, &size)) { 485 async_answer_0(chandle, EREFUSED); 486 async_answer_0(icall_handle, EREFUSED); 487 487 return; 488 488 } 489 489 490 490 if (size > MAX_MSG_SIZE) { 491 async_answer_0(c allid, EINVAL);492 async_answer_0(i id, EINVAL);491 async_answer_0(chandle, EINVAL); 492 async_answer_0(icall_handle, EINVAL); 493 493 return; 494 494 } … … 496 496 data = malloc(size); 497 497 if (data == NULL) { 498 async_answer_0(c allid, ENOMEM);499 async_answer_0(i id, ENOMEM);500 } 501 502 rc = async_data_write_finalize(c allid, data, size);503 if (rc != EOK) { 504 async_answer_0(c allid, rc);505 async_answer_0(i id, rc);498 async_answer_0(chandle, ENOMEM); 499 async_answer_0(icall_handle, ENOMEM); 500 } 501 502 rc = async_data_write_finalize(chandle, data, size); 503 if (rc != EOK) { 504 async_answer_0(chandle, rc); 505 async_answer_0(icall_handle, rc); 506 506 free(data); 507 507 return; … … 512 512 rc = udp_assoc_send_msg_impl(client, assoc_id, &dest, data, size); 513 513 if (rc != EOK) { 514 async_answer_0(i id, rc);514 async_answer_0(icall_handle, rc); 515 515 free(data); 516 516 return; 517 517 } 518 518 519 async_answer_0(i id, EOK);519 async_answer_0(icall_handle, EOK); 520 520 free(data); 521 521 } … … 545 545 * @param icall Async request data 546 546 */ 547 static void udp_rmsg_info_srv(udp_client_t *client, cap_call_handle_t i id,547 static void udp_rmsg_info_srv(udp_client_t *client, cap_call_handle_t icall_handle, 548 548 ipc_call_t *icall) 549 549 { 550 cap_call_handle_t c allid;550 cap_call_handle_t chandle; 551 551 size_t size; 552 552 udp_crcv_queue_entry_t *enext; … … 557 557 enext = udp_rmsg_get_next(client); 558 558 559 if (!async_data_read_receive(&c allid, &size)) {560 async_answer_0(c allid, EREFUSED);561 async_answer_0(i id, EREFUSED);559 if (!async_data_read_receive(&chandle, &size)) { 560 async_answer_0(chandle, EREFUSED); 561 async_answer_0(icall_handle, EREFUSED); 562 562 return; 563 563 } 564 564 565 565 if (enext == NULL) { 566 async_answer_0(c allid, ENOENT);567 async_answer_0(i id, ENOENT);568 return; 569 } 570 571 rc = async_data_read_finalize(c allid, &enext->epp.remote,566 async_answer_0(chandle, ENOENT); 567 async_answer_0(icall_handle, ENOENT); 568 return; 569 } 570 571 rc = async_data_read_finalize(chandle, &enext->epp.remote, 572 572 max(size, (size_t)sizeof(inet_ep_t))); 573 573 if (rc != EOK) { 574 async_answer_0(i id, rc);574 async_answer_0(icall_handle, rc); 575 575 return; 576 576 } … … 581 581 log_msg(LOG_DEFAULT, LVL_DEBUG, "udp_rmsg_info_srv(): assoc_id=%zu, " 582 582 "size=%zu", assoc_id, size); 583 async_answer_2(i id, EOK, assoc_id, size);583 async_answer_2(icall_handle, EOK, assoc_id, size); 584 584 } 585 585 … … 592 592 * @param icall Async request data 593 593 */ 594 static void udp_rmsg_read_srv(udp_client_t *client, cap_call_handle_t i id,594 static void udp_rmsg_read_srv(udp_client_t *client, cap_call_handle_t icall_handle, 595 595 ipc_call_t *icall) 596 596 { 597 cap_call_handle_t c allid;597 cap_call_handle_t chandle; 598 598 size_t msg_size; 599 599 udp_crcv_queue_entry_t *enext; … … 608 608 enext = udp_rmsg_get_next(client); 609 609 610 if (!async_data_read_receive(&c allid, &size)) {611 async_answer_0(c allid, EREFUSED);612 async_answer_0(i id, EREFUSED);610 if (!async_data_read_receive(&chandle, &size)) { 611 async_answer_0(chandle, EREFUSED); 612 async_answer_0(icall_handle, EREFUSED); 613 613 return; 614 614 } 615 615 616 616 if (enext == NULL) { 617 async_answer_0(c allid, ENOENT);618 async_answer_0(i id, ENOENT);617 async_answer_0(chandle, ENOENT); 618 async_answer_0(icall_handle, ENOENT); 619 619 return; 620 620 } … … 624 624 625 625 if (off > msg_size) { 626 async_answer_0(c allid, EINVAL);627 async_answer_0(i id, EINVAL);628 return; 629 } 630 631 rc = async_data_read_finalize(c allid, data, min(msg_size - off, size));632 if (rc != EOK) { 633 async_answer_0(i id, rc);634 return; 635 } 636 637 async_answer_0(i id, EOK);626 async_answer_0(chandle, EINVAL); 627 async_answer_0(icall_handle, EINVAL); 628 return; 629 } 630 631 rc = async_data_read_finalize(chandle, data, min(msg_size - off, size)); 632 if (rc != EOK) { 633 async_answer_0(icall_handle, rc); 634 return; 635 } 636 637 async_answer_0(icall_handle, EOK); 638 638 log_msg(LOG_DEFAULT, LVL_DEBUG, "udp_rmsg_read_srv(): OK"); 639 639 } … … 648 648 * @param icall Async request data 649 649 */ 650 static void udp_rmsg_discard_srv(udp_client_t *client, cap_call_handle_t i id,650 static void udp_rmsg_discard_srv(udp_client_t *client, cap_call_handle_t icall_handle, 651 651 ipc_call_t *icall) 652 652 { … … 658 658 if (enext == NULL) { 659 659 log_msg(LOG_DEFAULT, LVL_DEBUG, "usg_rmsg_discard_srv: enext==NULL"); 660 async_answer_0(i id, ENOENT);660 async_answer_0(icall_handle, ENOENT); 661 661 return; 662 662 } … … 665 665 udp_msg_delete(enext->msg); 666 666 free(enext); 667 async_answer_0(i id, EOK);667 async_answer_0(icall_handle, EOK); 668 668 } 669 669 … … 674 674 * @param arg Connection argument 675 675 */ 676 static void udp_client_conn(cap_call_handle_t i id, ipc_call_t *icall, void *arg)676 static void udp_client_conn(cap_call_handle_t icall_handle, ipc_call_t *icall, void *arg) 677 677 { 678 678 udp_client_t client; … … 680 680 681 681 /* Accept the connection */ 682 async_answer_0(i id, EOK);682 async_answer_0(icall_handle, EOK); 683 683 684 684 log_msg(LOG_DEFAULT, LVL_DEBUG, "udp_client_conn()"); … … 691 691 log_msg(LOG_DEFAULT, LVL_DEBUG, "udp_client_conn: wait req"); 692 692 ipc_call_t call; 693 cap_call_handle_t c allid= async_get_call(&call);693 cap_call_handle_t chandle = async_get_call(&call); 694 694 sysarg_t method = IPC_GET_IMETHOD(call); 695 695 … … 698 698 if (!method) { 699 699 /* The other side has hung up */ 700 async_answer_0(c allid, EOK);700 async_answer_0(chandle, EOK); 701 701 break; 702 702 } … … 704 704 switch (method) { 705 705 case UDP_CALLBACK_CREATE: 706 udp_callback_create_srv(&client, c allid, &call);706 udp_callback_create_srv(&client, chandle, &call); 707 707 break; 708 708 case UDP_ASSOC_CREATE: 709 udp_assoc_create_srv(&client, c allid, &call);709 udp_assoc_create_srv(&client, chandle, &call); 710 710 break; 711 711 case UDP_ASSOC_DESTROY: 712 udp_assoc_destroy_srv(&client, c allid, &call);712 udp_assoc_destroy_srv(&client, chandle, &call); 713 713 break; 714 714 case UDP_ASSOC_SET_NOLOCAL: 715 udp_assoc_set_nolocal_srv(&client, c allid, &call);715 udp_assoc_set_nolocal_srv(&client, chandle, &call); 716 716 break; 717 717 case UDP_ASSOC_SEND_MSG: 718 udp_assoc_send_msg_srv(&client, c allid, &call);718 udp_assoc_send_msg_srv(&client, chandle, &call); 719 719 break; 720 720 case UDP_RMSG_INFO: 721 udp_rmsg_info_srv(&client, c allid, &call);721 udp_rmsg_info_srv(&client, chandle, &call); 722 722 break; 723 723 case UDP_RMSG_READ: 724 udp_rmsg_read_srv(&client, c allid, &call);724 udp_rmsg_read_srv(&client, chandle, &call); 725 725 break; 726 726 case UDP_RMSG_DISCARD: 727 udp_rmsg_discard_srv(&client, c allid, &call);727 udp_rmsg_discard_srv(&client, chandle, &call); 728 728 break; 729 729 default: 730 async_answer_0(c allid, ENOTSUP);730 async_answer_0(chandle, ENOTSUP); 731 731 break; 732 732 }
Note:
See TracChangeset
for help on using the changeset viewer.