/*
 * Null implementation of DeferredSocketOpener. Doesn't even bother to
 * allocate and free itself: there's just one static implementation
 * which we hand out to any caller.
 */

#include "putty.h"

static void null_opener_free(DeferredSocketOpener *opener) {}

static const DeferredSocketOpenerVtable NullOpener_vt = {
    .free = null_opener_free,
};

static DeferredSocketOpener null_opener = { .vt = &NullOpener_vt };

DeferredSocketOpener *null_deferred_socket_opener(void)
{
    return &null_opener;
}