nopoll_bool on_connection_opened (noPollCtx * ctx, noPollConn * conn, noPollPtr user_data) { /* set connection close */ nopoll_conn_set_on_close (conn, __nopoll_regression_on_close, NULL); if (! nopoll_conn_set_sock_block (nopoll_conn_socket (conn), nopoll_false)) { printf ("ERROR: failed to configure non-blocking state to connection..\n"); return nopoll_false; } /* end if */ /* check to reject */ if (nopoll_cmp (nopoll_conn_get_origin (conn), "http://deny.aspl.es")) { printf ("INFO: rejected connection from %s, with Host: %s and Origin: %s\n", nopoll_conn_host (conn), nopoll_conn_get_host_header (conn), nopoll_conn_get_origin (conn)); return nopoll_false; } /* end if */ /* get protocol to reply an especific case. This is an example on how to detect protocols requested by the client and how to reply with a particular value at the server. */ printf ("Requested protocol: %s\n", nopoll_conn_get_requested_protocol (conn)); if (nopoll_cmp (nopoll_conn_get_requested_protocol (conn), "hello-protocol")) { /* set hello-protocol-response */ nopoll_conn_set_accepted_protocol (conn, "hello-protocol-response"); } /* end if */ /* notify connection accepted */ /* printf ("INFO: connection received from %s, with Host: %s and Origin: %s\n", nopoll_conn_host (conn), nopoll_conn_get_host_header (conn), nopoll_conn_get_origin (conn)); */ return nopoll_true; }
nopoll_bool __myqtt_web_socket_listener_on_ready (noPollCtx * ctx, noPollConn * nopoll_conn, noPollPtr user_data) { MyQttConn * conn = user_data; /* setup websocket header */ myqtt_conn_set_server_name (conn, nopoll_conn_get_host_header (nopoll_conn)); /* check if we have TLS running to set that flag in the expected place */ if (nopoll_conn_is_tls_on (nopoll_conn)) conn->tls_on = axl_true; /* signal it */ return nopoll_true; /* accept connection */ }