Changes in uspace/lib/c/generic/net/socket_client.c [1bfd3d3:b4c9c61] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/generic/net/socket_client.c
r1bfd3d3 rb4c9c61 79 79 typedef struct socket socket_t; 80 80 81 /** Type definition of the socket specific data pointer. 82 * @see socket 83 */ 84 typedef socket_t *socket_ref; 85 81 86 /** Socket specific data. 82 87 * … … 157 162 158 163 /** Active sockets. */ 159 sockets_ t *sockets;164 sockets_ref sockets; 160 165 161 166 /** Safety lock. … … 178 183 /** Returns the active sockets. 179 184 * 180 * @return The active sockets.181 */ 182 static sockets_ t *socket_get_sockets(void)185 * @returns The active sockets. 186 */ 187 static sockets_ref socket_get_sockets(void) 183 188 { 184 189 if (!socket_globals.sockets) { 185 190 socket_globals.sockets = 186 (sockets_ t *) malloc(sizeof(sockets_t));191 (sockets_ref) malloc(sizeof(sockets_t)); 187 192 if (!socket_globals.sockets) 188 193 return NULL; … … 208 213 ipc_callid_t callid; 209 214 ipc_call_t call; 210 socket_ t *socket;215 socket_ref socket; 211 216 int rc; 212 217 … … 286 291 * Connects to the TCP module if necessary. 287 292 * 288 * @return The TCP module phone.289 * @return Other error codes as defined for the293 * @returns The TCP module phone. 294 * @returns Other error codes as defined for the 290 295 * bind_service_timeout() function. 291 296 */ … … 305 310 * Connects to the UDP module if necessary. 306 311 * 307 * @return The UDP module phone.308 * @return Other error codes as defined for the312 * @returns The UDP module phone. 313 * @returns Other error codes as defined for the 309 314 * bind_service_timeout() function. 310 315 */ … … 322 327 /** Tries to find a new free socket identifier. 323 328 * 324 * @return The new socket identifier.325 * @return ELIMIT if there is no socket identifier available.329 * @returns The new socket identifier. 330 * @returns ELIMIT if there is no socket identifier available. 326 331 */ 327 332 static int socket_generate_new_id(void) 328 333 { 329 sockets_ t *sockets;334 sockets_ref sockets; 330 335 int socket_id = 0; 331 336 int count; … … 367 372 */ 368 373 static void 369 socket_initialize(socket_ t *socket, int socket_id, int phone,374 socket_initialize(socket_ref socket, int socket_id, int phone, 370 375 services_t service) 371 376 { … … 387 392 * @param[in] type Socket type. 388 393 * @param[in] protocol Socket protocol. 389 * @return The socket identifier on success.390 * @return EPFNOTSUPPORT if the protocol family is not supported.391 * @return ESOCKNOTSUPPORT if the socket type is not supported.392 * @return EPROTONOSUPPORT if the protocol is not supported.393 * @return ENOMEM if there is not enough memory left.394 * @return ELIMIT if there was not a free socket identifier found394 * @returns The socket identifier on success. 395 * @returns EPFNOTSUPPORT if the protocol family is not supported. 396 * @returns ESOCKNOTSUPPORT if the socket type is not supported. 397 * @returns EPROTONOSUPPORT if the protocol is not supported. 398 * @returns ENOMEM if there is not enough memory left. 399 * @returns ELIMIT if there was not a free socket identifier found 395 400 * this time. 396 * @return Other error codes as defined for the NET_SOCKET message.397 * @return Other error codes as defined for the401 * @returns Other error codes as defined for the NET_SOCKET message. 402 * @returns Other error codes as defined for the 398 403 * bind_service_timeout() function. 399 404 */ 400 405 int socket(int domain, int type, int protocol) 401 406 { 402 socket_ t *socket;407 socket_ref socket; 403 408 int phone; 404 409 int socket_id; … … 458 463 459 464 // create a new socket structure 460 socket = (socket_ t *) malloc(sizeof(socket_t));465 socket = (socket_ref) malloc(sizeof(socket_t)); 461 466 if (!socket) 462 467 return ENOMEM; … … 509 514 * @param[in] data The data to be sent. 510 515 * @param[in] datalength The data length. 511 * @return EOK on success.512 * @return ENOTSOCK if the socket is not found.513 * @return EBADMEM if the data parameter is NULL.514 * @return NO_DATA if the datalength parameter is zero (0).515 * @return Other error codes as defined for the spcific message.516 * @returns EOK on success. 517 * @returns ENOTSOCK if the socket is not found. 518 * @returns EBADMEM if the data parameter is NULL. 519 * @returns NO_DATA if the datalength parameter is zero (0). 520 * @returns Other error codes as defined for the spcific message. 516 521 */ 517 522 static int … … 519 524 const void *data, size_t datalength) 520 525 { 521 socket_ t *socket;526 socket_ref socket; 522 527 aid_t message_id; 523 528 ipcarg_t result; … … 554 559 * @param[in] my_addr The port address. 555 560 * @param[in] addrlen The address length. 556 * @return EOK on success.557 * @return ENOTSOCK if the socket is not found.558 * @return EBADMEM if the my_addr parameter is NULL.559 * @return NO_DATA if the addlen parameter is zero.560 * @return Other error codes as defined for the NET_SOCKET_BIND561 * @returns EOK on success. 562 * @returns ENOTSOCK if the socket is not found. 563 * @returns EBADMEM if the my_addr parameter is NULL. 564 * @returns NO_DATA if the addlen parameter is zero. 565 * @returns Other error codes as defined for the NET_SOCKET_BIND 561 566 * message. 562 567 */ … … 575 580 * @param[in] socket_id Socket identifier. 576 581 * @param[in] backlog The maximum number of waiting sockets to be accepted. 577 * @return EOK on success.578 * @return EINVAL if the backlog parameter is not positive (<=0).579 * @return ENOTSOCK if the socket is not found.580 * @return Other error codes as defined for the NET_SOCKET_LISTEN582 * @returns EOK on success. 583 * @returns EINVAL if the backlog parameter is not positive (<=0). 584 * @returns ENOTSOCK if the socket is not found. 585 * @returns Other error codes as defined for the NET_SOCKET_LISTEN 581 586 * message. 582 587 */ 583 588 int listen(int socket_id, int backlog) 584 589 { 585 socket_ t *socket;590 socket_ref socket; 586 591 int result; 587 592 … … 613 618 * @param[out] cliaddr The remote client address. 614 619 * @param[in] addrlen The address length. 615 * @return EOK on success.616 * @return EBADMEM if the cliaddr or addrlen parameter is NULL.617 * @return EINVAL if the backlog parameter is not positive (<=0).618 * @return ENOTSOCK if the socket is not found.619 * @return Other error codes as defined for the NET_SOCKET_ACCEPT620 * @returns EOK on success. 621 * @returns EBADMEM if the cliaddr or addrlen parameter is NULL. 622 * @returns EINVAL if the backlog parameter is not positive (<=0). 623 * @returns ENOTSOCK if the socket is not found. 624 * @returns Other error codes as defined for the NET_SOCKET_ACCEPT 620 625 * message. 621 626 */ 622 627 int accept(int socket_id, struct sockaddr * cliaddr, socklen_t * addrlen) 623 628 { 624 socket_ t *socket;625 socket_ t *new_socket;629 socket_ref socket; 630 socket_ref new_socket; 626 631 aid_t message_id; 627 632 ipcarg_t ipc_result; … … 656 661 657 662 // create a new scoket 658 new_socket = (socket_ t *) malloc(sizeof(socket_t));663 new_socket = (socket_ref) malloc(sizeof(socket_t)); 659 664 if (!new_socket) { 660 665 fibril_mutex_unlock(&socket->accept_lock); … … 716 721 * @param[in] serv_addr The remote server address. 717 722 * @param[in] addrlen The address length. 718 * @return EOK on success.719 * @return EBADMEM if the serv_addr parameter is NULL.720 * @return NO_DATA if the addlen parameter is zero.721 * @return ENOTSOCK if the socket is not found.722 * @return Other error codes as defined for the NET_SOCKET_CONNECT723 * @returns EOK on success. 724 * @returns EBADMEM if the serv_addr parameter is NULL. 725 * @returns NO_DATA if the addlen parameter is zero. 726 * @returns ENOTSOCK if the socket is not found. 727 * @returns Other error codes as defined for the NET_SOCKET_CONNECT 723 728 * message. 724 729 */ … … 740 745 * @param[in] socket The socket to be destroyed. 741 746 */ 742 static void socket_destroy(socket_ t *socket)747 static void socket_destroy(socket_ref socket) 743 748 { 744 749 int accepted_id; … … 756 761 * 757 762 * @param[in] socket_id Socket identifier. 758 * @return EOK on success.759 * @return ENOTSOCK if the socket is not found.760 * @return EINPROGRESS if there is another blocking function in763 * @returns EOK on success. 764 * @returns ENOTSOCK if the socket is not found. 765 * @returns EINPROGRESS if there is another blocking function in 761 766 * progress. 762 * @return Other error codes as defined for the NET_SOCKET_CLOSE767 * @returns Other error codes as defined for the NET_SOCKET_CLOSE 763 768 * message. 764 769 */ 765 770 int closesocket(int socket_id) 766 771 { 767 socket_ t *socket;772 socket_ref socket; 768 773 int rc; 769 774 … … 806 811 * sockets. 807 812 * @param[in] addrlen The address length. Used only if toaddr is not NULL. 808 * @return EOK on success.809 * @return ENOTSOCK if the socket is not found.810 * @return EBADMEM if the data or toaddr parameter is NULL.811 * @return NO_DATA if the datalength or the addrlen parameter is813 * @returns EOK on success. 814 * @returns ENOTSOCK if the socket is not found. 815 * @returns EBADMEM if the data or toaddr parameter is NULL. 816 * @returns NO_DATA if the datalength or the addrlen parameter is 812 817 * zero (0). 813 * @return Other error codes as defined for the NET_SOCKET_SENDTO818 * @returns Other error codes as defined for the NET_SOCKET_SENDTO 814 819 * message. 815 820 */ … … 819 824 socklen_t addrlen) 820 825 { 821 socket_ t *socket;826 socket_ref socket; 822 827 aid_t message_id; 823 828 ipcarg_t result; … … 908 913 * @param[in] datalength The data length. 909 914 * @param[in] flags Various send flags. 910 * @return EOK on success.911 * @return ENOTSOCK if the socket is not found.912 * @return EBADMEM if the data parameter is NULL.913 * @return NO_DATA if the datalength parameter is zero.914 * @return Other error codes as defined for the NET_SOCKET_SEND915 * @returns EOK on success. 916 * @returns ENOTSOCK if the socket is not found. 917 * @returns EBADMEM if the data parameter is NULL. 918 * @returns NO_DATA if the datalength parameter is zero. 919 * @returns Other error codes as defined for the NET_SOCKET_SEND 915 920 * message. 916 921 */ … … 932 937 * @param[in] toaddr The destination address. 933 938 * @param[in] addrlen The address length. 934 * @return EOK on success.935 * @return ENOTSOCK if the socket is not found.936 * @return EBADMEM if the data or toaddr parameter is NULL.937 * @return NO_DATA if the datalength or the addrlen parameter is939 * @returns EOK on success. 940 * @returns ENOTSOCK if the socket is not found. 941 * @returns EBADMEM if the data or toaddr parameter is NULL. 942 * @returns NO_DATA if the datalength or the addrlen parameter is 938 943 * zero. 939 * @return Other error codes as defined for the NET_SOCKET_SENDTO944 * @returns Other error codes as defined for the NET_SOCKET_SENDTO 940 945 * message. 941 946 */ … … 966 971 * read. The actual address length is set. Used only if 967 972 * fromaddr is not NULL. 968 * @return EOK on success.969 * @return ENOTSOCK if the socket is not found.970 * @return EBADMEM if the data parameter is NULL.971 * @return NO_DATA if the datalength or addrlen parameter is zero.972 * @return Other error codes as defined for the spcific message.973 * @returns EOK on success. 974 * @returns ENOTSOCK if the socket is not found. 975 * @returns EBADMEM if the data parameter is NULL. 976 * @returns NO_DATA if the datalength or addrlen parameter is zero. 977 * @returns Other error codes as defined for the spcific message. 973 978 */ 974 979 static int … … 976 981 int flags, struct sockaddr *fromaddr, socklen_t *addrlen) 977 982 { 978 socket_ t *socket;983 socket_ref socket; 979 984 aid_t message_id; 980 985 ipcarg_t ipc_result; … … 1095 1100 * @param[in] datalength The data length. 1096 1101 * @param[in] flags Various receive flags. 1097 * @return EOK on success.1098 * @return ENOTSOCK if the socket is not found.1099 * @return EBADMEM if the data parameter is NULL.1100 * @return NO_DATA if the datalength parameter is zero.1101 * @return Other error codes as defined for the NET_SOCKET_RECV1102 * @returns EOK on success. 1103 * @returns ENOTSOCK if the socket is not found. 1104 * @returns EBADMEM if the data parameter is NULL. 1105 * @returns NO_DATA if the datalength parameter is zero. 1106 * @returns Other error codes as defined for the NET_SOCKET_RECV 1102 1107 * message. 1103 1108 */ … … 1118 1123 * @param[in,out] addrlen The address length. The maximum address length is 1119 1124 * read. The actual address length is set. 1120 * @return EOK on success.1121 * @return ENOTSOCK if the socket is not found.1122 * @return EBADMEM if the data or fromaddr parameter is NULL.1123 * @return NO_DATA if the datalength or addrlen parameter is zero.1124 * @return Other error codes as defined for the NET_SOCKET_RECVFROM1125 * @returns EOK on success. 1126 * @returns ENOTSOCK if the socket is not found. 1127 * @returns EBADMEM if the data or fromaddr parameter is NULL. 1128 * @returns NO_DATA if the datalength or addrlen parameter is zero. 1129 * @returns Other error codes as defined for the NET_SOCKET_RECVFROM 1125 1130 * message. 1126 1131 */ … … 1148 1153 * @param[in,out] optlen The value buffer length. The maximum length is read. 1149 1154 * The actual length is set. 1150 * @return EOK on success.1151 * @return ENOTSOCK if the socket is not found.1152 * @return EBADMEM if the value or optlen parameter is NULL.1153 * @return NO_DATA if the optlen parameter is zero.1154 * @return Other error codes as defined for the1155 * @returns EOK on success. 1156 * @returns ENOTSOCK if the socket is not found. 1157 * @returns EBADMEM if the value or optlen parameter is NULL. 1158 * @returns NO_DATA if the optlen parameter is zero. 1159 * @returns Other error codes as defined for the 1155 1160 * NET_SOCKET_GETSOCKOPT message. 1156 1161 */ … … 1158 1163 getsockopt(int socket_id, int level, int optname, void *value, size_t *optlen) 1159 1164 { 1160 socket_ t *socket;1165 socket_ref socket; 1161 1166 aid_t message_id; 1162 1167 ipcarg_t result; … … 1201 1206 * @param[in] value The value to be set. 1202 1207 * @param[in] optlen The value length. 1203 * @return EOK on success.1204 * @return ENOTSOCK if the socket is not found.1205 * @return EBADMEM if the value parameter is NULL.1206 * @return NO_DATA if the optlen parameter is zero.1207 * @return Other error codes as defined for the1208 * @returns EOK on success. 1209 * @returns ENOTSOCK if the socket is not found. 1210 * @returns EBADMEM if the value parameter is NULL. 1211 * @returns NO_DATA if the optlen parameter is zero. 1212 * @returns Other error codes as defined for the 1208 1213 * NET_SOCKET_SETSOCKOPT message. 1209 1214 */
Note:
See TracChangeset
for help on using the changeset viewer.