MCPcopy Create free account
hub / github.com/RT-Thread/rt-thread / closesocket

Function closesocket

components/net/sal/socket/net_sockets.c:702–742  ·  view source on GitHub ↗

* @brief Closes a socket. * * This function closes the socket specified by the file descriptor 's'. Once closed, the socket * can no longer be used for communication. Any pending data that has not been transmitted may be lost. * * @param s The file descriptor of the socket to close. * * @return Returns '0' on success. On failure, returns '-1' and sets errno to indicate the error. * * @not

Source from the content-addressed store, hash-verified

700 * @see send() Sends data on a socket.
701 */
702int closesocket(int s)
703{
704 int error = 0;
705 int socket = -1;
706 struct dfs_file *d;
707
708 socket = dfs_net_getsocket(s);
709 if (socket < 0)
710 {
711 rt_set_errno(-ENOTSOCK);
712 return -1;
713 }
714
715 d = fd_get(s);
716 if (d == RT_NULL)
717 {
718 rt_set_errno(-EBADF);
719 return -1;
720 }
721
722 if (!d->vnode)
723 {
724 rt_set_errno(-EBADF);
725 return -1;
726 }
727
728 if (sal_closesocket(socket) == 0)
729 {
730 error = 0;
731 }
732 else
733 {
734 rt_set_errno(-ENOTSOCK);
735 error = -1;
736 }
737
738 /* socket has been closed, delete it from file system fd */
739 fd_release(s);
740
741 return error;
742}
743RTM_EXPORT(closesocket);
744
745/**

Callers 13

sys_closesocketFunction · 0.85
socketpairFunction · 0.85
dhcpd_thread_entryFunction · 0.85
tcpclientFunction · 0.85
win_closesocketFunction · 0.85
tcpclientFunction · 0.85
tcpservFunction · 0.85
udpclientFunction · 0.85
tcp_senddataFunction · 0.85
udpservFunction · 0.85
chargen_threadFunction · 0.85

Calls 5

dfs_net_getsocketFunction · 0.85
rt_set_errnoFunction · 0.85
sal_closesocketFunction · 0.85
fd_getFunction · 0.50
fd_releaseFunction · 0.50

Tested by

no test coverage detected