Changes in uspace/srv/net/tcp/service.c [b752a31:5a6cc679] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/net/tcp/service.c
rb752a31 r5a6cc679 724 724 * Handle client request to create callback session. 725 725 * 726 * @param client 727 * @param i call_handle Async request call handle728 * @param icall 729 */ 730 static void tcp_callback_create_srv(tcp_client_t *client, 731 cap_call_handle_t icall_handle,ipc_call_t *icall)726 * @param client TCP client 727 * @param iid Async request ID 728 * @param icall Async request data 729 */ 730 static void tcp_callback_create_srv(tcp_client_t *client, ipc_callid_t iid, 731 ipc_call_t *icall) 732 732 { 733 733 log_msg(LOG_DEFAULT, LVL_DEBUG, "tcp_callback_create_srv()"); … … 735 735 async_sess_t *sess = async_callback_receive(EXCHANGE_SERIALIZE); 736 736 if (sess == NULL) { 737 async_answer_0(i call_handle, ENOMEM);737 async_answer_0(iid, ENOMEM); 738 738 return; 739 739 } 740 740 741 741 client->sess = sess; 742 async_answer_0(i call_handle, EOK);742 async_answer_0(iid, EOK); 743 743 } 744 744 … … 747 747 * Handle client request to create connection. 748 748 * 749 * @param client 750 * @param i call_handle Async request call handle751 * @param icall 752 */ 753 static void tcp_conn_create_srv(tcp_client_t *client, 754 cap_call_handle_t icall_handle,ipc_call_t *icall)755 { 756 cap_call_handle_t chandle;749 * @param client TCP client 750 * @param iid Async request ID 751 * @param icall Async request data 752 */ 753 static void tcp_conn_create_srv(tcp_client_t *client, ipc_callid_t iid, 754 ipc_call_t *icall) 755 { 756 ipc_callid_t callid; 757 757 size_t size; 758 758 inet_ep2_t epp; … … 762 762 log_msg(LOG_DEFAULT, LVL_DEBUG, "tcp_conn_create_srv()"); 763 763 764 if (!async_data_write_receive(&c handle, &size)) {765 async_answer_0(c handle, EREFUSED);766 async_answer_0(i call_handle, EREFUSED);764 if (!async_data_write_receive(&callid, &size)) { 765 async_answer_0(callid, EREFUSED); 766 async_answer_0(iid, EREFUSED); 767 767 return; 768 768 } 769 769 770 770 if (size != sizeof(inet_ep2_t)) { 771 async_answer_0(c handle, EINVAL);772 async_answer_0(i call_handle, EINVAL);773 return; 774 } 775 776 rc = async_data_write_finalize(c handle, &epp, size);777 if (rc != EOK) { 778 async_answer_0(c handle, rc);779 async_answer_0(i call_handle, rc);771 async_answer_0(callid, EINVAL); 772 async_answer_0(iid, EINVAL); 773 return; 774 } 775 776 rc = async_data_write_finalize(callid, &epp, size); 777 if (rc != EOK) { 778 async_answer_0(callid, rc); 779 async_answer_0(iid, rc); 780 780 return; 781 781 } … … 783 783 rc = tcp_conn_create_impl(client, &epp, &conn_id); 784 784 if (rc != EOK) { 785 async_answer_0(i call_handle, rc);786 return; 787 } 788 789 async_answer_1(i call_handle, EOK, conn_id);785 async_answer_0(iid, rc); 786 return; 787 } 788 789 async_answer_1(iid, EOK, conn_id); 790 790 } 791 791 … … 794 794 * Handle client request to destroy connection. 795 795 * 796 * @param client 797 * @param i call_handle Async request call handle798 * @param icall 799 */ 800 static void tcp_conn_destroy_srv(tcp_client_t *client, 801 cap_call_handle_t icall_handle,ipc_call_t *icall)796 * @param client TCP client 797 * @param iid Async request ID 798 * @param icall Async request data 799 */ 800 static void tcp_conn_destroy_srv(tcp_client_t *client, ipc_callid_t iid, 801 ipc_call_t *icall) 802 802 { 803 803 sysarg_t conn_id; … … 808 808 conn_id = IPC_GET_ARG1(*icall); 809 809 rc = tcp_conn_destroy_impl(client, conn_id); 810 async_answer_0(i call_handle, rc);810 async_answer_0(iid, rc); 811 811 } 812 812 … … 815 815 * Handle client request to create listener. 816 816 * 817 * @param client 818 * @param i call_handle Async request call handle819 * @param icall 820 */ 821 static void tcp_listener_create_srv(tcp_client_t *client, 822 cap_call_handle_t icall_handle,ipc_call_t *icall)823 { 824 cap_call_handle_t chandle;817 * @param client TCP client 818 * @param iid Async request ID 819 * @param icall Async request data 820 */ 821 static void tcp_listener_create_srv(tcp_client_t *client, ipc_callid_t iid, 822 ipc_call_t *icall) 823 { 824 ipc_callid_t callid; 825 825 size_t size; 826 826 inet_ep_t ep; … … 830 830 log_msg(LOG_DEFAULT, LVL_DEBUG, "tcp_listener_create_srv()"); 831 831 832 if (!async_data_write_receive(&c handle, &size)) {833 async_answer_0(c handle, EREFUSED);834 async_answer_0(i call_handle, EREFUSED);832 if (!async_data_write_receive(&callid, &size)) { 833 async_answer_0(callid, EREFUSED); 834 async_answer_0(iid, EREFUSED); 835 835 return; 836 836 } 837 837 838 838 if (size != sizeof(inet_ep_t)) { 839 async_answer_0(c handle, EINVAL);840 async_answer_0(i call_handle, EINVAL);841 return; 842 } 843 844 rc = async_data_write_finalize(c handle, &ep, size);845 if (rc != EOK) { 846 async_answer_0(c handle, rc);847 async_answer_0(i call_handle, rc);839 async_answer_0(callid, EINVAL); 840 async_answer_0(iid, EINVAL); 841 return; 842 } 843 844 rc = async_data_write_finalize(callid, &ep, size); 845 if (rc != EOK) { 846 async_answer_0(callid, rc); 847 async_answer_0(iid, rc); 848 848 return; 849 849 } … … 851 851 rc = tcp_listener_create_impl(client, &ep, &lst_id); 852 852 if (rc != EOK) { 853 async_answer_0(i call_handle, rc);854 return; 855 } 856 857 async_answer_1(i call_handle, EOK, lst_id);853 async_answer_0(iid, rc); 854 return; 855 } 856 857 async_answer_1(iid, EOK, lst_id); 858 858 } 859 859 … … 862 862 * Handle client request to destroy listener. 863 863 * 864 * @param client 865 * @param i call_handle Async request call handle866 * @param icall 867 */ 868 static void tcp_listener_destroy_srv(tcp_client_t *client, 869 cap_call_handle_t icall_handle,ipc_call_t *icall)864 * @param client TCP client 865 * @param iid Async request ID 866 * @param icall Async request data 867 */ 868 static void tcp_listener_destroy_srv(tcp_client_t *client, ipc_callid_t iid, 869 ipc_call_t *icall) 870 870 { 871 871 sysarg_t lst_id; … … 876 876 lst_id = IPC_GET_ARG1(*icall); 877 877 rc = tcp_listener_destroy_impl(client, lst_id); 878 async_answer_0(i call_handle, rc);878 async_answer_0(iid, rc); 879 879 } 880 880 … … 883 883 * Handle client request to send FIN. 884 884 * 885 * @param client 886 * @param i call_handle Async request call handle887 * @param icall 888 */ 889 static void tcp_conn_send_fin_srv(tcp_client_t *client, 890 cap_call_handle_t icall_handle,ipc_call_t *icall)885 * @param client TCP client 886 * @param iid Async request ID 887 * @param icall Async request data 888 */ 889 static void tcp_conn_send_fin_srv(tcp_client_t *client, ipc_callid_t iid, 890 ipc_call_t *icall) 891 891 { 892 892 sysarg_t conn_id; … … 897 897 conn_id = IPC_GET_ARG1(*icall); 898 898 rc = tcp_conn_send_fin_impl(client, conn_id); 899 async_answer_0(i call_handle, rc);899 async_answer_0(iid, rc); 900 900 } 901 901 … … 904 904 * Handle client request to push connection. 905 905 * 906 * @param client 907 * @param i call_handle Async request call handle908 * @param icall 909 */ 910 static void tcp_conn_push_srv(tcp_client_t *client, 911 cap_call_handle_t icall_handle,ipc_call_t *icall)906 * @param client TCP client 907 * @param iid Async request ID 908 * @param icall Async request data 909 */ 910 static void tcp_conn_push_srv(tcp_client_t *client, ipc_callid_t iid, 911 ipc_call_t *icall) 912 912 { 913 913 sysarg_t conn_id; … … 918 918 conn_id = IPC_GET_ARG1(*icall); 919 919 rc = tcp_conn_push_impl(client, conn_id); 920 async_answer_0(i call_handle, rc);920 async_answer_0(iid, rc); 921 921 } 922 922 … … 925 925 * Handle client request to reset connection. 926 926 * 927 * @param client 928 * @param i call_handle Async request call handle929 * @param icall 930 */ 931 static void tcp_conn_reset_srv(tcp_client_t *client, 932 cap_call_handle_t icall_handle,ipc_call_t *icall)927 * @param client TCP client 928 * @param iid Async request ID 929 * @param icall Async request data 930 */ 931 static void tcp_conn_reset_srv(tcp_client_t *client, ipc_callid_t iid, 932 ipc_call_t *icall) 933 933 { 934 934 sysarg_t conn_id; … … 939 939 conn_id = IPC_GET_ARG1(*icall); 940 940 rc = tcp_conn_reset_impl(client, conn_id); 941 async_answer_0(i call_handle, rc);941 async_answer_0(iid, rc); 942 942 } 943 943 … … 946 946 * Handle client request to send data via connection. 947 947 * 948 * @param client 949 * @param i call_handle Async request call handle950 * @param icall 951 */ 952 static void tcp_conn_send_srv(tcp_client_t *client, 953 cap_call_handle_t icall_handle,ipc_call_t *icall)954 { 955 cap_call_handle_t chandle;948 * @param client TCP client 949 * @param iid Async request ID 950 * @param icall Async request data 951 */ 952 static void tcp_conn_send_srv(tcp_client_t *client, ipc_callid_t iid, 953 ipc_call_t *icall) 954 { 955 ipc_callid_t callid; 956 956 size_t size; 957 957 sysarg_t conn_id; … … 963 963 /* Receive message data */ 964 964 965 if (!async_data_write_receive(&c handle, &size)) {966 async_answer_0(c handle, EREFUSED);967 async_answer_0(i call_handle, EREFUSED);965 if (!async_data_write_receive(&callid, &size)) { 966 async_answer_0(callid, EREFUSED); 967 async_answer_0(iid, EREFUSED); 968 968 return; 969 969 } 970 970 971 971 if (size > MAX_MSG_SIZE) { 972 async_answer_0(c handle, EINVAL);973 async_answer_0(i call_handle, EINVAL);972 async_answer_0(callid, EINVAL); 973 async_answer_0(iid, EINVAL); 974 974 return; 975 975 } … … 977 977 data = malloc(size); 978 978 if (data == NULL) { 979 async_answer_0(c handle, ENOMEM);980 async_answer_0(i call_handle, ENOMEM);981 return; 982 } 983 984 rc = async_data_write_finalize(c handle, data, size);985 if (rc != EOK) { 986 async_answer_0(c handle, rc);987 async_answer_0(i call_handle, rc);979 async_answer_0(callid, ENOMEM); 980 async_answer_0(iid, ENOMEM); 981 return; 982 } 983 984 rc = async_data_write_finalize(callid, data, size); 985 if (rc != EOK) { 986 async_answer_0(callid, rc); 987 async_answer_0(iid, rc); 988 988 free(data); 989 989 return; … … 994 994 rc = tcp_conn_send_impl(client, conn_id, data, size); 995 995 if (rc != EOK) { 996 async_answer_0(i call_handle, rc);996 async_answer_0(iid, rc); 997 997 free(data); 998 998 return; 999 999 } 1000 1000 1001 async_answer_0(i call_handle, EOK);1001 async_answer_0(iid, EOK); 1002 1002 free(data); 1003 1003 } … … 1007 1007 * Handle client request to read received data via connection without blocking. 1008 1008 * 1009 * @param client 1010 * @param i call_handle Async request call handle1011 * @param icall 1012 */ 1013 static void tcp_conn_recv_srv(tcp_client_t *client, 1014 cap_call_handle_t icall_handle,ipc_call_t *icall)1015 { 1016 cap_call_handle_t chandle;1009 * @param client TCP client 1010 * @param iid Async request ID 1011 * @param icall Async request data 1012 */ 1013 static void tcp_conn_recv_srv(tcp_client_t *client, ipc_callid_t iid, 1014 ipc_call_t *icall) 1015 { 1016 ipc_callid_t callid; 1017 1017 sysarg_t conn_id; 1018 1018 size_t size, rsize; … … 1024 1024 conn_id = IPC_GET_ARG1(*icall); 1025 1025 1026 if (!async_data_read_receive(&c handle, &size)) {1027 async_answer_0(c handle, EREFUSED);1028 async_answer_0(i call_handle, EREFUSED);1026 if (!async_data_read_receive(&callid, &size)) { 1027 async_answer_0(callid, EREFUSED); 1028 async_answer_0(iid, EREFUSED); 1029 1029 return; 1030 1030 } … … 1033 1033 data = malloc(size); 1034 1034 if (data == NULL) { 1035 async_answer_0(c handle, ENOMEM);1036 async_answer_0(i call_handle, ENOMEM);1035 async_answer_0(callid, ENOMEM); 1036 async_answer_0(iid, ENOMEM); 1037 1037 return; 1038 1038 } … … 1040 1040 rc = tcp_conn_recv_impl(client, conn_id, data, size, &rsize); 1041 1041 if (rc != EOK) { 1042 async_answer_0(c handle, rc);1043 async_answer_0(i call_handle, rc);1042 async_answer_0(callid, rc); 1043 async_answer_0(iid, rc); 1044 1044 free(data); 1045 1045 return; 1046 1046 } 1047 1047 1048 rc = async_data_read_finalize(c handle, data, size);1049 if (rc != EOK) { 1050 async_answer_0(i call_handle, rc);1048 rc = async_data_read_finalize(callid, data, size); 1049 if (rc != EOK) { 1050 async_answer_0(iid, rc); 1051 1051 free(data); 1052 1052 return; 1053 1053 } 1054 1054 1055 async_answer_1(i call_handle, EOK, rsize);1055 async_answer_1(iid, EOK, rsize); 1056 1056 free(data); 1057 1057 … … 1063 1063 * Handle client request to read received data via connection with blocking. 1064 1064 * 1065 * @param client 1066 * @param i call_handle Async request call handle1067 * @param icall 1068 */ 1069 static void tcp_conn_recv_wait_srv(tcp_client_t *client, 1070 cap_call_handle_t icall_handle,ipc_call_t *icall)1071 { 1072 cap_call_handle_t chandle;1065 * @param client TCP client 1066 * @param iid Async request ID 1067 * @param icall Async request data 1068 */ 1069 static void tcp_conn_recv_wait_srv(tcp_client_t *client, ipc_callid_t iid, 1070 ipc_call_t *icall) 1071 { 1072 ipc_callid_t callid; 1073 1073 sysarg_t conn_id; 1074 1074 size_t size, rsize; … … 1080 1080 conn_id = IPC_GET_ARG1(*icall); 1081 1081 1082 if (!async_data_read_receive(&c handle, &size)) {1082 if (!async_data_read_receive(&callid, &size)) { 1083 1083 log_msg(LOG_DEFAULT, LVL_DEBUG, "tcp_conn_recv_wait_srv - data_receive failed"); 1084 async_answer_0(c handle, EREFUSED);1085 async_answer_0(i call_handle, EREFUSED);1084 async_answer_0(callid, EREFUSED); 1085 async_answer_0(iid, EREFUSED); 1086 1086 return; 1087 1087 } … … 1091 1091 if (data == NULL) { 1092 1092 log_msg(LOG_DEFAULT, LVL_DEBUG, "tcp_conn_recv_wait_srv - allocation failed"); 1093 async_answer_0(c handle, ENOMEM);1094 async_answer_0(i call_handle, ENOMEM);1093 async_answer_0(callid, ENOMEM); 1094 async_answer_0(iid, ENOMEM); 1095 1095 return; 1096 1096 } … … 1099 1099 if (rc != EOK) { 1100 1100 log_msg(LOG_DEFAULT, LVL_DEBUG, "tcp_conn_recv_wait_srv - recv_impl failed rc=%s", str_error_name(rc)); 1101 async_answer_0(c handle, rc);1102 async_answer_0(i call_handle, rc);1101 async_answer_0(callid, rc); 1102 async_answer_0(iid, rc); 1103 1103 free(data); 1104 1104 return; 1105 1105 } 1106 1106 1107 rc = async_data_read_finalize(c handle, data, size);1107 rc = async_data_read_finalize(callid, data, size); 1108 1108 if (rc != EOK) { 1109 1109 log_msg(LOG_DEFAULT, LVL_DEBUG, "tcp_conn_recv_wait_srv - finalize failed"); 1110 async_answer_0(i call_handle, rc);1110 async_answer_0(iid, rc); 1111 1111 free(data); 1112 1112 return; … … 1114 1114 1115 1115 log_msg(LOG_DEFAULT, LVL_DEBUG, "tcp_conn_recv_wait_srv(): rsize=%zu", size); 1116 async_answer_1(i call_handle, EOK, rsize);1116 async_answer_1(iid, EOK, rsize); 1117 1117 free(data); 1118 1118 … … 1168 1168 /** Handle TCP client connection. 1169 1169 * 1170 * @param icall_handle Connect call handle 1171 * @param icall Connect call data 1172 * @param arg Connection argument 1173 */ 1174 static void tcp_client_conn(cap_call_handle_t icall_handle, ipc_call_t *icall, 1175 void *arg) 1170 * @param iid Connect call ID 1171 * @param icall Connect call data 1172 * @param arg Connection argument 1173 */ 1174 static void tcp_client_conn(ipc_callid_t iid, ipc_call_t *icall, void *arg) 1176 1175 { 1177 1176 tcp_client_t client; 1178 1177 1179 1178 /* Accept the connection */ 1180 async_answer_0(i call_handle, EOK);1179 async_answer_0(iid, EOK); 1181 1180 1182 1181 log_msg(LOG_DEFAULT, LVL_DEBUG, "tcp_client_conn() - client=%p", … … 1188 1187 log_msg(LOG_DEFAULT, LVL_DEBUG, "tcp_client_conn: wait req"); 1189 1188 ipc_call_t call; 1190 cap_call_handle_t chandle= async_get_call(&call);1189 ipc_callid_t callid = async_get_call(&call); 1191 1190 sysarg_t method = IPC_GET_IMETHOD(call); 1192 1191 … … 1195 1194 if (!method) { 1196 1195 /* The other side has hung up */ 1197 async_answer_0(c handle, EOK);1196 async_answer_0(callid, EOK); 1198 1197 break; 1199 1198 } … … 1201 1200 switch (method) { 1202 1201 case TCP_CALLBACK_CREATE: 1203 tcp_callback_create_srv(&client, c handle, &call);1202 tcp_callback_create_srv(&client, callid, &call); 1204 1203 break; 1205 1204 case TCP_CONN_CREATE: 1206 tcp_conn_create_srv(&client, c handle, &call);1205 tcp_conn_create_srv(&client, callid, &call); 1207 1206 break; 1208 1207 case TCP_CONN_DESTROY: 1209 tcp_conn_destroy_srv(&client, c handle, &call);1208 tcp_conn_destroy_srv(&client, callid, &call); 1210 1209 break; 1211 1210 case TCP_LISTENER_CREATE: 1212 tcp_listener_create_srv(&client, c handle, &call);1211 tcp_listener_create_srv(&client, callid, &call); 1213 1212 break; 1214 1213 case TCP_LISTENER_DESTROY: 1215 tcp_listener_destroy_srv(&client, c handle, &call);1214 tcp_listener_destroy_srv(&client, callid, &call); 1216 1215 break; 1217 1216 case TCP_CONN_SEND_FIN: 1218 tcp_conn_send_fin_srv(&client, c handle, &call);1217 tcp_conn_send_fin_srv(&client, callid, &call); 1219 1218 break; 1220 1219 case TCP_CONN_PUSH: 1221 tcp_conn_push_srv(&client, c handle, &call);1220 tcp_conn_push_srv(&client, callid, &call); 1222 1221 break; 1223 1222 case TCP_CONN_RESET: 1224 tcp_conn_reset_srv(&client, c handle, &call);1223 tcp_conn_reset_srv(&client, callid, &call); 1225 1224 break; 1226 1225 case TCP_CONN_SEND: 1227 tcp_conn_send_srv(&client, c handle, &call);1226 tcp_conn_send_srv(&client, callid, &call); 1228 1227 break; 1229 1228 case TCP_CONN_RECV: 1230 tcp_conn_recv_srv(&client, c handle, &call);1229 tcp_conn_recv_srv(&client, callid, &call); 1231 1230 break; 1232 1231 case TCP_CONN_RECV_WAIT: 1233 tcp_conn_recv_wait_srv(&client, c handle, &call);1232 tcp_conn_recv_wait_srv(&client, callid, &call); 1234 1233 break; 1235 1234 default: 1236 async_answer_0(c handle, ENOTSUP);1235 async_answer_0(callid, ENOTSUP); 1237 1236 break; 1238 1237 }
Note:
See TracChangeset
for help on using the changeset viewer.