Skip to content

ListenerClose

Description

Close the listener fd. Safe to call on a zeroed Listener.

Success

Listener is closed and zeroed.

Failure

Function cannot fail; close errors are logged at error level but do not propagate (the fd is gone either way).

Usage example (Cross-references)

Usage examples (Cross-references)
    }
    
    void ListenerClose(Listener *self) {
        if (!self) {
            return;
    
            LOG_INFO("beam shutting down");
            ListenerClose(&listener);
        }
        StrDeinit(&s);
    
        ListenerClose(&listener);
        DefaultAllocatorDeinit(&alloc);
        return ok;
        SocketAddr local;
        if (!ListenerLocalAddr(&listener, &local)) {
            ListenerClose(&listener);
            DefaultAllocatorDeinit(&alloc);
            return false;
        StrDeinit(&local_str);
        if (!parsed) {
            ListenerClose(&listener);
            DefaultAllocatorDeinit(&alloc);
            return false;
    
        if (!SocketConnect(&client, SOCKET_KIND_TCP, &connect_addr)) {
            ListenerClose(&listener);
            DefaultAllocatorDeinit(&alloc);
            return false;
        if (!ListenerAccept(&listener, &server)) {
            SocketClose(&client);
            ListenerClose(&listener);
            DefaultAllocatorDeinit(&alloc);
            return false;
            SocketClose(&server);
            SocketClose(&client);
            ListenerClose(&listener);
            DefaultAllocatorDeinit(&alloc);
            return false;
        SocketClose(&server);
        SocketClose(&client);
        ListenerClose(&listener);
        DefaultAllocatorDeinit(&alloc);
        return ok;
        SocketAddr local;
        if (!ListenerLocalAddr(&p.listener, &local)) {
            ListenerClose(&p.listener);
            return p;
        }
        StrDeinit(&local_str);
        if (!parsed) {
            ListenerClose(&p.listener);
            return p;
        }
    
        if (!SocketConnect(&p.client, SOCKET_KIND_TCP, &connect_addr)) {
            ListenerClose(&p.listener);
            return p;
        }
        if (!ListenerAccept(&p.listener, &p.server)) {
            SocketClose(&p.client);
            ListenerClose(&p.listener);
            return p;
        }
        SocketClose(&p->server);
        SocketClose(&p->client);
        ListenerClose(&p->listener);
    }
    
        SocketClose(&p.server);
        ListenerClose(&p.listener);
        DefaultAllocatorDeinit(&alloc);
        return ok;
        StrDeinit(&s);
    
        ListenerClose(&listener);
        DefaultAllocatorDeinit(&alloc);
        return ok;
        StrDeinit(&s);
    
        ListenerClose(&listener);
        DefaultAllocatorDeinit(&alloc);
        return ok;
        SocketAddr local;
        if (!ListenerLocalAddr(&listener, &local)) {
            ListenerClose(&listener);
            DefaultAllocatorDeinit(&alloc);
            return false;
        StrDeinit(&local_str);
        if (!parsed) {
            ListenerClose(&listener);
            DefaultAllocatorDeinit(&alloc);
            return false;
        Socket client = {0};
        if (!SocketConnect(&client, SOCKET_KIND_TCP, &connect_addr)) {
            ListenerClose(&listener);
            DefaultAllocatorDeinit(&alloc);
            return false;
        SocketClose(&server);
        SocketClose(&client);
        ListenerClose(&listener);
        DefaultAllocatorDeinit(&alloc);
        return ok;
        bool set_ok = SocketSetNonBlocking(listener.fd, true);
    
        ListenerClose(&listener);
        return set_ok;
    }
        SocketAddr local;
        if (!ListenerLocalAddr(listener, &local)) {
            ListenerClose(listener);
            return false;
        }
        StrDeinit(&local_str);
        if (!parsed) {
            ListenerClose(listener);
            return false;
        }
    
        if (!SocketConnect(client, SOCKET_KIND_TCP, &connect_addr)) {
            ListenerClose(listener);
            return false;
        }
        if (!ListenerAccept(listener, server)) {
            SocketClose(client);
            ListenerClose(listener);
            return false;
        }
        SocketClose(&server);
        SocketClose(&client);
        ListenerClose(&listener);
        DefaultAllocatorDeinit(&alloc);
        return ok;
    
        SocketClose(&server);
        ListenerClose(&listener);
        DefaultAllocatorDeinit(&alloc);
        return ok;
        SocketClose(&server);
        SocketClose(&client);
        ListenerClose(&listener);
        DefaultAllocatorDeinit(&alloc);
        return ok;
        SocketClose(&server);
        SocketClose(&client);
        ListenerClose(&listener);
        DefaultAllocatorDeinit(&alloc);
        return ok;
        SocketClose(&server);
        SocketClose(&client);
        ListenerClose(&listener);
        DefaultAllocatorDeinit(&alloc);
        return ok;
        SocketClose(&server);
        SocketClose(&client);
        ListenerClose(&listener);
        DefaultAllocatorDeinit(&alloc);
        return ok;
        SocketClose(&server);
        SocketClose(&client);
        ListenerClose(&listener);
        DefaultAllocatorDeinit(&alloc);
        return ok;
Last updated on