int main(int argc, char *argv[]) { bool enough_args; enough_args = checkargs(argc); if(!enough_args) { return false; } //Create a nopoll context noPollCtx * ctx = nopoll_ctx_new(); if(! ctx) { //handle error here } noPollConn * listener = nopoll_listener_new (ctx, argv[1], argv[2]); //noPollConn * listener = nopoll_listener_new (ctx,"172.23.153.112" , "50004"); if(! nopoll_conn_is_ok (listener)) { //handle error here printf("not okay"); } nopoll_ctx_set_on_msg(ctx, listener_on_message, NULL); nopoll_loop_wait(ctx,0); // release the context printf("got here"); nopoll_ctx_unref(ctx); }
int create_listener(const char * port) { memset(serverResponseBuffer, 0xab, 33000); instanceID = strdup("server"); noPollCtx * ctx = nopoll_ctx_new (); if (!ctx) { LogPrintf("Could not create context"); return 1; } if (debug_nopoll) { nopoll_log_set_handler(ctx, noPollLogger, NULL); } noPollConn * listener = nopoll_listener_new(ctx, "0.0.0.0", port); if (!nopoll_conn_is_ok (listener)) { LogPrintf("Could not listen on port %s", port); return 1; } LogPrintf("noPoll listener started at: %s:%s", nopoll_conn_host(listener), nopoll_conn_port(listener)); nopoll_ctx_set_on_msg(ctx, listener_on_message, NULL); nopoll_loop_wait(ctx, 0); nopoll_ctx_unref(ctx); return 0; }
int main (int argc, char ** argv) { noPollConn * listener; noPollConn * listener_6; noPollConn * listener2; noPollConn * listener_62; #if defined(NOPOLL_HAVE_SSLv23_ENABLED) noPollConn * listener3; #endif #if defined(NOPOLL_HAVE_SSLv3_ENABLED) noPollConn * listener4; #endif #if defined(NOPOLL_HAVE_TLSv11_ENABLED) noPollConn * listener5; noPollConn * listener_65; #endif noPollConn * listener6; #if defined(NOPOLL_HAVE_TLSv12_ENABLED) noPollConn * listener7; #endif int iterator; noPollConnOpts * opts; signal (SIGTERM, __terminate_listener); #if defined(__NOPOLL_PTHREAD_SUPPORT__) printf ("INFO: install default threading functions to check noPoll locking code..\n"); nopoll_thread_handlers (__nopoll_regtest_mutex_create, __nopoll_regtest_mutex_destroy, __nopoll_regtest_mutex_lock, __nopoll_regtest_mutex_unlock); #endif /* create the context */ ctx = nopoll_ctx_new (); iterator = 1; while (iterator < argc) { /* check for debug */ printf ("Checking agument: %s\n", argv[iterator]); if (nopoll_cmp (argv[iterator], "--debug")) { printf ("Activating debug..\n"); nopoll_log_enable (ctx, nopoll_true); #if !defined(NOPOLL_OS_WIN32) nopoll_log_color_enable (ctx, nopoll_true); #endif } /* end if */ /* next position */ iterator++; } /* call to create a listener */ listener = nopoll_listener_new (ctx, "0.0.0.0", "1234"); if (! nopoll_conn_is_ok (listener)) { printf ("ERROR: Expected to find proper listener connection status, but found..\n"); return -1; } printf ("noPoll listener started at: %s:%s (refs: %d)..\n", nopoll_conn_host (listener), nopoll_conn_port (listener), nopoll_conn_ref_count (listener)); /* call to create a listener */ listener_6 = nopoll_listener_new6 (ctx, "::1", "2234"); if (! nopoll_conn_is_ok (listener_6)) { printf ("ERROR: Expected to find proper listener connection status, but found (IPv6 -- .1.1)..\n"); return -1; } /* end if */ printf ("noPoll listener started at (IPv6): %s:%s (refs: %d)..\n", nopoll_conn_host (listener_6), nopoll_conn_port (listener_6), nopoll_conn_ref_count (listener_6)); /* now start a TLS version */ printf ("Test: starting listener with TLS (TLSv1) at :1235\n"); listener2 = nopoll_listener_tls_new (ctx, "0.0.0.0", "1235"); if (! nopoll_conn_is_ok (listener2)) { printf ("ERROR: Expected to find proper listener TLS connection status, but found..\n"); return -1; } /* end if */ /* configure certificates to be used by this listener */ if (! nopoll_listener_set_certificate (listener2, "test-certificate.crt", "test-private.key", NULL)) { printf ("ERROR: unable to configure certificates for TLS websocket..\n"); return -1; } /* register certificates at context level */ if (! nopoll_ctx_set_certificate (ctx, NULL, "test-certificate.crt", "test-private.key", NULL)) { printf ("ERROR: unable to setup certificates at context level..\n"); return -1; } /* now start a TLS version */ printf ("Test: starting listener with TLS IPv6 (TLSv1) at :2235\n"); listener_62 = nopoll_listener_tls_new6 (ctx, "::1", "2235"); if (! nopoll_conn_is_ok (listener_62)) { printf ("ERROR: Expected to find proper listener TLS connection status, but found..\n"); return -1; } /* end if */ /* configure certificates to be used by this listener */ if (! nopoll_listener_set_certificate (listener_62, "test-certificate.crt", "test-private.key", NULL)) { printf ("ERROR: unable to configure certificates for TLS websocket..\n"); return -1; } /* register certificates at context level */ if (! nopoll_ctx_set_certificate (ctx, NULL, "test-certificate.crt", "test-private.key", NULL)) { printf ("ERROR: unable to setup certificates at context level..\n"); return -1; } #if defined(NOPOLL_HAVE_SSLv23_ENABLED) /* start listener with sslv23 */ printf ("Test: starting listener with TLS (SSLv23) at :1236 (all methods)\n"); opts = nopoll_conn_opts_new (); nopoll_conn_opts_set_ssl_protocol (opts, NOPOLL_METHOD_SSLV23); listener3 = nopoll_listener_tls_new_opts (ctx, opts, "0.0.0.0", "1236"); if (! nopoll_conn_is_ok (listener3)) { printf ("ERROR: Expected to find proper listener TLS connection status (:1236, SSLv23), but found..\n"); return -1; } /* end if */ #endif #if defined(NOPOLL_HAVE_SSLv3_ENABLED) printf ("Test: starting listener with TLS (SSLv3) at :1237\n"); opts = nopoll_conn_opts_new (); nopoll_conn_opts_set_ssl_protocol (opts, NOPOLL_METHOD_SSLV3); listener4 = nopoll_listener_tls_new_opts (ctx, opts, "0.0.0.0", "1237"); if (! nopoll_conn_is_ok (listener4)) { printf ("ERROR: Expected to find proper listener TLS connection status (:1237, SSLv3), but found..\n"); return -1; } /* end if */ #endif #if defined(NOPOLL_HAVE_TLSv11_ENABLED) printf ("Test: starting listener with TLS (TLSv1.1) at :1238\n"); opts = nopoll_conn_opts_new (); nopoll_conn_opts_set_ssl_protocol (opts, NOPOLL_METHOD_TLSV1_1); listener5 = nopoll_listener_tls_new_opts (ctx, opts, "0.0.0.0", "1238"); if (! nopoll_conn_is_ok (listener5)) { printf ("ERROR: Expected to find proper listener TLS connection status (:1238, TLSv1.1), but found..\n"); return -1; } /* end if */ printf ("Test: starting listener with TLS (TLSv1.1) (IPv6) at :2238\n"); opts = nopoll_conn_opts_new (); nopoll_conn_opts_set_ssl_protocol (opts, NOPOLL_METHOD_TLSV1_1); listener_65 = nopoll_listener_tls_new_opts6 (ctx, opts, "::1", "2238"); if (! nopoll_conn_is_ok (listener_65)) { printf ("ERROR: Expected to find proper listener TLS connection status (::1:2238, TLSv1.1, IPv6), but found..\n"); return -1; } /* end if */ #endif #if defined(NOPOLL_HAVE_TLSv12_ENABLED) printf ("Test: starting listener with TLS (TLSv1.2) at :1240\n"); opts = nopoll_conn_opts_new (); nopoll_conn_opts_set_ssl_protocol (opts, NOPOLL_METHOD_TLSV1_2); listener7 = nopoll_listener_tls_new_opts (ctx, opts, "0.0.0.0", "1240"); if (! nopoll_conn_is_ok (listener7)) { printf ("ERROR: Expected to find proper listener TLS connection status (:1240, TLSv1.2), but found..\n"); return -1; } /* end if */ #endif opts = nopoll_conn_opts_new (); /* configure server certificates (server.pem) signed by the * provided ca (root.pem) also configured in the last * parameter */ if (! nopoll_conn_opts_set_ssl_certs (opts, "server.pem", "server.pem", NULL, "root.pem")) { printf ("ERROR: unable to setup certificates...\n"); return -1; } /* configure peer verification */ nopoll_conn_opts_ssl_peer_verify (opts, nopoll_true); listener6 = nopoll_listener_tls_new_opts (ctx, opts, "0.0.0.0", "1239"); if (! nopoll_conn_is_ok (listener6)) { printf ("ERROR: Expected to find proper listener TLS connection status (:1236, SSLv23), but found..\n"); return -1; } /* end if */ /* configure ssl context creator */ /* nopoll_ctx_set_ssl_context_creator (ctx, ssl_context_creator, NULL); */ /* set on message received */ nopoll_ctx_set_on_msg (ctx, listener_on_message, NULL); /* set on open */ nopoll_ctx_set_on_open (ctx, on_connection_opened, NULL); /* process events */ nopoll_loop_wait (ctx, 0); /* unref connection */ nopoll_conn_close (listener); nopoll_conn_close (listener_6); /* ipv6 */ nopoll_conn_close (listener2); nopoll_conn_close (listener_62); /* ipv6 */ #if defined(NOPOLL_HAVE_SSLv23_ENABLED) nopoll_conn_close (listener3); #endif #if defined(NOPOLL_HAVE_SSLv3_ENABLED) nopoll_conn_close (listener4); #endif #if defined(NOPOLL_HAVE_TLSv12_ENABLED) nopoll_conn_close (listener5); nopoll_conn_close (listener_65); #endif nopoll_conn_close (listener6); #if defined(NOPOLL_HAVE_TLSv12_ENABLED) nopoll_conn_close (listener7); #endif /* finish */ printf ("Listener: finishing references: %d\n", nopoll_ctx_ref_count (ctx)); if (previous_msg) { printf ("..reference counting for previous msg: %d\n", nopoll_msg_ref_count (previous_msg)); nopoll_msg_unref (previous_msg); } /* end if */ nopoll_ctx_unref (ctx); /* call to release all pending memory allocated as a * consequence of using nopoll (especially TLS) */ nopoll_cleanup_library (); return 0; }