X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=lib%2Fvconn.c;h=be96ef9a92151695331f121204a8aad5cdd3e50f;hb=cf6207b610f15e73984e94c6c84ee07730ec746b;hp=2fedc2ebc5f449008f6626da3c9427f3a8e65f3c;hpb=9df2b7bb71e50e05f63789658c91a73c175b6787;p=openvswitch diff --git a/lib/vconn.c b/lib/vconn.c index 2fedc2eb..be96ef9a 100644 --- a/lib/vconn.c +++ b/lib/vconn.c @@ -37,6 +37,10 @@ static struct vconn_class *vconn_classes[] = { #ifdef HAVE_NETLINK &netlink_vconn_class, #endif +#ifdef HAVE_OPENSSL + &ssl_vconn_class, + &pssl_vconn_class, +#endif }; /* Check the validity of the vconn class structures. */ @@ -116,11 +120,16 @@ vconn_is_passive(const struct vconn *vconn) /* Initializes 'pfd->fd' and 'pfd->events' appropriately so that poll() will * wake up when the connection becomes available for the operations specified - * in 'want', or for performing the vconn's needed internal processing. */ -void + * in 'want', or for performing the vconn's needed internal processing. + * + * Normally returns false. Returns true to indicate that no blocking should + * happen in poll() because the connection is available for some operation + * specified in 'want' but that status cannot be detected via poll() and thus + * poll() could block forever otherwise. */ +bool vconn_prepoll(struct vconn *vconn, int want, struct pollfd *pollfd) { - (vconn->class->prepoll)(vconn, want, pollfd); + return (vconn->class->prepoll)(vconn, want, pollfd); } /* Perform any internal processing needed by the connections. The vconn file