• Home
  • Raw
  • Download

Lines Matching refs:sock

428     deSocket *sock = (deSocket *)deCalloc(sizeof(deSocket));  in deSocket_create()  local
429 if (!sock) in deSocket_create()
430 return sock; in deSocket_create()
438 sock->stateLock = deMutex_create(0); in deSocket_create()
439 sock->handle = DE_INVALID_SOCKET_HANDLE; in deSocket_create()
440 sock->state = DE_SOCKETSTATE_CLOSED; in deSocket_create()
442 return sock; in deSocket_create()
445 void deSocket_destroy(deSocket *sock) in deSocket_destroy() argument
447 if (sock->state != DE_SOCKETSTATE_CLOSED) in deSocket_destroy()
448 deSocket_close(sock); in deSocket_destroy()
450 deMutex_destroy(sock->stateLock); in deSocket_destroy()
451 deFree(sock); in deSocket_destroy()
454 deSocketState deSocket_getState(const deSocket *sock) in deSocket_getState() argument
456 return sock->state; in deSocket_getState()
459 uint32_t deSocket_getOpenChannels(const deSocket *sock) in deSocket_getOpenChannels() argument
461 return sock->openChannels; in deSocket_getOpenChannels()
464 bool deSocket_setFlags(deSocket *sock, uint32_t flags) in deSocket_setFlags() argument
466 deSocketHandle fd = sock->handle; in deSocket_setFlags()
468 if (sock->state == DE_SOCKETSTATE_CLOSED) in deSocket_setFlags()
512 bool deSocket_listen(deSocket *sock, const deSocketAddress *address) in deSocket_listen() argument
519 if (sock->state != DE_SOCKETSTATE_CLOSED) in deSocket_listen()
527 sock->handle = socket(bsdAddr->sa_family, deSocketTypeToBsdType(address->type), in deSocket_listen()
529 if (!deSocketHandleIsValid(sock->handle)) in deSocket_listen()
532 sock->state = DE_SOCKETSTATE_DISCONNECTED; in deSocket_listen()
537 …setsockopt(sock->handle, SOL_SOCKET, SO_REUSEADDR, (const char *)&reuseVal, (int)sizeof(reuseVal)); in deSocket_listen()
541 if (bind(sock->handle, bsdAddr, (NativeSocklen)bsdAddrLen) != 0) in deSocket_listen()
543 deSocket_close(sock); in deSocket_listen()
548 if (listen(sock->handle, backlogSize) != 0) in deSocket_listen()
550 deSocket_close(sock); in deSocket_listen()
554 sock->state = DE_SOCKETSTATE_LISTENING; in deSocket_listen()
559 deSocket *deSocket_accept(deSocket *sock, deSocketAddress *clientAddress) in deSocket_accept() argument
569 newFd = accept(sock->handle, bsdAddr, &bsdAddrLen); in deSocket_accept()
595 bool deSocket_connect(deSocket *sock, const deSocketAddress *address) in deSocket_connect() argument
606 sock->handle = socket(bsdAddr->sa_family, deSocketTypeToBsdType(address->type), in deSocket_connect()
608 if (!deSocketHandleIsValid(sock->handle)) in deSocket_connect()
612 if (connect(sock->handle, bsdAddr, bsdAddrLen) != 0) in deSocket_connect()
615 closesocket(sock->handle); in deSocket_connect()
617 close(sock->handle); in deSocket_connect()
619 sock->handle = DE_INVALID_SOCKET_HANDLE; in deSocket_connect()
623 sock->state = DE_SOCKETSTATE_CONNECTED; in deSocket_connect()
624 sock->openChannels = DE_SOCKETCHANNEL_BOTH; in deSocket_connect()
629 bool deSocket_shutdown(deSocket *sock, uint32_t channels) in deSocket_shutdown() argument
633 deMutex_lock(sock->stateLock); in deSocket_shutdown()
635 if (sock->state == DE_SOCKETSTATE_DISCONNECTED || sock->state == DE_SOCKETSTATE_CLOSED) in deSocket_shutdown()
637 deMutex_unlock(sock->stateLock); in deSocket_shutdown()
644 channels &= sock->openChannels; in deSocket_shutdown()
648 deMutex_unlock(sock->stateLock); in deSocket_shutdown()
663 if (shutdown(sock->handle, how) == 0) in deSocket_shutdown()
674 deMutex_unlock(sock->stateLock); in deSocket_shutdown()
690 if (shutdown(sock->handle, how) == 0) in deSocket_shutdown()
698 deMutex_unlock(sock->stateLock); in deSocket_shutdown()
705 sock->openChannels &= ~closedChannels; in deSocket_shutdown()
706 if (sock->openChannels == 0) in deSocket_shutdown()
707 sock->state = DE_SOCKETSTATE_DISCONNECTED; in deSocket_shutdown()
709 deMutex_unlock(sock->stateLock); in deSocket_shutdown()
713 bool deSocket_close(deSocket *sock) in deSocket_close() argument
715 deMutex_lock(sock->stateLock); in deSocket_close()
717 if (sock->state == DE_SOCKETSTATE_CLOSED) in deSocket_close()
719 deMutex_unlock(sock->stateLock); in deSocket_close()
724 if (sock->state == DE_SOCKETSTATE_LISTENING) in deSocket_close()
727 shutdown(sock->handle, SHUT_RDWR); in deSocket_close()
732 if (closesocket(sock->handle) != 0) in deSocket_close()
735 if (close(sock->handle) != 0) in deSocket_close()
738 sock->state = DE_SOCKETSTATE_CLOSED; in deSocket_close()
739 sock->handle = DE_INVALID_SOCKET_HANDLE; in deSocket_close()
740 sock->openChannels = 0; in deSocket_close()
742 deMutex_unlock(sock->stateLock); in deSocket_close()
784 void deSocket_setChannelsClosed(deSocket *sock, uint32_t channels) in deSocket_setChannelsClosed() argument
786 deMutex_lock(sock->stateLock); in deSocket_setChannelsClosed()
788 sock->openChannels &= ~channels; in deSocket_setChannelsClosed()
789 if (sock->openChannels == 0) in deSocket_setChannelsClosed()
790 sock->state = DE_SOCKETSTATE_DISCONNECTED; in deSocket_setChannelsClosed()
792 deMutex_unlock(sock->stateLock); in deSocket_setChannelsClosed()
795 deSocketResult deSocket_send(deSocket *sock, const void *buf, size_t bufSize, size_t *numSentPtr) in deSocket_send() argument
797 int numSent = (int)send(sock->handle, (const char *)buf, (NativeSize)bufSize, 0); in deSocket_send()
805 deSocket_setChannelsClosed(sock, DE_SOCKETCHANNEL_SEND); in deSocket_send()
807 deSocket_setChannelsClosed(sock, DE_SOCKETCHANNEL_BOTH); in deSocket_send()
812 deSocketResult deSocket_receive(deSocket *sock, void *buf, size_t bufSize, size_t *numReceivedPtr) in deSocket_receive() argument
814 int numRecv = (int)recv(sock->handle, (char *)buf, (NativeSize)bufSize, 0); in deSocket_receive()
822 deSocket_setChannelsClosed(sock, DE_SOCKETCHANNEL_RECEIVE); in deSocket_receive()
824 deSocket_setChannelsClosed(sock, DE_SOCKETCHANNEL_BOTH); in deSocket_receive()