From 9c79210b7f6acb811fc14d61b476200b2af010e9 Mon Sep 17 00:00:00 2001 From: Garrett D'Amore Date: Sat, 17 Mar 2018 11:42:01 -0700 Subject: man page updates for tip --- man/tip/index.html | 745 ++++++++---- man/tip/libnng.3.html | 1440 ++++++++++++++++++++++++ man/tip/libnng.html | 1432 ----------------------- man/tip/nng.7.html | 770 +++++++++++++ man/tip/nng.html | 768 ------------- man/tip/nng_aio.5.html | 593 ++++++++++ man/tip/nng_aio_abort.3.html | 586 ++++++++++ man/tip/nng_aio_abort.html | 584 ---------- man/tip/nng_aio_alloc.3.html | 627 +++++++++++ man/tip/nng_aio_alloc.html | 624 ---------- man/tip/nng_aio_cancel.3.html | 599 ++++++++++ man/tip/nng_aio_cancel.html | 597 ---------- man/tip/nng_aio_count.3.html | 602 ++++++++++ man/tip/nng_aio_count.html | 600 ---------- man/tip/nng_aio_finish.3.html | 608 ++++++++++ man/tip/nng_aio_finish.html | 605 ---------- man/tip/nng_aio_free.3.html | 576 ++++++++++ man/tip/nng_aio_free.html | 575 ---------- man/tip/nng_aio_get_input.3.html | 583 ++++++++++ man/tip/nng_aio_get_input.html | 581 ---------- man/tip/nng_aio_get_msg.3.html | 588 ++++++++++ man/tip/nng_aio_get_output.3.html | 606 ++++++++++ man/tip/nng_aio_get_output.html | 605 ---------- man/tip/nng_aio_result.3.html | 606 ++++++++++ man/tip/nng_aio_result.html | 604 ---------- man/tip/nng_aio_set_input.3.html | 615 ++++++++++ man/tip/nng_aio_set_input.html | 615 ---------- man/tip/nng_aio_set_iov.3.html | 616 ++++++++++ man/tip/nng_aio_set_iov.html | 613 ---------- man/tip/nng_aio_set_msg.3.html | 586 ++++++++++ man/tip/nng_aio_set_output.3.html | 602 ++++++++++ man/tip/nng_aio_set_output.html | 601 ---------- man/tip/nng_aio_set_timeout.3.html | 605 ++++++++++ man/tip/nng_aio_set_timeout.html | 601 ---------- man/tip/nng_aio_stop.3.html | 596 ++++++++++ man/tip/nng_aio_stop.html | 595 ---------- man/tip/nng_aio_wait.3.html | 579 ++++++++++ man/tip/nng_aio_wait.html | 577 ---------- man/tip/nng_alloc.3.html | 599 ++++++++++ man/tip/nng_alloc.html | 598 ---------- man/tip/nng_bus.7.html | 630 +++++++++++ man/tip/nng_bus.html | 627 ----------- man/tip/nng_bus_open.3.html | 582 ++++++++++ man/tip/nng_close.3.html | 586 ++++++++++ man/tip/nng_close.html | 584 ---------- man/tip/nng_compat.3compat.html | 725 ++++++++++++ man/tip/nng_device.3.html | 690 ++++++++++++ man/tip/nng_dial.3.html | 677 +++++++++++ man/tip/nng_dial.html | 671 ----------- man/tip/nng_dialer.5.html | 610 ++++++++++ man/tip/nng_dialer_close.3.html | 591 ++++++++++ man/tip/nng_dialer_close.html | 589 ---------- man/tip/nng_dialer_create.3.html | 642 +++++++++++ man/tip/nng_dialer_create.html | 638 ----------- man/tip/nng_dialer_getopt.3.html | 677 +++++++++++ man/tip/nng_dialer_getopt.html | 657 ----------- man/tip/nng_dialer_setopt.3.html | 681 +++++++++++ man/tip/nng_dialer_setopt.html | 671 ----------- man/tip/nng_dialer_start.3.html | 653 +++++++++++ man/tip/nng_dialer_start.html | 652 ----------- man/tip/nng_duration.5.html | 577 ++++++++++ man/tip/nng_free.3.html | 602 ++++++++++ man/tip/nng_free.html | 601 ---------- man/tip/nng_getopt.3.html | 696 ++++++++++++ man/tip/nng_http_client_alloc.3http.html | 585 ++++++++++ man/tip/nng_http_client_alloc.html | 585 ---------- man/tip/nng_http_client_connect.3http.html | 649 +++++++++++ man/tip/nng_http_client_connect.html | 649 ----------- man/tip/nng_http_client_free.3http.html | 587 ++++++++++ man/tip/nng_http_client_free.html | 587 ---------- man/tip/nng_http_client_get_tls.3http.html | 589 ++++++++++ man/tip/nng_http_client_get_tls.html | 589 ---------- man/tip/nng_http_client_set_tls.3http.html | 614 ++++++++++ man/tip/nng_http_client_set_tls.html | 615 ---------- man/tip/nng_http_conn_close.3http.html | 577 ++++++++++ man/tip/nng_http_conn_close.html | 577 ---------- man/tip/nng_http_conn_read.3http.html | 650 +++++++++++ man/tip/nng_http_conn_read.html | 648 ----------- man/tip/nng_http_conn_read_all.3http.html | 651 +++++++++++ man/tip/nng_http_conn_read_all.html | 651 ----------- man/tip/nng_http_conn_read_req.3http.html | 625 ++++++++++ man/tip/nng_http_conn_read_req.html | 624 ---------- man/tip/nng_http_conn_read_res.3http.html | 626 ++++++++++ man/tip/nng_http_conn_read_res.html | 624 ---------- man/tip/nng_http_conn_write.3http.html | 649 +++++++++++ man/tip/nng_http_conn_write.html | 649 ----------- man/tip/nng_http_conn_write_all.3http.html | 689 ++++++++++++ man/tip/nng_http_conn_write_all.html | 689 ------------ man/tip/nng_http_conn_write_req.3http.html | 613 ++++++++++ man/tip/nng_http_conn_write_req.html | 612 ---------- man/tip/nng_http_conn_write_res.3http.html | 629 +++++++++++ man/tip/nng_http_conn_write_res.html | 628 ----------- man/tip/nng_http_handler_alloc.3http.html | 726 ++++++++++++ man/tip/nng_http_handler_alloc.html | 716 ------------ man/tip/nng_http_handler_free.3http.html | 586 ++++++++++ man/tip/nng_http_handler_free.html | 586 ---------- man/tip/nng_http_handler_get_data.3http.html | 576 ++++++++++ man/tip/nng_http_handler_get_data.html | 576 ---------- man/tip/nng_http_handler_set_data.3http.html | 592 ++++++++++ man/tip/nng_http_handler_set_data.html | 591 ---------- man/tip/nng_http_handler_set_host.3http.html | 616 ++++++++++ man/tip/nng_http_handler_set_host.html | 615 ---------- man/tip/nng_http_handler_set_method.3http.html | 618 ++++++++++ man/tip/nng_http_handler_set_method.html | 617 ---------- man/tip/nng_http_handler_set_tree.3http.html | 597 ++++++++++ man/tip/nng_http_handler_set_tree.html | 597 ---------- man/tip/nng_http_hijack.3http.html | 627 +++++++++++ man/tip/nng_http_hijack.html | 626 ---------- man/tip/nng_http_req_add_header.3http.html | 624 ++++++++++ man/tip/nng_http_req_add_header.html | 623 ---------- man/tip/nng_http_req_alloc.3http.html | 599 ++++++++++ man/tip/nng_http_req_alloc.html | 598 ---------- man/tip/nng_http_req_copy_data.3http.html | 630 +++++++++++ man/tip/nng_http_req_copy_data.html | 630 ----------- man/tip/nng_http_req_del_header.3http.html | 590 ++++++++++ man/tip/nng_http_req_del_header.html | 589 ---------- man/tip/nng_http_req_free.3http.html | 572 ++++++++++ man/tip/nng_http_req_free.html | 572 ---------- man/tip/nng_http_req_get_header.3http.html | 581 ++++++++++ man/tip/nng_http_req_get_header.html | 580 ---------- man/tip/nng_http_req_get_method.3http.html | 574 ++++++++++ man/tip/nng_http_req_get_method.html | 573 ---------- man/tip/nng_http_req_get_uri.3http.html | 576 ++++++++++ man/tip/nng_http_req_get_uri.html | 575 ---------- man/tip/nng_http_req_get_version.3http.html | 573 ++++++++++ man/tip/nng_http_req_get_version.html | 573 ---------- man/tip/nng_http_req_set_data.3http.html | 632 +++++++++++ man/tip/nng_http_req_set_data.html | 632 ----------- man/tip/nng_http_req_set_header.3http.html | 606 ++++++++++ man/tip/nng_http_req_set_header.html | 604 ---------- man/tip/nng_http_req_set_method.3http.html | 590 ++++++++++ man/tip/nng_http_req_set_method.html | 590 ---------- man/tip/nng_http_req_set_uri.3http.html | 616 ++++++++++ man/tip/nng_http_req_set_uri.html | 614 ---------- man/tip/nng_http_req_set_version.3http.html | 614 ++++++++++ man/tip/nng_http_req_set_version.html | 613 ---------- man/tip/nng_http_res_add_header.3http.html | 624 ++++++++++ man/tip/nng_http_res_add_header.html | 623 ---------- man/tip/nng_http_res_alloc.3http.html | 613 ++++++++++ man/tip/nng_http_res_alloc.html | 612 ---------- man/tip/nng_http_res_alloc_error.3http.html | 604 ++++++++++ man/tip/nng_http_res_alloc_error.html | 602 ---------- man/tip/nng_http_res_copy_data.3http.html | 630 +++++++++++ man/tip/nng_http_res_copy_data.html | 630 ----------- man/tip/nng_http_res_del_header.3http.html | 589 ++++++++++ man/tip/nng_http_res_del_header.html | 589 ---------- man/tip/nng_http_res_free.3http.html | 572 ++++++++++ man/tip/nng_http_res_free.html | 572 ---------- man/tip/nng_http_res_get_header.3http.html | 581 ++++++++++ man/tip/nng_http_res_get_header.html | 580 ---------- man/tip/nng_http_res_get_reason.3http.html | 577 ++++++++++ man/tip/nng_http_res_get_reason.html | 576 ---------- man/tip/nng_http_res_get_status.3http.html | 657 +++++++++++ man/tip/nng_http_res_get_status.html | 657 ----------- man/tip/nng_http_res_get_version.3http.html | 573 ++++++++++ man/tip/nng_http_res_get_version.html | 573 ---------- man/tip/nng_http_res_set_data.3http.html | 632 +++++++++++ man/tip/nng_http_res_set_data.html | 632 ----------- man/tip/nng_http_res_set_header.3http.html | 606 ++++++++++ man/tip/nng_http_res_set_header.html | 604 ---------- man/tip/nng_http_res_set_reason.3http.html | 604 ++++++++++ man/tip/nng_http_res_set_reason.html | 604 ---------- man/tip/nng_http_res_set_status.3http.html | 670 +++++++++++ man/tip/nng_http_res_set_status.html | 670 ----------- man/tip/nng_http_res_set_version.3http.html | 614 ++++++++++ man/tip/nng_http_res_set_version.html | 613 ---------- man/tip/nng_http_server_add_handler.3http.html | 600 ++++++++++ man/tip/nng_http_server_add_handler.html | 600 ---------- man/tip/nng_http_server_del_handler.3http.html | 587 ++++++++++ man/tip/nng_http_server_del_handler.html | 587 ---------- man/tip/nng_http_server_get_tls.3http.html | 589 ++++++++++ man/tip/nng_http_server_get_tls.html | 589 ---------- man/tip/nng_http_server_hold.3http.html | 614 ++++++++++ man/tip/nng_http_server_hold.html | 612 ---------- man/tip/nng_http_server_release.3http.html | 594 ++++++++++ man/tip/nng_http_server_release.html | 594 ---------- man/tip/nng_http_server_set_tls.3http.html | 623 ++++++++++ man/tip/nng_http_server_set_tls.html | 623 ---------- man/tip/nng_http_server_start.3http.html | 594 ++++++++++ man/tip/nng_http_server_start.html | 594 ---------- man/tip/nng_http_server_stop.3http.html | 574 ++++++++++ man/tip/nng_http_server_stop.html | 574 ---------- man/tip/nng_inproc.7.html | 607 ++++++++++ man/tip/nng_inproc.html | 632 ----------- man/tip/nng_inproc_register.3.html | 580 ++++++++++ man/tip/nng_iov.5.html | 582 ++++++++++ man/tip/nng_ipc.7.html | 636 +++++++++++ man/tip/nng_ipc.html | 643 ----------- man/tip/nng_ipc_register.3.html | 580 ++++++++++ man/tip/nng_listen.3.html | 656 +++++++++++ man/tip/nng_listen.html | 651 ----------- man/tip/nng_listener.5.html | 606 ++++++++++ man/tip/nng_listener_close.3.html | 591 ++++++++++ man/tip/nng_listener_close.html | 589 ---------- man/tip/nng_listener_create.3.html | 639 +++++++++++ man/tip/nng_listener_create.html | 636 ----------- man/tip/nng_listener_getopt.3.html | 664 +++++++++++ man/tip/nng_listener_getopt.html | 658 ----------- man/tip/nng_listener_setopt.3.html | 679 +++++++++++ man/tip/nng_listener_setopt.html | 671 ----------- man/tip/nng_listener_start.3.html | 616 ++++++++++ man/tip/nng_listener_start.html | 612 ---------- man/tip/nng_msg.5.html | 617 ++++++++++ man/tip/nng_msg_alloc.3.html | 586 ++++++++++ man/tip/nng_msg_alloc.html | 585 ---------- man/tip/nng_msg_append.3.html | 589 ++++++++++ man/tip/nng_msg_append.html | 587 ---------- man/tip/nng_msg_body.3.html | 599 ++++++++++ man/tip/nng_msg_body.html | 595 ---------- man/tip/nng_msg_chop.3.html | 590 ++++++++++ man/tip/nng_msg_chop.html | 589 ---------- man/tip/nng_msg_clear.3.html | 570 ++++++++++ man/tip/nng_msg_clear.html | 571 ---------- man/tip/nng_msg_dup.3.html | 582 ++++++++++ man/tip/nng_msg_dup.html | 580 ---------- man/tip/nng_msg_free.3.html | 572 ++++++++++ man/tip/nng_msg_free.html | 571 ---------- man/tip/nng_msg_get_pipe.3.html | 599 ++++++++++ man/tip/nng_msg_get_pipe.html | 596 ---------- man/tip/nng_msg_header.3.html | 607 ++++++++++ man/tip/nng_msg_header.html | 606 ---------- man/tip/nng_msg_header_append.3.html | 589 ++++++++++ man/tip/nng_msg_header_append.html | 587 ---------- man/tip/nng_msg_header_chop.3.html | 589 ++++++++++ man/tip/nng_msg_header_chop.html | 588 ---------- man/tip/nng_msg_header_clear.3.html | 571 ++++++++++ man/tip/nng_msg_header_clear.html | 571 ---------- man/tip/nng_msg_header_insert.3.html | 589 ++++++++++ man/tip/nng_msg_header_insert.html | 588 ---------- man/tip/nng_msg_header_len.3.html | 572 ++++++++++ man/tip/nng_msg_header_len.html | 571 ---------- man/tip/nng_msg_header_trim.3.html | 590 ++++++++++ man/tip/nng_msg_header_trim.html | 588 ---------- man/tip/nng_msg_insert.3.html | 605 ++++++++++ man/tip/nng_msg_insert.html | 602 ---------- man/tip/nng_msg_len.3.html | 572 ++++++++++ man/tip/nng_msg_len.html | 571 ---------- man/tip/nng_msg_realloc.3.html | 620 ++++++++++ man/tip/nng_msg_realloc.html | 616 ---------- man/tip/nng_msg_set_pipe.3.html | 589 ++++++++++ man/tip/nng_msg_set_pipe.html | 588 ---------- man/tip/nng_msg_trim.3.html | 591 ++++++++++ man/tip/nng_msg_trim.html | 589 ---------- man/tip/nng_options.5.html | 1006 +++++++++++++++++ man/tip/nng_pair.7.html | 711 ++++++++++++ man/tip/nng_pair.html | 721 ------------ man/tip/nng_pair_open.3.html | 591 ++++++++++ man/tip/nng_pipe.5.html | 589 ++++++++++ man/tip/nng_pipe_close.3.html | 597 ++++++++++ man/tip/nng_pipe_getopt.3.html | 705 ++++++++++++ man/tip/nng_pipe_getopt.html | 670 ----------- man/tip/nng_pub.7.html | 617 ++++++++++ man/tip/nng_pub.html | 613 ---------- man/tip/nng_pub_open.3.html | 583 ++++++++++ man/tip/nng_pull.7.html | 603 ++++++++++ man/tip/nng_pull.html | 600 ---------- man/tip/nng_pull_open.3.html | 583 ++++++++++ man/tip/nng_push.7.html | 619 ++++++++++ man/tip/nng_push.html | 618 ---------- man/tip/nng_push_open.3.html | 583 ++++++++++ man/tip/nng_recv.3.html | 657 +++++++++++ man/tip/nng_recv.html | 654 ----------- man/tip/nng_recv_aio.3.html | 651 +++++++++++ man/tip/nng_recvmsg.3.html | 643 +++++++++++ man/tip/nng_recvmsg.html | 643 ----------- man/tip/nng_rep.7.html | 621 ++++++++++ man/tip/nng_rep.html | 629 ----------- man/tip/nng_rep_open.3.html | 583 ++++++++++ man/tip/nng_req.7.html | 716 ++++++++++++ man/tip/nng_req.html | 714 ------------ man/tip/nng_req_open.3.html | 583 ++++++++++ man/tip/nng_respondent.7.html | 625 ++++++++++ man/tip/nng_respondent.html | 640 ----------- man/tip/nng_respondent_open.3.html | 585 ++++++++++ man/tip/nng_send.3.html | 697 ++++++++++++ man/tip/nng_send.html | 694 ------------ man/tip/nng_send_aio.3.html | 664 +++++++++++ man/tip/nng_sendmsg.3.html | 681 +++++++++++ man/tip/nng_sendmsg.html | 678 ----------- man/tip/nng_setopt.3.html | 698 ++++++++++++ man/tip/nng_sleep_aio.3.html | 592 ++++++++++ man/tip/nng_sockaddr.5.html | 635 +++++++++++ man/tip/nng_sockaddr_in.5.html | 619 ++++++++++ man/tip/nng_sockaddr_in6.5.html | 619 ++++++++++ man/tip/nng_sockaddr_inproc.5.html | 595 ++++++++++ man/tip/nng_sockaddr_ipc.5.html | 627 +++++++++++ man/tip/nng_sockaddr_zt.5.html | 630 +++++++++++ man/tip/nng_socket.5.html | 586 ++++++++++ man/tip/nng_strerror.3.html | 592 ++++++++++ man/tip/nng_strerror.html | 591 ---------- man/tip/nng_sub.7.html | 647 +++++++++++ man/tip/nng_sub.html | 644 ----------- man/tip/nng_sub_open.3.html | 583 ++++++++++ man/tip/nng_surveyor.7.html | 688 +++++++++++ man/tip/nng_surveyor.html | 658 ----------- man/tip/nng_surveyor_open.3.html | 584 ++++++++++ man/tip/nng_tcp.7.html | 659 +++++++++++ man/tip/nng_tcp.html | 691 ------------ man/tip/nng_tcp_register.3.html | 580 ++++++++++ man/tip/nng_tls.7.html | 768 +++++++++++++ man/tip/nng_tls.html | 807 ------------- man/tip/nng_tls_config_alloc.3tls.html | 614 ++++++++++ man/tip/nng_tls_config_alloc.html | 612 ---------- man/tip/nng_tls_config_auth_mode.3tls.html | 621 ++++++++++ man/tip/nng_tls_config_auth_mode.html | 619 ---------- man/tip/nng_tls_config_ca_chain.3tls.html | 626 ++++++++++ man/tip/nng_tls_config_ca_chain.html | 626 ---------- man/tip/nng_tls_config_ca_file.3tls.html | 629 +++++++++++ man/tip/nng_tls_config_ca_file.html | 627 ----------- man/tip/nng_tls_config_cert_key_file.3tls.html | 616 ++++++++++ man/tip/nng_tls_config_cert_key_file.html | 614 ---------- man/tip/nng_tls_config_free.3tls.html | 573 ++++++++++ man/tip/nng_tls_config_free.html | 573 ---------- man/tip/nng_tls_config_own_cert.3tls.html | 609 ++++++++++ man/tip/nng_tls_config_own_cert.html | 607 ---------- man/tip/nng_tls_config_server_name.3tls.html | 600 ++++++++++ man/tip/nng_tls_config_server_name.html | 598 ---------- man/tip/nng_tls_register.3.html | 580 ++++++++++ man/tip/nng_url_clone.3.html | 579 ++++++++++ man/tip/nng_url_clone.html | 579 ---------- man/tip/nng_url_free.3.html | 572 ++++++++++ man/tip/nng_url_free.html | 572 ---------- man/tip/nng_url_parse.3.html | 666 +++++++++++ man/tip/nng_url_parse.html | 666 ----------- man/tip/nng_version.3.html | 601 ++++++++++ man/tip/nng_version.html | 600 ---------- man/tip/nng_ws.7.html | 775 +++++++++++++ man/tip/nng_ws.html | 815 -------------- man/tip/nng_ws_register.3.html | 580 ++++++++++ man/tip/nng_wss_register.3.html | 580 ++++++++++ man/tip/nng_zerotier.7.html | 876 ++++++++++++++ man/tip/nng_zerotier.html | 860 -------------- man/tip/nng_zerotier_register.3.html | 580 ++++++++++ man/tip/nngcat.1.html | 994 ++++++++++++++++ man/tip/nngcat.html | 983 ---------------- 335 files changed, 117957 insertions(+), 91687 deletions(-) create mode 100644 man/tip/libnng.3.html delete mode 100644 man/tip/libnng.html create mode 100644 man/tip/nng.7.html delete mode 100644 man/tip/nng.html create mode 100644 man/tip/nng_aio.5.html create mode 100644 man/tip/nng_aio_abort.3.html delete mode 100644 man/tip/nng_aio_abort.html create mode 100644 man/tip/nng_aio_alloc.3.html delete mode 100644 man/tip/nng_aio_alloc.html create mode 100644 man/tip/nng_aio_cancel.3.html delete mode 100644 man/tip/nng_aio_cancel.html create mode 100644 man/tip/nng_aio_count.3.html delete mode 100644 man/tip/nng_aio_count.html create mode 100644 man/tip/nng_aio_finish.3.html delete mode 100644 man/tip/nng_aio_finish.html create mode 100644 man/tip/nng_aio_free.3.html delete mode 100644 man/tip/nng_aio_free.html create mode 100644 man/tip/nng_aio_get_input.3.html delete mode 100644 man/tip/nng_aio_get_input.html create mode 100644 man/tip/nng_aio_get_msg.3.html create mode 100644 man/tip/nng_aio_get_output.3.html delete mode 100644 man/tip/nng_aio_get_output.html create mode 100644 man/tip/nng_aio_result.3.html delete mode 100644 man/tip/nng_aio_result.html create mode 100644 man/tip/nng_aio_set_input.3.html delete mode 100644 man/tip/nng_aio_set_input.html create mode 100644 man/tip/nng_aio_set_iov.3.html delete mode 100644 man/tip/nng_aio_set_iov.html create mode 100644 man/tip/nng_aio_set_msg.3.html create mode 100644 man/tip/nng_aio_set_output.3.html delete mode 100644 man/tip/nng_aio_set_output.html create mode 100644 man/tip/nng_aio_set_timeout.3.html delete mode 100644 man/tip/nng_aio_set_timeout.html create mode 100644 man/tip/nng_aio_stop.3.html delete mode 100644 man/tip/nng_aio_stop.html create mode 100644 man/tip/nng_aio_wait.3.html delete mode 100644 man/tip/nng_aio_wait.html create mode 100644 man/tip/nng_alloc.3.html delete mode 100644 man/tip/nng_alloc.html create mode 100644 man/tip/nng_bus.7.html delete mode 100644 man/tip/nng_bus.html create mode 100644 man/tip/nng_bus_open.3.html create mode 100644 man/tip/nng_close.3.html delete mode 100644 man/tip/nng_close.html create mode 100644 man/tip/nng_compat.3compat.html create mode 100644 man/tip/nng_device.3.html create mode 100644 man/tip/nng_dial.3.html delete mode 100644 man/tip/nng_dial.html create mode 100644 man/tip/nng_dialer.5.html create mode 100644 man/tip/nng_dialer_close.3.html delete mode 100644 man/tip/nng_dialer_close.html create mode 100644 man/tip/nng_dialer_create.3.html delete mode 100644 man/tip/nng_dialer_create.html create mode 100644 man/tip/nng_dialer_getopt.3.html delete mode 100644 man/tip/nng_dialer_getopt.html create mode 100644 man/tip/nng_dialer_setopt.3.html delete mode 100644 man/tip/nng_dialer_setopt.html create mode 100644 man/tip/nng_dialer_start.3.html delete mode 100644 man/tip/nng_dialer_start.html create mode 100644 man/tip/nng_duration.5.html create mode 100644 man/tip/nng_free.3.html delete mode 100644 man/tip/nng_free.html create mode 100644 man/tip/nng_getopt.3.html create mode 100644 man/tip/nng_http_client_alloc.3http.html delete mode 100644 man/tip/nng_http_client_alloc.html create mode 100644 man/tip/nng_http_client_connect.3http.html delete mode 100644 man/tip/nng_http_client_connect.html create mode 100644 man/tip/nng_http_client_free.3http.html delete mode 100644 man/tip/nng_http_client_free.html create mode 100644 man/tip/nng_http_client_get_tls.3http.html delete mode 100644 man/tip/nng_http_client_get_tls.html create mode 100644 man/tip/nng_http_client_set_tls.3http.html delete mode 100644 man/tip/nng_http_client_set_tls.html create mode 100644 man/tip/nng_http_conn_close.3http.html delete mode 100644 man/tip/nng_http_conn_close.html create mode 100644 man/tip/nng_http_conn_read.3http.html delete mode 100644 man/tip/nng_http_conn_read.html create mode 100644 man/tip/nng_http_conn_read_all.3http.html delete mode 100644 man/tip/nng_http_conn_read_all.html create mode 100644 man/tip/nng_http_conn_read_req.3http.html delete mode 100644 man/tip/nng_http_conn_read_req.html create mode 100644 man/tip/nng_http_conn_read_res.3http.html delete mode 100644 man/tip/nng_http_conn_read_res.html create mode 100644 man/tip/nng_http_conn_write.3http.html delete mode 100644 man/tip/nng_http_conn_write.html create mode 100644 man/tip/nng_http_conn_write_all.3http.html delete mode 100644 man/tip/nng_http_conn_write_all.html create mode 100644 man/tip/nng_http_conn_write_req.3http.html delete mode 100644 man/tip/nng_http_conn_write_req.html create mode 100644 man/tip/nng_http_conn_write_res.3http.html delete mode 100644 man/tip/nng_http_conn_write_res.html create mode 100644 man/tip/nng_http_handler_alloc.3http.html delete mode 100644 man/tip/nng_http_handler_alloc.html create mode 100644 man/tip/nng_http_handler_free.3http.html delete mode 100644 man/tip/nng_http_handler_free.html create mode 100644 man/tip/nng_http_handler_get_data.3http.html delete mode 100644 man/tip/nng_http_handler_get_data.html create mode 100644 man/tip/nng_http_handler_set_data.3http.html delete mode 100644 man/tip/nng_http_handler_set_data.html create mode 100644 man/tip/nng_http_handler_set_host.3http.html delete mode 100644 man/tip/nng_http_handler_set_host.html create mode 100644 man/tip/nng_http_handler_set_method.3http.html delete mode 100644 man/tip/nng_http_handler_set_method.html create mode 100644 man/tip/nng_http_handler_set_tree.3http.html delete mode 100644 man/tip/nng_http_handler_set_tree.html create mode 100644 man/tip/nng_http_hijack.3http.html delete mode 100644 man/tip/nng_http_hijack.html create mode 100644 man/tip/nng_http_req_add_header.3http.html delete mode 100644 man/tip/nng_http_req_add_header.html create mode 100644 man/tip/nng_http_req_alloc.3http.html delete mode 100644 man/tip/nng_http_req_alloc.html create mode 100644 man/tip/nng_http_req_copy_data.3http.html delete mode 100644 man/tip/nng_http_req_copy_data.html create mode 100644 man/tip/nng_http_req_del_header.3http.html delete mode 100644 man/tip/nng_http_req_del_header.html create mode 100644 man/tip/nng_http_req_free.3http.html delete mode 100644 man/tip/nng_http_req_free.html create mode 100644 man/tip/nng_http_req_get_header.3http.html delete mode 100644 man/tip/nng_http_req_get_header.html create mode 100644 man/tip/nng_http_req_get_method.3http.html delete mode 100644 man/tip/nng_http_req_get_method.html create mode 100644 man/tip/nng_http_req_get_uri.3http.html delete mode 100644 man/tip/nng_http_req_get_uri.html create mode 100644 man/tip/nng_http_req_get_version.3http.html delete mode 100644 man/tip/nng_http_req_get_version.html create mode 100644 man/tip/nng_http_req_set_data.3http.html delete mode 100644 man/tip/nng_http_req_set_data.html create mode 100644 man/tip/nng_http_req_set_header.3http.html delete mode 100644 man/tip/nng_http_req_set_header.html create mode 100644 man/tip/nng_http_req_set_method.3http.html delete mode 100644 man/tip/nng_http_req_set_method.html create mode 100644 man/tip/nng_http_req_set_uri.3http.html delete mode 100644 man/tip/nng_http_req_set_uri.html create mode 100644 man/tip/nng_http_req_set_version.3http.html delete mode 100644 man/tip/nng_http_req_set_version.html create mode 100644 man/tip/nng_http_res_add_header.3http.html delete mode 100644 man/tip/nng_http_res_add_header.html create mode 100644 man/tip/nng_http_res_alloc.3http.html delete mode 100644 man/tip/nng_http_res_alloc.html create mode 100644 man/tip/nng_http_res_alloc_error.3http.html delete mode 100644 man/tip/nng_http_res_alloc_error.html create mode 100644 man/tip/nng_http_res_copy_data.3http.html delete mode 100644 man/tip/nng_http_res_copy_data.html create mode 100644 man/tip/nng_http_res_del_header.3http.html delete mode 100644 man/tip/nng_http_res_del_header.html create mode 100644 man/tip/nng_http_res_free.3http.html delete mode 100644 man/tip/nng_http_res_free.html create mode 100644 man/tip/nng_http_res_get_header.3http.html delete mode 100644 man/tip/nng_http_res_get_header.html create mode 100644 man/tip/nng_http_res_get_reason.3http.html delete mode 100644 man/tip/nng_http_res_get_reason.html create mode 100644 man/tip/nng_http_res_get_status.3http.html delete mode 100644 man/tip/nng_http_res_get_status.html create mode 100644 man/tip/nng_http_res_get_version.3http.html delete mode 100644 man/tip/nng_http_res_get_version.html create mode 100644 man/tip/nng_http_res_set_data.3http.html delete mode 100644 man/tip/nng_http_res_set_data.html create mode 100644 man/tip/nng_http_res_set_header.3http.html delete mode 100644 man/tip/nng_http_res_set_header.html create mode 100644 man/tip/nng_http_res_set_reason.3http.html delete mode 100644 man/tip/nng_http_res_set_reason.html create mode 100644 man/tip/nng_http_res_set_status.3http.html delete mode 100644 man/tip/nng_http_res_set_status.html create mode 100644 man/tip/nng_http_res_set_version.3http.html delete mode 100644 man/tip/nng_http_res_set_version.html create mode 100644 man/tip/nng_http_server_add_handler.3http.html delete mode 100644 man/tip/nng_http_server_add_handler.html create mode 100644 man/tip/nng_http_server_del_handler.3http.html delete mode 100644 man/tip/nng_http_server_del_handler.html create mode 100644 man/tip/nng_http_server_get_tls.3http.html delete mode 100644 man/tip/nng_http_server_get_tls.html create mode 100644 man/tip/nng_http_server_hold.3http.html delete mode 100644 man/tip/nng_http_server_hold.html create mode 100644 man/tip/nng_http_server_release.3http.html delete mode 100644 man/tip/nng_http_server_release.html create mode 100644 man/tip/nng_http_server_set_tls.3http.html delete mode 100644 man/tip/nng_http_server_set_tls.html create mode 100644 man/tip/nng_http_server_start.3http.html delete mode 100644 man/tip/nng_http_server_start.html create mode 100644 man/tip/nng_http_server_stop.3http.html delete mode 100644 man/tip/nng_http_server_stop.html create mode 100644 man/tip/nng_inproc.7.html delete mode 100644 man/tip/nng_inproc.html create mode 100644 man/tip/nng_inproc_register.3.html create mode 100644 man/tip/nng_iov.5.html create mode 100644 man/tip/nng_ipc.7.html delete mode 100644 man/tip/nng_ipc.html create mode 100644 man/tip/nng_ipc_register.3.html create mode 100644 man/tip/nng_listen.3.html delete mode 100644 man/tip/nng_listen.html create mode 100644 man/tip/nng_listener.5.html create mode 100644 man/tip/nng_listener_close.3.html delete mode 100644 man/tip/nng_listener_close.html create mode 100644 man/tip/nng_listener_create.3.html delete mode 100644 man/tip/nng_listener_create.html create mode 100644 man/tip/nng_listener_getopt.3.html delete mode 100644 man/tip/nng_listener_getopt.html create mode 100644 man/tip/nng_listener_setopt.3.html delete mode 100644 man/tip/nng_listener_setopt.html create mode 100644 man/tip/nng_listener_start.3.html delete mode 100644 man/tip/nng_listener_start.html create mode 100644 man/tip/nng_msg.5.html create mode 100644 man/tip/nng_msg_alloc.3.html delete mode 100644 man/tip/nng_msg_alloc.html create mode 100644 man/tip/nng_msg_append.3.html delete mode 100644 man/tip/nng_msg_append.html create mode 100644 man/tip/nng_msg_body.3.html delete mode 100644 man/tip/nng_msg_body.html create mode 100644 man/tip/nng_msg_chop.3.html delete mode 100644 man/tip/nng_msg_chop.html create mode 100644 man/tip/nng_msg_clear.3.html delete mode 100644 man/tip/nng_msg_clear.html create mode 100644 man/tip/nng_msg_dup.3.html delete mode 100644 man/tip/nng_msg_dup.html create mode 100644 man/tip/nng_msg_free.3.html delete mode 100644 man/tip/nng_msg_free.html create mode 100644 man/tip/nng_msg_get_pipe.3.html delete mode 100644 man/tip/nng_msg_get_pipe.html create mode 100644 man/tip/nng_msg_header.3.html delete mode 100644 man/tip/nng_msg_header.html create mode 100644 man/tip/nng_msg_header_append.3.html delete mode 100644 man/tip/nng_msg_header_append.html create mode 100644 man/tip/nng_msg_header_chop.3.html delete mode 100644 man/tip/nng_msg_header_chop.html create mode 100644 man/tip/nng_msg_header_clear.3.html delete mode 100644 man/tip/nng_msg_header_clear.html create mode 100644 man/tip/nng_msg_header_insert.3.html delete mode 100644 man/tip/nng_msg_header_insert.html create mode 100644 man/tip/nng_msg_header_len.3.html delete mode 100644 man/tip/nng_msg_header_len.html create mode 100644 man/tip/nng_msg_header_trim.3.html delete mode 100644 man/tip/nng_msg_header_trim.html create mode 100644 man/tip/nng_msg_insert.3.html delete mode 100644 man/tip/nng_msg_insert.html create mode 100644 man/tip/nng_msg_len.3.html delete mode 100644 man/tip/nng_msg_len.html create mode 100644 man/tip/nng_msg_realloc.3.html delete mode 100644 man/tip/nng_msg_realloc.html create mode 100644 man/tip/nng_msg_set_pipe.3.html delete mode 100644 man/tip/nng_msg_set_pipe.html create mode 100644 man/tip/nng_msg_trim.3.html delete mode 100644 man/tip/nng_msg_trim.html create mode 100644 man/tip/nng_options.5.html create mode 100644 man/tip/nng_pair.7.html delete mode 100644 man/tip/nng_pair.html create mode 100644 man/tip/nng_pair_open.3.html create mode 100644 man/tip/nng_pipe.5.html create mode 100644 man/tip/nng_pipe_close.3.html create mode 100644 man/tip/nng_pipe_getopt.3.html delete mode 100644 man/tip/nng_pipe_getopt.html create mode 100644 man/tip/nng_pub.7.html delete mode 100644 man/tip/nng_pub.html create mode 100644 man/tip/nng_pub_open.3.html create mode 100644 man/tip/nng_pull.7.html delete mode 100644 man/tip/nng_pull.html create mode 100644 man/tip/nng_pull_open.3.html create mode 100644 man/tip/nng_push.7.html delete mode 100644 man/tip/nng_push.html create mode 100644 man/tip/nng_push_open.3.html create mode 100644 man/tip/nng_recv.3.html delete mode 100644 man/tip/nng_recv.html create mode 100644 man/tip/nng_recv_aio.3.html create mode 100644 man/tip/nng_recvmsg.3.html delete mode 100644 man/tip/nng_recvmsg.html create mode 100644 man/tip/nng_rep.7.html delete mode 100644 man/tip/nng_rep.html create mode 100644 man/tip/nng_rep_open.3.html create mode 100644 man/tip/nng_req.7.html delete mode 100644 man/tip/nng_req.html create mode 100644 man/tip/nng_req_open.3.html create mode 100644 man/tip/nng_respondent.7.html delete mode 100644 man/tip/nng_respondent.html create mode 100644 man/tip/nng_respondent_open.3.html create mode 100644 man/tip/nng_send.3.html delete mode 100644 man/tip/nng_send.html create mode 100644 man/tip/nng_send_aio.3.html create mode 100644 man/tip/nng_sendmsg.3.html delete mode 100644 man/tip/nng_sendmsg.html create mode 100644 man/tip/nng_setopt.3.html create mode 100644 man/tip/nng_sleep_aio.3.html create mode 100644 man/tip/nng_sockaddr.5.html create mode 100644 man/tip/nng_sockaddr_in.5.html create mode 100644 man/tip/nng_sockaddr_in6.5.html create mode 100644 man/tip/nng_sockaddr_inproc.5.html create mode 100644 man/tip/nng_sockaddr_ipc.5.html create mode 100644 man/tip/nng_sockaddr_zt.5.html create mode 100644 man/tip/nng_socket.5.html create mode 100644 man/tip/nng_strerror.3.html delete mode 100644 man/tip/nng_strerror.html create mode 100644 man/tip/nng_sub.7.html delete mode 100644 man/tip/nng_sub.html create mode 100644 man/tip/nng_sub_open.3.html create mode 100644 man/tip/nng_surveyor.7.html delete mode 100644 man/tip/nng_surveyor.html create mode 100644 man/tip/nng_surveyor_open.3.html create mode 100644 man/tip/nng_tcp.7.html delete mode 100644 man/tip/nng_tcp.html create mode 100644 man/tip/nng_tcp_register.3.html create mode 100644 man/tip/nng_tls.7.html delete mode 100644 man/tip/nng_tls.html create mode 100644 man/tip/nng_tls_config_alloc.3tls.html delete mode 100644 man/tip/nng_tls_config_alloc.html create mode 100644 man/tip/nng_tls_config_auth_mode.3tls.html delete mode 100644 man/tip/nng_tls_config_auth_mode.html create mode 100644 man/tip/nng_tls_config_ca_chain.3tls.html delete mode 100644 man/tip/nng_tls_config_ca_chain.html create mode 100644 man/tip/nng_tls_config_ca_file.3tls.html delete mode 100644 man/tip/nng_tls_config_ca_file.html create mode 100644 man/tip/nng_tls_config_cert_key_file.3tls.html delete mode 100644 man/tip/nng_tls_config_cert_key_file.html create mode 100644 man/tip/nng_tls_config_free.3tls.html delete mode 100644 man/tip/nng_tls_config_free.html create mode 100644 man/tip/nng_tls_config_own_cert.3tls.html delete mode 100644 man/tip/nng_tls_config_own_cert.html create mode 100644 man/tip/nng_tls_config_server_name.3tls.html delete mode 100644 man/tip/nng_tls_config_server_name.html create mode 100644 man/tip/nng_tls_register.3.html create mode 100644 man/tip/nng_url_clone.3.html delete mode 100644 man/tip/nng_url_clone.html create mode 100644 man/tip/nng_url_free.3.html delete mode 100644 man/tip/nng_url_free.html create mode 100644 man/tip/nng_url_parse.3.html delete mode 100644 man/tip/nng_url_parse.html create mode 100644 man/tip/nng_version.3.html delete mode 100644 man/tip/nng_version.html create mode 100644 man/tip/nng_ws.7.html delete mode 100644 man/tip/nng_ws.html create mode 100644 man/tip/nng_ws_register.3.html create mode 100644 man/tip/nng_wss_register.3.html create mode 100644 man/tip/nng_zerotier.7.html delete mode 100644 man/tip/nng_zerotier.html create mode 100644 man/tip/nng_zerotier_register.3.html create mode 100644 man/tip/nngcat.1.html delete mode 100644 man/tip/nngcat.html diff --git a/man/tip/index.html b/man/tip/index.html index 12feca78..542c5b87 100644 --- a/man/tip/index.html +++ b/man/tip/index.html @@ -436,8 +436,12 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
Table of Contents
@@ -451,8 +455,12 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
-

Section 1: Utilities and Programs

+

Section 1: Commands and Utilities

+
+

This section documents utilities and programs that are included +with the distribution.

+
@@ -460,7 +468,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b - + @@ -470,6 +478,10 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b

Section 3: Library Functions

+
+

This section documents core libary functions that are +callable by applications.

+

nngcat(1)

nngcat(1)

command line access to Scalabity Protocols

@@ -477,516 +489,749 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b - + - + - + - + - + - + - + - + - + + + + + - + - + - + - + + + + + - + - + - + - + - + + + + + - + + + + + - - + + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

libnng(3)

libnng(3)

nanomsg next generation library

nng_aio_abort(3)

nng_aio_abort(3)

abort asynchronous I/O operation

nng_aio_alloc(3)

nng_aio_alloc(3)

allocate asynchronous I/O handle

nng_aio_cancel(3)

nng_aio_cancel(3)

cancel asynchronous I/O operation

nng_aio_count(3)

nng_aio_count(3)

return number of bytes transferred

nng_aio_finish(3)

nng_aio_finish(3)

finish asynchronous I/O operation

nng_aio_free(3)

nng_aio_free(3)

free asynchronous I/O handle

nng_aio_get_input(3)

nng_aio_get_input(3)

return input parameter

nng_aio_get_output(3)

nng_aio_get_msg(3)

get message from asynchronous receive

nng_aio_get_output(3)

return output result

nng_aio_result(3)

nng_aio_result(3)

return result of asynchronous operation

nng_aio_set_input(3)

nng_aio_set_input(3)

set input parameter

nng_aio_set_iov(3)

nng_aio_set_iov(3)

set scatter/gather vector

nng_aio_set_output(3)

nng_aio_set_msg(3)

set message for asynchronous send

nng_aio_set_output(3)

set output result

nng_aio_set_timeout(3)

nng_aio_set_timeout(3)

set asynchronous I/O timeout

nng_aio_stop(3)

nng_aio_stop(3)

stop asynchronous I/O operation

nng_aio_wait(3)

nng_aio_wait(3)

wait for asynchronous I/O operation

nng_alloc(3)

nng_alloc(3)

allocate memory

nng_close(3)

nng_bus_open(3)

create bus socket

nng_close(3)

close socket

nng_dial(3)

nng_device(3)

send message

nng_dial(3)

create and start dialer

nng_dialer_close(3)

close listener

nng_dialer_close(3)

close dialer

nng_dialer_create(3)

nng_dialer_create(3)

create dialer

nng_dialer_getopt(3)

nng_dialer_getopt(3)

get dialer option

nng_dialer_setopt(3)

nng_dialer_setopt(3)

set dialer option

nng_dialer_start(3)

nng_dialer_start(3)

start dialer

nng_free(3)

nng_free(3)

free memory

nng_http_client_alloc(3)

nng_getopt(3)

get socket option

nng_inproc_register(3)

register inproc transport

nng_ipc_register(3)

register ipc transport

nng_listen(3)

create and start listener

nng_listener_close(3)

close listener

nng_listener_create(3)

create listener

nng_listener_getopt(3)

get listener option

nng_listener_setopt(3)

set listener option

nng_listener_start(3)

start listener

nng_msg_alloc(3)

allocate a message

nng_msg_append(3)

append to message body

nng_msg_body(3)

return message body

nng_msg_chop(3)

remove data from end of message body

nng_msg_clear(3)

clear message body content

nng_msg_dup(3)

duplicate a message

nng_msg_free(3)

free a message

nng_msg_get_pipe(3)

get pipe for message

nng_msg_header(3)

return message header

nng_msg_header_append(3)

append to message header

nng_msg_header_chop(3)

remove data from end of message header

nng_msg_header_clear(3)

clear message header

nng_msg_header_insert(3)

prepend to message header

nng_msg_header_len(3)

return message header length

nng_msg_header_trim(3)

remove data from start of message header

nng_msg_insert(3)

prepend to message body

nng_msg_len(3)

return message body length

nng_msg_realloc(3)

reallocate a message

nng_msg_set_pipe(3)

set pipe for message

nng_msg_trim(3)

remove data from start of message body

nng_pair_open(3)

create pair socket

nng_pipe_close(3)

close pipe

nng_pipe_getopt(3)

get pipe option

nng_pub_open(3)

create pub socket

nng_pull_open(3)

create pull socket

nng_push_open(3)

create push socket

nng_recv(3)

recv data

nng_recv_aio(3)

receive message asynchronously

nng_recvmsg(3)

recv message

nng_rep_open(3)

create rep socket

nng_req_open(3)

create rep socket

nng_respondent_open(3)

create respondent socket

nng_send(3)

send data

nng_send_aio(3)

send message asynchronously

nng_sendmsg(3)

send message

nng_setopt(3)

set socket option

nng_sleep_aio(3)

sleep asynchronously

nng_strerror(3)

return an error description

nng_sub_open(3)

create sub socket

nng_surveyor_open(3)

create surveyor socket

nng_tcp_register(3)

register tcp transport

nng_tls_register(3)

register tls transport

nng_url_clone(3)

clone URL structure

nng_url_free(3)

free a URL structure

nng_url_parse(3)

create URL structure from a string

nng_version(3)

report library version

nng_ws_register(3)

register websocket transport

nng_wss_register(3)

register websocket secure transport

nng_zerotier_register(3)

register ZeroTier transport

+
+
+
+

Section 3compat: Compatible Library Functions

+
+
+

This section documents the nanomsg 1.0 libary compatible functions.

+
+ ++++ + + + + + + +

nng_compat(3compat)

compatibility with nanomsg 1.0

+
+
+
+

Section 3http: Supplemental HTTP Functions

+
+
+

This section documents supplemental HTTP support functions +that are available.

+
+ ++++ + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + - + - - + + - + - + - + - + - - - - - + - + - + - + - + - + - + - + + + + + - + - + - + - + - + - - - - - + - + - + - + - + - + - + - + - + - + - + - + + +

nng_http_client_alloc(3http)

allocate HTTP client

nng_http_client_connect(3)

nng_http_client_connect(3http)

establish HTTP client connection

nng_http_client_free(3)

nng_http_client_free(3http)

free HTTP client

nng_http_client_get_tls(3)

nng_http_client_get_tls(3http)

get HTTP client TLS configuration

nng_http_client_set_tls(3)

nng_http_client_set_tls(3http)

set HTTP client TLS configuration

nng_http_conn_close(3)

nng_http_conn_close(3http)

close HTTP connection

nng_http_conn_read(3)

nng_http_conn_read(3http)

read from HTTP connection

nng_http_conn_read_all(3)

nng_http_conn_read_all(3http)

read all from HTTP connection

nng_http_conn_read_req(3)

nng_http_conn_read_req(3http)

read HTTP request

nng_http_conn_read_res(3)

nng_http_conn_read_res(3http)

read HTTP response

nng_http_conn_write(3)

nng_http_conn_write(3http)

write to HTTP connection

nng_http_conn_write_all(3)

nng_http_conn_write_all(3http)

write all to HTTP connection

nng_http_conn_write_req(3)

nng_http_conn_write_req(3http)

write HTTP request

nng_http_conn_write_res(3)

nng_http_conn_write_res(3http)

write HTTP response

nng_http_handler_alloc(3)

nng_http_handler_alloc(3http)

allocate HTTP server handler

nng_http_handler_free(3)

nng_http_handler_free(3http)

free HTTP server handler

nng_http_handler_get_data(3)

nng_http_handler_get_data(3http)

return extra data for HTTP handler

nng_http_handler_set_data(3)

nng_http_handler_set_data(3http)

set extra data for HTTP handler

nng_http_handler_set_host(3)

nng_http_handler_set_host(3http)

set host for HTTP handler

nng_http_handler_set_method(3)

nng_http_handler_set_method(3http)

set HTTP handler method

nng_http_handler_set_tree(3)

nng_http_handler_set_tree(3http)

set HTTP handler to match trees

nng_http_hijack(3)

nng_http_hijack(3http)

hijack HTTP server connection

nng_http_req_add_header(3)

nng_http_req_add_header(3http)

add HTTP request header

nng_http_req_alloc(3)

nng_http_req_alloc(3http)

allocate HTTP request structure

nng_http_req_copy_data(3)

nng_http_req_copy_data(3http)

copy HTTP request body

nng_http_req_free(3)

nng_http_req_del_header(3http)

set HTTP request header

nng_http_req_free(3http)

free HTTP request structure

nng_http_req_get_header(3)

nng_http_req_get_header(3http)

return HTTP request header

nng_http_req_get_method(3)

return HTTP request URI

nng_http_req_get_method(3http)

return HTTP request method

nng_http_req_get_method(3)

nng_http_req_get_uri(3http)

return HTTP request URI

nng_http_req_get_version(3)

nng_http_req_get_version(3http)

return HTTP request protocol version

nng_http_req_set_data(3)

nng_http_req_set_data(3http)

set HTTP request body

nng_http_req_set_header(3)

nng_http_req_set_header(3http)

set HTTP request header

nng_http_req_set_header(3)

set HTTP request header

nng_http_req_set_method(3)

nng_http_req_set_method(3http)

set HTTP request method

nng_http_req_set_uri(3)

nng_http_req_set_uri(3http)

set HTTP request URI

nng_http_req_set_version(3)

nng_http_req_set_version(3http)

set HTTP request protocol version

nng_http_res_add_header(3)

nng_http_res_add_header(3http)

add HTTP response header

nng_http_res_alloc(3)

nng_http_res_alloc(3http)

allocate HTTP response structure

nng_http_res_alloc_error(3)

nng_http_res_alloc_error(3http)

allocate HTTP error response

nng_http_res_copy_data(3)

nng_http_res_copy_data(3http)

copy HTTP response body

nng_http_res_free(3)

nng_http_res_del_header(3http)

set HTTP response header

nng_http_res_free(3http)

free HTTP response structure

nng_http_res_get_header(3)

nng_http_res_get_header(3http)

return HTTP response header

nng_http_res_get_reason(3)

nng_http_res_get_reason(3http)

return HTTP response reason

nng_http_res_get_status(3)

nng_http_res_get_status(3http)

return HTTP status code

nng_http_res_get_version(3)

nng_http_res_get_version(3http)

return HTTP response protocol version

nng_http_res_set_data(3)

nng_http_res_set_data(3http)

set HTTP response body

nng_http_res_set_header(3)

set HTTP response header

nng_http_res_set_header(3)

nng_http_res_set_header(3http)

set HTTP response header

nng_http_res_set_reason(3)

nng_http_res_set_reason(3http)

set HTTP response reason

nng_http_res_set_status(3)

nng_http_res_set_status(3http)

set HTTP response status

nng_http_res_set_version(3)

nng_http_res_set_version(3http)

set HTTP response protocol version

nng_http_server_add_handler(3)

nng_http_server_add_handler(3http)

add HTTP server handler

nng_http_server_del_handler(3)

nng_http_server_del_handler(3http)

delete HTTP server handler

nng_http_server_get_tls(3)

nng_http_server_get_tls(3http)

get HTTP server TLS configuration

nng_http_server_hold(3)

nng_http_server_hold(3http)

get and hold HTTP server instance

nng_http_server_release(3)

nng_http_server_release(3http)

release HTTP server instance

nng_http_server_set_tls(3)

nng_http_server_set_tls(3http)

set HTTP server TLS configuration

nng_http_server_start(3)

nng_http_server_start(3http)

start HTTP server

nng_http_server_stop(3)

nng_http_server_stop(3http)

stop HTTP server

+
+
+
+

Section 3tls: Supplemental TLS Functions

+
+
+

This section documents supplemental TLS functions that are available.

+
+ ++++ + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + +

nng_listen(3)

create and start listener

nng_listener_close(3)

close listener

nng_listener_create(3)

create listener

nng_listener_getopt(3)

get listener option

nng_listener_setopt(3)

set listener option

nng_listener_start(3)

start listener

nng_msg_alloc(3)

allocate a message

nng_msg_alloc(3)

allocate a message

nng_msg_append(3)

append to message body

nng_msg_body(3)

return message body

nng_msg_chop(3)

remove data from end of message body

nng_msg_clear(3)

clear message body content

nng_msg_dup(3)

duplicate a message

nng_msg_free(3)

free a message

nng_msg_get_pipe(3)

set pipe for message

nng_msg_get_pipe(3)

set pipe for message

nng_msg_header(3)

return message header

nng_msg_header_append(3)

append to message header

nng_msg_header_chop(3)

remove data from end of message header

nng_msg_header_clear(3)

clear message header

nng_msg_header_insert(3)

prepend to message header

nng_msg_header_len(3)

return message header length

nng_tls_config_alloc(3tls)

allocate TLS configuration object

nng_msg_header_trim(3)

remove data from start of message header

nng_tls_config_auth_mode(3tls)

configure authentication mode

nng_msg_insert(3)

prepend to message body

nng_tls_config_ca_chain(3tls)

configure certificate authority certificate chain

nng_msg_len(3)

return message body length

nng_tls_config_ca_file(3tls)

load certificate authority from file

nng_msg_trim(3)

remove data from start of message body

nng_tls_config_cert_key_file(3tls)

load own certificate and key from file

nng_pipe_getopt(3)

get pipe option

nng_tls_config_free(3tls)

deallocate a TLS configuration object

nng_recv(3)

recv data

nng_tls_config_own_cert(3tls)

configure own certificate and key

nng_recvmsg(3)

recv message

nng_tls_config_server_name(3tls)

configure remote server name

+
+
+
+

Section 5: Macros and Types

+
+
+

This section documents core macros and types that are available.

+
+ ++++ + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + +

nng_send(3)

send data

nng_aio(5)

asynchronous I/O handle

nng_sendmsg(3)

send message

nng_dialer(5)

dialer

nng_strerror(3)

return an error description

nng_duration(5)

relative time in milliseconds

nng_tls_config_alloc(3)

deallocate a TLS configuration object

nng_iov(5)

scatter/gather element

nng_tls_config_alloc(3)

deallocate a TLS configuration object

nng_listener(5)

listener

nng_tls_config_auth_mode(3)

configure authentication mode

nng_msg(5)

message

nng_tls_config_ca_chain(3)

configure certificate authority certificate chain

nng_options(5)

socket, dialer, listener, and pipe options

nng_tls_config_ca_file(3)

load certificate authority from file

nng_pipe(5)

communications pipe

nng_tls_config_cert_key_file(3)

load own certificate and key from file

nng_sockaddr(5)

socket address

nng_tls_config_own_cert(3)

configure own certificate and key

nng_sockaddr_in(5)

IPv4 socket address

nng_tls_config_server_name(3)

configure remote server name

nng_sockaddr_in6(5)

IPv6 socket address

nng_url_clone(3)

clone URL structure

nng_sockaddr_inproc(5)

inproc socket address

nng_url_free(3)

free a URL structure

nng_sockaddr_ipc(5)

IPC socket address

nng_url_parse(3)

create URL structure from a string

nng_sockaddr_zt(5)

ZeroTier socket address

nng_version(3)

report library version

nng_socket(5)

socket handle

@@ -995,6 +1240,10 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b

Section 7: Protocols and Transports

+
+

This sections documents various protocols and transports that are +available in the distribution.

+
@@ -1002,72 +1251,72 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b - + - + - - + + - - + + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - - + +

nng(7)

nng(7)

nanomsg next generation

nng_bus(7)

nng_bus(7)

bus protocol

nng_inproc(7)

intra-process transport for nng

nng_inproc(7)

intra-process transport

nng_ipc(7)

IPC transport for nng

nng_ipc(7)

IPC transport

nng_pair(7)

nng_pair(7)

pair protocol

nng_pub(7)

nng_pub(7)

publisher protocol

nng_pull(7)

nng_pull(7)

pull protocol

nng_push(7)

nng_push(7)

push protocol

nng_rep(7)

nng_rep(7)

reply protocol

nng_req(7)

nng_req(7)

request protocol

nng_respondent(7)

nng_respondent(7)

respondent protocol

nng_sub(7)

nng_sub(7)

subscriber protocol

nng_surveyor(7)

nng_surveyor(7)

surveyor protocol

nng_tcp(7)

TCP/IP transport for nng

nng_tcp(7)

TCP/IP transport

nng_tls(7)

TLS transport for nng

nng_tls(7)

TLS transport

nng_ws(7)

WebSocket transport for nng

nng_ws(7)

WebSocket transport

nng_zerotier(7)

ZeroTier transport for nng

nng_zerotier(7)

ZeroTier transport

diff --git a/man/tip/libnng.3.html b/man/tip/libnng.3.html new file mode 100644 index 00000000..c8ce22df --- /dev/null +++ b/man/tip/libnng.3.html @@ -0,0 +1,1440 @@ +--- +version: tip +layout: refman +--- + + + + + + + +libnng(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+

cc [flags] files -lnng [libraries]

+
+
+
+
+

DESCRIPTION

+
+
+

The nng library provides a common messaging framework +intended to solve common communication problems in distributed applications.

+
+
+

It provides a C language API.

+
+
+

Common Functions

+
+

The following common functions exist in libnng.

+
+ ++++ + + + + + + + + + + + + + + + + + + +

nng_alloc()

allocate memory

nng_free()

free memory

nng_strerror()

return an error description

nng_version()

report library version

+
+
+

Socket Functions

+
+

The following functions operate on sockets.

+
+ ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

nng_close()

close socket

nng_dial()

create and start dialer

nng_getopt()

get socket option

nng_listen()

create and start listener

nng_recv()

receive data

nng_send()

send data

nng_setopt()

set socket option

+
+
+

Connection Management

+
+

The following functions are used with either listeners, or dialers. +Listeners accept incoming connection requets, and dialers make them.

+
+ ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

nng_dial()

create and start dialer

nng_dialer_close()

close dialer

nng_dialer_create()

create dialer

nng_dialer_getopt()

get dialer option

nng_dialer_setopt()

set dialer option

nng_dialer_start()

start dialer

nng_listen()

create and start listener

nng_listener_close()

close listener

nng_listener_create()

create listener

nng_listener_getopt()

get listener option

nng_listener_setopt()

set listener option

nng_listener_start()

start listener

nng_pipe_close()

close pipe

nng_pipe_getopt()

get pipe option

+
+
+

Message Handling Functions

+
+

Applications desiring to use the richest part of libnng will want to +use the message API, where a message structure is passed between functions. +This API provides the most power support for zero-copy.

+
+
+

Messages are divided into a header and body, where the body generally carries +user-payload and the header carries protocol specific header information. +Most applications will only interact with the body.

+
+ ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

nng_msg_alloc()

allocate a message

nng_msg_append()

append to message body

nng_msg_body()

return message body

nng_msg_chop()

remove data from end of message body

nng_msg_clear()

clear message body

nng_msg_dup()

duplicate a message

nng_msg_free()

free a message

nng_msg_get_pipe()

get pipe for message

nng_msg_insert()

prepend to message body

nng_msg_len()

return the message body length

nng_msg_realloc()

reallocate a message

nng_msg_set_pipe()

set pipe for message

nng_msg_trim()

remove data from start of message body

nng_recvmsg()

receive a message

nng_sendmsg()

send a message

+
+

Message Header Handling

+
+ + + + + +
+ + +Few applications will need these functions, as message headers are only +used to carry protocol-specific content. However, applications which use raw +mode may need to access the header of messages. +
+
+ ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

nng_msg_header()

return message header

nng_msg_header_append()

append to message header

nng_msg_header_chop()

remove data from end of message header

nng_msg_header_clear()

clear message header

nng_msg_header_insert()

prepend to message header

nng_msg_header_len()

return the message header length

nng_msg_header_trim()

remove data from start of message header

+
+
+
+

Asynchronous Operations

+
+

Most applications will interact with nng synchronously; that is that +functions such as nng_send() will block the calling +thread until the operation has completed.

+
+
+ + + + + +
+ + +Synchronous operations which send messages may return before the +message has actually been received, or even transmitted. Instead, These +functions return as soon as the message was successfully queued for +delivery. +
+
+
+

Asynchronous operations behave differently. These operations are +initiated by the calling thread, but control returns immediately to +the calling thread. When the operation is subsequently completed (regardless +of whether this was successful or not), then a user supplied function +("callback") is executed.

+
+
+

A context structure, an nng_aio, is allocated and +associated with each asynchronous operation. +Only a single asynchronous operation may be associated with an +nng_aio at any time.

+
+
+

The following functions are used in the asynchronous model:

+
+ ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

nng_aio_abort()

abort asynchronous I/O operation

nng_aio_alloc()

allocate asynchronous I/O handle

nng_aio_cancel()

cancel asynchronous I/O operation

nng_aio_count()

return number of bytes transferred

nng_aio_finish()

finish an asynchronous I/O operation

nng_aio_free()

free asynchronous I/O handle

nng_aio_get_input()

return input parameter

nng_aio_get_msg()

get message from an asynchronous receive

nng_aio_get_output()

return output result

nng_aio_result()

return result of asynchronous operation

nng_aio_set_input()

set input parameter

nng_aio_set_iov()

set scatter/gather vector

nng_aio_set_msg()

set message for an asynchronous send

nng_aio_set_output()

set output result

nng_aio_set_timeout()

set asynchronous I/O timeout

nng_aio_stop()

stop asynchronous I/O operation

nng_aio_wait()

wait for asynchronous I/O operation

nng_recv_aio()

receive message asynchronously

nng_send_aio()

send message asynchronously

nng_sleep_aio()

sleep asynchronously

+
+
+

Protocols

+
+

The following functions are used to construct a socket with a specific protocol:

+
+ ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

nng_bus_open()

open a bus socket

nng_pair_open()

open a pair socket

nng_pub_open()

open a pub socket

nng_pull_open()

open a pull socket

nng_push_open()

open a push socket

nng_rep_open()

open a rep socket

nng_req_open()

open a req socket

nng_respondent_open()

open a respondent socket

nng_sub_open()

open a sub socket

nng_surveyor_open()

open a surveyor socket

+
+
+

Transports

+
+

The following functions are used to register a transport for use.

+
+ ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

nng_inproc_register()

register inproc transport

nng_ipc_register()

register IPC transport

nng_tcp_register()

register TCP transport

nng_tls_register()

register TLS transport

nng_ws_register()

register WebSocket transport

nng_wss_register()

register WebSocket Secure transport

nng_zerotier_register()

register ZeroTier transport

+
+
+

URL Object

+
+

Common functionality is supplied for parsing and handling +universal resource locators (URLS).

+
+ ++++ + + + + + + + + + + + + + + +

nng_url_clone()

clone URL structure

nng_url_free()

free URL structure

nng_url_parse()

create URL structure from string

+
+
+

HTTP Support

+
+

The library may be configured with support for HTTP, and this will +be the case if WebSocket support is configured as well. +In this case, it is possible to access functionality to support the creation of +HTTP (and HTTP/S if TLS support is present) servers and clients.

+
+
+

Common HTTP Functions

+
+

The following functions are used to work with HTTP requests, responses, +and connections.

+
+ ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

nng_http_conn_close()

close HTTP connection

nng_http_conn_read()

read from HTTP connection

nng_http_conn_read_all()

read all from HTTP connection

nng_http_conn_read_req()

read HTTP request

nng_http_conn_read_req()

read HTTP response

nng_http_conn_write()

write to HTTP connection

nng_http_conn_write_all()

write all to HTTP connection

nng_http_conn_write()

write HTTP request

nng_http_conn_write()

write HTTP response

nng_http_req_add_header()

add HTTP request header

nng_http_req_alloc()

allocate HTTP request structure

nng_http_req_copy_data()

copy HTTP request body

nng_http_req_del_header()

delete HTTP request header

nng_http_req_free()

free HTTP request structure

nng_http_req_get_header()

return HTTP request header

nng_http_req_get_method()

return HTTP request method

nng_http_req_get_uri()

return HTTP request URI

nng_http_req_get_version()

return HTTP request protocol version

nng_http_req_set_data()

set HTTP request body

nng_http_req_set_header()

set HTTP request header

nng_http_req_set_method()

set HTTP request method

nng_http_req_set_uri()

set HTTP request URI

nng_http_req_set_version()

set HTTP request protocol version

nng_http_res_add_header()

add HTTP response header

nng_http_res_alloc()

allocate HTTP response structure

nng_http_res_alloc_error()

allocate HTTP error response

nng_http_res_copy_data()

copy HTTP response body

nng_http_res_del_header()

delete HTTP response header

nng_http_res_free()

free HTTP response structure

nng_http_res_set_data()

set HTTP response body

nng_http_res_get_header()

return HTTP response header

nng_http_res_get_reason()

return HTTP response reason

nng_http_res_get_status()

return HTTP response status

nng_http_res_get_version()

return HTTP response protocol version

nng_http_res_set_header()

set HTTP response header

nng_http_res_set_reason()

set HTTP response reason

nng_http_res_set_status()

set HTTP response status

nng_http_res_set_version()

set HTTP response protocol version

+
+
+

HTTP Client Functions

+
+

These functions are intended for use with HTTP client applications.

+
+ ++++ + + + + + + + + + + + + + + + + + + + + + + +

nng_http_client_alloc()

allocate HTTP client

nng_http_client_connect()

establish HTTP client connection

nng_http_client_free()

free HTTP client

nng_http_client_get_tls()

get HTTP client TLS configuration

nng_http_client_set_tls()

set HTTP client TLS configuration

+
+
+

HTTP Server Functions

+
+

These functions are intended for use with HTTP server applications.

+
+ ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

nng_http_handler_alloc()

allocate HTTP server handler

nng_http_handler_free()

free HTTP server handler

nng_http_handler_get_data()

return extra data for HTTP handler

nng_http_handler_set_data()

set extra data for HTTP handler

nng_http_handler_set_host()

set host for HTTP handler

nng_http_handler_set_method()

set HTTP handler method

nng_http_handler_set_tree()

set HTTP handler to match trees

nng_http_hijack()

hijack HTTP server connection

nng_http_server_add_handler()

add HTTP server handler

nng_http_server_del_handler()

delete HTTP server handler

nng_http_server_get_tls()

get HTTP server TLS configuration

nng_http_server_get_tls()

get and hold HTTP server instance

nng_http_server_get_tls()

release HTTP server instance

nng_http_server_set_tls()

set HTTP server TLS configuration

nng_http_server_start()

start HTTP server

nng_http_server_stop()

stop HTTP server

+
+
+
+

TLS Configuration Objects

+
+

The following functions are used to manipulate transport layer security +(TLS) configuration objects.

+
+
+ + + + + +
+ + +These functions will only be present if the library has been built +with TLS support. +
+
+ ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

nng_tls_config_alloc()

allocate TLS configuration

nng_tls_config_auth_mode()

set authentication mode

nng_tls_config_ca_chain()

set certificate authority chain

nng_tls_config_ca_file()

load certificate authority from file

nng_tls_config_cert_key_file_cert()

load own certificate and key from file

nng_tls_config_own_cert()

set own certificate and key

nng_tls_config_free()

free TLS configuration

nng_tls_config_server_name()

set remote server name

+
+
+
+
+

SEE ALSO

+ +
+
+ + diff --git a/man/tip/libnng.html b/man/tip/libnng.html deleted file mode 100644 index 073a2d90..00000000 --- a/man/tip/libnng.html +++ /dev/null @@ -1,1432 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -libnng(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-

cc [flags] files -lnng [libraries]

-
-
-
-
-

DESCRIPTION

-
-
-

The nng(7) library provides a common messaging framework -intended to solve common communication problems in distributed applications.

-
-
-

It provides a C language API.

-
-
-

Common Functions

-
-

The following common functions exist in libnng.

-
- ---- - - - - - - - - - - - - - - - - - - -

nng_alloc(3)

allocate memory

nng_free(3)

free memory

nng_strerror(3)

return an error description

nng_version(3)

report library version

-
-
-

Socket Functions

-
-

The following functions operate on sockets.

-
- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

nng_close(3)

close socket

nng_dial(3)

create and start dialer

nng_getopt(3)

get socket option

nng_listen(3)

create and start listener

nng_recv(3)

receive data

nng_send(3)

send data

nng_setopt(3)

set socket option

-
-
-

Connection Management

-
-

The following functions are used with either listeners, or dialers. -Listeners accept incoming connection requets, and dialers make them.

-
- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

nng_dial(3)

create and start dialer

nng_dialer_close(3)

close dialer

nng_dialer_create(3)

create dialer

nng_dialer_getopt(3)

get dialer option

nng_dialer_setopt(3)

set dialer option

nng_dialer_start(3)

start dialer

nng_listen(3)

create and start listener

nng_listener_close(3)

close listener

nng_listener_create(3)

create listener

nng_listener_getopt(3)

get listener option

nng_listener_setopt(3)

set listener option

nng_listener_start(3)

start listener

nng_pipe_getopt(3)

get pipe option

-
-
-

Message Handling Functions

-
-

Applications desiring to use the richest part of libnng will want to -use the message API, where a message structure is passed between functions. -This API provides the most power support for zero-copy.

-
-
-

Messages are divided into a header and body, where the body generally carries -user-payload and the header carries protocol specific header information. -Most applications will only interact with the body.

-
- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

nng_msg_alloc(3)

allocate a message

nng_msg_append(3)

append to message body

nng_msg_body(3)

return message body

nng_msg_chop(3)

remove data from end of message body

nng_msg_clear(3)

clear message body

nng_msg_dup(3)

duplicate a message

nng_msg_free(3)

free a message

nng_msg_get_pipe(3)

get pipe for message

nng_msg_insert(3)

prepend to message body

nng_msg_len(3)

return the message body length

nng_msg_realloc(3)

reallocate a message

nng_msg_set_pipe(3)

set pipe for message

nng_msg_trim(3)

remove data from start of message body

nng_recvmsg(3)

receive a message

nng_sendmsg(3)

send a message

-
-

Message Header Handling

-
- - - - - -
- - -Few applications will need these functions, as message headers are only -used to carry protocol-specific content. However, applications which use raw -mode may need to access the header of messages. -
-
- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

nng_msg_header(3)

return message header

nng_msg_header_append(3)

append to message header

nng_msg_header_chop(3)

remove data from end of message header

nng_msg_header_clear(3)

clear message header

nng_msg_header_insert(3)

prepend to message header

nng_msg_header_len(3)

return the message header length

nng_msg_header_trim(3)

remove data from start of message header

-
-
-
-

Asynchronous Operations

-
-

Most applications will interact with nng synchronously; that is that -functions such as nng_send(3) will block the calling -thread until the operation has completed.

-
-
- - - - - -
- - -Synchronous operations which send messages may return before the -message has actually been received, or even transmitted. Instead, These -functions return as soon as the message was successfully queued for -delivery. -
-
-
-

Asynchronous operations behave differently. These operations are -initiated by the calling thread, but control returns immediately to -the calling thread. When the operation is subsequently completed (regardless -of whether this was successful or not), then a user supplied function -("callback") is executed.

-
-
-

A context structure, called an aio, is allocated and associated for -each asynchronous operation. Only a single asynchronous operation may -be associated with an aio at any time.

-
-
-

The following functions are used in the asynchronous model:

-
- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

nng_aio_abort(3)

abort asynchronous I/O operation

nng_aio_alloc(3)

allocate asynchronous I/O handle

nng_aio_cancel(3)

cancel asynchronous I/O operation

nng_aio_count(3)

return number of bytes transferred

nng_aio_finish(3)

finish an asynchronous I/O operation

nng_aio_free(3)

free asynchronous I/O handle

nng_aio_get_input(3)

return input parameter

nng_aio_get_msg(3)

get message from an asynchronous receive

nng_aio_get_output(3)

return output result

nng_aio_result(3)

return result of asynchronous operation

nng_aio_set_input(3)

set input parameter

nng_aio_set_iov(3)

set scatter/gather vector

nng_aio_set_msg(3)

set message for an asynchronous send

nng_aio_set_output(3)

set output result

nng_aio_set_timeout(3)

set asynchronous I/O timeout

nng_aio_stop(3)

stop asynchronous I/O operation

nng_aio_wait(3)

wait for asynchronous I/O operation

nng_recv_aio(3)

receive message asynchronously

nng_send_aio(3)

send message asynchronously

-
-
-

Protocols

-
-

The following functions are used to construct a socket with a specific -protocol:

-
- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

nng_bus_open(3)

open a bus socket

nng_pair_open(3)

open a pair socket

nng_pub_open(3)

open a pub socket

nng_pull_open(3)

open a pull socket

nng_push_open(3)

open a push socket

nng_rep_open(3)

open a rep socket

nng_req_open(3)

open a req socket

nng_respondent_open(3)

open a respondent socket

nng_sub_open(3)

open a sub socket

nng_surveyor_open(3)

open a surveyor socket

-
-
-

Transports

-
-

The following functions are used to register a transport for use.

-
- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

nng_inproc_register(3)

register inproc transport

nng_ipc_register(3)

register IPC transport

nng_tcp_register(3)

register TCP transport

nng_tls_register(3)

register TLS transport

nng_ws_register(3)

register WebSocket transport

nng_wss_register(3)

register WebSocket Secure transport

nng_zerotier_register(3)

register ZeroTier transport

-
-
-

URL Object

-
-

Common functionality is supplied for parsing and handling -universal resource locators (URLS).

-
- ---- - - - - - - - - - - - - - - -

nng_url_clone(3)

clone URL structure

nng_url_free(3)

free URL structure

nng_url_parse(3)

create URL structure from string

-
-
-

HTTP Support

-
-

The library may be configured with support for HTTP, and this will -be the case if WebSocket support is configured as well. In this case, -it is possible to access functionality to support the creation of -HTTP (and HTTP/S if TLS support is present) servers and clients.

-
-
-

Common HTTP Functions

-
-

The following functions are used to work with HTTP requests, responses, -and connections.

-
- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

nng_http_conn_close(3)

close HTTP connection

nng_http_conn_read(3)

read from HTTP connection

nng_http_conn_read_all(3)

read all from HTTP connection

nng_http_conn_read_req(3)

read HTTP request

nng_http_conn_read_req(3)

read HTTP response

nng_http_conn_write(3)

write to HTTP connection

nng_http_conn_write_all(3)

write all to HTTP connection

nng_http_conn_write(3)

write HTTP request

nng_http_conn_write(3)

write HTTP response

nng_http_req_add_header(3)

add HTTP request header

nng_http_req_alloc(3)

allocate HTTP request structure

nng_http_req_copy_data(3)

copy HTTP request body

nng_http_req_del_header(3)

delete HTTP request header

nng_http_req_free(3)

free HTTP request structure

nng_http_req_get_header(3)

return HTTP request header

nng_http_req_get_method(3)

return HTTP request method

nng_http_req_get_uri(3)

return HTTP request URI

nng_http_req_get_version(3)

return HTTP request protocol version

nng_http_req_set_data(3)

set HTTP request body

nng_http_req_set_header(3)

set HTTP request header

nng_http_req_set_method(3)

set HTTP request method

nng_http_req_set_uri(3)

set HTTP request URI

nng_http_req_set_version(3)

set HTTP request protocol version

nng_http_res_add_header(3)

add HTTP response header

nng_http_res_alloc(3)

allocate HTTP response structure

nng_http_res_alloc_error(3)

allocate HTTP error response

nng_http_res_copy_data(3)

copy HTTP response body

nng_http_res_del_header(3)

delete HTTP response header

nng_http_res_free(3)

free HTTP response structure

nng_http_res_set_data(3)

set HTTP response body

nng_http_res_get_header(3)

return HTTP response header

nng_http_res_get_reason(3)

return HTTP response reason

nng_http_res_get_status(3)

return HTTP response status

nng_http_res_get_version(3)

return HTTP response protocol version

nng_http_res_set_header(3)

set HTTP response header

nng_http_res_set_reason(3)

set HTTP response reason

nng_http_res_set_status(3)

set HTTP response status

nng_http_res_set_version(3)

set HTTP response protocol version

-
-
-

HTTP Client Functions

-
-

These functions are intended for use with HTTP client applications.

-
- ---- - - - - - - - - - - - - - - - - - - - - - - -

nng_http_client_alloc(3)

allocate HTTP client

nng_http_client_connect(3)

establish HTTP client connection

nng_http_client_free(3)

free HTTP client

nng_http_client_get_tls(3)

get HTTP client TLS configuration

nng_http_client_set_tls(3)

set HTTP client TLS configuration

-
-
-

HTTP Server Functions

-
-

These functions are intended for use with HTTP server applications.

-
- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

nng_http_handler_alloc(3)

allocate HTTP server handler

nng_http_handler_free(3)

free HTTP server handler

nng_http_handler_get_data(3)

return extra data for HTTP handler

nng_http_handler_set_data(3)

set extra data for HTTP handler

nng_http_handler_set_host(3)

set host for HTTP handler

nng_http_handler_set_method(3)

set HTTP handler method

nng_http_handler_set_tree(3)

set HTTP handler to match trees

nng_http_hijack(3)

hijack HTTP server connection

nng_http_server_add_handler(3)

add HTTP server handler

nng_http_server_del_handler(3)

delete HTTP server handler

nng_http_server_get_tls(3)

get HTTP server TLS configuration

nng_http_server_get_tls(3)

get and hold HTTP server instance

nng_http_server_get_tls(3)

release HTTP server instance

nng_http_server_set_tls(3)

set HTTP server TLS configuration

nng_http_server_start(3)

start HTTP server

nng_http_server_stop(3)

stop HTTP server

-
-
-
-

TLS Configuration Objects

-
-

The following functions are used to manipulate transport layer security -(TLS) configuration objects.

-
-
- - - - - -
- - -These functions will only be present if the library has been built -with TLS support. -
-
- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

nng_tls_config_alloc(3)

allocate TLS configuration

nng_tls_config_auth_mode(3)

set authentication mode

nng_tls_config_ca_chain(3)

set certificate authority chain

nng_tls_config_ca_file(3)

load certificate authority from file

nng_tls_config_cert_key_file_cert(3)

load own certificate and key from file

nng_tls_config_own_cert(3)

set own certificate and key

nng_tls_config_free(3)

free TLS configuration

nng_tls_config_server_name(3)

set remote server name

-
-
-
-
-

SEE ALSO

- -
-
- - diff --git a/man/tip/nng.7.html b/man/tip/nng.7.html new file mode 100644 index 00000000..f412f39f --- /dev/null +++ b/man/tip/nng.7.html @@ -0,0 +1,770 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng(7) + + + + + + + +
+
+

SYNOPSIS

+
+
+

cc ['flags'] 'files' -lnng ['libraries']

+
+
+
+
+

DESCRIPTION

+
+
+

The nng library provides a common messaging framework intended to +solve common communication problems in distributed applications. +It offers a number of protocols, and also a number of transports.

+
+
+

The protocols implement the semantics associated with particular +communications scenarios, such as RPC style services, service discovery, +publish/subscribe, and so forth.

+
+
+

The transports provide support for underlying transport methods, such +as TCP, IPC, websockets, and so forth.

+
+
+

The nng library is designed to permit easy creation of new transports and, +to a lesser extent, new protocols.

+
+
+

The nng library is wire compatible with the SP protocols described in +the nanomsg project; projects using +libnanomsg can inter-operate with +nng as well as other conforming implementations. (One such implementation +is mangos.) Applications using nng +which wish to communicate with older libraries must ensure that they only +use protocols or transports offered by the earlier library.

+
+
+

The nng library also offers a compatible API, permitting legacy code to +be recompiled or relinked against nng. When doing this, support for +certain enhancements or features will likely be absent, requiring the +application developer to use the new-style API.

+
+
+

The nng library is implemented in pure C; if you need bindings for +other languages please check the website.

+
+
+
+
+

Protocols

+
+
+ +
+
+
+
+

Transports

+
+
+ +
+
+
+
+

Conceptual Overview

+
+
+

nng presents a socket view of networking. The sockets are constructed +using protocol-specific functions, as a given socket implements precisely +one nng protocol.

+
+
+

Each socket can be used to send and receive messages (if the protocol) +supports it, and implements the appropriate protocol semantics. For +example, nng_sub(7) sockets automatically filter incoming +messages to discard those for topics that have not been subscribed.

+
+
+

nng sockets are message oriented, so that messages are either delivered +wholly, or not at all. Partial delivery is not possible. Furthermore, +nng does not provide any other delivery or ordering guarantees; +messages may be dropped or reordered. (Some protocols, such as +nng_req(7) may offer stronger guarantees by +performing their own retry and validation schemes.)

+
+
+

Each socket can have zero, one, or many "endpoints", which are either +listeners or dialers. (A given socket may freely choose whether it uses +listeners, dialers, or both.) These "endpoints" provide access to +underlying transports, such as TCP, etc.

+
+
+

Each endpoint is associated with a URL, which is a service address. For +dialers, this will be the service address that will be contacted, whereas +for listeners this is where the listener will bind and watch for new +connections.

+
+
+

Endpoints do not themselves transport data. They are instead responsible +for the creation of pipes, which can be thought of as message-oriented, +connected, streams. Pipes frequently correspond to a single underlying +byte stream — for example both IPC and TCP transports implement their +pipes using a 1:1 relationship with a connected socket.

+
+
+

Endpoints create pipes as needed. Listeners will create them when a new +client connection request arrives, and dialers will generally create one, +then wait for it to disconnect before reconnecting.

+
+
+

Most applications should not have to worry about endpoints or pipes at +all; the socket abstraction should provide all the functionality needed +other than in a few specific circumstances.

+
+
+

URLs

+
+

+The nng library uses universal resource locators (URLs) +following the format specified in +RFC 3986, +including some schemes that are unique +to SP. + +The URLs used in nng are canonicalized as follows, mostly in +accordance with +RFC 3986 6.2.2:

+
+
+
    +
  1. +

    The URL is parsed into scheme, userinfo, host, port, path, query and +fragment components. (Not all of these members are necessarily present.)

    +
  2. +
  3. +

    The scheme, hostname, and port if present, are converted to lower case.

    +
  4. +
  5. +

    Percent-encoded values for +unreserved characters +converted to their unencoded forms.

    +
  6. +
  7. +

    Additionally URL percent-encoded values for characters in the path +and with numeric values larger than 127 (i.e. not ASCII) are decoded.

    +
  8. +
  9. +

    The resulting path is checked for invalid UTF-8 sequences, consisting +of surrogate pairs, illegal byte sequences, or overlong encodings. +If this check fails, then the entire URL is considered invalid.

    +
  10. +
  11. +

    Path segments consisting of . and .. are resolved as per +RFC 3986 6.2.2.3.

    +
  12. +
  13. +

    Further, empty path segments are removed, meaning that duplicate +slash (/) separators are removed from the path.

    +
  14. +
+
+
+

Note that steps 4, 5, and 7 are not specified by RFC 3986, but performing +them is believed to improve both the usability and security of nng +applications, without violating RFC 3986 itself.

+
+
+
+
+
+

API

+
+
+

The library API is documented at libnng(3).

+
+
+
+
+

SEE ALSO

+ +
+
+ + diff --git a/man/tip/nng.html b/man/tip/nng.html deleted file mode 100644 index ad8573c8..00000000 --- a/man/tip/nng.html +++ /dev/null @@ -1,768 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng(7) - - - - - - - -
-
-

SYNOPSIS

-
-
-

cc ['flags'] 'files' -lnng ['libraries']

-
-
-
-
-

DESCRIPTION

-
-
-

The nng library provides a common messaging framework intended to -solve common communication problems in distributed applications. -It offers a number of protocols, and also a number of transports.

-
-
-

The protocols implement the semantics associated with particular -communications scenarios, such as RPC style services, service discovery, -publish/subscribe, and so forth.

-
-
-

The transports provide support for underlying transport methods, such -as TCP, IPC, websockets, and so forth.

-
-
-

The nng library is designed to permit easy creation of new transports and, -to a lesser extent, new protocols.

-
-
-

The nng library is wire compatible with the SP protocols described in -the nanomsg project; projects using -libnanomsg can inter-operate with -nng as well as other conforming implementations. (One such implementation -is mangos.) Applications using nng -which wish to communicate with older libraries must ensure that they only -use protocols or transports offered by the earlier library.

-
-
-

The nng library also offers a compatible API, permitting legacy code to -be recompiled or relinked against nng. When doing this, support for -certain enhancements or features will likely be absent, requiring the -application developer to use the new-style API.

-
-
-

The nng library is implemented in pure C; if you need bindings for -other languages please check the website.

-
-
-
-
-

Protocols

-
-
- -
-
-
-
-

Transports

-
-
- -
-
-
-
-

Conceptual Overview

-
-
-

nng presents a socket view of networking. The sockets are constructed -using protocol-specific functions, as a given socket implements precisely -one nng protocol.

-
-
-

Each socket can be used to send and receive messages (if the protocol) -supports it, and implements the appropriate protocol semantics. For -example, nng_sub(7) sockets automatically filter incoming -messages to discard those for topics that have not been subscribed.

-
-
-

nng sockets are message oriented, so that messages are either delivered -wholly, or not at all. Partial delivery is not possible. Furthermore, -nng does not provide any other delivery or ordering guarantees; -messages may be dropped or reordered. (Some protocols, such as -nng_req(7) may offer stronger guarantees by -performing their own retry and validation schemes.)

-
-
-

Each socket can have zero, one, or many "endpoints", which are either -listeners or dialers. (A given socket may freely choose whether it uses -listeners, dialers, or both.) These "endpoints" provide access to -underlying transports, such as TCP, etc.

-
-
-

Each endpoint is associated with a URL, which is a service address. For -dialers, this will be the service address that will be contacted, whereas -for listeners this is where the listener will bind and watch for new -connections.

-
-
-

Endpoints do not themselves transport data. They are instead responsible -for the creation of pipes, which can be thought of as message-oriented, -connected, streams. Pipes frequently correspond to a single underlying -byte stream — for example both IPC and TCP transports implement their -pipes using a 1:1 relationship with a connected socket.

-
-
-

Endpoints create pipes as needed. Listeners will create them when a new -client connection request arrives, and dialers will generally create one, -then wait for it to disconnect before reconnecting.

-
-
-

Most applications should not have to worry about endpoints or pipes at -all; the socket abstraction should provide all the functionality needed -other than in a few specific circumstances.

-
-
-

URLs

-
-

The nng library uses universal resource locators (URLs) -following the format specified in -RFC 3986, -including some schemes that are unique -to SP. -The URLs used in nng are canonicalized as follows, mostly in -accordance with -RFC 3986 6.2.2:

-
-
-
    -
  1. -

    The URL is parsed into scheme, userinfo, host, port, path, query and -fragment components. (Not all of these members are necessarily present.)

    -
  2. -
  3. -

    The scheme, hostname, and port if present, are converted to lower case.

    -
  4. -
  5. -

    Percent-encoded values for -unreserved characters -converted to their unencoded forms.

    -
  6. -
  7. -

    Additionally URL percent-encoded values for characters in the path -and with numeric values larger than 127 (i.e. not ASCII) are decoded.

    -
  8. -
  9. -

    The resulting path is checked for invalid UTF-8 sequences, consisting -of surrogate pairs, illegal byte sequences, or overlong encodings. -If this check fails, then the entire URL is considered invalid.

    -
  10. -
  11. -

    Path segments consisting of . and .. are resolved as per -RFC 3986 6.2.2.3.

    -
  12. -
  13. -

    Further, empty path segments are removed, meaning that duplicate -slash (/) separators are removed from the path.

    -
  14. -
-
-
-

Note that steps 4, 5, and 7 are not specified by RFC 3986, but performing -them is believed to improve both the usability and security of nng -applications, without violating RFC 3986 itself.

-
-
-
-
-
-

API

-
-
-

The library API is documented at libnng(3).

-
-
-
-
-

SEE ALSO

- -
-
- - diff --git a/man/tip/nng_aio.5.html b/man/tip/nng_aio.5.html new file mode 100644 index 00000000..945b8e93 --- /dev/null +++ b/man/tip/nng_aio.5.html @@ -0,0 +1,593 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_aio(5) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+typedef struct nng_aio nng_aio;
+
+
+
+
+
+

DESCRIPTION

+
+
+

An nng_aio is an opaque structure used in conjuction with +asynchronous I/O operations. +Every asynchronous operation uses one of these structures, each of which +can only be used with a single operation at a time.

+
+
+

Asynchronous operations are performed without blocking calling application +threads. +Instead the application registers a “callback” function to be executed +when the operation is complete (whether successfully or not). +This callback will be executed exactly once.

+
+
+

The asynchronous I/O framework in nng also supports cancellation of +operations that are already in progress +(see nng_aio_cancel()), as well setting a maximum +timeout for them to complete within +(see nng_aio_set_timeout()).

+
+
+

It is also possible to initiate an asynchronous operation, and wait for it to +complete using nng_aio_wait().

+
+
+

These structures are created using the nng_aio_alloc(), +and destroyed using nng_aio_free().

+
+
+
+ +
+ + diff --git a/man/tip/nng_aio_abort.3.html b/man/tip/nng_aio_abort.3.html new file mode 100644 index 00000000..18d9232d --- /dev/null +++ b/man/tip/nng_aio_abort.3.html @@ -0,0 +1,586 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_aio_abort(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+void nng_aio_abort(nng_aio *aio, int err);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_aio_abort() function aborts an operation previously started +with the handle aio. +If the operation is aborted, then the callback +for the handle will be called, and the function +nng_aio_result() will return the error err.

+
+
+

This function does not wait for the operation to be fully aborted, but +returns immediately.

+
+
+

If no operation is currently in progress (either because it has already +finished, or no operation has been started yet), then this function +has no effect.

+
+
+
+
+

RETURN VALUES

+
+
+

None.

+
+
+
+
+

ERRORS

+
+
+

None.

+
+
+
+ +
+ + diff --git a/man/tip/nng_aio_abort.html b/man/tip/nng_aio_abort.html deleted file mode 100644 index 428e3f7e..00000000 --- a/man/tip/nng_aio_abort.html +++ /dev/null @@ -1,584 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_aio_abort(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-
-void nng_aio_abort(nng_aio *aio, int err);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_aio_abort() function aborts an operation previously started -with the handle aio. If the operation is aborted, then the callback -for the handle will be called, and the function -nng_aio_result(3) will return the error err.

-
-
-

This function does not wait for the operation to be fully aborted, but -returns immediately.

-
-
-

If no operation is currently in progress (either because it has already -finished, or no operation has been started yet), then this function -has no effect.

-
-
-
-
-

RETURN VALUES

-
-
-

None.

-
-
-
-
-

ERRORS

-
-
-

None.

-
-
-
- -
- - diff --git a/man/tip/nng_aio_alloc.3.html b/man/tip/nng_aio_alloc.3.html new file mode 100644 index 00000000..90ca8557 --- /dev/null +++ b/man/tip/nng_aio_alloc.3.html @@ -0,0 +1,627 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_aio_alloc(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+int nng_aio_alloc(nng_aio **aiop, void (*callb)(void *), void *arg);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_aio_alloc() function allocates a handle for asynchronous I/O +operations, and stores a pointer to it in aiop. +The handle is initialized with a completion callback of callb, +which will be executed when an associated asynchronous operation finishes. +It will be called with the argument arg.

+
+
+ + + + + +
+ + +The callback callb must not perform any blocking operations, and +must complete it’s execution quickly. If callb does block, this can +lead ultimately to an apparent "hang" or deadlock in the application. +
+
+
+

Asynchronous I/O operations all take an nng_aio +handle such as allocated by this function. +Such operations are usually started by a function that returns immediately. +The operation is then run asynchronously, and completes sometime later. +When that operation is complete, the callback supplied here is called, +and that callback is able to determine the result of the operation using +nng_aio_result(), +nng_aio_count(), +and nng_aio_get_output().

+
+
+

It is possible to wait synchronously for an otherwise asynchronous operation +by using the function nng_aio_wait(). +In that case, it is permissible for callb and arg to both be NULL. +Note that if these are NULL, then it will not be possible to determine when the +operation is complete except by calling the aforementioned +nng_aio_wait().

+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ENOMEM
+
+

Insufficient free memory to perform the operation.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_aio_alloc.html b/man/tip/nng_aio_alloc.html deleted file mode 100644 index 60a28b94..00000000 --- a/man/tip/nng_aio_alloc.html +++ /dev/null @@ -1,624 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_aio_alloc(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-
-int nng_aio_alloc(nng_aio **aiop, void (*callb)(void *), void *arg);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_aio_alloc() function allocates a handle for asynchronous I/O -operations, and stores a pointer to it in aiop. The handle is initialized -with a completion callback of callb, which will be executed when an -associated asynchronous operation finishes. It will be called with the -argument arg.

-
-
- - - - - -
- - -The callback callb must not perform any blocking operations, and -must complete it’s execution quickly. If callb does block, this can -lead ultimately to an apparent "hang" or deadlock in the application. -
-
-
-

Asynchronous I/O operations all take an aio handle such as allocated by -this function. Such operations are usually started by a function that returns -immediately. The operation is then run asynchronously, and completes sometime -later. When that operation is complete, the callback supplied here is called, -and that callback is able to determine the result of the operation using -nng_aio_result(3), nng_aio_count(3), -and nng_aio_get_output(3).

-
-
-

It is possible to wait synchronously for an otherwise asynchronous operation -by using the function nng_aio_wait(3). In that case, -it is permissible for callb and arg to both be NULL. Note that if -these are NULL, then it will not be possible to determine when the -operation is complete except by calling the aforementioned -nng_aio_wait(3).

-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_ENOMEM
-
-

Insufficient free memory to perform the operation.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_aio_cancel.3.html b/man/tip/nng_aio_cancel.3.html new file mode 100644 index 00000000..fe623b3a --- /dev/null +++ b/man/tip/nng_aio_cancel.3.html @@ -0,0 +1,599 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_aio_cancel(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+void nng_aio_cancel(nng_aio *aio);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_aio_cancel() function aborts an operation previously started +with the handle aio. +If the operation is aborted, then the callback +for the handle will be called, and the function +nng_aio_result() will return the error NNG_ECANCELED.

+
+
+

This function does not wait for the operation to be fully aborted, but +returns immediately.

+
+
+

If no operation is currently in progress (either because it has already +finished, or no operation has been started yet), then this function +has no effect.

+
+
+ + + + + +
+ + +This function is the same as calling +nng_aio_abort() with the error NNG_ECANCELED. +
+
+
+
+
+

RETURN VALUES

+
+
+

None.

+
+
+
+
+

ERRORS

+
+
+

None.

+
+
+
+ +
+ + diff --git a/man/tip/nng_aio_cancel.html b/man/tip/nng_aio_cancel.html deleted file mode 100644 index 77ffad69..00000000 --- a/man/tip/nng_aio_cancel.html +++ /dev/null @@ -1,597 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_aio_cancel(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-
-void nng_aio_cancel(nng_aio *aio);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_aio_cancel() function aborts an operation previously started -with the handle aio. If the operation is aborted, then the callback -for the handle will be called, and the function -nng_aio_result(3) will return the error NNG_ECANCELED.

-
-
-

This function does not wait for the operation to be fully aborted, but -returns immediately.

-
-
-

If no operation is currently in progress (either because it has already -finished, or no operation has been started yet), then this function -has no effect.

-
-
- - - - - -
- - -This function is the same as calling nng_aio_abort(3) -with the error NNG_ECANCELED. -
-
-
-
-
-

RETURN VALUES

-
-
-

None.

-
-
-
-
-

ERRORS

-
-
-

None.

-
-
-
- -
- - diff --git a/man/tip/nng_aio_count.3.html b/man/tip/nng_aio_count.3.html new file mode 100644 index 00000000..d71de152 --- /dev/null +++ b/man/tip/nng_aio_count.3.html @@ -0,0 +1,602 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_aio_count(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+size_t nng_aio_count(nng_aio *aio);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_aio_count() returns the number of bytes transferred by the +asynchronous operation associated with the handle aio.

+
+
+

Some asynchronous operations do not provide meaningful data for this +function; for example operations that establish connections do not +transfer user data (they may transfer protocol data though) — in this case +this function will generally return zero.

+
+
+

This function is most useful when used with operations that make use of +of a scatter/gather vector (set by nng_aio_set_iov()).

+
+
+ + + + + +
+ + +The return value from this function is undefined if the operation +has not completed yet. +Either call this from the handle’s completion callback, +or after waiting for the operation to complete with +nng_aio_wait(). +
+
+
+
+
+

RETURN VALUES

+
+
+

The number of bytes transferred by the operation.

+
+
+
+
+

ERRORS

+
+
+

None.

+
+
+
+ +
+ + diff --git a/man/tip/nng_aio_count.html b/man/tip/nng_aio_count.html deleted file mode 100644 index bc90fbdc..00000000 --- a/man/tip/nng_aio_count.html +++ /dev/null @@ -1,600 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_aio_count(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-
-size_t nng_aio_count(nng_aio *aio);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_aio_count() returns the number of bytes transferred by the -asynchronous operation associated with the handle aio.

-
-
-

Some asynchronous operations do not provide meaningful data for this -function; for example operations that establish connections do not -transfer user data (they may transfer protocol data though) — in this case -this function will generally return zero.

-
-
-

This function is most useful when used with operations that make use of -of a scatter/gather vector (set by nng_aio_set_iov(3)).

-
-
- - - - - -
- - -The return value from this function is undefined if the operation -has not completed yet. Either call this from the handle’s completion -callback, or after waiting for the operation to complete with -nng_aio_wait(3). -
-
-
-
-
-

RETURN VALUES

-
-
-

The number of bytes transferred by the operation.

-
-
-
-
-

ERRORS

-
-
-

None.

-
-
-
- -
- - diff --git a/man/tip/nng_aio_finish.3.html b/man/tip/nng_aio_finish.3.html new file mode 100644 index 00000000..e37e5911 --- /dev/null +++ b/man/tip/nng_aio_finish.3.html @@ -0,0 +1,608 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_aio_finish(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+void nng_aio_finish(nng_aio *aio, int err);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_aio_finish() function marks operation associated with aio as +complete, with the status err. +This will be the result returned by +nng_aio_result().

+
+
+

This function causes the callback associated with the aio to called.

+
+
+ + + + + +
+ + +It is mandatory that operation “providers” call this function +EXACTLY ONCE when they are finished with the operation. +After calling this function they MUST NOT perform any further accesses +to the aio. +
+
+
+ + + + + +
+ + +This function is only for I/O providers (those actually performing +the operation such as HTTP handler functions or transport providers); ordinary +users of the aio should not have any need for this function. +
+
+
+
+
+

RETURN VALUES

+
+
+

None.

+
+
+
+
+

ERRORS

+
+
+

None.

+
+
+
+ +
+ + diff --git a/man/tip/nng_aio_finish.html b/man/tip/nng_aio_finish.html deleted file mode 100644 index d298f1f6..00000000 --- a/man/tip/nng_aio_finish.html +++ /dev/null @@ -1,605 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_aio_finish(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-
-void nng_aio_finish(nng_aio *aio, int err);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_aio_finish() function marks operation associated with aio as -complete, with the status err. This will be the result returned by -nng_aio_result(3).

-
-
-

This function causes the callback associated with the aio to called.

-
-
- - - - - -
- - -It is mandatory that operation "providers" call this function -EXACTLY ONCE when they are finished with the operation. After calling this -function they MUST NOT perform any further accesses the aio. -
-
-
- - - - - -
- - -This function is only for I/O providers (those actually performing -the operation such as HTTP handler function or a transport provider); ordinary -users of the aio should not have any need for this function. -
-
-
-
-
-

RETURN VALUES

-
-
-

None.

-
-
-
-
-

ERRORS

-
-
-

None.

-
-
-
- -
- - diff --git a/man/tip/nng_aio_free.3.html b/man/tip/nng_aio_free.3.html new file mode 100644 index 00000000..8d2f8399 --- /dev/null +++ b/man/tip/nng_aio_free.3.html @@ -0,0 +1,576 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_aio_free(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+void nng_aio_free(nng_aio *aio);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_aio_free() function frees an allocated asynchronous I/O handle. +If any operation is in progress, the operation is canceled, and the +caller is blocked until the operation is completely canceled, to ensure +that it is safe to deallocate the handle and any associated resources. +(This is done by implicitly calling nng_aio_stop().)

+
+
+
+
+

RETURN VALUES

+
+
+

None.

+
+
+
+
+

ERRORS

+
+
+

None.

+
+
+
+ +
+ + diff --git a/man/tip/nng_aio_free.html b/man/tip/nng_aio_free.html deleted file mode 100644 index 7174da9e..00000000 --- a/man/tip/nng_aio_free.html +++ /dev/null @@ -1,575 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_aio_free(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-
-void nng_aio_free(nng_aio *aio);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_aio_free() function frees an allocated asynchronous I/O handle. -If any operation is in progress, the operation is canceled, and the -caller is blocked until the operation is completely canceled, to ensure -that it is safe to deallocate the handle and any associated resources. -(This is done by implicitly calling nng_aio_stop(3).)

-
-
-
-
-

RETURN VALUES

-
-
-

None.

-
-
-
-
-

ERRORS

-
-
-

None.

-
-
-
-
-

SEE ALSO

- -
-
- - diff --git a/man/tip/nng_aio_get_input.3.html b/man/tip/nng_aio_get_input.3.html new file mode 100644 index 00000000..b5d4e1a2 --- /dev/null +++ b/man/tip/nng_aio_get_input.3.html @@ -0,0 +1,583 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_aio_get_input(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+void *nng_aio_get_input(nng_aio *aio, unsigned int index);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_aio_get_input() function returns the value of the input parameter +previously set at index on aio with the +nng_aio_set_input() function.

+
+
+

The valid values of index range from zero (0) to three (3), as no operation +currently defined can accept more than four parameters. +(This limit could increase in the future.) +If the index supplied is outside of this range, +or of the input parameter was not previously set, then NULL is returned.

+
+
+
+
+

RETURN VALUES

+
+
+

Value previously set, or NULL.

+
+
+
+
+

ERRORS

+
+
+

None.

+
+
+
+ +
+ + diff --git a/man/tip/nng_aio_get_input.html b/man/tip/nng_aio_get_input.html deleted file mode 100644 index 5f56840b..00000000 --- a/man/tip/nng_aio_get_input.html +++ /dev/null @@ -1,581 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_aio_get_input(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-
-void *nng_aio_get_input(nng_aio *aio, unsigned int index);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_aio_get_input() function returns the value of the input parameter -previously set at index on aio with the -nng_aio_set_input(3) function.

-
-
-

The valid values of index range from zero (0) to three (3), as no operation -currently defined can accept more than four parameters. (This limit could -increase in the future.) If the index supplied is outside of this range, -or of the input parameter was not previously set, then NULL is returned.

-
-
-
-
-

RETURN VALUES

-
-
-

Value previously set, or NULL.

-
-
-
-
-

ERRORS

-
-
-

None.

-
-
-
- -
- - diff --git a/man/tip/nng_aio_get_msg.3.html b/man/tip/nng_aio_get_msg.3.html new file mode 100644 index 00000000..abd95406 --- /dev/null +++ b/man/tip/nng_aio_get_msg.3.html @@ -0,0 +1,588 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_aio_get_msg(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+nng_msg *nng_aio_get_msg(nng_aio *aio);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_aio_get_msg() function gets any message stored in aio as +either a result of a successful receive +(see nng_recv_aio()) +or that was previously stored with nng_aio_set_msg().

+
+
+ + + + + +
+ + +The nng_aio must not have an operation in progress. +
+
+
+
+
+

RETURN VALUES

+
+
+

None.

+
+
+
+
+

ERRORS

+
+
+

None.

+
+
+
+ +
+ + diff --git a/man/tip/nng_aio_get_output.3.html b/man/tip/nng_aio_get_output.3.html new file mode 100644 index 00000000..a366a8b7 --- /dev/null +++ b/man/tip/nng_aio_get_output.3.html @@ -0,0 +1,606 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_aio_get_output(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+void *nng_aio_get_output(nng_aio *aio, unsigned int index);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_aio_get_output() function returns the output result at index +resulting from the asynchronous operation associated with aio.

+
+
+

The type and semantics of output parameters are determined by specific +operations.

+
+
+ + + + + +
+ + +If the index does not correspond to a defined output for the operation, +or the operation did not succeed, then the return value will be NULL. +
+
+
+ + + + + +
+ + +It is an error to call this function while the aio is currently +in use by an active asynchronous operation, or if no operation has been +performed using the aio yet. +
+
+
+
+
+

RETURN VALUES

+
+
+

The indexth result of the operation, or NULL.

+
+
+
+
+

ERRORS

+
+
+

None.

+
+
+
+ +
+ + diff --git a/man/tip/nng_aio_get_output.html b/man/tip/nng_aio_get_output.html deleted file mode 100644 index 05465f32..00000000 --- a/man/tip/nng_aio_get_output.html +++ /dev/null @@ -1,605 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_aio_get_output(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-
-void *nng_aio_get_output(nng_aio *aio, unsigned int index);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_aio_get_output() function returns the output result at index -resulting from the asynchronous operation associated with aio.

-
-
-

The type and semantics of output parameters are determined by specific -operations.

-
-
- - - - - -
- - -If the index does not correspond to a defined output for the operation, -or the operation did not succeed, then the return value will be NULL. -
-
-
- - - - - -
- - -It is an error to call this function while the aio is currently -in use by an active asynchronous operation, or if no operation has been -performed using the aio yet. -
-
-
-
-
-

RETURN VALUES

-
-
-

The indexth result of the operation, or NULL.

-
-
-
-
-

ERRORS

-
-
-

None.

-
-
-
- -
- - diff --git a/man/tip/nng_aio_result.3.html b/man/tip/nng_aio_result.3.html new file mode 100644 index 00000000..3e381445 --- /dev/null +++ b/man/tip/nng_aio_result.3.html @@ -0,0 +1,606 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_aio_result(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+int nng_aio_wait(nng_aio *aio);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_aio_result() returns the result of the operation associated +with the handle aio. +If the operation was successful, then 0 is returned. +Otherwise a non-zero error code is returned.

+
+
+ + + + + +
+ + +The return value from this function is undefined if the operation +has not completed yet. +Either call this from the handle’s completion +callback, or after waiting for the operation to complete with +nng_aio_wait(). +
+
+
+
+
+

RETURN VALUES

+
+
+

The result of the operation, either zero on success, or an error +number on failure.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ETIMEDOUT
+
+

The operation timed out.

+
+
NNG_ECANCELED
+
+

The operation was canceled.

+
+
+
+
+

Various other return values are possible dependending on the operation.

+
+
+
+ +
+ + diff --git a/man/tip/nng_aio_result.html b/man/tip/nng_aio_result.html deleted file mode 100644 index d654782a..00000000 --- a/man/tip/nng_aio_result.html +++ /dev/null @@ -1,604 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_aio_result(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-
-int nng_aio_wait(nng_aio *aio);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_aio_result() returns the result of the operation associated -with the handle aio. -If the operation was successful, then 0 is returned. Otherwise a non-zero -error code is returned.

-
-
- - - - - -
- - -The return value from this function is undefined if the operation -has not completed yet. Either call this from the handle’s completion -callback, or after waiting for the operation to complete with -nng_aio_wait(3). -
-
-
-
-
-

RETURN VALUES

-
-
-

The result of the operation, either zero on success, or an error -number on failure.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_ETIMEDOUT
-
-

The operation timed out.

-
-
NNG_ECANCELED
-
-

The operation was canceled.

-
-
-
-
-

Various other return values are possible dependending on the operation.

-
-
-
- -
- - diff --git a/man/tip/nng_aio_set_input.3.html b/man/tip/nng_aio_set_input.3.html new file mode 100644 index 00000000..d571f133 --- /dev/null +++ b/man/tip/nng_aio_set_input.3.html @@ -0,0 +1,615 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_aio_set_input(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+void nng_aio_set_input(nng_aio *aio, unsigned int index, void *param);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_aio_set_input() function sets the input parameter at index +to param for the asynchronous operation associated with aio.

+
+
+

The type and semantics of input parameters are determined by specific +operations; the caller must supply appropriate inputs for the operation +to be performed.

+
+
+

The valid values of index range from zero (0) to three (3), as no operation +currently defined can accept more than four parameters. +(This limit could increase in the future.)

+
+
+ + + + + +
+ + +If the index does not correspond to a defined input for the operation, +then this function will have no effect. +
+
+
+ + + + + +
+ + +It is an error to call this function while the aio is currently +in use by an active asynchronous operation. +
+
+
+

An input parameter set with this function may be retrieved later with +the nng_aio_get_input() function.

+
+
+
+
+

RETURN VALUES

+
+
+

None.

+
+
+
+
+

ERRORS

+
+
+

None.

+
+
+
+ +
+ + diff --git a/man/tip/nng_aio_set_input.html b/man/tip/nng_aio_set_input.html deleted file mode 100644 index 5a71d92f..00000000 --- a/man/tip/nng_aio_set_input.html +++ /dev/null @@ -1,615 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_aio_set_input(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-
-void nng_aio_set_input(nng_aio *aio, unsigned int index, void *param);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_aio_set_input() function sets the input parameter at index -to param for the asynchronous operation associated with aio.

-
-
-

The type and semantics of input parameters are determined by specific -operations; the caller must supply appropriate inputs for the operation -to be performed.

-
-
-

The valid values of index range from zero (0) to three (3), as no operation -currently defined can accept more than four parameters. (This limit could -increase in the future.)

-
-
- - - - - -
- - -If the index does not correspond to a defined input for the operation, -then this function will have no effect. Note that attempts to set -parameters with an index greater than three (3) will simply be ignored. -
-
-
- - - - - -
- - -It is an error to call this function while the aio is currently -in use by an active asynchronous operation. -
-
-
-

An input parameter set with this function may be retrieved later with -the nng_aio_get_input(3) function.

-
-
-
-
-

RETURN VALUES

-
-
-

None.

-
-
-
-
-

ERRORS

-
-
-

None.

-
-
-
- -
- - diff --git a/man/tip/nng_aio_set_iov.3.html b/man/tip/nng_aio_set_iov.3.html new file mode 100644 index 00000000..26f44d9b --- /dev/null +++ b/man/tip/nng_aio_set_iov.3.html @@ -0,0 +1,616 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_aio_set_iov(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+int nng_aio_set_iov(nng_aio *aio, unsigned int niov, nng_iov *iov);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_aio_set_iov() function sets a scatter/gather vector iov on the +handle aio.

+
+
+

The iov is a pointer to an array of niov nng_iov +structures, which have the following definition:

+
+
+
+
    typedef struct nng_iov {
+        void * iov_buf;
+        size_t iov_len;
+    };
+
+
+
+

The iov is copied into storage in the aio itself, so that callers +may use stack allocated nng_iov structures. The values pointed to +by the iov_buf members are not copied by this function though.

+
+
+

Up to four nng_iov members may be supplied without causing any +allocations, and thus this operation is guaranteed to succeed for +values of niov less than four.

+
+
+

More than four (4) nng_iov members may be supplied, but this may require +heap allocations, and so the operation may fail with NNG_ENOMEM. +Additionally, not every operation can support longer vectors; the +actual limit is determined by the system, but is generally at least +sixteen (16). +Furthermore, values for niov larger than sixty-four (64) will +generally result in NNG_EINVAL.

+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ENOMEM
+
+

Insufficient free memory to perform operation.

+
+
NNG_EINVAL
+
+

Value of specified niov is too large.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_aio_set_iov.html b/man/tip/nng_aio_set_iov.html deleted file mode 100644 index 16bf5daa..00000000 --- a/man/tip/nng_aio_set_iov.html +++ /dev/null @@ -1,613 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_aio_set_iov(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-
-int nng_aio_set_iov(nng_aio *aio, unsigned int niov, nng_iov *iov);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_aio_set_iov() function sets a scatter/gather vector iov on the -handle aio.

-
-
-

The iov is a pointer to an array of niov nng_iov structures, which have -the following definition:

-
-
-
-
    typedef struct nng_iov {
-        void * iov_buf;
-        size_t iov_len;
-    };
-
-
-
-

The iov is copied into storage in the aio itself, so that callers -may use stack allocated nng_iov structures. The values pointed to -by the iov_buf members are not copied by this function though.

-
-
-

Up to four nng_iov members may be supplied without causing any -allocations, and thus this operation is guaranteed to succeed for -values of niov less than four.

-
-
-

More than four (4) nng_iov members may be supplied, but this may require -heap allocations, and so the operation may fail with NNG_ENOMEM. -Additionally, not every operation can support longer vectors; the -actual limit is determined by the system, but is generally at least -sixteen (16). Furthermore, values for niov larger than sixty-four (64) will -generally result in NNG_EINVAL.

-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_ENOMEM
-
-

Insufficient free memory to perform operation.

-
-
NNG_EINVAL
-
-

Value of specified niov is too large.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_aio_set_msg.3.html b/man/tip/nng_aio_set_msg.3.html new file mode 100644 index 00000000..b0a477f0 --- /dev/null +++ b/man/tip/nng_aio_set_msg.3.html @@ -0,0 +1,586 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_aio_set_msg(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+void nng_aio_set_msg(nng_aio *aio, nng_msg *msg);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_aio_set_msg() function sets the message that will be used +for an asynchronous send operation (see nng_send_aio()).

+
+
+ + + + + +
+ + +The nng_aio must not have an operation in progress. +
+
+
+
+
+

RETURN VALUES

+
+
+

None.

+
+
+
+
+

ERRORS

+
+
+

None.

+
+
+
+ +
+ + diff --git a/man/tip/nng_aio_set_output.3.html b/man/tip/nng_aio_set_output.3.html new file mode 100644 index 00000000..7485a80a --- /dev/null +++ b/man/tip/nng_aio_set_output.3.html @@ -0,0 +1,602 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_aio_set_output(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+void nng_aio_set_output(nng_aio *aio, unsigned int index, void *result);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_aio_set_output() function sets the output result at index +to result for the asynchronous operation associated with aio.

+
+
+

The type and semantics of output results are determined by specific +operations; the operation must supply appropriate output results when +the operation completes successfully.

+
+
+

The valid values of index range from zero (0) to three (3), as no operation +currently defined can return more than four results. +(This limit could increase in the future.)

+
+
+ + + + + +
+ + +Note that attempts to set results with an index greater than +three (3) will be ignored. +
+
+
+

An output result set with this function may be retrieved later with +the nng_aio_get_output() function.

+
+
+
+
+

RETURN VALUES

+
+
+

None.

+
+
+
+
+

ERRORS

+
+
+

None.

+
+
+
+ +
+ + diff --git a/man/tip/nng_aio_set_output.html b/man/tip/nng_aio_set_output.html deleted file mode 100644 index 5e792cd3..00000000 --- a/man/tip/nng_aio_set_output.html +++ /dev/null @@ -1,601 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_aio_set_output(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-
-void nng_aio_set_output(nng_aio *aio, unsigned int index, void *result);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_aio_set_output() function sets the output result at index -to result for the asynchronous operation associated with aio.

-
-
-

The type and semantics of output results are determined by specific -operations; the operation must supply appropriate output results when -the operation completes successfully.

-
-
-

The valid values of index range from zero (0) to three (3), as no operation -currently defined can return more than four results. (This limit could -increase in the future.)

-
-
- - - - - -
- - -Note that attempts to set results with an index greater than -three (3) will be ignored. -
-
-
-

An output result set with this function may be retrieved later with -the nng_aio_get_output(3) function.

-
-
-
-
-

RETURN VALUES

-
-
-

None.

-
-
-
-
-

ERRORS

-
-
-

None.

-
-
-
- -
- - diff --git a/man/tip/nng_aio_set_timeout.3.html b/man/tip/nng_aio_set_timeout.3.html new file mode 100644 index 00000000..75cc5559 --- /dev/null +++ b/man/tip/nng_aio_set_timeout.3.html @@ -0,0 +1,605 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_aio_set_timeout(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+typedef int nng_duration;
+void nng_aio_set_timeout(nng_aio *aio, nng_duration timeout);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_aio_set_timeout() function sets a timeout +for the asynchronous operation associated with aio. +This causes a timer to be started when the operation is actually started. +If the timer expires before the operation is completed, then it is +aborted with an error of NNG_ETIMEDOUT. +The timeout is specified as a relative number of milliseconds.

+
+
+

If the timeout is NNG_DURATION_INFINITE, then no timeout is used. +If the timeout is NNG_DURATION_DEFAULT, then a "default" or socket-specific +timeout is used. +(This is frequently the same as NNG_DURATION_INFINITE.)

+
+
+ + + + + +
+ + +As most operations involve some context switching, it is usually a good +idea to allow at least a few tens of milliseconds before timing them out — a too small timeout might not allow the operation to properly begin before +giving up! +
+
+
+

The value of timeout set for the aio is persistent, so that if the +handle is reused for multiple operations, they will have the same relative +timeout.

+
+
+
+
+

RETURN VALUES

+
+
+

None.

+
+
+
+
+

ERRORS

+
+
+

None.

+
+
+
+ +
+ + diff --git a/man/tip/nng_aio_set_timeout.html b/man/tip/nng_aio_set_timeout.html deleted file mode 100644 index 2d68b6db..00000000 --- a/man/tip/nng_aio_set_timeout.html +++ /dev/null @@ -1,601 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_aio_set_timeout(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-
-typedef int nng_duration;
-void nng_aio_set_timeout(nng_aio *aio, nng_duration timeout);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_aio_set_timeout() function sets a timeout for the asynchronous -operation associated with aio. This causes a timer to be started when the operation is actually -started. If the timer expires before the operation is completed, then it is -aborted with an error of NNG_ETIMEDOUT. The timeout is specified as a -relative number of milliseconds.

-
-
-

If the timeout is NNG_DURATION_INFINITE, then no timeout is used. -If the timeout is NNG_DURATION_DEFAULT, then a "default" or socket-specific -timeout is used. (This is frequently the same as NNG_DURATION_INFINITE.)

-
-
- - - - - -
- - -As most operations involve some context switching, it is usually a good -idea to allow at least a few tens of milliseconds before timing them out — a too small timeout might not allow the operation to properly begin before -giving up! -
-
-
-

The value of timeout set for the aio is persistent, so that if the -handle is reused for multiple operations, they will have the same relative -timeout.

-
-
-
-
-

RETURN VALUES

-
-
-

None.

-
-
-
-
-

ERRORS

-
-
-

None.

-
-
-
- -
- - diff --git a/man/tip/nng_aio_stop.3.html b/man/tip/nng_aio_stop.3.html new file mode 100644 index 00000000..bed7b404 --- /dev/null +++ b/man/tip/nng_aio_stop.3.html @@ -0,0 +1,596 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_aio_stop(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+void nng_aio_stop(nng_aio *aio);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_aio_stop() function stops the asynchronous I/O operation +associated with aio by aborting with NNG_ECANCELED, and then waits +for it to complete or to be completely aborted.

+
+
+

This is logically the equivalent of nng_aio_cancel() +followed by nng_aio_wait(), except that the asynchronous +I/O handle may not be used for any further operations.

+
+
+ + + + + +
+ + +When multiple asynchronous I/O handles are in use and need to be +shut down, it is safest to stop all of them, before deallocating any of +this with nng_aio_free(), particularly if the callbacks +might attempt to reschedule additional operations. +
+
+
+
+
+

RETURN VALUES

+
+
+

None.

+
+
+
+
+

ERRORS

+
+
+

None.

+
+
+
+ +
+ + diff --git a/man/tip/nng_aio_stop.html b/man/tip/nng_aio_stop.html deleted file mode 100644 index ef84e0d1..00000000 --- a/man/tip/nng_aio_stop.html +++ /dev/null @@ -1,595 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_aio_stop(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-
-void nng_aio_stop(nng_aio *aio);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_aio_stop() function stops the asynchronous I/O operation -associated with aio by aborting with NNG_ECANCELED, and then waits -for it to complete or to be completely aborted.

-
-
-

This is logically the equivalent of nng_aio_cancel(3) -followed by nng_aio_wait(3), except that the asynchronous -I/O handle may not be used for any further operations.

-
-
- - - - - -
- - -When multiple asynchronous I/O handles are in use and need to be -shut down, it is safest to stop all of them, before deallocating any of -this with nng_aio_free(3), particularly if the callbacks -might attempt to reschedule additional operations. -
-
-
-
-
-

RETURN VALUES

-
-
-

None.

-
-
-
-
-

ERRORS

-
-
-

None.

-
-
-
- -
- - diff --git a/man/tip/nng_aio_wait.3.html b/man/tip/nng_aio_wait.3.html new file mode 100644 index 00000000..75d7018f --- /dev/null +++ b/man/tip/nng_aio_wait.3.html @@ -0,0 +1,579 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_aio_wait(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+void nng_aio_wait(nng_aio *aio);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_aio_wait() function waits for an asynchronous I/O operation +to complete. +If the operation has not been started, or has already +completed, then it returns immediately.

+
+
+

If the a callback was set with aio when it was allocated, then this +function will not be called until the callback has completed.

+
+
+
+
+

RETURN VALUES

+
+
+

None.

+
+
+
+
+

ERRORS

+
+
+

None.

+
+
+
+ +
+ + diff --git a/man/tip/nng_aio_wait.html b/man/tip/nng_aio_wait.html deleted file mode 100644 index e3356d5d..00000000 --- a/man/tip/nng_aio_wait.html +++ /dev/null @@ -1,577 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_aio_wait(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-
-void nng_aio_wait(nng_aio *aio);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_aio_wait() function waits for an asynchronous I/O operation -to complete. If the operation has not been started, or has already -completed, then it returns immediately.

-
-
-

If the a callback was set with aio when it was allocated, then this -function will not be called until the callback has completed.

-
-
-
-
-

RETURN VALUES

-
-
-

None.

-
-
-
-
-

ERRORS

-
-
-

None.

-
-
-
-
-

SEE ALSO

- -
-
- - diff --git a/man/tip/nng_alloc.3.html b/man/tip/nng_alloc.3.html new file mode 100644 index 00000000..d73217df --- /dev/null +++ b/man/tip/nng_alloc.3.html @@ -0,0 +1,599 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_alloc(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+void *nng_alloc(size_t size);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_alloc() function allocates a contiguous memory region of +at least size bytes. +The memory will be 64-bit aligned.

+
+
+

The returned memory can be used to hold message buffers, in which +case it can be directly passed to nng_send() using +the flag NNG_FLAG_ALLOC. Alternatively, it can be freed when no +longer needed using nng_free().

+
+
+ + + + + +
+ + +Do not use the system free() function to release this memory. +On some platforms this may work, but it is not guaranteed and may lead +to a crash or other undesirable and unpredictable behavior. +
+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ENOMEM
+
+

Insufficient free memory exists.

+
+
+
+
+
+
+

SEE ALSO

+ +
+
+ + diff --git a/man/tip/nng_alloc.html b/man/tip/nng_alloc.html deleted file mode 100644 index f475df39..00000000 --- a/man/tip/nng_alloc.html +++ /dev/null @@ -1,598 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_alloc(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-
-void *nng_alloc(size_t size);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_alloc() function allocates a contiguous memory region of -at least size bytes. The memory will be 64-bit aligned.

-
-
-

The returned memory can be used to hold message buffers, in which -case it can be directly passed to nng_send(3) using -the flag NNG_FLAG_ALLOC. Alternatively, it can be freed when no -longer needed using nng_free(3).

-
-
- - - - - -
- - -Do not use the system free() function to release this memory. -On some platforms this may work, but it is not guaranteed and may lead -to a crash or other undesirable and unpredictable behavior. -
-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_ENOMEM
-
-

Insufficient free memory exists.

-
-
-
-
-
-
-

SEE ALSO

- -
-
- - diff --git a/man/tip/nng_bus.7.html b/man/tip/nng_bus.7.html new file mode 100644 index 00000000..54adf490 --- /dev/null +++ b/man/tip/nng_bus.7.html @@ -0,0 +1,630 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_bus(7) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/protocol/bus0/bus.h>
+
+int nng_bus0_open(nng_socket *s);
+
+
+
+
+
+

DESCRIPTION

+
+
+

+The bus protocol provides for building mesh networks where +every peer is connected to every other peer. +In this protocol, each message sent by a node is sent to every one of +its directly connected peers.

+
+
+ + + + + +
+ + +Messages are only sent to directly connected peers. +This means that in the event that a peer is connected indirectly, it will not +receive messages. +When using this protocol to build mesh networks, it +is therefore important that a fully-connected mesh network be constructed. +
+
+
+

All message delivery in this pattern is best-effort, which means that +peers may not receive messages. +Furthermore, delivery may occur to some, +all, or none of the directly connected peers. +(Messages are not delivered when peer nodes are unable to receive.) +Hence, send operations will never block; instead if the +message cannot be delivered for any reason it is discarded.

+
+
+ + + + + +
+ + +In order to minimize the likelihood of message loss, this protocol +should not be used for high throughput communications. +Furthermore, the more traffic in aggregate that occurs across the topology, +the more likely that message loss is to occur. +
+
+
+

Socket Operations

+
+

The nng_bus0_open() call creates a bus socket. +This socket may be used to send and receive messages. +Sending messages will attempt to deliver to each directly connected peer.

+
+
+
+

Protocol Versions

+
+

Only version 0 of this protocol is supported. +(At the time of writing, no other versions of this protocol have been defined.)

+
+
+
+

Protocol Options

+
+

The bus protocol has no protocol-specific options.

+
+
+
+

Protocol Headers

+
+

The bus protocol has no protocol-specific headers.

+
+
+
+
+
+

SEE ALSO

+ +
+
+ + diff --git a/man/tip/nng_bus.html b/man/tip/nng_bus.html deleted file mode 100644 index 91a7bd8c..00000000 --- a/man/tip/nng_bus.html +++ /dev/null @@ -1,627 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_bus(7) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/protocol/bus0/bus.h>
-
-int nng_bus0_open(nng_socket *s);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_bus protocol provides for building mesh networks where -every peer is connected to every other peer. In this protocol, -each message sent by a node is sent to every one of its directly -connected peers.

-
-
- - - - - -
- - -Messages are only sent to directly connected peers. This means -that in the event that a peer is connected indirectly, it will not -receive messages. When using this protocol to build mesh networks, it -is therefore important that a fully-connected mesh network be -constructed. -
-
-
-

All message delivery in this pattern is best-effort, which means that -peers may not receive messages. Furthermore, delivery may occur to some, -all, or none of the directly connected peers. (Messages are not delivered -when peer nodes are unable to receive.) Hence, send operations will never -block; instead if the message cannot be delivered for any reason it is -discarded.

-
-
- - - - - -
- - -In order to minimize the likelihood of message loss, this protocol -should not be used for high throughput communications. Furthermore, the -more traffic in aggregate that occurs across the topology, the more -likely that message loss is to occur. -
-
-
-

Socket Operations

-
-

The nng_bus0_open() call creates a bus socket. This socket -may be used to send and receive messages. Sending messages will -attempt to deliver to each directly connected peer.

-
-
-
-

Protocol Versions

-
-

Only version 0 of this protocol is supported. (At the time of writing, -no other versions of this protocol have been defined.)

-
-
-
-

Protocol Options

-
-

The nng_bus protocol has no protocol-specific options.

-
-
-
-

Protocol Headers

-
-

The nng_bus protocol has no protocol-specific headers.

-
-
-
-
-
-

SEE ALSO

-
-
-

nng(7)

-
-
-
-
- - diff --git a/man/tip/nng_bus_open.3.html b/man/tip/nng_bus_open.3.html new file mode 100644 index 00000000..09b02fe8 --- /dev/null +++ b/man/tip/nng_bus_open.3.html @@ -0,0 +1,582 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_bus_open(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/protocol/bus0/bus.h>
+
+int nng_bus0_open(nng_socket *s);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_bus0_open() function creates a bus version 0 +socket and returns it at the location pointed to by s.

+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ENOMEM
+
+

Insufficient memory is available.

+
+
NNG_ENOTSUP
+
+

The protocol is not supported.

+
+
+
+
+
+
+

SEE ALSO

+ +
+
+ + diff --git a/man/tip/nng_close.3.html b/man/tip/nng_close.3.html new file mode 100644 index 00000000..26049d3e --- /dev/null +++ b/man/tip/nng_close.3.html @@ -0,0 +1,586 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_close(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+int nng_close(nng_socket s);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_close() function closes the supplied socket, s. +Messages that have been submitted for sending may be flushed or delivered, +depending upon the transport and the setting of the +NNG_OPT_LINGER option.

+
+
+

Further attempts to use the socket after this call returns will result +in NNG_ECLOSED. +Threads waiting for operations on the socket when this +call is executed may also return with an NNG_ECLOSED result.

+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ECLOSED
+
+

The socket s is already closed or was never opened.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_close.html b/man/tip/nng_close.html deleted file mode 100644 index d099ebe3..00000000 --- a/man/tip/nng_close.html +++ /dev/null @@ -1,584 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_close(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-
-int nng_close(nng_socket s);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_close() function closes the supplied socket, s. Messages -that have been submitted for sending may be flushed or delivered, -depending upon the transport and the setting of the NNG_OPT_LINGER -option.

-
-
-

Further attempts to use the socket after this call returns will result -in NNG_EBADF. Threads waiting for operations on the socket when this -call is executed may also return with an NNG_EBADF result.

-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_EBADF
-
-

The socket s is already closed or was never opened.

-
-
-
-
-
-
-

SEE ALSO

- -
-
- - diff --git a/man/tip/nng_compat.3compat.html b/man/tip/nng_compat.3compat.html new file mode 100644 index 00000000..94e79df7 --- /dev/null +++ b/man/tip/nng_compat.3compat.html @@ -0,0 +1,725 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_compat(3compat) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nn/nn.h>
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng library provides source-level compatibility for +most nanomsg 1.0 applications.

+
+
+ + + + + +
+ + +This is intended to faciliate converting legacy applications to +use the nng library. +New applications shoud not use the newer nng API instead. +
+
+
+

Applications making use of this compatibility layer take care +to link with libnng instead of libnn.

+
+
+ + + + + +
+ + +Some capabilities, protocols, and transports, will not be accessible +using this API, as the compatible API has no provision for expression +of certain concepts introduced in the newer nng API. +
+
+
+ + + + + +
+ + +While reasonable efforts have been made to provide for compatibility, +some things may behave differently, and some less common parts of the +nanomsg 1.0 API are not supported at this time, including certain +options and the statistics API. +
+
+
+ + + + + +
+ + +If an installation of the older nanomsg library is present on +the build system, it may be necessary to provide a different search +path for header files to ensure that the compatibility definitions are +used in compilation. +
+
+
+

Functions

+
+

The following functions are provided:

+
+ ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

nn_socket()

create a socket

nn_getsockopt()

get socket option

nn_setsockopt()

set socket option

nn_bind()

accept connections from remote peers

nn_connect()

connect to remote peer

nn_send()

send data

nn_recv()

receive data

nn_shutdown()

shut down endpoint

nn_close()

close socket

nn_poll()

poll sockets

nn_device()

create forwarding device

nn_recvmsg()

receive message

nn_sendmsg()

send message

nn_get_statistic()

get statistic (stub)

nn_allocmsg()

allocate message

nn_reallocmsg()

reallocate message

nn_freemsg()

free message

nn_errno()

return most recent error

nn_strerror()

return message for error

nn_term()

terminate library

+
+ + + + + +
+ + +Documentation for the compatibility functions will be +supplied here later. +In the meantime it can be found online at the +nanomsg site. +
+
+
+
+
+
+

SEE ALSO

+
+
+

nng(7)

+
+
+
+
+ + diff --git a/man/tip/nng_device.3.html b/man/tip/nng_device.3.html new file mode 100644 index 00000000..401aeefa --- /dev/null +++ b/man/tip/nng_device.3.html @@ -0,0 +1,690 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_device(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+int nng_device(nng_socket s1, nng_socket s2);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_device() function forwards messages received from one +socket s1 to another socket s2, and vice versa.

+
+
+

This function is used to create forwarders, which can be used to create +complex network topologies to provide for improved horizontal scalability, +reliability, and isolation.

+
+
+

The nng_device() function does not return until one of the sockets +is closed.

+
+
+

Reflectors

+
+

One of the sockets may be passed the special value -1 (cast to an, +nng_socket of course). +If this is the case, then the other socket must be valid, and must be +a protocol that is bidirectional and can peer with itself (such as +pair or +bus.) +In this case the device acts as a reflector or loop-back device, +where messages received from the valid socket are merely returned +back to the sender.

+
+
+
+

Forwarders

+
+

When both sockets are valid, then the result is a forwarder or proxy. +In this case sockets s1 and s2 must be “compatible” with each other, +which is to say that they should represent the opposite halves of a two +protocol pattern, or both be the same protocol for a single protocol +pattern. +For example, if s1 is a pub socket, then s2 must +be a sub socket. +Or, if s1 is a bus socket, then s2 must also +be a bus socket.

+
+
+
+

Operation

+
+

This nng_device() function puts each socket into raw mode +(see NNG_OPT_RAW), and then moves messages +between them. +When a protocol has a backtrace style header, routing information is +added as the message crosses the forwarder, allowing replies to be +returned to requestors, and responses to be routed back to surveyors.

+
+
+

Additionally, some protocols have a maximum time-to-live to protect +against forwarding loops and especially amplification loops. +In these cases, the default limit (usually 8), ensures that messages will +self-terminate when they have passed through too many forwarders, +protecting the network from unlimited message amplification that can arise +through misconfiguration. +This is controlled via the NNG_OPT_MAXTTL +option.

+
+
+ + + + + +
+ + +Not all protocols have support for guarding against forwarding loops, +and even for those that do, forwarding loops can be extremely determintal +to network performance. +
+
+
+ + + + + +
+ + +Devices (forwarders and reflectors) act in best effort delivery mode only. +If a message is received from one socket that cannot be accepted by the +other (due to backpressure or other issues), then the message is discarded. +
+
+
+ + + + + +
+ + +Use the request/reply pattern, which includes automatic retries by +the requestor, if reliable delivery is needed. +
+
+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ECLOSED
+
+

At least one of the sockets is not open.

+
+
NNG_ENOMEM
+
+

Insufficient memory is available.

+
+
NNG_EINVAL
+
+

The sockets are not compatible, or are both invalid.

+
+
+
+
+
+
+

SEE ALSO

+ +
+
+ + diff --git a/man/tip/nng_dial.3.html b/man/tip/nng_dial.3.html new file mode 100644 index 00000000..96ea1e87 --- /dev/null +++ b/man/tip/nng_dial.3.html @@ -0,0 +1,677 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_dial(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+int nng_dial(nng_socket s, const char *url, nng_dialer *dp, int flags);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_dialer() function creates a newly initialized +nng_dialer object, +associated with socket s, and configured to listen at the +address specified by url, and starts it. +If the value of dp is not NULL, then +the newly created dialer is stored at the address indicated by dp.

+
+
+

Dialers initiate a remote connection to a listener. +Upon a successful +connection being established, they create a pipe, +add it to the socket, and then wait for that pipe to be closed. +When the pipe is closed, the dialer attempts to re-establish the connection. +Dialers will also periodically retry a connection automatically if an attempt +to connect asynchronously fails.

+
+
+ + + + + +
+ + +While it is convenient to think of dialers as “clients`”, the relationship +between the listener or dialer is orthogonal to any server or client status +that might be associated with a given protocol. +For example, a req +socket might have associated dialers, but might also have associated listeners. +It may even have some of each at the same time! +
+
+
+

Normally, the first attempt to connect to the address indicated by url is done +synchronously, including any necessary name resolution. +As a result, a failure, such as if the connection is refused, will be returned +immediately, and no further action will be taken.

+
+
+

However, if the special value NNG_FLAG_NONBLOCK is +supplied in flags, then the connection attempt is made asynchronously.

+
+
+

Furthermore, if the connection was closed for a synchronously dialed +connection, the dialer will still attempt to redial asynchronously.

+
+
+ + + + + +
+ + +While NNG_FLAG_NONBLOCK can help an application be more resilient, +it also generally makes diagnosing failures somewhat more difficult. +
+
+
+

Because the dialer is started immediately, it is generally not possible +to apply extra configuration; if that is needed applications should consider +using nng_dialer_create() and +nng_dialer_start() instead.

+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_EADDRINVAL
+
+

An invalid url was specified.

+
+
NNG_ECLOSED
+
+

The socket s is not open.

+
+
NNG_ECONNREFUSED
+
+

The remote peer refused the connection.

+
+
NNG_ECONNRESET
+
+

The remote peer reset the connection.

+
+
NNG_EINVAL
+
+

An invalid set of flags was specified.

+
+
NNG_ENOMEM
+
+

Insufficient memory is available.

+
+
NNG_EPEERAUTH
+
+

Authentication or authorization failure.

+
+
NNG_EPROTO
+
+

A protocol error occurred.

+
+
NNG_EUNREACHABLE
+
+

The remote address is not reachable.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_dial.html b/man/tip/nng_dial.html deleted file mode 100644 index 877d3530..00000000 --- a/man/tip/nng_dial.html +++ /dev/null @@ -1,671 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_dial(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-
-int nng_dial(nng_socket s, const char *url, nng_dialer *dp, int flags);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_dialer() function creates a newly initialized -dialer, associated with socket s, and configured to listen at the -address specified by url. If the value of dp is not NULL, then -the newly created dialer is stored at the address indicated by dp.

-
-
-

Dialers initiate a remote connection to a listener. Upon a successful -connection being established, they create a pipe, add it to the socket, -and then wait for that pipe to be closed. When the pipe is closed, -they will re-initiate the connection. Dialer’s will also periodically -retry a connection automatically if an attempt to connect asynchronously -fails.

-
-
- - - - - -
- - -While it is convenient to think of dialers as "clients", the relationship -between the listener or dialer is orthogonal to any server or client status -that might be associated with a given protocol. For example, a REQ -socket might have associated dialers, but might also have associated listeners. -It may even have some of each at the same time! -
-
-
-

Normally, the first attempt to connect to the address indicated by url is done -synchronously, including any necessary name resolution. As a result, -a failure, such as if the connection is refused, will be returned -immediately, and no further action will be taken.

-
-
-

However, if the special value NNG_FLAG_NONBLOCK is -supplied in flags, then the connection attempt is made asynchronously.

-
-
-

Furthermore, if the connection was closed for a synchronously dialed -connection, the dialer will still attempt to redial asynchronously.

-
-
- - - - - -
- - -While NNG_FLAG_NONBLOCK can help an application be more resilient, -it also generally makes diagnosing failures somewhat more difficult. -
-
-
-

Because the dialer is started immediately, it is generally not possible -to apply extra configuration; if that is needed applications should consider -using nng_dialer_create(3) and -nng_dialer_start(3) instead.

-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_EADDRINVAL
-
-

An invalid url was specified.

-
-
NNG_ECLOSED
-
-

The socket s is not open.

-
-
NNG_ECONNREFUSED
-
-

The remote peer refused the connection.

-
-
NNG_ECONNRESET
-
-

The remote peer reset the connection.

-
-
NNG_EINVAL
-
-

An invalid set of flags was specified.

-
-
NNG_ENOMEM
-
-

Insufficient memory is available.

-
-
NNG_EPEERAUTH
-
-

Authentication or authorization failure.

-
-
NNG_EPROTO
-
-

A protocol error occurred.

-
-
NNG_EUNREACHABLE
-
-

The remote address is not reachable.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_dialer.5.html b/man/tip/nng_dialer.5.html new file mode 100644 index 00000000..8d1992fe --- /dev/null +++ b/man/tip/nng_dialer.5.html @@ -0,0 +1,610 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_dialer(5) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+typedef uint32_t nng_dialer;
+
+
+
+
+
+

DESCRIPTION

+
+
+

+An nng_dialer is a handle to a “dialer” object, which is responsible for +creating a single nng_pipe at a time by +establishing an outgoing connection.

+
+
+

If the connection is broken, or fails, the dialer object will automatically +attempt to reconnect, and will keep doing so until the dialer or socket is +destroyed.

+
+
+

Dialer objects are created by the +nng_dialer_create() +or nng_dial() functions, and are always “owned” +by a single nng_socket.

+
+
+ + + + + +
+ + +A given nng_socket may have multiple dialer +objects, multiple listener objects, or even some +of both. +
+
+
+ + + + + +
+ + +The client/server relationship described by dialer/listener is +completely orthogonal to any similar relationship in the protocols. +For example, a rep socket may use a dialer +to connect to a listener on an req socket. +This orthogonality can lead to innovative solutions to otherwise +challenging communications problems. +
+
+
+

Dialer objects may be destroyed by the +nng_pipe_close() function. +They are also closed when their “owning” socket is closed.

+
+
+
+ +
+ + diff --git a/man/tip/nng_dialer_close.3.html b/man/tip/nng_dialer_close.3.html new file mode 100644 index 00000000..1b6e8b51 --- /dev/null +++ b/man/tip/nng_dialer_close.3.html @@ -0,0 +1,591 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_dialer_close(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+int nng_dialer_close(nng_dialer d);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_dialer_close() function closes the listener d. +This also closes any nng_pipe ojects that have +been created by the dialer.

+
+
+

Once this function returns, the dialer d and any of its resources +are deallocated. +Therefore it is an error to attempt to access d after +this function has returned. +(Attempts to do so will result in NNG_ECLOSED errors.)

+
+
+

Dialers are implicitly closed when the socket they are associated with is closed.

+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ECLOSED
+
+

Parameter d does not refer to an open listener.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_dialer_close.html b/man/tip/nng_dialer_close.html deleted file mode 100644 index 25d096b2..00000000 --- a/man/tip/nng_dialer_close.html +++ /dev/null @@ -1,589 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_dialer_close(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-
-int nng_dialer_close(nng_dialer d);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_dialer_close() function closes the listener d. -This also closes any pipe that has been created by the dialer.

-
-
-

Once this function returns, the dialer d and any of its resources -are deallocated. Therefore it is an error to attempt to access d -after this function has returned. (Attempts to do so will result in -NNG_ECLOSED errors.)

-
-
-

Dialers are implicitly closed when the socket they are associated with -is closed.

-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_ECLOSED
-
-

Parameter d does not refer to an open listener.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_dialer_create.3.html b/man/tip/nng_dialer_create.3.html new file mode 100644 index 00000000..c6c2b618 --- /dev/null +++ b/man/tip/nng_dialer_create.3.html @@ -0,0 +1,642 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_dialer_create(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+int nng_dialer_create(nng_dialer *dialerp, nng_socket s, const char *url);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_dialer_create() function creates a newly initialized +nng_dialer object, associated with socket s, +and configured to connect to the +address specified by url, and stores a pointer to at the location +referenced by dialerp.

+
+
+

Dialers initiate a remote connection to a listener. +Upon a successful +connection being established, they create a pipe, add it to the socket, +and then wait for that pipe to be closed. +When the pipe is closed, they will re-initiate the connection. +Dialers will also periodically retry a connection automatically if +an attempt to connect asynchronously +fails.

+
+
+ + + + + +
+ + +While it is convenient to think of dialers as “clients”, the relationship +between the listener or dialer is orthogonal to any server or client status +that might be associated with a given protocol. +For example, a req +socket might have associated dialers, but might also have associated listeners. +It may even have some of each at the same time! +
+
+
+

The dialer is not started, but may be further configured with +the nng_dialer_setopt() family of functions.

+
+
+

Once it is fully configured, the dialer may be started using the +nng_dialer_start() function.

+
+
+ + + + + +
+ + +If no specific configuration is required, consider using the +simpler nng_dial() function instead. +
+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_EADDRINVAL
+
+

An invalid url was specified.

+
+
NNG_ECLOSED
+
+

The socket s is not open.

+
+
NNG_ENOMEM
+
+

Insufficient memory is available.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_dialer_create.html b/man/tip/nng_dialer_create.html deleted file mode 100644 index ed71fee4..00000000 --- a/man/tip/nng_dialer_create.html +++ /dev/null @@ -1,638 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_dialer_create(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-
-int nng_dialer_create(nng_dialer *dialerp, nng_socket s, const char *url);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_dialer_create() function creates a newly initialized -dialer, associated with socket s, and configured to connect to the -address specified by url, and stores a pointer to at the location -referenced by dialerp.

-
-
-

Dialers initiate a remote connection to a listener. Upon a successful -connection being established, they create a pipe, add it to the socket, -and then wait for that pipe to be closed. When the pipe is closed, -they will re-initiate the connection. Dialer’s will also periodically -retry a connection automatically if an attempt to connect asynchronously -fails.

-
-
- - - - - -
- - -While it is convenient to think of dialers as "clients", the relationship -between the listener or dialer is orthogonal to any server or client status -that might be associated with a given protocol. For example, a REQ -socket might have associated dialers, but might also have associated listeners. -It may even have some of each at the same time! -
-
-
-

The dialer is not started, but may be further configured with -the nng_dialer_setopt(3) family of -functions.

-
-
-

Once it is fully configured, the dialer may be started using the -nng_dialer_start(3) function.

-
-
- - - - - -
- - -If no specific configuration is required, consider using the -simpler nng_dial(3) function instead. -
-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_EADDRINVAL
-
-

An invalid url was specified.

-
-
NNG_ECLOSED
-
-

The socket s is not open.

-
-
NNG_ENOMEM
-
-

Insufficient memory is available.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_dialer_getopt.3.html b/man/tip/nng_dialer_getopt.3.html new file mode 100644 index 00000000..dd03f3c5 --- /dev/null +++ b/man/tip/nng_dialer_getopt.3.html @@ -0,0 +1,677 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_dialer_getopt(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+int nng_dialer_getopt(nng_dialer d, const char *opt, void *val, size_t *valszp);
+
+int nng_dialer_getopt_int(nng_dialer d, const char *opt, int *ivalp);
+
+int nng_dialer_getopt_ms(nng_dialer d, const char *opt, nng_duration *durp);
+
+int nng_dialer_getopt_ptr(nng_dialer d, const char *opt, void **ptr);
+
+int nng_dialer_setopt_size(nng_dialer d, const char *opt, size_t *zp);
+
+int nng_dialer_getopt_uint64(nng_dialer d, const char *opt, uint64_t *u64p);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_dialer_getopt() functions are used to retrieve option values for +the dialer d. +The actual options that may be retrieved in this way +vary, and many are documented in nng_options(5). +Additionally some transport-specific options are documented with the +transports themselves.

+
+
+

In all of these forms, the option opt is retrieved from the dialer d.

+
+
+

The details of the type, size, and semantics of the option will depend +on the actual option, and will be documented with the option itself.

+
+
+

Untyped Form

+
+

The first form of this function, nng_dialer_getopt(), can be used to +retrieve the value of any option. +The caller must store a pointer to a buffer to receive the value in val, +and the size of the buffer shall be stored at the location referenced +by valszp.

+
+
+

When the function returns, the actual size of the data copied (or that +would have been copied if sufficient space were present) is stored at +the location referened by valszp. +If the caller’s buffer is not large +enough to hold the entire object, then the copy is truncated. +Therefore the caller should validate that the returned size in valszp does not +exceed the original buffer size to check for truncation.

+
+
+

It is acceptable to pass NULL for val if the value in valszp is zero. +This can be used to determine the size of the buffer needed to receive +the object.

+
+
+
+

Typed Forms

+
+

Generally, it will be easier to use one of the typed forms instead. +Note however that no validation that the option is actually of the associated +type is performed, so the caller must take care to use the correct typed +form.

+
+
+

The second form, nng_dialer_getopt_int(), +is for options which take an integer (or boolean). +The value will be stored at ivalp. +For booleans the value will be eiher 0 (false) or 1 (true).

+
+
+

The third form, nng_dialer_getopt_ms(), is used to retrieve time durations +(such as timeouts), stored in durp as a number of milliseconds. +(The special value NNG_DUR_INFINITE means an infinite amount of time, and +the special value NNG_DUR_DEFAULT means a context-specific default.)

+
+
+

The fourth form, nng_dialer_getopt_ptr(), is used to retrieve a +pointer ptr to structured data. +The data referenced by ptr is generally managed using other functions. +Note that this form is somewhat special in that the object is generally +not copied, but instead the pointer to the object is copied.

+
+
+

The fifth form, nng_dialer_getopt_size(), is used to retrieve a size +into the pointer zp, typically for buffer sizes, message maximum sizes, and +similar options.

+
+
+

The sixth form, nng_dialer_getopt_uint64(), is used to retrieve a +64-bit unsigned value into the value referenced by u64p. +This is typically used for options +related to identifiers, network numbers, and similar.

+
+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ECLOSED
+
+

Parameter d does not refer to an open dialer.

+
+
NNG_ENOTSUP
+
+

The option opt is not supported.

+
+
NNG_EWRITEONLY
+
+

The option opt is write-only.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_dialer_getopt.html b/man/tip/nng_dialer_getopt.html deleted file mode 100644 index fcf6b189..00000000 --- a/man/tip/nng_dialer_getopt.html +++ /dev/null @@ -1,657 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_dialer_getopt(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-
-int nng_dialer_getopt(nng_dialer d, const char *opt, void *val, size_t *valszp);
-int nng_dialer_getopt_int(nng_dialer d, const char *opt, int *ivalp);
-int nng_dialer_getopt_ms(nng_dialer d, const char *opt, nng_duration *durp);
-int nng_dialer_getopt_ptr(nng_dialer d, const char *opt, void **ptr);
-int nng_dialer_setopt_size(nng_dialer d, const char *opt, size_t *zp);
-int nng_dialer_getopt_uint64(nng_dialer d, const char *opt, uint64_t *u64p);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_dialer_getopt() functions are used to retrieve option values for -the dialer d. The actual options that may be retrieved in this way -vary, and are documented in the nng_getopt(3) manual. -Additionally some transport-specific options are documented with the -transports themselves.

-
-
-

In all of these forms, the option opt is retrieved from the dialer d.

-
-
-

The details of the type, size, and semantics of the option will depend -on the actual option, and will be documented with the option itself.

-
-
-

The first form of this function, nng_dialer_getopt(), can be used to -retrieve the value of any option. It is untyped. The caller must store -a pointer to a buffer to receive the value in val, and the size of the -buffer shall be stored at the location referenced by valszp.

-
-
-

When the function returns, the actual size of the data copied (or that -would have been copied if sufficient space were present) is stored at -the location referened by valszp. If the caller’s buffer is not large -enough to hold the entire object, then the copy is truncated. Therefore -the caller should validate that the returned size in valszp does not -exceed the original buffer size to check for truncation.

-
-
-

It is acceptable to pass NULL for val if the value in valszp is zero. -This can be used to determine the size of the buffer needed to receive -the object.

-
-
-

Generally, it will be easier to use one of the typed forms instead. Note -however that no validation that the option is actually of the associated -type is performed, so the caller must take care to use the correct typed -form.

-
-
-

The second form, nng_dialer_getopt_int(), -is for options which take an integer (or boolean). The value will -be stored at ivalp. For booleans the value will be eiher 0 (false) or 1 (true).

-
-
-

The third form, nng_dialer_getopt_ms(), is used to retrieve time durations -(such as timeouts), stored in durp as a number of milliseconds. -(The special value NNG_DUR_INFINITE means an infinite amount of time, and -the special value NNG_DUR_DEFAULT means a context-specific default.)

-
-
-

The fourth form, nng_dialer_getopt_ptr(), is used to retrieve a -pointer ptr to structured data. The data referenced by ptr is -generally managed using other functions. -Note that this form is somewhat special in that the object is generally -not copied, but instead the pointer to the object is copied.

-
-
-

The fifth form, nng_dialer_getopt_size(), is used to retrieve a size -into the pointer zp, typically for buffer sizes, message maximum sizes, and -similar options.

-
-
-

The sixth form, nng_diale_getopt_uint64(), is used to retrieve a -64-bit unsigned value into the value referenced by u64p. -This is typically used for options -related to identifiers, network numbers, and similar.

-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_ECLOSED
-
-

Parameter d does not refer to an open dialer.

-
-
NNG_ENOTSUP
-
-

The option opt is not supported.

-
-
NNG_EWRITEONLY
-
-

The option opt is write-only.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_dialer_setopt.3.html b/man/tip/nng_dialer_setopt.3.html new file mode 100644 index 00000000..63d2cd8e --- /dev/null +++ b/man/tip/nng_dialer_setopt.3.html @@ -0,0 +1,681 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_dialer_setopt(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+int nng_dialer_setopt(nng_dialer d, const char *opt, const void *val,
+    size_t valsz);
+
+int nng_dialer_setopt_int(nng_dialer d, const char *opt, int ival);
+
+int nng_dialer_setopt_ms(nng_dialer d, const char *opt, nng_duration dur);
+
+int nng_dialer_setopt_ptr(nng_dialer d, const char *opt, void *ptr);
+
+int nng_dialer_setopt_size(nng_dialer d, const char *opt, size_t z);
+
+int nng_dialer_setopt_string(nng_dialer d, const char *opt, const char *str);
+
+int nng_dialer_setopt_uint64(nng_dialer d, const char *opt, uint64_t u64);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_dialer_setopt() functions are used to configure options for +the dialer d. +The actual options that may be configured in this way +vary, and many are documented in nng_options(5). +Additionally some transport-specific options are documented with the +transports themselves.

+
+
+

In all of these forms, the option opt is configured on the dialer d.

+
+
+

The details of the type, size, and semantics of the option will depend +on the actual option, and will be documented with the option itself.

+
+
+

The first form of this function, nng_dialer_setopt(), can be used to +configure any arbitrary data. +The val pointer addresses the data to copy, and valsz is the +size of the objected located at val.

+
+
+

Generally, it will be easier to use one of the typed forms instead.

+
+
+

The second form, nng_dialer_setopt_int(), +is for options which take an integer (or boolean). The ival +is passed to the option. For booleans pass either 0 (false) or 1 (true).

+
+
+

The third form, nng_dialer_setopt_ms(), is used to configure time durations +(such as timeouts). +The duration dur is an integer number of milliseconds. (The special value +NNG_DUR_INFINITE means an infinite amount of time.)

+
+
+

The fourth form, nng_dialer_setopt_ptr(), is used to pass a +pointer ptr to structured data. The data referenced by ptr is +generally managed by other functions. +For example, TLS configuration objects +(nng_tls_config_alloc()) can be passed this way. +Note that this form is somewhat special in that the object is generally +not copied, but instead the pointer to the object is copied.

+
+
+

The fifth form, nng_dialer_setopt_size(), is used to pass a size +specified by z, typically for buffer sizes, message maximum sizes, and +similar options.

+
+
+

The sixth form, nng_dialer_setopt_string(), is used to pass a string +str. +Strings passed this way must be legal UTF-8 or ASCII strings, terminated +with a NUL (\0) byte. +(Other constraints may apply as well, see the +documentation for opt for details.)

+
+
+

The seventh form, nng_dialer_setopt_uint64(), is used to configure +the 64-bit unsigned value in u64. +This is typically used for options +related to identifiers, network numbers, and similar.

+
+
+ + + + + +
+ + +Once a dialer has started, it is generally not possible to change +it’s configuration. +
+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ECLOSED
+
+

Parameter d does not refer to an open dialer.

+
+
NNG_EINVAL
+
+

The value being passed is invalid.

+
+
NNG_ENOTSUP
+
+

The option opt is not supported.

+
+
NNG_EREADONLY
+
+

The option opt is read-only.

+
+
NNG_ESTATE
+
+

The dialer d is already started.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_dialer_setopt.html b/man/tip/nng_dialer_setopt.html deleted file mode 100644 index eb8f2e4e..00000000 --- a/man/tip/nng_dialer_setopt.html +++ /dev/null @@ -1,671 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_dialer_setopt(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-
-int nng_dialer_setopt(nng_dialer d, const char *opt, const void *val,
-    size_t valsz);
-int nng_dialer_setopt_int(nng_dialer d, const char *opt, int ival);
-int nng_dialer_setopt_ms(nng_dialer d, const char *opt, nng_duration dur);
-int nng_dialer_setopt_ptr(nng_dialer d, const char *opt, void *ptr);
-int nng_dialer_setopt_size(nng_dialer d, const char *opt, size_t z);
-int nng_dialer_setopt_string(nng_dialer d, const char *opt, const char *str);
-int nng_dialer_setopt_uint64(nng_dialer d, const char *opt, uint64_t u64);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_dialer_setopt() functions are used to configure options for -the dialer d. The actual options that may be configured in this way -vary, and are documented in the nng_setopt(3) manual. -Additionally some transport-specific options are documented with the -transports themselves.

-
-
-

In all of these forms, the option opt is configured on the dialer d.

-
-
-

The details of the type, size, and semantics of the option will depend -on the actual option, and will be documented with the option itself.

-
-
-

The first form of this function, nng_dialer_setopt(), can be used to -configure any arbitrary data. -The val pointer addresses the data to copy, and valsz is the -size of the objected located at val.

-
-
-

Generally, it will be easier to use one of the typed forms instead.

-
-
-

The second form, nng_dialer_setopt_int(), -is for options which take an integer (or boolean). The ival -is passed to the option. For booleans pass either 0 (false) or 1 (true).

-
-
-

The third form, nng_dialer_setopt_ms(), is used to configure time durations -(such as timeouts). -The duration dur is an integer number of milliseconds. (The special value -NNG_DUR_INFINITE means an infinite amount of time.)

-
-
-

The fourth form, nng_dialer_setopt_ptr(), is used to pass a -pointer ptr to structured data. The data referenced by ptr is -generally managed by other functions. -For example, TLS configuration objects -(nng_tls_config_alloc(3)) can be passed this way. -Note that this form is somewhat special in that the object is generally -not copied, but instead the pointer to the object is copied.

-
-
-

The fifth form, nng_dialer_setopt_size(), is used to pass a size -specified by z, typically for buffer sizes, message maximum sizes, and -similar options.

-
-
-

The sixth form, nng_dialer_setopt_string(), is used to pass a string -str. Strings passed this way must be legal UTF-8 or ASCII strings, terminated -with a NUL (\0) byte. (Other constraints may apply as well, see the -documentation for opt for details.)

-
-
-

The seventh form, nng_dialer_setopt_uint64(), is used to configure -the 64-bit unsigned value in u64. This is typically used for options -related to identifiers, network numbers, and similar.

-
-
- - - - - -
- - -Once a dialer has started, it is generally not possible to change -it’s configuration. -
-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_ECLOSED
-
-

Parameter d does not refer to an open dialer.

-
-
NNG_EINVAL
-
-

The value being passed is invalid.

-
-
NNG_ENOTSUP
-
-

The option opt is not supported.

-
-
NNG_EREADONLY
-
-

The option opt is read-only.

-
-
NNG_ESTATE
-
-

The dialer d is already started.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_dialer_start.3.html b/man/tip/nng_dialer_start.3.html new file mode 100644 index 00000000..7317a9a3 --- /dev/null +++ b/man/tip/nng_dialer_start.3.html @@ -0,0 +1,653 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_dialer_start(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+int nng_dialer_start(nng_dialer d, int flags);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_dialer_start() function starts the dialer d.

+
+
+

This causes the dialer to start connecting to the address with which it was +created.

+
+
+

When a connection is established, it results in a pipe being created, +which will be attached to the dialer’s socket.

+
+
+

Normally, the first attempt to connect to the dialer’s address is done +synchronously, including any necessary name resolution. +As a result, a failure, such as if the connection is refused, will be returned +immediately, and no further action will be taken.

+
+
+

However, if the special value NNG_FLAG_NONBLOCK is +supplied in flags, then the connection attempt is made asynchronously.

+
+
+

Furthermore, if the connection was closed for a synchronously dialed +connection, the dialer will still attempt to redial asynchronously.

+
+
+ + + + + +
+ + +While NNG_FLAG_NONBLOCK can help an application be more resilient, +it also generally makes diagnosing failures somewhat more difficult. +
+
+
+

Once a dialer has started, it is generally not possible to change +its configuration.

+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_EADDRINVAL
+
+

An invalid url was specified.

+
+
NNG_ECLOSED
+
+

The socket s is not open.

+
+
NNG_ECONNREFUSED
+
+

The remote peer refused the connection.

+
+
NNG_ECONNRESET
+
+

The remote peer reset the connection.

+
+
NNG_EINVAL
+
+

An invalid set of flags was specified.

+
+
NNG_ENOMEM
+
+

Insufficient memory is available.

+
+
NNG_EPEERAUTH
+
+

Authentication or authorization failure.

+
+
NNG_EPROTO
+
+

A protocol error occurred.

+
+
NNG_ESTATE
+
+

The dialer d is already started.

+
+
NNG_EUNREACHABLE
+
+

The remote address is not reachable.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_dialer_start.html b/man/tip/nng_dialer_start.html deleted file mode 100644 index 1981220c..00000000 --- a/man/tip/nng_dialer_start.html +++ /dev/null @@ -1,652 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_dialer_start(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-
-int nng_dialer_start(nng_dialer d, int flags);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_dialer_start() function starts the dialer d.

-
-
-

This causes the dialer to start connecting to the address with which it was -created.

-
-
-

When a connection is established, it results in a pipe being created, -which will be attached to the dialer’s socket.

-
-
-

Normally, the first attempt to connect to the dialer’s address is done -synchronously, including any necessary name resolution. As a result, -a failure, such as if the connection is refused, will be returned -immediately, and no further action will be taken.

-
-
-

However, if the special value NNG_FLAG_NONBLOCK is -supplied in flags, then the connection attempt is made asynchronously.

-
-
-

Furthermore, if the connection was closed for a synchronously dialed -connection, the dialer will still attempt to redial asynchronously.

-
-
- - - - - -
- - -While NNG_FLAG_NONBLOCK can help an application be more resilient, -it also generally makes diagnosing failures somewhat more difficult. -
-
-
-

Once a dialer has started, it is generally not possible to change -it’s configuration.

-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_EADDRINVAL
-
-

An invalid url was specified.

-
-
NNG_ECLOSED
-
-

The socket s is not open.

-
-
NNG_ECONNREFUSED
-
-

The remote peer refused the connection.

-
-
NNG_ECONNRESET
-
-

The remote peer reset the connection.

-
-
NNG_EINVAL
-
-

An invalid set of flags was specified.

-
-
NNG_ENOMEM
-
-

Insufficient memory is available.

-
-
NNG_EPEERAUTH
-
-

Authentication or authorization failure.

-
-
NNG_EPROTO
-
-

A protocol error occurred.

-
-
NNG_ESTATE
-
-

The dialer d is already started.

-
-
NNG_EUNREACHABLE
-
-

The remote address is not reachable.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_duration.5.html b/man/tip/nng_duration.5.html new file mode 100644 index 00000000..742ed008 --- /dev/null +++ b/man/tip/nng_duration.5.html @@ -0,0 +1,577 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_duration(5) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+typedef int32_t nng_duration;
+
+#define NNG_DURATION_INFINITE (-1)
+#define NNG_DURATION_DEFAULT  (-2)
+#define NNG_DURATION_ZERO     (0)
+
+
+
+
+
+

DESCRIPTION

+
+
+

An nng_duration is a relative time, measured in +milliseconds. +This type is most often used in conjuction with timers and timeouts.

+
+
+

A couple of special values have been set aside, and carry special meanings.

+
+
+
+
NNG_DURATION_DEFAULT
+
+

Indicates a context-specific default value should be used.

+
+
NNG_DURATION_INFINITE
+
+

Effectively an infinite duration; used most often to disable timeouts.

+
+
NNG_DURATION_ZERO
+
+

Zero length duration; used to perform a single polling operation.

+
+
+
+
+
+
+

SEE ALSO

+ +
+
+ + diff --git a/man/tip/nng_free.3.html b/man/tip/nng_free.3.html new file mode 100644 index 00000000..c56fc914 --- /dev/null +++ b/man/tip/nng_free.3.html @@ -0,0 +1,602 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_free(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+void nng_free(void *ptr, size_t size);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_free() function deallocates a memory region of size size, +that was previously allocated by nng_alloc() or +nng_recv() with the NNG_FLAG_ALLOC flag.

+
+
+ + + + + +
+ + +It is very important that size match the allocation size +used to allocate the memory. +
+
+
+ + + + + +
+ + +Do not attempt to use this function to deallocate memory +obtained by a call to the system malloc() or calloc() functions, +or the C++ new operator. +Doing so may result in unpredictable +behavior, including corruption of application memory. +
+
+
+
+
+

RETURN VALUES

+
+
+

None.

+
+
+
+
+

ERRORS

+
+
+

None.

+
+
+
+
+

SEE ALSO

+ +
+
+ + diff --git a/man/tip/nng_free.html b/man/tip/nng_free.html deleted file mode 100644 index edade4ba..00000000 --- a/man/tip/nng_free.html +++ /dev/null @@ -1,601 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_free(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-
-void nng_free(void *ptr, size_t size);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_free() function deallocates a memory region of size size, -that was previously allocated by nng_alloc(3) or -nng_recv(3) with the NNG_FLAG_ALLOC flag.

-
-
- - - - - -
- - -It is very important that size match the allocation size -used to allocate the memory. -
-
-
- - - - - -
- - -Do not attempt to use this function to deallocate memory -obtained by a call to the system malloc() or calloc() functions, -or the C++ new operator. Doing so may result in unpredictable -behavior, including corruption of application memory. -
-
-
-
-
-

RETURN VALUES

-
-
-

None.

-
-
-
-
-

ERRORS

-
-
-

None.

-
-
-
-
-

SEE ALSO

- -
-
- - diff --git a/man/tip/nng_getopt.3.html b/man/tip/nng_getopt.3.html new file mode 100644 index 00000000..13e4aca0 --- /dev/null +++ b/man/tip/nng_getopt.3.html @@ -0,0 +1,696 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_getopt(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+int nng_getopt(nng_socket s, const char *opt, void *val, size_t *valszp);
+
+int nng_getopt_int(nng_socket s, const char *opt, int *ivalp);
+
+int nng_getopt_ms(nng_socket s, const char *opt, nng_duration *durp);
+
+int nng_getopt_ptr(nng_socket s, const char *opt, void **ptr);
+
+int nng_getopt_size(nng_socket s, const char *opt, size_t *zp);
+
+int nng_getopt_uint64(nng_socket s, const char *opt, uint64_t *u64p);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_getopt() functions are used to retrieve option values for +the socket s. +The actual options that may be retrieved in this way vary. +A number of them are documented in nng_options(5).

+
+
+

Additionally transport-specific options and protocol-specific options are +documented with the transports and protocols themselves.

+
+
+

In all of these forms, the option opt is retrieved from the socket s. +The forms vary based on the type of the option they take.

+
+
+ + + + + +
+ + +Generally, it will be easier to use one of the typed forms instead. +
+
+
+ + + + + +
+ + +No validation that the option is actually of the associated +type is performed, so the caller must take care to use the correct typed form. +
+
+
+

The details of the type, size, and semantics of the option will depend +on the actual option, and will be documented with the option itself.

+
+
+
+
nng_getopt()
+
+

This function is untyped can be used to retrieve the value of any option. +The caller must store a pointer to a buffer to receive the value in val, +and the size of the buffer shall be stored at the location referenced by +valszp.

+
+

When the function returns, the actual size of the data copied (or that +would have been copied if sufficient space were present) is stored at +the location referened by valszp. +If the caller’s buffer is not large enough to hold the entire object, +then the copy is truncated. +Therefore the caller should check for truncation by verifyng that the +returned size in valszp does not exceed the original buffer size.

+
+
+

It is acceptable to pass NULL for val if the value in valszp is zero. +This can be used to determine the size of the buffer needed to receive +the object.

+
+
+
nng_getopt_int()
+
+

This function is for options which take an integer (int) or boolean (bool). +The value will be stored at ivalp. +For booleans the value will be eiher 0 (false) or 1 (true).

+
+
nng_getopt_ms()
+
+

This function is used to retrieve time durations +(such as timeouts), stored in durp as a number of milliseconds. +(The special value NNG_DUR_INFINITE means an infinite amount of time, and +the special value NNG_DUR_DEFAULT means a context-specific default.)

+
+
nng_getopt_ptr()
+
+

This function is used to retrieve a pointer, ptr, to structured data. +The data referenced by ptr is generally managed using other functions. +Note that this form is somewhat special in that the object is generally +not copied, but instead the pointer to the object is copied.

+
+
nng_getopt_size()
+
+

This function is used to retrieve a size into the pointer zp, +typically for buffer sizes, message maximum sizes, and similar options.

+
+
nng_getopt_uint64()
+
+

This function is used to retrieve a 64-bit unsigned value into the value +referenced by u64p. +This is typically used for options related to identifiers, network +numbers, and similar.

+
+
+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ECLOSED
+
+

Parameter s does not refer to an open socket.

+
+
NNG_ENOTSUP
+
+

The option opt is not supported.

+
+
NNG_EWRITEONLY
+
+

The option opt is write-only.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_http_client_alloc.3http.html b/man/tip/nng_http_client_alloc.3http.html new file mode 100644 index 00000000..f4760579 --- /dev/null +++ b/man/tip/nng_http_client_alloc.3http.html @@ -0,0 +1,585 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_http_client_alloc(3http) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/supplemental/http/http.h>
+
+int nng_http_client_alloc(nng_http_client *clientp, const nng_url *url);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_http_client_alloc() allocates an HTTP client suitable for +connecting to the server identifyed by url and stores a pointer to +it in the location referenced by clientp.

+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ENOMEM
+
+

Insufficient free memory exists.

+
+
NNG_ENOTSUP
+
+

HTTP not supported.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_http_client_alloc.html b/man/tip/nng_http_client_alloc.html deleted file mode 100644 index e95145f5..00000000 --- a/man/tip/nng_http_client_alloc.html +++ /dev/null @@ -1,585 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_http_client_alloc(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-#include <nng/supplemental/http/http.h>
-
-int nng_http_client_alloc(nng_http_client *clientp, const nng_url *url);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_http_client_alloc() allocates an HTTP client suitable for -connecting to the server identifyed by url and stores a pointer to -it in the location referenced by clientp.

-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_ENOMEM
-
-

Insufficient free memory exists.

-
-
NNG_ENOTSUP
-
-

HTTP not supported.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_http_client_connect.3http.html b/man/tip/nng_http_client_connect.3http.html new file mode 100644 index 00000000..efb307f4 --- /dev/null +++ b/man/tip/nng_http_client_connect.3http.html @@ -0,0 +1,649 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_http_client_connect(3http) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/supplemental/http/http.h>
+
+void nng_http_client_connect(nng_http_client *client, nng_aio *aio);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_http_client_connect() starts the process of establishing an HTTP +connection from client to the server that was indicated in the URL that +client was configured with.

+
+
+

The result of the operation will be stored in the aio when the operation +is complete, and will be obtainable via +nng_aio_result().

+
+
+

On success, a pointer to the underlying HTTP client (type nng_http_conn *) +will be stored in the first output result of the aio, and can be +obtained by +nng_aio_get_output() with an index of zero (0).

+
+
+
+
+

RETURN VALUES

+
+
+

None.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_EADDRINVAL
+
+

The server is configured with an invalid address.

+
+
NNG_ECANCELED
+
+

The operation was aborted.

+
+
NNG_ECONNREFUSED
+
+

The TCP connection was refused by the server.

+
+
NNG_ECONNRESET
+
+

The TCP connection was reset by the server.

+
+
NNG_ENOMEM
+
+

Insufficient free memory exists.

+
+
+
+
+
+
+

EXAMPLE

+
+
+
+
    nng_aio *aio;
+    nng_url *url;
+    nng_http_client *client;
+    nng_http_conn *conn;
+    int rv;
+
+    // Error checks elided for clarity.
+    nng_url_parse(&url, "http://www.google.com");
+    nng_aio_alloc(&aio, NULL, NULL);
+    nng_http_client_alloc(&client, url);
+
+    nng_http_client_connect(client, aio);
+
+    // Wait for connection to establish (or attempt to fail).
+    nng_aio_wait(aio);
+
+    if ((rv = nng_aio_result(aio)) != 0) {
+            printf("Connection failed: %s\n", nng_strerror(rv));
+    } else {
+            // Connection established, get it.
+            conn = nng_aio_get_output(aio, 0);
+
+            // ... do something with it here
+
+            // Close the connection when done to avoid leaking it.
+            nng_http_conn_close(conn);
+    }
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_http_client_connect.html b/man/tip/nng_http_client_connect.html deleted file mode 100644 index fcefb209..00000000 --- a/man/tip/nng_http_client_connect.html +++ /dev/null @@ -1,649 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_http_client_connect(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-#include <nng/supplemental/http/http.h>
-
-void nng_http_client_connect(nng_http_client *client, nng_aio *aio);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_http_client_connect() starts the process of establishing an HTTP -connection from client to the server that was indicated in the URL that -client was configured with.

-
-
-

The result of the operation will be stored in the aio when the operation -is complete, and will be obtainable via -nng_aio_result(3).

-
-
-

On success, a pointer to the underlying HTTP client (type nng_http_conn *) -will be stored in the first output result of the aio, and can be -obtained by -nng_aio_get_output(3) with an index of zero (0).

-
-
-
-
-

RETURN VALUES

-
-
-

None.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_EADDRINVAL
-
-

The server is configured with an invalid address.

-
-
NNG_ECANCELED
-
-

The operation was aborted.

-
-
NNG_ECONNREFUSED
-
-

The TCP connection was refused by the server.

-
-
NNG_ECONNRESET
-
-

The TCP connection was reset by the server.

-
-
NNG_ENOMEM
-
-

Insufficient free memory exists.

-
-
-
-
-
-
-

EXAMPLE

-
-
-
-
    nng_aio *aio;
-    nng_url *url;
-    nng_http_client *client;
-    nng_http_conn *conn;
-    int rv;
-
-    // Error checks elided for clarity.
-    nng_url_parse(&url, "http://www.google.com");
-    nng_aio_alloc(&aio, NULL, NULL);
-    nng_http_client_alloc(&client, url);
-
-    nng_http_client_connect(client, aio);
-
-    // Wait for connection to establish (or attempt to fail).
-    nng_aio_wait(aio);
-
-    if ((rv = nng_aio_result(aio)) != 0) {
-            printf("Connection failed: %s\n", nng_strerror(rv));
-    } else {
-            // Connection established, get it.
-            conn = nng_aio_get_output(aio, 0);
-
-            // ... do something with it here
-
-            // Close the connection when done to avoid leaking it.
-            nng_http_conn_close(conn);
-    }
-
-
-
-
- -
- - diff --git a/man/tip/nng_http_client_free.3http.html b/man/tip/nng_http_client_free.3http.html new file mode 100644 index 00000000..54ab1492 --- /dev/null +++ b/man/tip/nng_http_client_free.3http.html @@ -0,0 +1,587 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_http_client_free(3http) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/supplemental/http/http.h>
+
+void nng_http_client_free(nng_http_client *client);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_http_client_free() frees the HTTP client and any associated +resources referenced by client.

+
+
+ + + + + +
+ + +Any connections created by +nng_http_client_connect() are unaffected, +and so the caller must close those explicitly if desired. +
+
+
+
+
+

RETURN VALUES

+
+
+

None.

+
+
+
+
+

ERRORS

+
+
+

None.

+
+
+
+ +
+ + diff --git a/man/tip/nng_http_client_free.html b/man/tip/nng_http_client_free.html deleted file mode 100644 index fe09a80f..00000000 --- a/man/tip/nng_http_client_free.html +++ /dev/null @@ -1,587 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_http_client_free(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-#include <nng/supplemental/http/http.h>
-
-void nng_http_client_free(nng_http_client *client);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_http_client_free() frees the HTTP client and any associated -resources referenced by client.

-
-
- - - - - -
- - -Any connections created by -nng_http_client_connect(3) are unaffected, -and so the caller must close those explicitly if desired. -
-
-
-
-
-

RETURN VALUES

-
-
-

None.

-
-
-
-
-

ERRORS

-
-
-

None.

-
-
-
- -
- - diff --git a/man/tip/nng_http_client_get_tls.3http.html b/man/tip/nng_http_client_get_tls.3http.html new file mode 100644 index 00000000..6bc45521 --- /dev/null +++ b/man/tip/nng_http_client_get_tls.3http.html @@ -0,0 +1,589 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_http_client_get_tls(3http) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/supplemental/http/http.h>
+
+int nng_http_client_get_tls(nng_http_client *client, nng_tls_config **cfgp);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_http_client_get_tls() obtains the TLS configuration of client and +saves a pointer to it in the address referenced by cfgp.

+
+
+

The configuration will be NULL if the HTTP client instance is not enabled +to use HTTPS.

+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ENOMEM
+
+

Insufficient free memory exists.

+
+
NNG_ENOTSUP
+
+

Either HTTP or TLS not supported.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_http_client_get_tls.html b/man/tip/nng_http_client_get_tls.html deleted file mode 100644 index 818fae47..00000000 --- a/man/tip/nng_http_client_get_tls.html +++ /dev/null @@ -1,589 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_http_client_get_tls(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-#include <nng/supplemental/http/http.h>
-
-int nng_http_client_get_tls(nng_http_client *client, nng_tls_config **cfgp);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_http_client_get_tls() obtains the TLS configuration of client and -saves a pointer to it in the address referenced by cfgp.

-
-
-

The configuration will be NULL if the HTTP client instance is not enabled -to use HTTPS.

-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_ENOMEM
-
-

Insufficient free memory exists.

-
-
NNG_ENOTSUP
-
-

Either HTTP or TLS not supported.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_http_client_set_tls.3http.html b/man/tip/nng_http_client_set_tls.3http.html new file mode 100644 index 00000000..a4367022 --- /dev/null +++ b/man/tip/nng_http_client_set_tls.3http.html @@ -0,0 +1,614 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_http_client_set_tls(3http) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/supplemental/http/http.h>
+
+int nng_http_client_set_tls(nng_http_client *client, nng_tls_config *cfg);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_http_client_set_tls() sets the TLS configuration of client to cfg.

+
+
+

This change overwrites any previous TLS configuration.

+
+
+ + + + + +
+ + +This also invalidates any previously obtained values from +nng_http_client_get_tls(). +
+
+
+ + + + + +
+ + +Any connections established with +nng_http_client_connect() +will continue to use any TLS configuration that they were started with. +
+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ENOMEM
+
+

Insufficient free memory exists.

+
+
NNG_ENOTSUP
+
+

Either HTTP or TLS not supported.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_http_client_set_tls.html b/man/tip/nng_http_client_set_tls.html deleted file mode 100644 index 5f94b810..00000000 --- a/man/tip/nng_http_client_set_tls.html +++ /dev/null @@ -1,615 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_http_client_set_tls(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-#include <nng/supplemental/http/http.h>
-
-int nng_http_client_set_tls(nng_http_client *client, nng_tls_config *cfg);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_http_client_set_tls() sets the TLS configuration of client to -cfg.

-
-
-

This change overwrites any previous TLS configuration.

-
-
- - - - - -
- - -This also invalidates any previously obtained values from -nng_http_client_get_tls(3). -
-
-
- - - - - -
- - -Any connections established with -nng_http_client_connect(3) -will continue to use any TLS configuration that they were started with. -
-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_ENOMEM
-
-

Insufficient free memory exists.

-
-
NNG_ENOTSUP
-
-

Either HTTP or TLS not supported.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_http_conn_close.3http.html b/man/tip/nng_http_conn_close.3http.html new file mode 100644 index 00000000..d5e7a196 --- /dev/null +++ b/man/tip/nng_http_conn_close.3http.html @@ -0,0 +1,577 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_http_conn_close(3http) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/supplemental/http/http.h>
+
+void nng_http_conn_close(nng_http_conn *conn);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_http_conn_close() function closes the supplied HTTP connection conn, +including any disposing of any underlying file descriptors or related resources.

+
+
+

Once this function, no further access to the conn structure may be made.

+
+
+
+
+

RETURN VALUES

+
+
+

None.

+
+
+
+
+

ERRORS

+
+
+

None.

+
+
+
+ +
+ + diff --git a/man/tip/nng_http_conn_close.html b/man/tip/nng_http_conn_close.html deleted file mode 100644 index f5da6c7e..00000000 --- a/man/tip/nng_http_conn_close.html +++ /dev/null @@ -1,577 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_http_conn_close(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-#include <nng/supplemental/http/http.h>
-
-void nng_http_conn_close(nng_http_conn *conn);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_http_conn_close() function closes the supplied HTTP connection conn, -including any disposing of any underlying file descriptors or related resources.

-
-
-

Once this function, no further access to the conn structure may be made.

-
-
-
-
-

RETURN VALUES

-
-
-

None.

-
-
-
-
-

ERRORS

-
-
-

None.

-
-
-
- -
- - diff --git a/man/tip/nng_http_conn_read.3http.html b/man/tip/nng_http_conn_read.3http.html new file mode 100644 index 00000000..2771db27 --- /dev/null +++ b/man/tip/nng_http_conn_read.3http.html @@ -0,0 +1,650 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_http_conn_read(3http) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/supplemental/http/http.h>
+
+void nng_http_conn_read(nng_http_conn *conn, nng_aio *aio);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_http_conn_read() function starts an asynchronous read from the +HTTP connection conn, into the scatter/gather vector located in the +asynchronous I/O structure aio.

+
+
+ + + + + +
+ + +The nng_aio_set_iov() function must have been +called first, to set the scatter/gather vector for aio. +
+
+
+

This function returns immediately, with no return value. +Completion of the operation is signaled via the aio, +and the final result may be obtained via +nng_aio_result(). +That result will either be zero or an error code.

+
+
+

The I/O operation completes as soon as at least one byte has been +read, or an error has occurred. +Therefore, the number of bytes read may be less than requested. +The actual number of bytes read can be determined with +nng_aio_count().

+
+
+ + + + + +
+ + +This function is intended to facilitate uses cases that involve changing +the protocol from HTTP, such as WebSocket. +Most applications will never need to use this function. +
+
+
+
+
+

RETURN VALUES

+
+
+

None.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ECANCELED
+
+

The operation was canceled.

+
+
NNG_ECLOSED
+
+

The connection was closed.

+
+
NNG_ECONNRESET
+
+

The peer closed the connection.

+
+
NNG_EINVAL
+
+

The aio does not contain a valid scatter/gather vector.

+
+
NNG_ENOMEM
+
+

Insufficient free memory to perform the operation.

+
+
NNG_ENOTSUP
+
+

HTTP operations are not supported.

+
+
NNG_ETIMEDOUT
+
+

Timeout waiting for data from the connection.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_http_conn_read.html b/man/tip/nng_http_conn_read.html deleted file mode 100644 index 1a257d99..00000000 --- a/man/tip/nng_http_conn_read.html +++ /dev/null @@ -1,648 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_http_conn_read(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-#include <nng/supplemental/http/http.h>
-
-void nng_http_conn_read(nng_http_conn *conn, nng_aio *aio);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_http_conn_read() function starts an asynchronous read from the -HTTP connection conn, into the scatter/gather vector located in the -asynchronous I/O structure aio.

-
-
- - - - - -
- - -The nng_aio_set_iov(3) function must have been -called first, to set the scatter/gather vector for aio. -
-
-
-

This function returns immediately, with no return value. Completion of -the operation is signaled via the aio, and the final result may be -obtained via nng_aio_result(3). That result will -either be zero or an error code.

-
-
-

The I/O operation completes as soon as at least one byte has been -read, or an error has occurred. -Therefore, the number of bytes read may be less than requested. The actual -number of bytes read can be determined with nng_aio_count(3).

-
-
- - - - - -
- - -This function is intended to facilitate uses cases that involve changing -the protocol from HTTP — such as WebSocket. Most applications will never need -to use this function. -
-
-
-
-
-

RETURN VALUES

-
-
-

None.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_ECANCELED
-
-

The operation was canceled.

-
-
NNG_ECLOSED
-
-

The connection was closed.

-
-
NNG_ECONNRESET
-
-

The peer closed the connection.

-
-
NNG_EINVAL
-
-

The aio does not contain a valid scatter/gather vector.

-
-
NNG_ENOMEM
-
-

Insufficient free memory to perform the operation.

-
-
NNG_ENOTSUP
-
-

HTTP operations are not supported.

-
-
NNG_ETIMEDOUT
-
-

Timeout waiting for data from the connection.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_http_conn_read_all.3http.html b/man/tip/nng_http_conn_read_all.3http.html new file mode 100644 index 00000000..6ace8846 --- /dev/null +++ b/man/tip/nng_http_conn_read_all.3http.html @@ -0,0 +1,651 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_http_conn_read_all(3http) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/supplemental/http/http.h>
+
+void nng_http_conn_read_all(nng_http_conn *conn, nng_aio *aio);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_http_conn_read_all() function starts an asynchronous read from the +HTTP connection conn, into the scatter/gather vector located in the +asynchronous I/O structure aio.

+
+
+ + + + + +
+ + +The nng_aio_set_iov() function must have been +called first, to set the scatter/gather vector for aio. +
+
+
+

This function returns immediately, with no return value. Completion of +the operation is signaled via the aio, and the final result may be +obtained via nng_aio_result(). That result will +either be zero or an error code.

+
+
+

The I/O operation completes only when the entire amount of data +requested has been read, or an error has occurred. If the operation +completes successfully, then the entire requested data has been read.

+
+
+

It is still possible for a partial read to complete in the event of an +error. The actual number of bytes read can be determined with +nng_aio_count().

+
+
+ + + + + +
+ + +The main purpose for this function is to faciliate reading HTTP +body content, after first determining the length of the body content +from the relevant HTTP headers (typically Content-Length). +
+
+
+
+
+

RETURN VALUES

+
+
+

None.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ECANCELED
+
+

The operation was canceled.

+
+
NNG_ECLOSED
+
+

The connection was closed.

+
+
NNG_ECONNRESET
+
+

The peer closed the connection.

+
+
NNG_EINVAL
+
+

The aio does not contain a valid scatter/gather vector.

+
+
NNG_ENOMEM
+
+

Insufficient free memory to perform the operation.

+
+
NNG_ENOTSUP
+
+

HTTP operations are not supported.

+
+
NNG_ETIMEDOUT
+
+

Timeout waiting for data from the connection.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_http_conn_read_all.html b/man/tip/nng_http_conn_read_all.html deleted file mode 100644 index b87418b3..00000000 --- a/man/tip/nng_http_conn_read_all.html +++ /dev/null @@ -1,651 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_http_conn_read_all(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-#include <nng/supplemental/http/http.h>
-
-void nng_http_conn_read_all(nng_http_conn *conn, nng_aio *aio);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_http_conn_read_all() function starts an asynchronous read from the -HTTP connection conn, into the scatter/gather vector located in the -asynchronous I/O structure aio.

-
-
- - - - - -
- - -The nng_aio_set_iov(3) function must have been -called first, to set the scatter/gather vector for aio. -
-
-
-

This function returns immediately, with no return value. Completion of -the operation is signaled via the aio, and the final result may be -obtained via nng_aio_result(3). That result will -either be zero or an error code.

-
-
-

The I/O operation completes only when the entire amount of data -requested has been read, or an error has occurred. If the operation -completes successfully, then the entire requested data has been read.

-
-
-

It is still possible for a partial read to complete in the event of an -error. The actual number of bytes read can be determined with -nng_aio_count(3).

-
-
- - - - - -
- - -The main purpose for this function is to faciliate reading HTTP -body content, after first determining the length of the body content -from the relevant HTTP headers (typically Content-Length). -
-
-
-
-
-

RETURN VALUES

-
-
-

None.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_ECANCELED
-
-

The operation was canceled.

-
-
NNG_ECLOSED
-
-

The connection was closed.

-
-
NNG_ECONNRESET
-
-

The peer closed the connection.

-
-
NNG_EINVAL
-
-

The aio does not contain a valid scatter/gather vector.

-
-
NNG_ENOMEM
-
-

Insufficient free memory to perform the operation.

-
-
NNG_ENOTSUP
-
-

HTTP operations are not supported.

-
-
NNG_ETIMEDOUT
-
-

Timeout waiting for data from the connection.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_http_conn_read_req.3http.html b/man/tip/nng_http_conn_read_req.3http.html new file mode 100644 index 00000000..6c4ed8f6 --- /dev/null +++ b/man/tip/nng_http_conn_read_req.3http.html @@ -0,0 +1,625 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_http_conn_read_req(3http) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/supplemental/http/http.h>
+
+void nng_http_conn_read_req(nng_http_conn *conn, nng_http_req *req,
+    nng_aio *aio);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_http_conn_read_req() function starts an asynchronous read from the +HTTP connection conn, reading an HTTP request into the req, including all +of the related headers.

+
+
+ + + + + +
+ + +Any HTTP entity/body data associated with the request is not read +automatically. +The caller should use +nng_http_conn_read_all() +to read the entity data, based on the details of the request itself. +
+
+
+

This function returns immediately, with no return value. +Completion of the operation is signaled via the aio, and the final result +may be obtained via nng_aio_result(). +That result will either be zero or an error code.

+
+
+
+
+

RETURN VALUES

+
+
+

None.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ECANCELED
+
+

The operation was canceled.

+
+
NNG_ECLOSED
+
+

The connection was closed.

+
+
NNG_ECONNRESET
+
+

The peer closed the connection.

+
+
NNG_ENOMEM
+
+

Insufficient free memory to perform the operation.

+
+
NNG_ENOTSUP
+
+

HTTP operations are not supported.

+
+
NNG_ETIMEDOUT
+
+

Timeout waiting for data from the connection.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_http_conn_read_req.html b/man/tip/nng_http_conn_read_req.html deleted file mode 100644 index 87427f8a..00000000 --- a/man/tip/nng_http_conn_read_req.html +++ /dev/null @@ -1,624 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_http_conn_read_req(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-#include <nng/supplemental/http/http.h>
-
-void nng_http_conn_read_req(nng_http_conn *conn, nng_http_req *req,
-    nng_aio *aio);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_http_conn_read_req() function starts an asynchronous read from the -HTTP connection conn, reading an HTTP request into the req, including all -of the related headers.

-
-
- - - - - -
- - -Any HTTP entity/body data associated with the request is not read -automatically. The caller should use -nng_http_conn_read_all(3) to read the entity -data, based on the details of the request itself. -
-
-
-

This function returns immediately, with no return value. Completion of -the operation is signaled via the aio, and the final result may be -obtained via nng_aio_result(3). That result will -either be zero or an error code.

-
-
-
-
-

RETURN VALUES

-
-
-

None.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_ECANCELED
-
-

The operation was canceled.

-
-
NNG_ECLOSED
-
-

The connection was closed.

-
-
NNG_ECONNRESET
-
-

The peer closed the connection.

-
-
NNG_ENOMEM
-
-

Insufficient free memory to perform the operation.

-
-
NNG_ENOTSUP
-
-

HTTP operations are not supported.

-
-
NNG_ETIMEDOUT
-
-

Timeout waiting for data from the connection.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_http_conn_read_res.3http.html b/man/tip/nng_http_conn_read_res.3http.html new file mode 100644 index 00000000..bd4664ca --- /dev/null +++ b/man/tip/nng_http_conn_read_res.3http.html @@ -0,0 +1,626 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_http_conn_read_res(3http) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/supplemental/http/http.h>
+
+void nng_http_conn_read_res(nng_http_conn *conn, nng_http_res *res,
+    nng_aio *aio);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_http_conn_read_res() function starts an asynchronous read from the +HTTP connection conn, reading an HTTP response into the res, including all +of the related headers.

+
+
+ + + + + +
+ + +Any HTTP entity/body data associated with the response is not read +automatically. +The caller should use +nng_http_conn_read_all to read the entity +data, based on the details of the response itself. +
+
+
+

This function returns immediately, with no return value. +Completion of +the operation is signaled via the aio, and the final result may be +obtained via nng_aio_result(). +That result will either be zero or an error code.

+
+
+
+
+

RETURN VALUES

+
+
+

None.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ECANCELED
+
+

The operation was canceled.

+
+
NNG_ECLOSED
+
+

The connection was closed.

+
+
NNG_ECONNRESET
+
+

The peer closed the connection.

+
+
NNG_ENOMEM
+
+

Insufficient free memory to perform the operation.

+
+
NNG_ENOTSUP
+
+

HTTP operations are not supported.

+
+
NNG_ETIMEDOUT
+
+

Timeout waiting for data from the connection.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_http_conn_read_res.html b/man/tip/nng_http_conn_read_res.html deleted file mode 100644 index a2835669..00000000 --- a/man/tip/nng_http_conn_read_res.html +++ /dev/null @@ -1,624 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_http_conn_read_res(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-#include <nng/supplemental/http/http.h>
-
-void nng_http_conn_read_res(nng_http_conn *conn, nng_http_res *res,
-    nng_aio *aio);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_http_conn_read_res() function starts an asynchronous read from the -HTTP connection conn, reading an HTTP response into the res, including all -of the related headers.

-
-
- - - - - -
- - -Any HTTP entity/body data associated with the response is not read -automatically. The caller should use -nng_http_conn_read_all(3) to read the entity -data, based on the details of the response itself. -
-
-
-

This function returns immediately, with no return value. Completion of -the operation is signaled via the aio, and the final result may be -obtained via nng_aio_result(3). That result will -either be zero or an error code.

-
-
-
-
-

RETURN VALUES

-
-
-

None.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_ECANCELED
-
-

The operation was canceled.

-
-
NNG_ECLOSED
-
-

The connection was closed.

-
-
NNG_ECONNRESET
-
-

The peer closed the connection.

-
-
NNG_ENOMEM
-
-

Insufficient free memory to perform the operation.

-
-
NNG_ENOTSUP
-
-

HTTP operations are not supported.

-
-
NNG_ETIMEDOUT
-
-

Timeout waiting for data from the connection.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_http_conn_write.3http.html b/man/tip/nng_http_conn_write.3http.html new file mode 100644 index 00000000..27f80d70 --- /dev/null +++ b/man/tip/nng_http_conn_write.3http.html @@ -0,0 +1,649 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_http_conn_write(3http) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/supplemental/http/http.h>
+
+void nng_http_conn_write(nng_http_conn *conn, nng_aio *aio);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_http_conn_write() function starts an asynchronous write to the +HTTP connection conn from the scatter/gather vector located in the +asynchronous I/O structure aio.

+
+
+ + + + + +
+ + +The nng_aio_set_iov() function must have been +called first, to set the scatter/gather vector for aio. +
+
+
+

This function returns immediately, with no return value. +Completion of the operation is signaled via the aio, and the final +result may be obtained via nng_aio_result(). +That result will either be zero or an error code.

+
+
+

The I/O operation completes as soon as at least one byte has been +written, or an error has occurred. +Therefore, the number of bytes written may be less than requested. +The actual number of bytes written can be determined with +nng_aio_count().

+
+
+ + + + + +
+ + +This function is intended to facilitate uses cases that involve changing +the protocol from HTTP, such as WebSocket. +Most applications will never need to use this function. +
+
+
+
+
+

RETURN VALUES

+
+
+

None.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ECANCELED
+
+

The operation was canceled.

+
+
NNG_ECLOSED
+
+

The connection was closed.

+
+
NNG_ECONNRESET
+
+

The peer closed the connection.

+
+
NNG_EINVAL
+
+

The aio does not contain a valid scatter/gather vector.

+
+
NNG_ENOMEM
+
+

Insufficient free memory to perform the operation.

+
+
NNG_ENOTSUP
+
+

HTTP operations are not supported.

+
+
NNG_ETIMEDOUT
+
+

Timeout waiting for data from the connection.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_http_conn_write.html b/man/tip/nng_http_conn_write.html deleted file mode 100644 index c381a830..00000000 --- a/man/tip/nng_http_conn_write.html +++ /dev/null @@ -1,649 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_http_conn_write(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-#include <nng/supplemental/http/http.h>
-
-void nng_http_conn_write(nng_http_conn *conn, nng_aio *aio);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_http_conn_write() function starts an asynchronous write to the -HTTP connection conn from the scatter/gather vector located in the -asynchronous I/O structure aio.

-
-
- - - - - -
- - -The nng_aio_set_iov(3) function must have been -called first, to set the scatter/gather vector for aio. -
-
-
-

This function returns immediately, with no return value. Completion of -the operation is signaled via the aio, and the final result may be -obtained via nng_aio_result(3). That result will -either be zero or an error code.

-
-
-

The I/O operation completes as soon as at least one byte has been -written, or an error has occurred. -Therefore, the number of bytes written may be less than requested. The actual -number of bytes written can be determined with -nng_aio_count(3).

-
-
- - - - - -
- - -This function is intended to facilitate uses cases that involve changing -the protocol from HTTP — such as WebSocket. Most applications will never need -to use this function. -
-
-
-
-
-

RETURN VALUES

-
-
-

None.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_ECANCELED
-
-

The operation was canceled.

-
-
NNG_ECLOSED
-
-

The connection was closed.

-
-
NNG_ECONNRESET
-
-

The peer closed the connection.

-
-
NNG_EINVAL
-
-

The aio does not contain a valid scatter/gather vector.

-
-
NNG_ENOMEM
-
-

Insufficient free memory to perform the operation.

-
-
NNG_ENOTSUP
-
-

HTTP operations are not supported.

-
-
NNG_ETIMEDOUT
-
-

Timeout waiting for data from the connection.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_http_conn_write_all.3http.html b/man/tip/nng_http_conn_write_all.3http.html new file mode 100644 index 00000000..a38065cd --- /dev/null +++ b/man/tip/nng_http_conn_write_all.3http.html @@ -0,0 +1,689 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_http_conn_write_all(3http) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/supplemental/http/http.h>
+
+void nng_http_conn_write_all(nng_http_conn *conn, nng_aio *aio);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_http_conn_write_all() function starts an asynchronous write to the +HTTP connection conn, into the scatter/gather vector located in the +asynchronous I/O structure aio.

+
+
+ + + + + +
+ + +The nng_aio_set_iov() function must have been +called first, to set the scatter/gather vector for aio. +
+
+
+

This function returns immediately, with no return value. +Completion of the operation is signaled via the aio, and the +final result may be obtained via nng_aio_result(). +That result will either be zero or an error code.

+
+
+

The I/O operation completes only when the entire amount of data +requested has been written, or an error has occurred. If the operation +completes successfully, then the entire requested data has been written.

+
+
+

It is still possible for a partial write to complete in the event of an error. +The actual number of bytes written can be determined with +nng_aio_count().

+
+
+ + + + + +
+ + +The main purpose for this function is to faciliate writing HTTP +body content. +
+
+
+ + + + + +
+ + +Usually an HTTP request or response will have been written immediately +prior to this with http_conn_write_req() or +http_conn_write_res(). +In that case the request or response should have also contained +an Content-Length header, and possibly a Content-Type header. +
+
+
+ + + + + +
+ + +An easier solution to sending HTTP content data, is to include the +conten with the request or reply using a function like +nng_http_req_copy_data(). +In that case, the body data will be written automatically by the +http_conn_write_req() or +http_conn_write_res() function. +
+
+
+
+
+

RETURN VALUES

+
+
+

None.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ECANCELED
+
+

The operation was canceled.

+
+
NNG_ECLOSED
+
+

The connection was closed.

+
+
NNG_ECONNRESET
+
+

The peer closed the connection.

+
+
NNG_EINVAL
+
+

The aio does not contain a valid scatter/gather vector.

+
+
NNG_ENOMEM
+
+

Insufficient free memory to perform the operation.

+
+
NNG_ENOTSUP
+
+

HTTP operations are not supported.

+
+
NNG_ETIMEDOUT
+
+

Timeout waiting for data from the connection.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_http_conn_write_all.html b/man/tip/nng_http_conn_write_all.html deleted file mode 100644 index 1b0eb03f..00000000 --- a/man/tip/nng_http_conn_write_all.html +++ /dev/null @@ -1,689 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_http_conn_write_all(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-#include <nng/supplemental/http/http.h>
-
-void nng_http_conn_write_all(nng_http_conn *conn, nng_aio *aio);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_http_conn_write_all() function starts an asynchronous write to the -HTTP connection conn, into the scatter/gather vector located in the -asynchronous I/O structure aio.

-
-
- - - - - -
- - -The nng_aio_set_iov(3) function must have been -called first, to set the scatter/gather vector for aio. -
-
-
-

This function returns immediately, with no return value. Completion of -the operation is signaled via the aio, and the final result may be -obtained via nng_aio_result(3). That result will -either be zero or an error code.

-
-
-

The I/O operation completes only when the entire amount of data -requested has been written, or an error has occurred. If the operation -completes successfully, then the entire requested data has been written.

-
-
-

It is still possible for a partial write to complete in the event of an -error. The actual number of bytes written can be determined with -nng_aio_count(3).

-
-
- - - - - -
- - -The main purpose for this function is to faciliate writing HTTP -body content. -
-
-
- - - - - -
- - -Usually an HTTP request or response will have been written immediately -prior to this with http_conn_write_req(3) or -http_conn_write_res(3). In that case the -request or response should have also contained an Content-Length header, -and possibly a Content-Type header. -
-
-
- - - - - -
- - -An easier solution to sending HTTP content data, is to include the -conten with the request or reply using a function like -nng_http_req_copy_data(3). In that case, -the body data will be written automatically by the -http_conn_write_req(3) or -http_conn_write_res(3) function. -
-
-
-
-
-

RETURN VALUES

-
-
-

None.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_ECANCELED
-
-

The operation was canceled.

-
-
NNG_ECLOSED
-
-

The connection was closed.

-
-
NNG_ECONNRESET
-
-

The peer closed the connection.

-
-
NNG_EINVAL
-
-

The aio does not contain a valid scatter/gather vector.

-
-
NNG_ENOMEM
-
-

Insufficient free memory to perform the operation.

-
-
NNG_ENOTSUP
-
-

HTTP operations are not supported.

-
-
NNG_ETIMEDOUT
-
-

Timeout waiting for data from the connection.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_http_conn_write_req.3http.html b/man/tip/nng_http_conn_write_req.3http.html new file mode 100644 index 00000000..26b53a18 --- /dev/null +++ b/man/tip/nng_http_conn_write_req.3http.html @@ -0,0 +1,613 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_http_conn_write_req(3http) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/supplemental/http/http.h>
+
+void nng_http_conn_write_req(nng_http_conn *conn, nng_http_req *req,
+    nng_aio *aio);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_http_conn_write_req() function starts an asynchronous write of +the HTTP request req to the connection conn. +The entire request is sent, +including headers, and if present, the request body data. +(The request body can be set with +nng_http_req_set_data() or +nng_http_req_copy_data().)

+
+
+

This function returns immediately, with no return value. +Completion of the operation is signaled via the aio, and the final result +may be obtained via nng_aio_result(). +That result willeither be zero or an error code.

+
+
+
+
+

RETURN VALUES

+
+
+

None.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ECANCELED
+
+

The operation was canceled.

+
+
NNG_ECLOSED
+
+

The connection was closed.

+
+
NNG_ECONNRESET
+
+

The peer closed the connection.

+
+
NNG_ENOMEM
+
+

Insufficient free memory to perform the operation.

+
+
NNG_ENOTSUP
+
+

HTTP operations are not supported.

+
+
NNG_ETIMEDOUT
+
+

Timeout waiting for data from the connection.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_http_conn_write_req.html b/man/tip/nng_http_conn_write_req.html deleted file mode 100644 index 2977a945..00000000 --- a/man/tip/nng_http_conn_write_req.html +++ /dev/null @@ -1,612 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_http_conn_write_req(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-#include <nng/supplemental/http/http.h>
-
-void nng_http_conn_write_req(nng_http_conn *conn, nng_http_req *req,
-    nng_aio *aio);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_http_conn_write_req() function starts an asynchronous write of -the HTTP request req to the connection conn. The entire request is sent, -including headers, and if present, the request body data. (The -request body can be set with -nng_http_req_set_data(3) or -nng_http_req_copy_data(3).)

-
-
-

This function returns immediately, with no return value. Completion of -the operation is signaled via the aio, and the final result may be -obtained via nng_aio_result(3). That result will -either be zero or an error code.

-
-
-
-
-

RETURN VALUES

-
-
-

None.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_ECANCELED
-
-

The operation was canceled.

-
-
NNG_ECLOSED
-
-

The connection was closed.

-
-
NNG_ECONNRESET
-
-

The peer closed the connection.

-
-
NNG_ENOMEM
-
-

Insufficient free memory to perform the operation.

-
-
NNG_ENOTSUP
-
-

HTTP operations are not supported.

-
-
NNG_ETIMEDOUT
-
-

Timeout waiting for data from the connection.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_http_conn_write_res.3http.html b/man/tip/nng_http_conn_write_res.3http.html new file mode 100644 index 00000000..874d5949 --- /dev/null +++ b/man/tip/nng_http_conn_write_res.3http.html @@ -0,0 +1,629 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_http_conn_write_res(3http) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/supplemental/http/http.h>
+
+void nng_http_conn_write_res(nng_http_conn *conn, nng_http_res *res,
+    nng_aio *aio);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_http_conn_write_res() function starts an asynchronous write of +the HTTP response res to the connection conn. +The entire response is sent, +including headers, and if present, the response body data. +(The response body can be set with +nng_http_res_set_data() or +nng_http_res_copy_data().)

+
+
+

This function returns immediately, with no return value. +Completion of the operation is signaled via the aio, and the final result +may be obtained via nng_aio_result(). +That result will either be zero or an error code.

+
+
+

Persistent Connections

+
+

By default, for HTTP/1.1 connections, the connection is kept open, and +will be reused to receive new requests.

+
+
+

If however the res contains a header of Connection: with a value +of Close (case-insensitive) or the response corresponds to HTTP/1.0, +then the connection is immediately after sending the response.

+
+
+
+
+
+

RETURN VALUES

+
+
+

None.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ECANCELED
+
+

The operation was canceled.

+
+
NNG_ECLOSED
+
+

The connection was closed.

+
+
NNG_ECONNRESET
+
+

The peer closed the connection.

+
+
NNG_ENOMEM
+
+

Insufficient free memory to perform the operation.

+
+
NNG_ENOTSUP
+
+

HTTP operations are not supported.

+
+
NNG_ETIMEDOUT
+
+

Timeout waiting for data from the connection.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_http_conn_write_res.html b/man/tip/nng_http_conn_write_res.html deleted file mode 100644 index 7b47af57..00000000 --- a/man/tip/nng_http_conn_write_res.html +++ /dev/null @@ -1,628 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_http_conn_write_res(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-#include <nng/supplemental/http/http.h>
-
-void nng_http_conn_write_res(nng_http_conn *conn, nng_http_res *res,
-    nng_aio *aio);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_http_conn_write_res() function starts an asynchronous write of -the HTTP response res to the connection conn. The entire response is sent, -including headers, and if present, the response body data. (The -response body can be set with -nng_http_res_set_data(3) or -nng_http_res_copy_data(3).)

-
-
-

This function returns immediately, with no return value. Completion of -the operation is signaled via the aio, and the final result may be -obtained via nng_aio_result(3). That result will -either be zero or an error code.

-
-
-

Persistent Connections

-
-

By default, for HTTP/1.1 connections, the connection is kept open, and -will be reused to receive new requests.

-
-
-

If however the res contains a header of Connection: with a value -of Close (case-insensitive) or the response corresponds to HTTP/1.0, -then the connection is immediately after sending the response.

-
-
-
-
-
-

RETURN VALUES

-
-
-

None.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_ECANCELED
-
-

The operation was canceled.

-
-
NNG_ECLOSED
-
-

The connection was closed.

-
-
NNG_ECONNRESET
-
-

The peer closed the connection.

-
-
NNG_ENOMEM
-
-

Insufficient free memory to perform the operation.

-
-
NNG_ENOTSUP
-
-

HTTP operations are not supported.

-
-
NNG_ETIMEDOUT
-
-

Timeout waiting for data from the connection.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_http_handler_alloc.3http.html b/man/tip/nng_http_handler_alloc.3http.html new file mode 100644 index 00000000..dc4c997a --- /dev/null +++ b/man/tip/nng_http_handler_alloc.3http.html @@ -0,0 +1,726 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_http_handler_alloc(3http) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/supplemental/http/http.h>
+
+typedef struct nng_http_handler nng_http_handler;
+
+int nng_http_handler_alloc(nng_http_handler **hp, const char *path,
+    void (*func)(nng_aio *);
+
+int nng_http_handler_alloc_directory(nng_http_handler **hp, const char *path,
+    const char *dirname);
+
+int nng_http_handler_alloc_file(nng_http_handler **hp, const char *path,
+    const char *filename);
+
+int nng_http_handler_alloc_static(nng_http_handler **hp, const char *path,
+    const void *data, size_t size, const char *content_type);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_http_handler_alloc() family of functions allocate a handler +which will be used to process requests coming into an HTTP server. +On success, a pointer to the handler is stored at the located pointed to +by hp.

+
+
+

Every handler has a Request-URI to which it refers, which is determined +by the path argument. +Only the path component of the Request URI is +considered when determining whether the handler should be called.

+
+
+

Additionally each handler has a method it is registered to handle +(the default is "GET", see +nng_http_handler_set_method()), and +optionally a 'Host' header it can be matched against (see +nng_http_handler_set_host()).

+
+
+

In some cases, a handler may reference a logical tree rather (directory) +rather than just a single element. +(See nng_http_handler_set_tree()).

+
+
+

Custom Handler

+
+

The generic (first) form of this creates a handler that uses a user-supplied +function to process HTTP requests. +This function uses the asynchronous I/O framework. +The function takes a pointer to an nng_aio structure. +That structure will be passed with the following input values (retrieved with +nng_aio_get_input()):

+
+
+
+
0: nng_http_req * request
+
+

The client’s HTTP request.

+
+
1: nng_http_handler *handler
+
+

Pointer to the handler object.

+
+
2: nng_http_conn *conn
+
+

The underlying HTTP connection.

+
+
+
+
+

The handler should create an nng_http_res * response (such as via +nng_http_res_alloc() or +nng_http_res_alloc_error()) and store that +in as the first output (index 0) with +nng_aio_set_output().

+
+
+

Alternatively, the handler may send the HTTP response (and any associated +body data) itself using the connection. +In that case the output at index 0 of the aio should be NULL.

+
+
+

Finally, using the nng_aio_finish() function, the +aio should be completed successfully. +If any non-zero status is returned back to the caller instead, +then a generic 500 response will be created and +sent, if possible, and the connection will be closed.

+
+
+
+

Directory Handler

+
+

The second member of this family, nng_http_handler_alloc_directory(), creates +a handler configured to serve a directory tree. +The uri is taken as the root, and files are served from the directory +tree rooted at path.

+
+
+

When the client Request-URI resolves to a directory in the filesystem, +the handler looks first for a file named index.html or index.htm. +If one is found, then that file is returned back to the client. +If no such index file exists, then an NNG_HTTP_STATUS_NOT_FOUND (404) error is +sent back to the client.

+
+
+

The Content-Type will be set automatically based upon the extension +of the requsted file name. +If a content type cannot be determined from +the extension, then application/octet-stream is used.

+
+
+
+

File Handler

+
+

The third member of this family, nng_http_handler_alloc_file(), creates +a handler to serve up a single file; it does not traverse directories +or search for index.html or index.htm files.

+
+
+

The Content-Type will be set automatically based upon the extension +of the requsted file name. +If a content type cannot be determined from +the extension, then application/octet-stream is used.

+
+
+
+

Static Handler

+
+

The fourth member of this family, nng_http_handler_alloc_static(), creates +a handler to serve up fixed content located in program data. +The client is +sent the data, with Content-Length of size bytes, and Content-Type of +content_type.

+
+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_EINVAL
+
+

An invalid path was specified.

+
+
NNG_ENOMEM
+
+

Insufficient free memory exists to allocate a message.

+
+
NNG_ENOTSUP
+
+

No support for HTTP in the library.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_http_handler_alloc.html b/man/tip/nng_http_handler_alloc.html deleted file mode 100644 index 7392a842..00000000 --- a/man/tip/nng_http_handler_alloc.html +++ /dev/null @@ -1,716 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_http_handler_alloc(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-#include <nng/supplemental/http/http.h>
-
-typedef struct nng_http_handler nng_http_handler;
-
-int nng_http_handler_alloc(nng_http_handler **hp, const char *path,
-    void (*func)(nng_aio *);
-int nng_http_handler_alloc_directory(nng_http_handler **hp, const char *path,
-    const char *dirname);
-int nng_http_handler_alloc_file(nng_http_handler **hp, const char *path,
-    const char *filename);
-int nng_http_handler_alloc_static(nng_http_handler **hp, const char *path,
-    const void *data, size_t size, const char *content_type);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_http_handler_alloc() family of functions allocate a handler -which will be used to process requests coming into an HTTP server. -On success, a pointer to the handler is stored at the located pointed to -by hp.

-
-
-

Every handler has a Request-URI to which it refers, which is determined -by the path argument. Only the path component of the Request URI is -considered when determining whether the handler should be called.

-
-
-

Additionally each handler has a method it is registered to handle -(the default is "GET", see -nng_http_handler_set_method(3)), and -optionally a 'Host' header it can be matched against (see -<<nng_http_handler_set_host#,nng_http_handler_set_host(3)).

-
-
-

In some cases, a handler may reference a logical tree rather (directory) -rather than just a single element. -(See nng_http_handler_set_tree(3)).

-
-
-

Custom Handler

-
-

The generic (first) form of this creates a handler that uses a user-supplied -function to process HTTP requests. This function uses the asynchronous I/O -framework. The function takes a pointer to an nng_aio structure. That -structure will be passed with the following input values (retrieved with -nng_aio_get_input(3)):

-
-
-
-
0: nng_http_req * request
-
-

The client’s HTTP request.

-
-
1: nng_http_handler *handler
-
-

Pointer to the handler object.

-
-
2: nng_http_conn *conn
-
-

The underlying HTTP connection.

-
-
-
-
-

The handler should create an nng_http_res * response (such as via -nng_http_res_alloc(3) or -nng_http_res_alloc_error(3)) and store that -in as the first output (index 0) with -nng_aio_set_output(3).

-
-
-

Alternatively, the handler may send the HTTP response (and any associated -body data) itself using the connection. In that case the output at index -0 of the aio should be NULL.

-
-
-

Finally, using the nng_aio_finish(3) function, the -aio should be completed successfully. If any non-zero status is returned -back to the caller instead, then a generic 500 response will be created and -sent, if possible, and the connection will be closed.

-
-
-
-

Directory Handler

-
-

The second member of this family, nng_http_handler_alloc_directory(), creates -a handler configured to serve a directory tree. The uri is taken as -the root, and files are served from the directory tree rooted at path.

-
-
-

When the client Request-URI resolves to a directory in the filesystem, -the handler looks first for a file named index.html or index.htm. If -one is found, then that file is returned back to the client. If no such -index file exists, then an NNG_HTTP_STATUS_NOT_FOUND (404) error is -sent back to the client.

-
-
-

The Content-Type will be set automatically based upon the extension -of the requsted file name. If a content type cannot be determined from -the extension, then application/octet-stream is used.

-
-
-
-

File Handler

-
-

The third member of this family, nng_http_handler_alloc_file(), creates -a handler to serve up a single file; it does not traverse directories -or search for index.html or index.htm files.

-
-
-

The Content-Type will be set automatically based upon the extension -of the requsted file name. If a content type cannot be determined from -the extension, then application/octet-stream is used.

-
-
-
-

Static Handler

-
-

The fourth member of this family, nng_http_handler_alloc_static(), creates -a handler to serve up fixed content located in program data. The client is -sent the data, with Content-Length of size bytes, and Content-Type of -content_type.

-
-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_EINVAL
-
-

An invalid path was specified.

-
-
NNG_ENOMEM
-
-

Insufficient free memory exists to allocate a message.

-
-
NNG_ENOTSUP
-
-

No support for HTTP in the library.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_http_handler_free.3http.html b/man/tip/nng_http_handler_free.3http.html new file mode 100644 index 00000000..fdcd364b --- /dev/null +++ b/man/tip/nng_http_handler_free.3http.html @@ -0,0 +1,586 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_http_handler_free(3http) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/supplemental/http/http.h>
+
+void nng_http_handler_free(nng_http_handler *h);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_http_handler_free() function frees an allocated HTTP server handler.

+
+
+ + + + + +
+ + +It is an error to free a handler that is registered with a server. +Any handlers that are registered with servers are automatically freed +when the server itself is deallocated. +
+
+
+
+
+

RETURN VALUES

+
+
+

None.

+
+
+
+
+

ERRORS

+
+
+

None.

+
+
+
+ +
+ + diff --git a/man/tip/nng_http_handler_free.html b/man/tip/nng_http_handler_free.html deleted file mode 100644 index ee35272b..00000000 --- a/man/tip/nng_http_handler_free.html +++ /dev/null @@ -1,586 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_http_handler_free(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-#include <nng/supplemental/http/http.h>
-
-void nng_http_handler_free(nng_http_handler *h);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_http_handler_free() function frees an allocated HTTP server handler.

-
-
- - - - - -
- - -It is an error to free a handler that is registered with a server. -Any handlers that are registered with servers are automatically freed -when the server itself is deallocated. -
-
-
-
-
-

RETURN VALUES

-
-
-

None.

-
-
-
-
-

ERRORS

-
-
-

None.

-
-
-
- -
- - diff --git a/man/tip/nng_http_handler_get_data.3http.html b/man/tip/nng_http_handler_get_data.3http.html new file mode 100644 index 00000000..0cd7d9e1 --- /dev/null +++ b/man/tip/nng_http_handler_get_data.3http.html @@ -0,0 +1,576 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_http_handler_get_data(3http) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/supplemental/http/http.h>
+
+int nng_http_handler_get_data(nng_http_handler *handler, void *data,
+    void (*dtor)(void *));
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_http_handler_get_data() function returns the data previously +stored on handler using the function +nng_http_handler_set_data().

+
+
+
+
+

RETURN VALUES

+
+
+

None.

+
+
+
+
+

ERRORS

+
+
+

None.

+
+
+
+ +
+ + diff --git a/man/tip/nng_http_handler_get_data.html b/man/tip/nng_http_handler_get_data.html deleted file mode 100644 index 01416f28..00000000 --- a/man/tip/nng_http_handler_get_data.html +++ /dev/null @@ -1,576 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_http_handler_get_data(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-#include <nng/supplemental/http/http.h>
-
-int nng_http_handler_get_data(nng_http_handler *handler, void *data,
-    void (*dtor)(void *));
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_http_handler_get_data() function returns the data previously -stored on handler using the function -nng_http_handler_set_data(3).

-
-
-
-
-

RETURN VALUES

-
-
-

None.

-
-
-
-
-

ERRORS

-
-
-

None.

-
-
-
- -
- - diff --git a/man/tip/nng_http_handler_set_data.3http.html b/man/tip/nng_http_handler_set_data.3http.html new file mode 100644 index 00000000..fef39999 --- /dev/null +++ b/man/tip/nng_http_handler_set_data.3http.html @@ -0,0 +1,592 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_http_handler_set_data(3http) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/supplemental/http/http.h>
+
+void *nng_http_handler_get_data(nng_http_handler *handler, void *data,
+    void (*dtor)(void *));
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_http_handler_set_data() function is used to set an additional +data for the handler. +The stored data can be retrieved later in the handler function using +nng_http_handler_get_data().

+
+
+

Additionally, when the handler is deallocated, if dtor is not NULL, +then it will be called with data as its argument. +The intended use of +this function is deallocate any resources associated with data.

+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ENOMEM
+
+

Insufficient free memory to perform the operation.

+
+
NNG_ENOTSUP
+
+

No support for HTTP in the library.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_http_handler_set_data.html b/man/tip/nng_http_handler_set_data.html deleted file mode 100644 index effe7139..00000000 --- a/man/tip/nng_http_handler_set_data.html +++ /dev/null @@ -1,591 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_http_handler_set_data(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-#include <nng/supplemental/http/http.h>
-
-void *nng_http_handler_get_data(nng_http_handler *handler, void *data,
-    void (*dtor)(void *));
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_http_handler_set_data() function is used to set an additional -data for the handler. The stored data can be retrieved later -in the handler function using -nng_http_handler_get_data(3).

-
-
-

Additionally, when the handler is deallocated, if dtor is not NULL, -then it will be called with data as its argument. The intended use of -this function is deallocate any resources associated with data.

-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_ENOMEM
-
-

Insufficient free memory to perform the operation.

-
-
NNG_ENOTSUP
-
-

No support for HTTP in the library.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_http_handler_set_host.3http.html b/man/tip/nng_http_handler_set_host.3http.html new file mode 100644 index 00000000..fb939b03 --- /dev/null +++ b/man/tip/nng_http_handler_set_host.3http.html @@ -0,0 +1,616 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_http_handler_set_host(3http) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/supplemental/http/http.h>
+
+int nng_http_handler_set_host(nng_http_handler *handler, const char *host);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_http_handler_set_host() function is used to limit the scope of the +handler so that it will only be called when the specified host matches +the value of the Host: HTTP header.

+
+
+ + + + + +
+ + +This can be used to create servers with multiple handlers for virtual +hosting. +
+
+
+

The value of the host can include a colon and port, and should match +exactly the value of the Host header sent by the client. +(Canonicaliztion of the host name is performed though.)

+
+
+ + + + + +
+ + +As the server framework does not support listening on multiple +ports, the port number can be elided. +The matching test only considers +the hostname or IP address, and ignores any trailing port number. +
+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ENOMEM
+
+

Insufficient free memory to perform the operation.

+
+
NNG_ENOTSUP
+
+

No support for HTTP in the library.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_http_handler_set_host.html b/man/tip/nng_http_handler_set_host.html deleted file mode 100644 index ca7559b2..00000000 --- a/man/tip/nng_http_handler_set_host.html +++ /dev/null @@ -1,615 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_http_handler_set_host(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-#include <nng/supplemental/http/http.h>
-
-int nng_http_handler_set_host(nng_http_handler *handler, const char *host);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_http_handler_set_host() function is used to limit the scope of the -handler so that it will only be called when the specified host matches -the value of the Host: HTTP header.

-
-
- - - - - -
- - -This can be used to create servers with multiple handlers for virtual -hosting. -
-
-
-

The value of the host can include a colon and port, and should match -exactly the value of the Host header sent by the client. (Canonicaliztion -of the host name is performed though.)

-
-
- - - - - -
- - -As the server framework does not support listening on multiple -ports, the port number can be elided. The matching test only considers -the hostname or IP address, and ignores any trailing port number. -
-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_ENOMEM
-
-

Insufficient free memory to perform the operation.

-
-
NNG_ENOTSUP
-
-

No support for HTTP in the library.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_http_handler_set_method.3http.html b/man/tip/nng_http_handler_set_method.3http.html new file mode 100644 index 00000000..31e23085 --- /dev/null +++ b/man/tip/nng_http_handler_set_method.3http.html @@ -0,0 +1,618 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_http_handler_set_method(3http) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/supplemental/http/http.h>
+
+int nng_http_handler_set_method(nng_http_handler *handler, const char *method);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_http_handler_set_method() function sets the method that the +handler will be called for, such as "GET" or "POST". +(By default the "GET" method is handled.) +If method is NULL, then the request method +is not examined, and the handler will be executed regardless of the +method.

+
+
+ + + + + +
+ + +The server will automatically call "GET" handlers if the client +sends a "HEAD" request, and will suppress HTTP body data in the responses +sent for such requests. +
+
+
+ + + + + +
+ + +No validation of the method is performed, but HTTP specifications +insist that the actual method sent over the wire be capitalized. +
+
+
+

The handler may always examine the actual method used using the +nng_http_req_get_method() function.

+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ENOMEM
+
+

Insufficient free memory exists.

+
+
NNG_ENOTSUP
+
+

No support for HTTP in the library.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_http_handler_set_method.html b/man/tip/nng_http_handler_set_method.html deleted file mode 100644 index 873a3ce0..00000000 --- a/man/tip/nng_http_handler_set_method.html +++ /dev/null @@ -1,617 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_http_handler_set_method(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-#include <nng/supplemental/http/http.h>
-
-int nng_http_handler_set_method(nng_http_handler *handler, const char *method);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_http_handler_set_method() function sets the method that the -handler will be called for, such as "GET" or "POST". (By default the -"GET" method is handled.) If method is NULL, then the request method -is not examined, and the handler will be executed regardless of the -method.

-
-
- - - - - -
- - -The server will automatically call "GET" handlers if the client -sends a "HEAD" request, and will suppress HTTP body data in the responses -sent for such requests. -
-
-
- - - - - -
- - -No validation of the method is performed, but HTTP specifications -insist that the actual method sent over the wire be capitalized. -
-
-
-

The handler may always examine the actual method used using the -nng_http_req_get_method(3) function.

-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_ENOMEM
-
-

Insufficient free memory exists.

-
-
NNG_ENOTSUP
-
-

No support for HTTP in the library.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_http_handler_set_tree.3http.html b/man/tip/nng_http_handler_set_tree.3http.html new file mode 100644 index 00000000..6e7a2394 --- /dev/null +++ b/man/tip/nng_http_handler_set_tree.3http.html @@ -0,0 +1,597 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_http_handler_set_tree(3http) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/supplemental/http/http.h>
+
+int nng_http_handler_set_tree(nng_http_handler *handler);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_http_handler_set_tree() function causes the handler to be +matched if the Request URI sent by the client is a logical child of +the path for handler.

+
+
+ + + + + +
+ + +This method is useful when constructing API handlers where a single +service address (path) supports dynamically generated children. +
+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ENOMEM
+
+

Insufficient free memory exists.

+
+
NNG_ENOTSUP
+
+

No support for HTTP in the library.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_http_handler_set_tree.html b/man/tip/nng_http_handler_set_tree.html deleted file mode 100644 index 909ee73c..00000000 --- a/man/tip/nng_http_handler_set_tree.html +++ /dev/null @@ -1,597 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_http_handler_set_tree(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-#include <nng/supplemental/http/http.h>
-
-int nng_http_handler_set_tree(nng_http_handler *handler);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_http_handler_set_tree() function causes the handler to be -matched if the Request URI sent by the client is a logical child of -the path for handler.

-
-
- - - - - -
- - -This method is useful when constructing API handlers where a single -service address (path) supports dynamically generated children. -
-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_ENOMEM
-
-

Insufficient free memory exists.

-
-
NNG_ENOTSUP
-
-

No support for HTTP in the library.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_http_hijack.3http.html b/man/tip/nng_http_hijack.3http.html new file mode 100644 index 00000000..1a9fa47f --- /dev/null +++ b/man/tip/nng_http_hijack.3http.html @@ -0,0 +1,627 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_http_hijack(3http) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/supplemental/http/http.h>
+
+void nng_http_hijack(nng_http_conn *conn);
+
+
+
+
+
+

DESCRIPTION

+
+
+

+The nng_http_hijack() function hijacks the connection conn, causing it +to be disassociated from the HTTP server where it was created.

+
+
+

The purpose of this function is the creation of HTTP upgraders (such as +WebSocket), where the underlying HTTP connection will be taken over for +some other purpose, and should not be used any further by the server.

+
+
+

This function is most useful when called from a handler function. +(See nng_http_handler_alloc().)

+
+
+ + + + + +
+ + +It is the responsibility of the caller to dispose of the underlying +connection when it is no longer needed. +Furthermore, the HTTP server will no longer send any responses to the +hijacked connection, so the caller should do that as well if appropriate. +(See nng_http_conn_write_res().) +
+
+
+ + + + + +
+ + +This function is intended to facilitate uses cases that involve changing +the protocol from HTTP, such as WebSocket. +Most applications will never need to use this function. +
+
+
+
+
+

RETURN VALUES

+
+
+

None.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ECLOSED
+
+

The connection was closed.

+
+
NNG_ENOMEM
+
+

Insufficient free memory exists.

+
+
NNG_ENOTSUP
+
+

HTTP not supported.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_http_hijack.html b/man/tip/nng_http_hijack.html deleted file mode 100644 index 15b5cef6..00000000 --- a/man/tip/nng_http_hijack.html +++ /dev/null @@ -1,626 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_http_hijack(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-#include <nng/supplemental/http/http.h>
-
-void nng_http_hijack(nng_http_conn *conn);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_http_hijack() function hijacks the connection conn, causing it -to be disassociated from the HTTP server where it was created.

-
-
-

The purpose of this function is the creation of HTTP upgraders (such as -WebSocket), where the underlying HTTP connection will be taken over for -some other purpose, and should not be used any further by the server.

-
-
-

This function is most useful when called from a handler function. -(See <<nng_http_handler_alloc#,nng_http_handler_alloc(3).)

-
-
- - - - - -
- - -It is the responsibility of the caller to dispose of the underlying -connection when it is no longer needed. Furthermore, the HTTP server will -no longer send any responses to the hijacked connection, so the caller should -do that as well if appropriate. (See -nng_http_conn_write_res(3).) -
-
-
- - - - - -
- - -This function is intended to facilitate uses cases that involve changing -the protocol from HTTP — such as WebSocket. Most applications will never need -to use this function. -
-
-
-
-
-

RETURN VALUES

-
-
-

None.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_ECLOSED
-
-

The connection was closed.

-
-
NNG_ENOMEM
-
-

Insufficient free memory exists.

-
-
NNG_ENOTSUP
-
-

HTTP not supported.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_http_req_add_header.3http.html b/man/tip/nng_http_req_add_header.3http.html new file mode 100644 index 00000000..739f14aa --- /dev/null +++ b/man/tip/nng_http_req_add_header.3http.html @@ -0,0 +1,624 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_http_req_add_header(3http) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/supplemental/http/http.h>
+
+int nng_http_req_add_header(nng_http_req *req, const char *key,
+    const char *val);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_http_req_add_header() adds an HTTP header for the request +req and the key to the val. The key and val are copied.

+
+
+

If a header with the value of key already exists, then a comma +and whitespace separate are appended to it, followed by val.

+
+
+

If no such header already exists, then one is created with the value val.

+
+
+ + + + + +
+ + +The HTTP specification requires that duplicate headers be treated +identically to a single header with multiple comma-delimited values. +
+
+
+ + + + + +
+ + +See nng_http_req_set_header() if +replacement of an existing header rather than appending to it is desired. +
+
+
+

The value of key is case insensitive, and should not include the final +colon in an HTTP header. +For example, specifying Host or hOSt are +equivalent, whereas the value Host: is not a legal header key.

+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ENOMEM
+
+

Insufficient memory to perform the operation.

+
+
NNG_ENOTSUP
+
+

No support for HTTP in the library.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_http_req_add_header.html b/man/tip/nng_http_req_add_header.html deleted file mode 100644 index a85643e4..00000000 --- a/man/tip/nng_http_req_add_header.html +++ /dev/null @@ -1,623 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_http_req_add_header(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-#include <nng/supplemental/http/http.h>
-
-int nng_http_req_add_header(nng_http_req *req, const char *key,
-    const char *val);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_http_req_add_header() adds an HTTP header for the request -req and the key to the val. The key and val are copied.

-
-
-

If a header with the value of key already exists, then a comma -and whitespace separate are appended to it, followed by val.

-
-
-

If no such header already exists, then one is created with the value val.

-
-
- - - - - -
- - -The HTTP specification requires that duplicate headers be treated -identically to a single header with multiple comma-delimited values. -
-
-
- - - - - -
- - -See nng_http_req_set_header(3) if -replacement of an existing header rather than appending to it is desired. -
-
-
-

The value of key is case insensitive, and should not include the final -colon in an HTTP header. For example, specifying Host or hOSt are -equivalent, whereas the value Host: is not a legal header key.

-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_ENOMEM
-
-

Insufficient memory to perform the operation.

-
-
NNG_ENOTSUP
-
-

No support for HTTP in the library.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_http_req_alloc.3http.html b/man/tip/nng_http_req_alloc.3http.html new file mode 100644 index 00000000..aa231abb --- /dev/null +++ b/man/tip/nng_http_req_alloc.3http.html @@ -0,0 +1,599 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_http_req_alloc(3http) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/supplemental/http/http.h>
+
+int nng_http_req_alloc(nng_http_req **reqp, const nng_url *url);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_http_req_alloc() function allocates a new HTTP request structure +and stores a pointer to it in reqp. +The request will be initialized +to perform an HTTP/1.1 GET operation using the URL specified in url.

+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ENOMEM
+
+

Insufficient free memory exists to allocate a message.

+
+
NNG_ENOTSUP
+
+

HTTP support not configured.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_http_req_alloc.html b/man/tip/nng_http_req_alloc.html deleted file mode 100644 index c2154e6c..00000000 --- a/man/tip/nng_http_req_alloc.html +++ /dev/null @@ -1,598 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_http_req_alloc(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-#include <nng/supplemental/http/http.h>
-
-int nng_http_req_alloc(nng_http_req **reqp, const nng_url *url);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_http_req_alloc() function allocates a new HTTP request structure -and stores a pointer to it in reqp. The request will be initialized -to perform an HTTP/1.1 GET operation using the URL specified in url.

-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_ENOMEM
-
-

Insufficient free memory exists to allocate a message.

-
-
NNG_ENOTSUP
-
-

HTTP support not configured.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_http_req_copy_data.3http.html b/man/tip/nng_http_req_copy_data.3http.html new file mode 100644 index 00000000..bc28cc4a --- /dev/null +++ b/man/tip/nng_http_req_copy_data.3http.html @@ -0,0 +1,630 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_http_req_copy_data(3http) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/supplemental/http/http.h>
+
+int nng_http_req_copy_data(nng_http_req *req, const void *body, size_t size);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_http_req_copy_data() makes a copy of body (of size size) +and sets the HTTP body for the request req to it. +The copy will be deallocated automatically when req is freed.

+
+
+

The copied body data will be automatically sent with the request when it +is sent using nni_http_conn_write_req().

+
+
+

This also updates the relevant Content-Length header of req.

+
+
+ + + + + +
+ + +The current framework does not support sending data via chunked +transfer-encoding. +
+
+
+ + + + + +
+ + +To avoid copying data, the +nng_http_req_set_data() may be used instead. +
+
+
+ + + + + +
+ + +It is a good idea to also set the Content-Type header. +
+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ENOMEM
+
+

Insufficient memory to perform the operation.

+
+
NNG_ENOTSUP
+
+

No support for HTTP in the library.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_http_req_copy_data.html b/man/tip/nng_http_req_copy_data.html deleted file mode 100644 index b2694389..00000000 --- a/man/tip/nng_http_req_copy_data.html +++ /dev/null @@ -1,630 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_http_req_copy_data(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-#include <nng/supplemental/http/http.h>
-
-int nng_http_req_copy_data(nng_http_req *req, const void *body, size_t size);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_http_req_copy_data() makes a copy of body (of size size) -and sets the HTTP body for the request req to it. The copy will be -deallocated automatically when req is freed.

-
-
-

The copied body data will be automatically sent with the request when it -is sent using nni_http_conn_write_req(3).

-
-
-

This also updates the relevant Content-Length header of req.

-
-
- - - - - -
- - -The current framework does not support sending data via chunked -transfer-encoding. -
-
-
- - - - - -
- - -To avoid copying data, the -nng_http_req_set_data(3) may be used instead. -
-
-
- - - - - -
- - -It is a good idea to also set the Content-Type header. -
-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_ENOMEM
-
-

Insufficient memory to perform the operation.

-
-
NNG_ENOTSUP
-
-

No support for HTTP in the library.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_http_req_del_header.3http.html b/man/tip/nng_http_req_del_header.3http.html new file mode 100644 index 00000000..794d17a5 --- /dev/null +++ b/man/tip/nng_http_req_del_header.3http.html @@ -0,0 +1,590 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_http_req_set_header(3http) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/supplemental/http/http.h>
+
+int nng_http_req_set_header(nng_http_req *req, const char *key);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_http_req_del_header() removes all HTTP headers with the +associated key from the request structure req.

+
+
+

The value of key is case insensitive, and should not include the final +colon in an HTTP header. +For example, specifying Host or hOSt are +equivalent, whereas the value Host: is not a legal header key.

+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ENOENT
+
+

No header with the key key was present.

+
+
NNG_ENOTSUP
+
+

No support for HTTP in the library.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_http_req_del_header.html b/man/tip/nng_http_req_del_header.html deleted file mode 100644 index e133f440..00000000 --- a/man/tip/nng_http_req_del_header.html +++ /dev/null @@ -1,589 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_http_req_set_header(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-#include <nng/supplemental/http/http.h>
-
-int nng_http_req_set_header(nng_http_req *req, const char *key);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_http_req_del_header() removes all HTTP headers with the -associated key from the request structure req.

-
-
-

The value of key is case insensitive, and should not include the final -colon in an HTTP header. For example, specifying Host or hOSt are -equivalent, whereas the value Host: is not a legal header key.

-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_ENOENT
-
-

No header with the key key was present.

-
-
NNG_ENOTSUP
-
-

No support for HTTP in the library.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_http_req_free.3http.html b/man/tip/nng_http_req_free.3http.html new file mode 100644 index 00000000..4ca6dcf5 --- /dev/null +++ b/man/tip/nng_http_req_free.3http.html @@ -0,0 +1,572 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_http_req_free(3http) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/supplemental/http/http.h>
+
+void nng_http_req_free(nng_http_req *req);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_http_req_free() function deallocates the HTTP request structure +req entirely.

+
+
+
+
+

RETURN VALUES

+
+
+

None.

+
+
+
+
+

ERRORS

+
+
+

None.

+
+
+
+
+

SEE ALSO

+ +
+
+ + diff --git a/man/tip/nng_http_req_free.html b/man/tip/nng_http_req_free.html deleted file mode 100644 index cd09a4ba..00000000 --- a/man/tip/nng_http_req_free.html +++ /dev/null @@ -1,572 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_http_req_free(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-#include <nng/supplemental/http/http.h>
-
-void nng_http_req_free(nng_http_req *req);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_http_req_free() function deallocates the HTTP request structure -req entirely.

-
-
-
-
-

RETURN VALUES

-
-
-

None.

-
-
-
-
-

ERRORS

-
-
-

None.

-
-
-
-
-

SEE ALSO

- -
-
- - diff --git a/man/tip/nng_http_req_get_header.3http.html b/man/tip/nng_http_req_get_header.3http.html new file mode 100644 index 00000000..07374301 --- /dev/null +++ b/man/tip/nng_http_req_get_header.3http.html @@ -0,0 +1,581 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_http_req_get_header(3http) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/supplemental/http/http.h>
+
+const char *nng_http_req_get_header(nng_http_req *req, const char *key);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_http_req_get_header() looks for an HTTP header key in +the request req, and returns the associated value if found, +or NULL if not found.

+
+
+

The value of key is case insensitive, and should not include the final +colon in an HTTP header. +For example, specifying Host or hOSt are +equivalent, whereas the value Host: will not find anything.

+
+
+
+
+

RETURN VALUES

+
+
+

HTTP header value for key, if it exists, or NULL otherwise.

+
+
+
+
+

ERRORS

+
+
+

None.

+
+
+
+ +
+ + diff --git a/man/tip/nng_http_req_get_header.html b/man/tip/nng_http_req_get_header.html deleted file mode 100644 index 0afcad4b..00000000 --- a/man/tip/nng_http_req_get_header.html +++ /dev/null @@ -1,580 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_http_req_get_header(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-#include <nng/supplemental/http/http.h>
-
-const char *nng_http_req_get_header(nng_http_req *req, const char *key);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_http_req_get_header() looks for an HTTP header key in -the request req, and returns the associated value if found, -or NULL if not found.

-
-
-

The value of key is case insensitive, and should not include the final -colon in an HTTP header. For example, specifying Host or hOSt are -equivalent, whereas the value Host: will not find anything.

-
-
-
-
-

RETURN VALUES

-
-
-

HTTP header value for key, if it exists, or NULL otherwise.

-
-
-
-
-

ERRORS

-
-
-

None.

-
-
-
- -
- - diff --git a/man/tip/nng_http_req_get_method.3http.html b/man/tip/nng_http_req_get_method.3http.html new file mode 100644 index 00000000..d71a2b00 --- /dev/null +++ b/man/tip/nng_http_req_get_method.3http.html @@ -0,0 +1,574 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_http_req_get_method(3http) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/supplemental/http/http.h>
+
+const char *nng_http_req_get_method(nng_http_req *req);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_http_req_get_method() returns the HTTP method associated with +the request req. +The value will be a string, such as "GET" or "POST".

+
+
+
+
+

RETURN VALUES

+
+
+

Request method as a string.

+
+
+
+
+

ERRORS

+
+
+

None.

+
+
+
+ +
+ + diff --git a/man/tip/nng_http_req_get_method.html b/man/tip/nng_http_req_get_method.html deleted file mode 100644 index 727f5fef..00000000 --- a/man/tip/nng_http_req_get_method.html +++ /dev/null @@ -1,573 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_http_req_get_method(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-#include <nng/supplemental/http/http.h>
-
-const char *nng_http_req_get_method(nng_http_req *req);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_http_req_get_method() returns the HTTP method associated with -the request req. The value will be a string, such as "GET" or "POST".

-
-
-
-
-

RETURN VALUES

-
-
-

Request method as a string.

-
-
-
-
-

ERRORS

-
-
-

None.

-
-
-
- -
- - diff --git a/man/tip/nng_http_req_get_uri.3http.html b/man/tip/nng_http_req_get_uri.3http.html new file mode 100644 index 00000000..ae4f683b --- /dev/null +++ b/man/tip/nng_http_req_get_uri.3http.html @@ -0,0 +1,576 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_http_req_get_method(3http) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/supplemental/http/http.h>
+
+const char *nng_http_req_get_method(nng_http_req *req);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_http_req_get_uri() returns the URI (path) associated with the HTTP +the request req. +The value returned includes the path, as well as any query information or +fragment. The value will look like a filesystem path +with those optional components appened, such as /api/get_info.cgi?name=garrett.

+
+
+
+
+

RETURN VALUES

+
+
+

Request URI as a string.

+
+
+
+
+

ERRORS

+
+
+

None.

+
+
+
+ +
+ + diff --git a/man/tip/nng_http_req_get_uri.html b/man/tip/nng_http_req_get_uri.html deleted file mode 100644 index 1765f897..00000000 --- a/man/tip/nng_http_req_get_uri.html +++ /dev/null @@ -1,575 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_http_req_get_method(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-#include <nng/supplemental/http/http.h>
-
-const char *nng_http_req_get_method(nng_http_req *req);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_http_req_get_uri() returns the URI (path) associated with the HTTP -the request req. The value returned includes the path, as well as any -query information or fragment. The value will look like a filesystem path -with those optional components appened, such as /api/get_info.cgi?name=garrett.

-
-
-
-
-

RETURN VALUES

-
-
-

Request URI as a string.

-
-
-
-
-

ERRORS

-
-
-

None.

-
-
-
- -
- - diff --git a/man/tip/nng_http_req_get_version.3http.html b/man/tip/nng_http_req_get_version.3http.html new file mode 100644 index 00000000..a1b7993a --- /dev/null +++ b/man/tip/nng_http_req_get_version.3http.html @@ -0,0 +1,573 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_http_req_get_version(3http) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/supplemental/http/http.h>
+
+const char *nng_http_req_get_version(nng_http_req *req);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_http_req_get_version() returns a string representing the HTTP +protocol version associated with the request req, such as "HTTP/1.1".

+
+
+
+
+

RETURN VALUES

+
+
+

Request version as a string.

+
+
+
+
+

ERRORS

+
+
+

None.

+
+
+
+ +
+ + diff --git a/man/tip/nng_http_req_get_version.html b/man/tip/nng_http_req_get_version.html deleted file mode 100644 index 55c58a83..00000000 --- a/man/tip/nng_http_req_get_version.html +++ /dev/null @@ -1,573 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_http_req_get_version(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-#include <nng/supplemental/http/http.h>
-
-const char *nng_http_req_get_version(nng_http_req *req);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_http_req_get_version() returns a string representing the HTTP -protocol version associated with the request req, such as "HTTP/1.1".

-
-
-
-
-

RETURN VALUES

-
-
-

Request version as a string.

-
-
-
-
-

ERRORS

-
-
-

None.

-
-
-
- -
- - diff --git a/man/tip/nng_http_req_set_data.3http.html b/man/tip/nng_http_req_set_data.3http.html new file mode 100644 index 00000000..5dba1dcd --- /dev/null +++ b/man/tip/nng_http_req_set_data.3http.html @@ -0,0 +1,632 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_http_req_set_data(3http) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/supplemental/http/http.h>
+
+int nng_http_req_set_data(nng_http_req *req, const void *body, size_t size);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_http_req_set_data() sets the HTTP body associated with +the request req to body, and the size of the body to size. +This body data will be automatically sent with the request when it +is sent using nni_http_conn_write_req().

+
+
+

This also updates the relevant Content-Length header of req.

+
+
+ + + + + +
+ + +The current framework does not support sending data via chunked +transfer-encoding. +
+
+
+

The body is not copied, and the caller must ensure that it is available +until the req is deallocated.

+
+
+ + + + + +
+ + +To have a local copy allocated with req that will be automatically +deallocated when req is freed, +see nng_http_req_copy_data(). +
+
+
+ + + + + +
+ + +It is a good idea to also set the Content-Type header. +
+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ENOMEM
+
+

Insufficient memory to perform the operation.

+
+
NNG_ENOTSUP
+
+

No support for HTTP in the library.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_http_req_set_data.html b/man/tip/nng_http_req_set_data.html deleted file mode 100644 index b0598ba0..00000000 --- a/man/tip/nng_http_req_set_data.html +++ /dev/null @@ -1,632 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_http_req_set_data(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-#include <nng/supplemental/http/http.h>
-
-int nng_http_req_set_data(nng_http_req *req, const void *body, size_t size);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_http_req_set_data() sets the HTTP body associated with -the request req to body, and the size of the body to size. -This body data will be automatically sent with the request when it -is sent using nni_http_conn_write_req(3).

-
-
-

This also updates the relevant Content-Length header of req.

-
-
- - - - - -
- - -The current framework does not support sending data via chunked -transfer-encoding. -
-
-
-

The body is not copied, and the caller must ensure that it is available -until the req is deallocated.

-
-
- - - - - -
- - -To have a local copy allocated with req that will be automatically -deallocated when req is freed, -see nng_http_req_copy_data(3). -
-
-
- - - - - -
- - -It is a good idea to also set the Content-Type header. -
-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_ENOMEM
-
-

Insufficient memory to perform the operation.

-
-
NNG_ENOTSUP
-
-

No support for HTTP in the library.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_http_req_set_header.3http.html b/man/tip/nng_http_req_set_header.3http.html new file mode 100644 index 00000000..2eb4d5bc --- /dev/null +++ b/man/tip/nng_http_req_set_header.3http.html @@ -0,0 +1,606 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_http_req_set_header(3http) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/supplemental/http/http.h>
+
+int nng_http_req_set_header(nng_http_req *req, const char *key,
+    const char *val);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_http_req_set_header() sets the HTTP header for the request +req and the key to the val. +The key and val are copied. +Any previous header with the same key is replaced.

+
+
+ + + + + +
+ + +See nng_http_req_add_header() to +add additional headers with the same key without replacing them. +
+
+
+

The value of key is case insensitive, and should not include the final +colon in an HTTP header. +For example, specifying Host or hOSt are +equivalent, whereas the value Host: is not a legal header key.

+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ENOMEM
+
+

Insufficient memory to perform the operation.

+
+
NNG_ENOTSUP
+
+

No support for HTTP in the library.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_http_req_set_header.html b/man/tip/nng_http_req_set_header.html deleted file mode 100644 index 9e8db5ef..00000000 --- a/man/tip/nng_http_req_set_header.html +++ /dev/null @@ -1,604 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_http_req_set_header(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-#include <nng/supplemental/http/http.h>
-
-int nng_http_req_set_header(nng_http_req *req, const char *key,
-    const char *val);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_http_req_set_header() sets the HTTP header for the request -req and the key to the val. The key and val are copied. -Any previous header with the same key is replaced.

-
-
- - - - - -
- - -See nng_http_req_add_header(3) to -add additional headers with the same key without replacing them. -
-
-
-

The value of key is case insensitive, and should not include the final -colon in an HTTP header. For example, specifying Host or hOSt are -equivalent, whereas the value Host: is not a legal header key.

-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_ENOMEM
-
-

Insufficient memory to perform the operation.

-
-
NNG_ENOTSUP
-
-

No support for HTTP in the library.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_http_req_set_method.3http.html b/man/tip/nng_http_req_set_method.3http.html new file mode 100644 index 00000000..e4e9d343 --- /dev/null +++ b/man/tip/nng_http_req_set_method.3http.html @@ -0,0 +1,590 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_http_req_set_method(3http) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/supplemental/http/http.h>
+
+int nng_http_req_set_method(nng_http_req *req, const char *method);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_http_req_set_method() sets the HTTP method associated with +the request req to method. The method must be a string, +such as "GET" or "POST", and the HTTP specifications indicate that it must +be upper case.

+
+
+

The default value method for newly allocated requests is "GET".

+
+
+

A local copy of the method is made in the request req.

+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ENOMEM
+
+

Insufficient memory to perform the operation.

+
+
NNG_ENOTSUP
+
+

No support for HTTP in the library.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_http_req_set_method.html b/man/tip/nng_http_req_set_method.html deleted file mode 100644 index 8687ef40..00000000 --- a/man/tip/nng_http_req_set_method.html +++ /dev/null @@ -1,590 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_http_req_set_method(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-#include <nng/supplemental/http/http.h>
-
-int nng_http_req_set_method(nng_http_req *req, const char *method);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_http_req_set_method() sets the HTTP method associated with -the request req to method. The method must be a string, -such as "GET" or "POST", and the HTTP specifications indicate that it must -be upper case.

-
-
-

The default value method for newly allocated requests is "GET".

-
-
-

A local copy of the method is made in the request req.

-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_ENOMEM
-
-

Insufficient memory to perform the operation.

-
-
NNG_ENOTSUP
-
-

No support for HTTP in the library.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_http_req_set_uri.3http.html b/man/tip/nng_http_req_set_uri.3http.html new file mode 100644 index 00000000..36384283 --- /dev/null +++ b/man/tip/nng_http_req_set_uri.3http.html @@ -0,0 +1,616 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_http_req_set_uri(3http) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/supplemental/http/http.h>
+
+int nng_http_req_set_uri(nng_http_req *req, const char *uri);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_http_req_set_uri() sets the Request-URI associated with +the request req to uri. +The uri should contain precisely the +string that will be sent to the HTTP server in the request, including +any query information or fragment.

+
+
+

A local copy of the uri is made in the request req.

+
+
+ + + + + +
+ + +No validation or canonicalization of the uri is performed. +
+
+
+ + + + + +
+ + +The nng_url_parse() function can be used to +perform validation and canonicalization. +The u_requri member will +contain a suitable value that can be used with this function. +
+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ENOMEM
+
+

Insufficient memory to perform the operation.

+
+
NNG_ENOTSUP
+
+

No support for HTTP in the library.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_http_req_set_uri.html b/man/tip/nng_http_req_set_uri.html deleted file mode 100644 index d70da135..00000000 --- a/man/tip/nng_http_req_set_uri.html +++ /dev/null @@ -1,614 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_http_req_set_uri(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-#include <nng/supplemental/http/http.h>
-
-int nng_http_req_set_uri(nng_http_req *req, const char *uri);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_http_req_set_uri() sets the Request-URI associated with -the request req to uri. The uri should contain precisely the -string that will be sent to the HTTP server in the request, including -any query information or fragment.

-
-
-

A local copy of the uri is made in the request req.

-
-
- - - - - -
- - -No validation or canonicalization of the uri is performed. -
-
-
- - - - - -
- - -The nng_url_parse(3) function can be used to -perform validation and canonicalization. The u_requri member will -contain a suitable value that can be used with this function. -
-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_ENOMEM
-
-

Insufficient memory to perform the operation.

-
-
NNG_ENOTSUP
-
-

No support for HTTP in the library.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_http_req_set_version.3http.html b/man/tip/nng_http_req_set_version.3http.html new file mode 100644 index 00000000..5ccb290c --- /dev/null +++ b/man/tip/nng_http_req_set_version.3http.html @@ -0,0 +1,614 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_http_req_set_version(3http) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/supplemental/http/http.h>
+
+int nng_http_req_set_version(nng_http_req *req, const char *version);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_http_req_set_version() sets the HTTP protocol version associated with +the request req to version. +The version must be a string containing +a valid HTTP protocol version, such as "HTTP/1.0". +The default value is "HTTP/1.1".

+
+
+

A local copy of the version is made in the request req.

+
+
+ + + + + +
+ + +No validation of the version supplied is performed. +
+
+
+ + + + + +
+ + +The library does not contain support for versions of HTTP other than +"HTTP/1.0" and "HTTP/1.1". +Specifying any other version may result in unspecified behavior. +
+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ENOMEM
+
+

Insufficient memory to perform the operation.

+
+
NNG_ENOTSUP
+
+

No support for HTTP in the library.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_http_req_set_version.html b/man/tip/nng_http_req_set_version.html deleted file mode 100644 index aaf3c484..00000000 --- a/man/tip/nng_http_req_set_version.html +++ /dev/null @@ -1,613 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_http_req_set_version(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-#include <nng/supplemental/http/http.h>
-
-int nng_http_req_set_version(nng_http_req *req, const char *version);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_http_req_set_version() sets the HTTP protocol version associated with -the request req to version. The version must be a string containing -a valid HTTP protocol version, such as "HTTP/1.0". The default value is -"HTTP/1.1".

-
-
-

A local copy of the version is made in the request req.

-
-
- - - - - -
- - -No validation of the version supplied is performed. -
-
-
- - - - - -
- - -The library does not contain support for versions of HTTP other than -"HTTP/1.0" and "HTTP/1.1". Specifying any other version may result in -unspecified behavior. -
-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_ENOMEM
-
-

Insufficient memory to perform the operation.

-
-
NNG_ENOTSUP
-
-

No support for HTTP in the library.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_http_res_add_header.3http.html b/man/tip/nng_http_res_add_header.3http.html new file mode 100644 index 00000000..9bdc88f1 --- /dev/null +++ b/man/tip/nng_http_res_add_header.3http.html @@ -0,0 +1,624 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_http_res_add_header(3http) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/supplemental/http/http.h>
+
+int nng_http_res_add_header(nng_http_res *res, const char *key,
+    const char *val);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_http_res_add_header() adds an HTTP header for the response +res and the key to the val. +The key and val are copied.

+
+
+

If a header with the value of key already exists, then a comma +and whitespace separate are appended to it, followed by val.

+
+
+

If no such header already exists, then one is created with the value val.

+
+
+ + + + + +
+ + +The HTTP specification requires that duplicate headers be treated +identically to a single header with multiple comma-delimited values. +
+
+
+ + + + + +
+ + +See nng_http_res_set_header() if +replacement of an existing header rather than appending to it is desired. +
+
+
+

The value of key is case insensitive, and should not include the final +colon in an HTTP header. For example, specifying Host or hOSt are +equivalent, whereas the value Host: is not a legal header key.

+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ENOMEM
+
+

Insufficient memory to perform the operation.

+
+
NNG_ENOTSUP
+
+

No support for HTTP in the library.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_http_res_add_header.html b/man/tip/nng_http_res_add_header.html deleted file mode 100644 index bf99f3cb..00000000 --- a/man/tip/nng_http_res_add_header.html +++ /dev/null @@ -1,623 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_http_res_add_header(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-#include <nng/supplemental/http/http.h>
-
-int nng_http_res_add_header(nng_http_res *res, const char *key,
-    const char *val);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_http_res_add_header() adds an HTTP header for the response -res and the key to the val. The key and val are copied.

-
-
-

If a header with the value of key already exists, then a comma -and whitespace separate are appended to it, followed by val.

-
-
-

If no such header already exists, then one is created with the value val.

-
-
- - - - - -
- - -The HTTP specification requires that duplicate headers be treated -identically to a single header with multiple comma-delimited values. -
-
-
- - - - - -
- - -See nng_http_res_set_header(3) if -replacement of an existing header rather than appending to it is desired. -
-
-
-

The value of key is case insensitive, and should not include the final -colon in an HTTP header. For example, specifying Host or hOSt are -equivalent, whereas the value Host: is not a legal header key.

-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_ENOMEM
-
-

Insufficient memory to perform the operation.

-
-
NNG_ENOTSUP
-
-

No support for HTTP in the library.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_http_res_alloc.3http.html b/man/tip/nng_http_res_alloc.3http.html new file mode 100644 index 00000000..adc3ed0c --- /dev/null +++ b/man/tip/nng_http_res_alloc.3http.html @@ -0,0 +1,613 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_http_res_alloc(3http) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/supplemental/http/http.h>
+
+int nng_http_res_alloc(nng_http_res **resp);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_http_res_alloc() function allocates a new HTTP response structure +and stores a pointer to it in resp. +The response will be initialized +with status code 200 (NNG_HTTP_STATUS_OK), and a reason phrase of "OK", +and HTTP protocol version "HTTP/1.1".

+
+
+ + + + + +
+ + +When an error response is needed, consider using +nng_http_res_alloc_error() instead. +
+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ENOMEM
+
+

Insufficient free memory exists to allocate a message.

+
+
NNG_ENOTSUP
+
+

HTTP support not configured.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_http_res_alloc.html b/man/tip/nng_http_res_alloc.html deleted file mode 100644 index a7ab9889..00000000 --- a/man/tip/nng_http_res_alloc.html +++ /dev/null @@ -1,612 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_http_res_alloc(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-#include <nng/supplemental/http/http.h>
-
-int nng_http_res_alloc(nng_http_res **resp);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_http_res_alloc() function allocates a new HTTP response structure -and stores a pointer to it in resp. The response will be initialized -with status code 200 (NNG_HTTP_STATUS_OK), and a reason phrase of "OK", -and HTTP protocol version "HTTP/1.1".

-
-
- - - - - -
- - -When an error response is needed, consider using -nng_http_res_alloc_error(3) instead. -
-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_ENOMEM
-
-

Insufficient free memory exists to allocate a message.

-
-
NNG_ENOTSUP
-
-

HTTP support not configured.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_http_res_alloc_error.3http.html b/man/tip/nng_http_res_alloc_error.3http.html new file mode 100644 index 00000000..9b215079 --- /dev/null +++ b/man/tip/nng_http_res_alloc_error.3http.html @@ -0,0 +1,604 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_http_res_alloc_error(3http) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/supplemental/http/http.h>
+
+int nng_http_res_alloc_error(nng_http_res **resp, uint16_t status);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_http_res_alloc_error() function allocates a new HTTP response structure +and stores a pointer to it in resp. +The response will be initialized +with the status code status, a corresponding reason phrase, and +a simple HTML page containing the same information will be generated and +attached to the response. +(Relevant HTTP headers will be set as well, such as Content-Type +and Content-Length.) +The HTTP protocol version is also set to "HTTP/1.1".

+
+
+ + + + + +
+ + +This is the simplest way to generate an error response. +
+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ENOMEM
+
+

Insufficient free memory exists to allocate a message.

+
+
NNG_ENOTSUP
+
+

HTTP support not configured.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_http_res_alloc_error.html b/man/tip/nng_http_res_alloc_error.html deleted file mode 100644 index 3b3bb537..00000000 --- a/man/tip/nng_http_res_alloc_error.html +++ /dev/null @@ -1,602 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_http_res_alloc_error(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-#include <nng/supplemental/http/http.h>
-
-int nng_http_res_alloc_error(nng_http_res **resp, uint16_t status);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_http_res_alloc_error() function allocates a new HTTP response structure -and stores a pointer to it in resp. The response will be initialized -with the status code status, a corresponding reason phrase, and -a simple HTML page containing the same information will be generated and -attached to the response. (Relevant HTTP headers will be set as well, -such as Content-Type and Content-Length.) The HTTP protocol version -is also set to "HTTP/1.1".

-
-
- - - - - -
- - -This is the simplest way to generate an error response. -
-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_ENOMEM
-
-

Insufficient free memory exists to allocate a message.

-
-
NNG_ENOTSUP
-
-

HTTP support not configured.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_http_res_copy_data.3http.html b/man/tip/nng_http_res_copy_data.3http.html new file mode 100644 index 00000000..23041ad3 --- /dev/null +++ b/man/tip/nng_http_res_copy_data.3http.html @@ -0,0 +1,630 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_http_res_copy_data(3http) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/supplemental/http/http.h>
+
+int nng_http_res_copy_data(nng_http_res *res, const void *body, size_t size);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_http_res_copy_data() makes a copy of body (of size size) +and sets the HTTP body for the response res to it. +The copy will be deallocated automatically when res is freed.

+
+
+

The copied body data will be automatically sent with the response when it +is sent using nni_http_conn_write_res().

+
+
+

This also updates the relevant Content-Length header of res.

+
+
+ + + + + +
+ + +The current framework does not support sending data via chunked +transfer-encoding. +
+
+
+ + + + + +
+ + +To avoid copying data, the +nng_http_res_set_data() may be used instead. +
+
+
+ + + + + +
+ + +It is a good idea to also set the Content-Type header. +
+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ENOMEM
+
+

Insufficient memory to perform the operation.

+
+
NNG_ENOTSUP
+
+

No support for HTTP in the library.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_http_res_copy_data.html b/man/tip/nng_http_res_copy_data.html deleted file mode 100644 index eb887f37..00000000 --- a/man/tip/nng_http_res_copy_data.html +++ /dev/null @@ -1,630 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_http_res_copy_data(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-#include <nng/supplemental/http/http.h>
-
-int nng_http_res_copy_data(nng_http_res *res, const void *body, size_t size);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_http_res_copy_data() makes a copy of body (of size size) -and sets the HTTP body for the response res to it. The copy will be -deallocated automatically when res is freed.

-
-
-

The copied body data will be automatically sent with the response when it -is sent using nni_http_conn_write_res(3).

-
-
-

This also updates the relevant Content-Length header of res.

-
-
- - - - - -
- - -The current framework does not support sending data via chunked -transfer-encoding. -
-
-
- - - - - -
- - -To avoid copying data, the -nng_http_res_set_data(3) may be used instead. -
-
-
- - - - - -
- - -It is a good idea to also set the Content-Type header. -
-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_ENOMEM
-
-

Insufficient memory to perform the operation.

-
-
NNG_ENOTSUP
-
-

No support for HTTP in the library.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_http_res_del_header.3http.html b/man/tip/nng_http_res_del_header.3http.html new file mode 100644 index 00000000..e035046b --- /dev/null +++ b/man/tip/nng_http_res_del_header.3http.html @@ -0,0 +1,589 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_http_res_set_header(3http) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/supplemental/http/http.h>
+
+int nng_http_res_set_header(nng_http_res *res, const char *key);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_http_res_del_header() removes all HTTP headers with the +associated key from the response structure res.

+
+
+

The value of key is case insensitive, and should not include the final +colon in an HTTP header. For example, specifying Host or hOSt are +equivalent, whereas the value Host: is not a legal header key.

+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ENOENT
+
+

No header with the key key was present.

+
+
NNG_ENOTSUP
+
+

No support for HTTP in the library.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_http_res_del_header.html b/man/tip/nng_http_res_del_header.html deleted file mode 100644 index a5020a3f..00000000 --- a/man/tip/nng_http_res_del_header.html +++ /dev/null @@ -1,589 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_http_res_set_header(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-#include <nng/supplemental/http/http.h>
-
-int nng_http_res_set_header(nng_http_res *res, const char *key);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_http_res_del_header() removes all HTTP headers with the -associated key from the response structure res.

-
-
-

The value of key is case insensitive, and should not include the final -colon in an HTTP header. For example, specifying Host or hOSt are -equivalent, whereas the value Host: is not a legal header key.

-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_ENOENT
-
-

No header with the key key was present.

-
-
NNG_ENOTSUP
-
-

No support for HTTP in the library.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_http_res_free.3http.html b/man/tip/nng_http_res_free.3http.html new file mode 100644 index 00000000..82651826 --- /dev/null +++ b/man/tip/nng_http_res_free.3http.html @@ -0,0 +1,572 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_http_res_free(3http) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/supplemental/http/http.h>
+
+void nng_http_res_free(nng_http_res *req);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_http_res_free() function deallocates the HTTP response structure +res entirely.

+
+
+
+
+

RETURN VALUES

+
+
+

None.

+
+
+
+
+

ERRORS

+
+
+

None.

+
+
+
+
+

SEE ALSO

+ +
+
+ + diff --git a/man/tip/nng_http_res_free.html b/man/tip/nng_http_res_free.html deleted file mode 100644 index 896ca38b..00000000 --- a/man/tip/nng_http_res_free.html +++ /dev/null @@ -1,572 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_http_res_free(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-#include <nng/supplemental/http/http.h>
-
-void nng_http_res_free(nng_http_res *req);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_http_res_free() function deallocates the HTTP response structure -res entirely.

-
-
-
-
-

RETURN VALUES

-
-
-

None.

-
-
-
-
-

ERRORS

-
-
-

None.

-
-
-
-
-

SEE ALSO

- -
-
- - diff --git a/man/tip/nng_http_res_get_header.3http.html b/man/tip/nng_http_res_get_header.3http.html new file mode 100644 index 00000000..5e5223c5 --- /dev/null +++ b/man/tip/nng_http_res_get_header.3http.html @@ -0,0 +1,581 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_http_res_get_header(3http) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/supplemental/http/http.h>
+
+const char *nng_http_res_get_header(nng_http_res *res, const char *key);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_http_res_get_header() looks for an HTTP header key in +the response res, and returns the associated value if found, +or NULL if not found.

+
+
+

The value of key is case insensitive, and should not include the final +colon in an HTTP header. +For example, specifying Host or hOSt are +equivalent, whereas the value Host: will not find anything.

+
+
+
+
+

RETURN VALUES

+
+
+

HTTP header value for key, if it exists, or NULL otherwise.

+
+
+
+
+

ERRORS

+
+
+

None.

+
+
+
+ +
+ + diff --git a/man/tip/nng_http_res_get_header.html b/man/tip/nng_http_res_get_header.html deleted file mode 100644 index cbead46c..00000000 --- a/man/tip/nng_http_res_get_header.html +++ /dev/null @@ -1,580 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_http_res_get_header(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-#include <nng/supplemental/http/http.h>
-
-const char *nng_http_res_get_header(nng_http_res *res, const char *key);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_http_res_get_header() looks for an HTTP header key in -the response res, and returns the associated value if found, -or NULL if not found.

-
-
-

The value of key is case insensitive, and should not include the final -colon in an HTTP header. For example, specifying Host or hOSt are -equivalent, whereas the value Host: will not find anything.

-
-
-
-
-

RETURN VALUES

-
-
-

HTTP header value for key, if it exists, or NULL otherwise.

-
-
-
-
-

ERRORS

-
-
-

None.

-
-
-
- -
- - diff --git a/man/tip/nng_http_res_get_reason.3http.html b/man/tip/nng_http_res_get_reason.3http.html new file mode 100644 index 00000000..646a3510 --- /dev/null +++ b/man/tip/nng_http_res_get_reason.3http.html @@ -0,0 +1,577 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_http_res_get_reason(3http) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/supplemental/http/http.h>
+
+const char *nng_http_res_get_reason(nng_http_res *res);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_http_res_get_reason() returns a string representing the "reason +phrase" associated with the response res. +This is a human-readable explanation of the status code that +would be obtained from +nng_http_res_get_status().

+
+
+
+
+

RETURN VALUES

+
+
+

Reason as a string.

+
+
+
+
+

ERRORS

+
+
+

None.

+
+
+
+ +
+ + diff --git a/man/tip/nng_http_res_get_reason.html b/man/tip/nng_http_res_get_reason.html deleted file mode 100644 index 33d25f0a..00000000 --- a/man/tip/nng_http_res_get_reason.html +++ /dev/null @@ -1,576 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_http_res_get_reason(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-#include <nng/supplemental/http/http.h>
-
-const char *nng_http_res_get_reason(nng_http_res *res);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_http_res_get_reason() returns a string representing the "reason -phrase" associated with the response res. This is a human-readable -explanation of the status code that would be obtained from -nng_http_res_get_status(3).

-
-
-
-
-

RETURN VALUES

-
-
-

Reason as a string.

-
-
-
-
-

ERRORS

-
-
-

None.

-
-
-
- -
- - diff --git a/man/tip/nng_http_res_get_status.3http.html b/man/tip/nng_http_res_get_status.3http.html new file mode 100644 index 00000000..be58324a --- /dev/null +++ b/man/tip/nng_http_res_get_status.3http.html @@ -0,0 +1,657 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_http_res_get_status(3http) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/supplemental/http/http.h>
+
+uint16_t nng_http_res_get_status(nng_http_res *res);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_http_res_get_status() returns a numeric code corresponding to +the HTTP status of the response res.

+
+
+

For convenience, a number of predefined symbols corresponding to well-known +HTTP status codes are available.

+
+
+
+
enum {
+    NNG_HTTP_STATUS_CONTINUE                 = 100,
+    NNG_HTTP_STATUS_SWITCHING                = 101,
+    NNG_HTTP_STATUS_PROCESSING               = 102,
+    NNG_HTTP_STATUS_OK                       = 200,
+    NNG_HTTP_STATUS_CREATED                  = 201,
+    NNG_HTTP_STATUS_ACCEPTED                 = 202,
+    NNG_HTTP_STATUS_NOT_AUTHORITATIVE        = 203,
+    NNG_HTTP_STATUS_NO_CONTENT               = 204,
+    NNG_HTTP_STATUS_RESET_CONTENT            = 205,
+    NNG_HTTP_STATUS_PARTIAL_CONTENT          = 206,
+    NNG_HTTP_STATUS_MULTI_STATUS             = 207,
+    NNG_HTTP_STATUS_ALREADY_REPORTED         = 208,
+    NNG_HTTP_STATUS_IM_USED                  = 226,
+    NNG_HTTP_STATUS_MULTIPLE_CHOICES         = 300,
+    NNG_HTTP_STATUS_STATUS_MOVED_PERMANENTLY = 301,
+    NNG_HTTP_STATUS_FOUND                    = 302,
+    NNG_HTTP_STATUS_SEE_OTHER                = 303,
+    NNG_HTTP_STATUS_NOT_MODIFIED             = 304,
+    NNG_HTTP_STATUS_USE_PROXY                = 305,
+    NNG_HTTP_STATUS_TEMPORARY_REDIRECT       = 307,
+    NNG_HTTP_STATUS_PERMANENT_REDIRECT       = 308,
+    NNG_HTTP_STATUS_BAD_REQUEST              = 400,
+    NNG_HTTP_STATUS_UNAUTHORIZED             = 401,
+    NNG_HTTP_STATUS_PAYMENT_REQUIRED         = 402,
+    NNG_HTTP_STATUS_FORBIDDEN                = 403,
+    NNG_HTTP_STATUS_NOT_FOUND                = 404,
+    NNG_HTTP_STATUS_METHOD_NOT_ALLOWED       = 405,
+    NNG_HTTP_STATUS_NOT_ACCEPTABLE           = 406,
+    NNG_HTTP_STATUS_PROXY_AUTH_REQUIRED      = 407,
+    NNG_HTTP_STATUS_REQUEST_TIMEOUT          = 408,
+    NNG_HTTP_STATUS_CONFLICT                 = 409,
+    NNG_HTTP_STATUS_GONE                     = 410,
+    NNG_HTTP_STATUS_LENGTH_REQUIRED          = 411,
+    NNG_HTTP_STATUS_PRECONDITION_FAILED      = 412,
+    NNG_HTTP_STATUS_PAYLOAD_TOO_LARGE        = 413,
+    NNG_HTTP_STATUS_ENTITY_TOO_LONG          = 414,
+    NNG_HTTP_STATUS_UNSUPPORTED_MEDIA_TYPE   = 415,
+    NNG_HTTP_STATUS_RANGE_NOT_SATISFIABLE    = 416,
+    NNG_HTTP_STATUS_EXPECTATION_FAILED       = 417,
+    NNG_HTTP_STATUS_TEAPOT                   = 418,
+    NNG_HTTP_STATUS_UNPROCESSABLE_ENTITY     = 422,
+    NNG_HTTP_STATUS_LOCKED                   = 423,
+    NNG_HTTP_STATUS_FAILED_DEPENDENCY        = 424,
+    NNG_HTTP_STATUS_UPGRADE_REQUIRED         = 426,
+    NNG_HTTP_STATUS_PRECONDITION_REQUIRED    = 428,
+    NNG_HTTP_STATUS_TOO_MANY_REQUESTS        = 429,
+    NNG_HTTP_STATUS_HEADERS_TOO_LARGE        = 431,
+    NNG_HTTP_STATUS_UNAVAIL_LEGAL_REASONS    = 451,
+    NNG_HTTP_STATUS_INTERNAL_SERVER_ERROR    = 500,
+    NNG_HTTP_STATUS_NOT_IMPLEMENTED          = 501,
+    NNG_HTTP_STATUS_BAD_GATEWAY              = 502,
+    NNG_HTTP_STATUS_SERVICE_UNAVAILABLE      = 503,
+    NNG_HTTP_STATUS_GATEWAY_TIMEOUT          = 504,
+    NNG_HTTP_STATUS_HTTP_VERSION_NOT_SUPP    = 505,
+    NNG_HTTP_STATUS_VARIANT_ALSO_NEGOTIATES  = 506,
+    NNG_HTTP_STATUS_INSUFFICIENT_STORAGE     = 507,
+    NNG_HTTP_STATUS_LOOP_DETECTED            = 508,
+    NNG_HTTP_STATUS_NOT_EXTENDED             = 510,
+    NNG_HTTP_STATUS_NETWORK_AUTH_REQUIRED    = 511,
+}
+
+
+
+ + + + + +
+ + +When displaying status information to users (or logging such information), +consider also including the "reason phrase" obtained with +nng_http_res_get_reason(). +
+
+
+
+
+

RETURN VALUES

+
+
+

HTTP status code.

+
+
+
+
+

ERRORS

+
+
+

None.

+
+
+
+ +
+ + diff --git a/man/tip/nng_http_res_get_status.html b/man/tip/nng_http_res_get_status.html deleted file mode 100644 index 205eaaab..00000000 --- a/man/tip/nng_http_res_get_status.html +++ /dev/null @@ -1,657 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_http_res_get_status(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-#include <nng/supplemental/http/http.h>
-
-uint16_t nng_http_res_get_status(nng_http_res *res);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_http_res_get_status() returns a numeric code corresponding to -the HTTP status of the response res.

-
-
-

For convenience, a number of predefined symbols corresponding to well-known -HTTP status codes are available.

-
-
-
-
enum {
-    NNG_HTTP_STATUS_CONTINUE                 = 100,
-    NNG_HTTP_STATUS_SWITCHING                = 101,
-    NNG_HTTP_STATUS_PROCESSING               = 102,
-    NNG_HTTP_STATUS_OK                       = 200,
-    NNG_HTTP_STATUS_CREATED                  = 201,
-    NNG_HTTP_STATUS_ACCEPTED                 = 202,
-    NNG_HTTP_STATUS_NOT_AUTHORITATIVE        = 203,
-    NNG_HTTP_STATUS_NO_CONTENT               = 204,
-    NNG_HTTP_STATUS_RESET_CONTENT            = 205,
-    NNG_HTTP_STATUS_PARTIAL_CONTENT          = 206,
-    NNG_HTTP_STATUS_MULTI_STATUS             = 207,
-    NNG_HTTP_STATUS_ALREADY_REPORTED         = 208,
-    NNG_HTTP_STATUS_IM_USED                  = 226,
-    NNG_HTTP_STATUS_MULTIPLE_CHOICES         = 300,
-    NNG_HTTP_STATUS_STATUS_MOVED_PERMANENTLY = 301,
-    NNG_HTTP_STATUS_FOUND                    = 302,
-    NNG_HTTP_STATUS_SEE_OTHER                = 303,
-    NNG_HTTP_STATUS_NOT_MODIFIED             = 304,
-    NNG_HTTP_STATUS_USE_PROXY                = 305,
-    NNG_HTTP_STATUS_TEMPORARY_REDIRECT       = 307,
-    NNG_HTTP_STATUS_PERMANENT_REDIRECT       = 308,
-    NNG_HTTP_STATUS_BAD_REQUEST              = 400,
-    NNG_HTTP_STATUS_UNAUTHORIZED             = 401,
-    NNG_HTTP_STATUS_PAYMENT_REQUIRED         = 402,
-    NNG_HTTP_STATUS_FORBIDDEN                = 403,
-    NNG_HTTP_STATUS_NOT_FOUND                = 404,
-    NNG_HTTP_STATUS_METHOD_NOT_ALLOWED       = 405,
-    NNG_HTTP_STATUS_NOT_ACCEPTABLE           = 406,
-    NNG_HTTP_STATUS_PROXY_AUTH_REQUIRED      = 407,
-    NNG_HTTP_STATUS_REQUEST_TIMEOUT          = 408,
-    NNG_HTTP_STATUS_CONFLICT                 = 409,
-    NNG_HTTP_STATUS_GONE                     = 410,
-    NNG_HTTP_STATUS_LENGTH_REQUIRED          = 411,
-    NNG_HTTP_STATUS_PRECONDITION_FAILED      = 412,
-    NNG_HTTP_STATUS_PAYLOAD_TOO_LARGE        = 413,
-    NNG_HTTP_STATUS_ENTITY_TOO_LONG          = 414,
-    NNG_HTTP_STATUS_UNSUPPORTED_MEDIA_TYPE   = 415,
-    NNG_HTTP_STATUS_RANGE_NOT_SATISFIABLE    = 416,
-    NNG_HTTP_STATUS_EXPECTATION_FAILED       = 417,
-    NNG_HTTP_STATUS_TEAPOT                   = 418,
-    NNG_HTTP_STATUS_UNPROCESSABLE_ENTITY     = 422,
-    NNG_HTTP_STATUS_LOCKED                   = 423,
-    NNG_HTTP_STATUS_FAILED_DEPENDENCY        = 424,
-    NNG_HTTP_STATUS_UPGRADE_REQUIRED         = 426,
-    NNG_HTTP_STATUS_PRECONDITION_REQUIRED    = 428,
-    NNG_HTTP_STATUS_TOO_MANY_REQUESTS        = 429,
-    NNG_HTTP_STATUS_HEADERS_TOO_LARGE        = 431,
-    NNG_HTTP_STATUS_UNAVAIL_LEGAL_REASONS    = 451,
-    NNG_HTTP_STATUS_INTERNAL_SERVER_ERROR    = 500,
-    NNG_HTTP_STATUS_NOT_IMPLEMENTED          = 501,
-    NNG_HTTP_STATUS_BAD_GATEWAY              = 502,
-    NNG_HTTP_STATUS_SERVICE_UNAVAILABLE      = 503,
-    NNG_HTTP_STATUS_GATEWAY_TIMEOUT          = 504,
-    NNG_HTTP_STATUS_HTTP_VERSION_NOT_SUPP    = 505,
-    NNG_HTTP_STATUS_VARIANT_ALSO_NEGOTIATES  = 506,
-    NNG_HTTP_STATUS_INSUFFICIENT_STORAGE     = 507,
-    NNG_HTTP_STATUS_LOOP_DETECTED            = 508,
-    NNG_HTTP_STATUS_NOT_EXTENDED             = 510,
-    NNG_HTTP_STATUS_NETWORK_AUTH_REQUIRED    = 511,
-}
-
-
-
- - - - - -
- - -When displaying status information to users (or logging such information), -consider also including the "reason phrase" obtained with -nng_http_res_get_reason(3). -
-
-
-
-
-

RETURN VALUES

-
-
-

HTTP status code.

-
-
-
-
-

ERRORS

-
-
-

None.

-
-
-
- -
- - diff --git a/man/tip/nng_http_res_get_version.3http.html b/man/tip/nng_http_res_get_version.3http.html new file mode 100644 index 00000000..eb5bea34 --- /dev/null +++ b/man/tip/nng_http_res_get_version.3http.html @@ -0,0 +1,573 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_http_res_get_version(3http) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/supplemental/http/http.h>
+
+const char *nng_http_res_get_version(nng_http_res *res);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_http_res_get_version() returns a string representing the HTTP +protocol version associated with the request res, such as "HTTP/1.1".

+
+
+
+
+

RETURN VALUES

+
+
+

Response version as a string.

+
+
+
+
+

ERRORS

+
+
+

None.

+
+
+
+ +
+ + diff --git a/man/tip/nng_http_res_get_version.html b/man/tip/nng_http_res_get_version.html deleted file mode 100644 index 6cbb35a6..00000000 --- a/man/tip/nng_http_res_get_version.html +++ /dev/null @@ -1,573 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_http_res_get_version(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-#include <nng/supplemental/http/http.h>
-
-const char *nng_http_res_get_version(nng_http_res *res);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_http_res_get_version() returns a string representing the HTTP -protocol version associated with the request res, such as "HTTP/1.1".

-
-
-
-
-

RETURN VALUES

-
-
-

Response version as a string.

-
-
-
-
-

ERRORS

-
-
-

None.

-
-
-
- -
- - diff --git a/man/tip/nng_http_res_set_data.3http.html b/man/tip/nng_http_res_set_data.3http.html new file mode 100644 index 00000000..bf3d6c89 --- /dev/null +++ b/man/tip/nng_http_res_set_data.3http.html @@ -0,0 +1,632 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_http_res_set_data(3http) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/supplemental/http/http.h>
+
+int nng_http_res_set_data(nng_http_res *res, const void *body, size_t size);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_http_res_set_data() sets the HTTP body associated with +the response res to body, and the size of the body to size. +This body data will be automatically sent with the response when it +is sent using nni_http_conn_write_res().

+
+
+

This also updates the relevant Content-Length header of res.

+
+
+ + + + + +
+ + +The current framework does not support sending data via chunked +transfer-encoding. +
+
+
+

The body is not copied, and the caller must ensure that it is available +until the res is deallocated.

+
+
+ + + + + +
+ + +To have a local copy allocated with res that will be automatically +deallocated when res is freed, +see nng_http_res_copy_data(). +
+
+
+ + + + + +
+ + +It is a good idea to also set the Content-Type header. +
+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ENOMEM
+
+

Insufficient memory to perform the operation.

+
+
NNG_ENOTSUP
+
+

No support for HTTP in the library.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_http_res_set_data.html b/man/tip/nng_http_res_set_data.html deleted file mode 100644 index eca701ac..00000000 --- a/man/tip/nng_http_res_set_data.html +++ /dev/null @@ -1,632 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_http_res_set_data(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-#include <nng/supplemental/http/http.h>
-
-int nng_http_res_set_data(nng_http_res *res, const void *body, size_t size);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_http_res_set_data() sets the HTTP body associated with -the response res to body, and the size of the body to size. -This body data will be automatically sent with the response when it -is sent using nni_http_conn_write_res(3).

-
-
-

This also updates the relevant Content-Length header of res.

-
-
- - - - - -
- - -The current framework does not support sending data via chunked -transfer-encoding. -
-
-
-

The body is not copied, and the caller must ensure that it is available -until the res is deallocated.

-
-
- - - - - -
- - -To have a local copy allocated with res that will be automatically -deallocated when res is freed, -see nng_http_res_copy_data(3). -
-
-
- - - - - -
- - -It is a good idea to also set the Content-Type header. -
-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_ENOMEM
-
-

Insufficient memory to perform the operation.

-
-
NNG_ENOTSUP
-
-

No support for HTTP in the library.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_http_res_set_header.3http.html b/man/tip/nng_http_res_set_header.3http.html new file mode 100644 index 00000000..4b72f130 --- /dev/null +++ b/man/tip/nng_http_res_set_header.3http.html @@ -0,0 +1,606 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_http_res_set_header(3http) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/supplemental/http/http.h>
+
+int nng_http_res_set_header(nng_http_res *res, const char *key,
+    const char *val);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_http_res_set_header() sets the HTTP header for the response +res and the key to the val. +The key and val are copied. +Any previous header with the same key is replaced.

+
+
+ + + + + +
+ + +See nng_http_res_add_header() to +add additional headers with the same key without replacing them. +
+
+
+

The value of key is case insensitive, and should not include the final +colon in an HTTP header. +For example, specifying Host or hOSt are +equivalent, whereas the value Host: is not a legal header key.

+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ENOMEM
+
+

Insufficient memory to perform the operation.

+
+
NNG_ENOTSUP
+
+

No support for HTTP in the library.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_http_res_set_header.html b/man/tip/nng_http_res_set_header.html deleted file mode 100644 index 7425bebc..00000000 --- a/man/tip/nng_http_res_set_header.html +++ /dev/null @@ -1,604 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_http_res_set_header(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-#include <nng/supplemental/http/http.h>
-
-int nng_http_res_set_header(nng_http_res *res, const char *key,
-    const char *val);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_http_res_set_header() sets the HTTP header for the response -res and the key to the val. The key and val are copied. -Any previous header with the same key is replaced.

-
-
- - - - - -
- - -See nng_http_res_add_header(3) to -add additional headers with the same key without replacing them. -
-
-
-

The value of key is case insensitive, and should not include the final -colon in an HTTP header. For example, specifying Host or hOSt are -equivalent, whereas the value Host: is not a legal header key.

-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_ENOMEM
-
-

Insufficient memory to perform the operation.

-
-
NNG_ENOTSUP
-
-

No support for HTTP in the library.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_http_res_set_reason.3http.html b/man/tip/nng_http_res_set_reason.3http.html new file mode 100644 index 00000000..3c31fd63 --- /dev/null +++ b/man/tip/nng_http_res_set_reason.3http.html @@ -0,0 +1,604 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_http_res_set_reason(3http) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/supplemental/http/http.h>
+
+int nng_http_res_set_reason(nng_http_res *res, const char *reason);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_http_res_set_reason() sets the human readable "reason phrase" +associated with the response res to reason.

+
+
+

If the value of reason is NULL (the default), then a default reason +phrase is supplied based upon the value of the status code (see +nng_http_res_set_status()).

+
+
+ + + + + +
+ + +The reason is never parsed automatically, but it can be a hint for humans + to help them understand the nature of any erroroneous result. +
+
+
+

A local copy of the reason is made in the response res.

+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ENOMEM
+
+

Insufficient memory to perform the operation.

+
+
NNG_ENOTSUP
+
+

No support for HTTP in the library.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_http_res_set_reason.html b/man/tip/nng_http_res_set_reason.html deleted file mode 100644 index 5d4821ec..00000000 --- a/man/tip/nng_http_res_set_reason.html +++ /dev/null @@ -1,604 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_http_res_set_reason(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-#include <nng/supplemental/http/http.h>
-
-int nng_http_res_set_reason(nng_http_res *res, const char *reason);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_http_res_set_reason() sets the human readable "reason phrase" -associated with the response res to reason.

-
-
-

If the value of reason is NULL (the default), then a default reason -phrase is supplied based upon the value of the status code (see -nng_http_res_set_status(3)).

-
-
- - - - - -
- - -The reason is never parsed automatically, but it can be a hint for humans - to help them understand the nature of any erroroneous result. -
-
-
-

A local copy of the reason is made in the response res.

-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_ENOMEM
-
-

Insufficient memory to perform the operation.

-
-
NNG_ENOTSUP
-
-

No support for HTTP in the library.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_http_res_set_status.3http.html b/man/tip/nng_http_res_set_status.3http.html new file mode 100644 index 00000000..78d209ee --- /dev/null +++ b/man/tip/nng_http_res_set_status.3http.html @@ -0,0 +1,670 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_http_res_set_status(3http) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/supplemental/http/http.h>
+
+int nng_http_res_set_status(nng_http_res *res, uint16_t status);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_http_res_set_status() sets the numeric HTTP status code +associated with the response res to status. +The default value for a newly allocated response is 200 (NNG_HTTP_STATUS_OK).

+
+
+

The status is not verified, so the caller should take care to ensure +that only a valid code is supplied.

+
+
+

For convenience, a number of predefined symbols are available.

+
+
+
+
enum {
+    NNG_HTTP_STATUS_CONTINUE                 = 100,
+    NNG_HTTP_STATUS_SWITCHING                = 101,
+    NNG_HTTP_STATUS_PROCESSING               = 102,
+    NNG_HTTP_STATUS_OK                       = 200,
+    NNG_HTTP_STATUS_CREATED                  = 201,
+    NNG_HTTP_STATUS_ACCEPTED                 = 202,
+    NNG_HTTP_STATUS_NOT_AUTHORITATIVE        = 203,
+    NNG_HTTP_STATUS_NO_CONTENT               = 204,
+    NNG_HTTP_STATUS_RESET_CONTENT            = 205,
+    NNG_HTTP_STATUS_PARTIAL_CONTENT          = 206,
+    NNG_HTTP_STATUS_MULTI_STATUS             = 207,
+    NNG_HTTP_STATUS_ALREADY_REPORTED         = 208,
+    NNG_HTTP_STATUS_IM_USED                  = 226,
+    NNG_HTTP_STATUS_MULTIPLE_CHOICES         = 300,
+    NNG_HTTP_STATUS_STATUS_MOVED_PERMANENTLY = 301,
+    NNG_HTTP_STATUS_FOUND                    = 302,
+    NNG_HTTP_STATUS_SEE_OTHER                = 303,
+    NNG_HTTP_STATUS_NOT_MODIFIED             = 304,
+    NNG_HTTP_STATUS_USE_PROXY                = 305,
+    NNG_HTTP_STATUS_TEMPORARY_REDIRECT       = 307,
+    NNG_HTTP_STATUS_PERMANENT_REDIRECT       = 308,
+    NNG_HTTP_STATUS_BAD_REQUEST              = 400,
+    NNG_HTTP_STATUS_UNAUTHORIZED             = 401,
+    NNG_HTTP_STATUS_PAYMENT_REQUIRED         = 402,
+    NNG_HTTP_STATUS_FORBIDDEN                = 403,
+    NNG_HTTP_STATUS_NOT_FOUND                = 404,
+    NNG_HTTP_STATUS_METHOD_NOT_ALLOWED       = 405,
+    NNG_HTTP_STATUS_NOT_ACCEPTABLE           = 406,
+    NNG_HTTP_STATUS_PROXY_AUTH_REQUIRED      = 407,
+    NNG_HTTP_STATUS_REQUEST_TIMEOUT          = 408,
+    NNG_HTTP_STATUS_CONFLICT                 = 409,
+    NNG_HTTP_STATUS_GONE                     = 410,
+    NNG_HTTP_STATUS_LENGTH_REQUIRED          = 411,
+    NNG_HTTP_STATUS_PRECONDITION_FAILED      = 412,
+    NNG_HTTP_STATUS_PAYLOAD_TOO_LARGE        = 413,
+    NNG_HTTP_STATUS_ENTITY_TOO_LONG          = 414,
+    NNG_HTTP_STATUS_UNSUPPORTED_MEDIA_TYPE   = 415,
+    NNG_HTTP_STATUS_RANGE_NOT_SATISFIABLE    = 416,
+    NNG_HTTP_STATUS_EXPECTATION_FAILED       = 417,
+    NNG_HTTP_STATUS_TEAPOT                   = 418,
+    NNG_HTTP_STATUS_UNPROCESSABLE_ENTITY     = 422,
+    NNG_HTTP_STATUS_LOCKED                   = 423,
+    NNG_HTTP_STATUS_FAILED_DEPENDENCY        = 424,
+    NNG_HTTP_STATUS_UPGRADE_REQUIRED         = 426,
+    NNG_HTTP_STATUS_PRECONDITION_REQUIRED    = 428,
+    NNG_HTTP_STATUS_TOO_MANY_REQUESTS        = 429,
+    NNG_HTTP_STATUS_HEADERS_TOO_LARGE        = 431,
+    NNG_HTTP_STATUS_UNAVAIL_LEGAL_REASONS    = 451,
+    NNG_HTTP_STATUS_INTERNAL_SERVER_ERROR    = 500,
+    NNG_HTTP_STATUS_NOT_IMPLEMENTED          = 501,
+    NNG_HTTP_STATUS_BAD_GATEWAY              = 502,
+    NNG_HTTP_STATUS_SERVICE_UNAVAILABLE      = 503,
+    NNG_HTTP_STATUS_GATEWAY_TIMEOUT          = 504,
+    NNG_HTTP_STATUS_HTTP_VERSION_NOT_SUPP    = 505,
+    NNG_HTTP_STATUS_VARIANT_ALSO_NEGOTIATES  = 506,
+    NNG_HTTP_STATUS_INSUFFICIENT_STORAGE     = 507,
+    NNG_HTTP_STATUS_LOOP_DETECTED            = 508,
+    NNG_HTTP_STATUS_NOT_EXTENDED             = 510,
+    NNG_HTTP_STATUS_NETWORK_AUTH_REQUIRED    = 511,
+}
+
+
+
+

Please see the relevant HTTP RFCs for the semantics and correct +use of these status codes.

+
+
+ + + + + +
+ + +It is a good idea to also set the "reason phrase" with +nng_http_set_reason(). +This will help any humans who may have to diagnose any failure. +
+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ENOTSUP
+
+

No support for HTTP in the library.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_http_res_set_status.html b/man/tip/nng_http_res_set_status.html deleted file mode 100644 index 3459bc77..00000000 --- a/man/tip/nng_http_res_set_status.html +++ /dev/null @@ -1,670 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_http_res_set_status(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-#include <nng/supplemental/http/http.h>
-
-int nng_http_res_set_status(nng_http_res *res, uint16_t status);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_http_res_set_status() sets the numeric HTTP status code -associated with the response res to status. The default value -for a newly allocated response is 200 (NNG_HTTP_STATUS_OK).

-
-
-

The status is not verified, so the caller should take care to ensure -that only a valid code is supplied.

-
-
-

For convenience, a number of predefined symbols are available.

-
-
-
-
enum {
-    NNG_HTTP_STATUS_CONTINUE                 = 100,
-    NNG_HTTP_STATUS_SWITCHING                = 101,
-    NNG_HTTP_STATUS_PROCESSING               = 102,
-    NNG_HTTP_STATUS_OK                       = 200,
-    NNG_HTTP_STATUS_CREATED                  = 201,
-    NNG_HTTP_STATUS_ACCEPTED                 = 202,
-    NNG_HTTP_STATUS_NOT_AUTHORITATIVE        = 203,
-    NNG_HTTP_STATUS_NO_CONTENT               = 204,
-    NNG_HTTP_STATUS_RESET_CONTENT            = 205,
-    NNG_HTTP_STATUS_PARTIAL_CONTENT          = 206,
-    NNG_HTTP_STATUS_MULTI_STATUS             = 207,
-    NNG_HTTP_STATUS_ALREADY_REPORTED         = 208,
-    NNG_HTTP_STATUS_IM_USED                  = 226,
-    NNG_HTTP_STATUS_MULTIPLE_CHOICES         = 300,
-    NNG_HTTP_STATUS_STATUS_MOVED_PERMANENTLY = 301,
-    NNG_HTTP_STATUS_FOUND                    = 302,
-    NNG_HTTP_STATUS_SEE_OTHER                = 303,
-    NNG_HTTP_STATUS_NOT_MODIFIED             = 304,
-    NNG_HTTP_STATUS_USE_PROXY                = 305,
-    NNG_HTTP_STATUS_TEMPORARY_REDIRECT       = 307,
-    NNG_HTTP_STATUS_PERMANENT_REDIRECT       = 308,
-    NNG_HTTP_STATUS_BAD_REQUEST              = 400,
-    NNG_HTTP_STATUS_UNAUTHORIZED             = 401,
-    NNG_HTTP_STATUS_PAYMENT_REQUIRED         = 402,
-    NNG_HTTP_STATUS_FORBIDDEN                = 403,
-    NNG_HTTP_STATUS_NOT_FOUND                = 404,
-    NNG_HTTP_STATUS_METHOD_NOT_ALLOWED       = 405,
-    NNG_HTTP_STATUS_NOT_ACCEPTABLE           = 406,
-    NNG_HTTP_STATUS_PROXY_AUTH_REQUIRED      = 407,
-    NNG_HTTP_STATUS_REQUEST_TIMEOUT          = 408,
-    NNG_HTTP_STATUS_CONFLICT                 = 409,
-    NNG_HTTP_STATUS_GONE                     = 410,
-    NNG_HTTP_STATUS_LENGTH_REQUIRED          = 411,
-    NNG_HTTP_STATUS_PRECONDITION_FAILED      = 412,
-    NNG_HTTP_STATUS_PAYLOAD_TOO_LARGE        = 413,
-    NNG_HTTP_STATUS_ENTITY_TOO_LONG          = 414,
-    NNG_HTTP_STATUS_UNSUPPORTED_MEDIA_TYPE   = 415,
-    NNG_HTTP_STATUS_RANGE_NOT_SATISFIABLE    = 416,
-    NNG_HTTP_STATUS_EXPECTATION_FAILED       = 417,
-    NNG_HTTP_STATUS_TEAPOT                   = 418,
-    NNG_HTTP_STATUS_UNPROCESSABLE_ENTITY     = 422,
-    NNG_HTTP_STATUS_LOCKED                   = 423,
-    NNG_HTTP_STATUS_FAILED_DEPENDENCY        = 424,
-    NNG_HTTP_STATUS_UPGRADE_REQUIRED         = 426,
-    NNG_HTTP_STATUS_PRECONDITION_REQUIRED    = 428,
-    NNG_HTTP_STATUS_TOO_MANY_REQUESTS        = 429,
-    NNG_HTTP_STATUS_HEADERS_TOO_LARGE        = 431,
-    NNG_HTTP_STATUS_UNAVAIL_LEGAL_REASONS    = 451,
-    NNG_HTTP_STATUS_INTERNAL_SERVER_ERROR    = 500,
-    NNG_HTTP_STATUS_NOT_IMPLEMENTED          = 501,
-    NNG_HTTP_STATUS_BAD_GATEWAY              = 502,
-    NNG_HTTP_STATUS_SERVICE_UNAVAILABLE      = 503,
-    NNG_HTTP_STATUS_GATEWAY_TIMEOUT          = 504,
-    NNG_HTTP_STATUS_HTTP_VERSION_NOT_SUPP    = 505,
-    NNG_HTTP_STATUS_VARIANT_ALSO_NEGOTIATES  = 506,
-    NNG_HTTP_STATUS_INSUFFICIENT_STORAGE     = 507,
-    NNG_HTTP_STATUS_LOOP_DETECTED            = 508,
-    NNG_HTTP_STATUS_NOT_EXTENDED             = 510,
-    NNG_HTTP_STATUS_NETWORK_AUTH_REQUIRED    = 511,
-}
-
-
-
-

Please see the relevant HTTP RFCs for the semantics and correct -use of these status codes.

-
-
- - - - - -
- - -It is a good idea to also set the "reason phrase" with -nng_http_set_reason(3). This -will help any humans who may have to diagnose any failure. -
-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_ENOTSUP
-
-

No support for HTTP in the library.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_http_res_set_version.3http.html b/man/tip/nng_http_res_set_version.3http.html new file mode 100644 index 00000000..4b647ef0 --- /dev/null +++ b/man/tip/nng_http_res_set_version.3http.html @@ -0,0 +1,614 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_http_res_set_version(3http) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/supplemental/http/http.h>
+
+int nng_http_res_set_version(nng_http_res *res, const char *version);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_http_res_set_version() sets the HTTP protocol version associated with +the response res to version. +The version must be a string containing +a valid HTTP protocol version, such as "HTTP/1.0". +The default value is "HTTP/1.1".

+
+
+

A local copy of the version is made in the response res.

+
+
+ + + + + +
+ + +No validation of the version supplied is performed. +
+
+
+ + + + + +
+ + +The library does not contain support for versions of HTTP other than +"HTTP/1.0" and "HTTP/1.1". +Specifying any other version may result in unspecified behavior. +
+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ENOMEM
+
+

Insufficient memory to perform the operation.

+
+
NNG_ENOTSUP
+
+

No support for HTTP in the library.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_http_res_set_version.html b/man/tip/nng_http_res_set_version.html deleted file mode 100644 index 3f9582be..00000000 --- a/man/tip/nng_http_res_set_version.html +++ /dev/null @@ -1,613 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_http_res_set_version(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-#include <nng/supplemental/http/http.h>
-
-int nng_http_res_set_version(nng_http_res *res, const char *version);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_http_res_set_version() sets the HTTP protocol version associated with -the response res to version. The version must be a string containing -a valid HTTP protocol version, such as "HTTP/1.0". The default value is -"HTTP/1.1".

-
-
-

A local copy of the version is made in the response res.

-
-
- - - - - -
- - -No validation of the version supplied is performed. -
-
-
- - - - - -
- - -The library does not contain support for versions of HTTP other than -"HTTP/1.0" and "HTTP/1.1". Specifying any other version may result in -unspecified behavior. -
-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_ENOMEM
-
-

Insufficient memory to perform the operation.

-
-
NNG_ENOTSUP
-
-

No support for HTTP in the library.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_http_server_add_handler.3http.html b/man/tip/nng_http_server_add_handler.3http.html new file mode 100644 index 00000000..8645bb42 --- /dev/null +++ b/man/tip/nng_http_server_add_handler.3http.html @@ -0,0 +1,600 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_http_server_add_handler(3http) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/supplemental/http/http.h>
+
+int nng_http_server_add_handler(nng_http_server *s, nng_http_handler *h);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_http_server_add_handler() adds the handler h to the server +instance s.

+
+
+

If another handler is already added to the server that would conflict +with handler h, then the operation will fail with NNG_EADDRINUSE.

+
+
+

If a handler is added to a server, and the server is subsequently +deallocated, the handler and any of its resources will also be deallocated.

+
+
+

Handlers that are added to a server may be subsequently removed using the +nng_http_server_del_handler() function.

+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_EADDRINUSE
+
+

Handler conflicts with another handler.

+
+
NNG_ENOMEM
+
+

Insufficient free memory exists.

+
+
NNG_ENOTSUP
+
+

HTTP not supported.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_http_server_add_handler.html b/man/tip/nng_http_server_add_handler.html deleted file mode 100644 index 30de5049..00000000 --- a/man/tip/nng_http_server_add_handler.html +++ /dev/null @@ -1,600 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_http_server_add_handler(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-#include <nng/supplemental/http/http.h>
-
-int nng_http_server_add_handler(nng_http_server *s, nng_http_handler *h);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_http_server_add_handler() adds the handler h to the server -instance s.

-
-
-

If another handler is already added to the server that would conflict -with handler h, then the operation will fail with NNG_EADDRINUSE.

-
-
-

If a handler is added to a server, and the server is subsequently -deallocated, the handler and any of its resources will also be deallocated.

-
-
-

Handlers that are added to a server may be subsequently removed using the -nng_http_server_del_handler(3) function.

-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_EADDRINUSE
-
-

Handler conflicts with another handler.

-
-
NNG_ENOMEM
-
-

Insufficient free memory exists.

-
-
NNG_ENOTSUP
-
-

HTTP not supported.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_http_server_del_handler.3http.html b/man/tip/nng_http_server_del_handler.3http.html new file mode 100644 index 00000000..8b60bbd7 --- /dev/null +++ b/man/tip/nng_http_server_del_handler.3http.html @@ -0,0 +1,587 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_http_server_del_handler(3http) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/supplemental/http/http.h>
+
+int nng_http_server_del_handler(nng_http_server *s, nng_http_handler *h);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_http_server_del_handler() removes the handler h from the server +instance s.

+
+
+

Once a handler has been deleted from a server, it is the responsibility +of the caller to dispose of the handler, or add it to another server instance.

+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ENOENT
+
+

Handler is not registered with server.

+
+
NNG_ENOTSUP
+
+

HTTP not supported.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_http_server_del_handler.html b/man/tip/nng_http_server_del_handler.html deleted file mode 100644 index efa3ac70..00000000 --- a/man/tip/nng_http_server_del_handler.html +++ /dev/null @@ -1,587 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_http_server_del_handler(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-#include <nng/supplemental/http/http.h>
-
-int nng_http_server_del_hanlder(nng_http_server *s, nng_http_handler *h);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_http_server_del_handler() removes the handler h from the server -instance s.

-
-
-

Once a handler has been deleted from a server, it is the responsibility -of the caller to dispose of the handler, or add it to another server instance.

-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_ENOENT
-
-

Handler is not registered with server.

-
-
NNG_ENOTSUP
-
-

HTTP not supported.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_http_server_get_tls.3http.html b/man/tip/nng_http_server_get_tls.3http.html new file mode 100644 index 00000000..e03108c1 --- /dev/null +++ b/man/tip/nng_http_server_get_tls.3http.html @@ -0,0 +1,589 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_http_server_get_tls(3http) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/supplemental/http/http.h>
+
+int nng_http_server_get_tls(nng_http_server *s, nng_tls_config **cfgp);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_http_server_get_tls() obtains the TLS configuration of server s and +saves a pointer to it in the address referenced by cfgp.

+
+
+

The configuration will be NULL if the HTTP server instance is not enabled +to use HTTPS.

+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ENOMEM
+
+

Insufficient free memory exists.

+
+
NNG_ENOTSUP
+
+

Either HTTP or TLS not supported.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_http_server_get_tls.html b/man/tip/nng_http_server_get_tls.html deleted file mode 100644 index a5382430..00000000 --- a/man/tip/nng_http_server_get_tls.html +++ /dev/null @@ -1,589 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_http_server_get_tls(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-#include <nng/supplemental/http/http.h>
-
-int nng_http_server_get_tls(nng_http_server *s, nng_tls_config **cfgp);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_http_server_get_tls() obtains the TLS configuration of server s and -saves a pointer to it in the address referenced by cfgp.

-
-
-

The configuration will be NULL if the HTTP server instance is not enabled -to use HTTPS.

-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_ENOMEM
-
-

Insufficient free memory exists.

-
-
NNG_ENOTSUP
-
-

Either HTTP or TLS not supported.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_http_server_hold.3http.html b/man/tip/nng_http_server_hold.3http.html new file mode 100644 index 00000000..ca938aab --- /dev/null +++ b/man/tip/nng_http_server_hold.3http.html @@ -0,0 +1,614 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_http_server_hold(3http) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/supplemental/http/http.h>
+
+int nng_http_server_hold(nng_http_server **serverp, const nng_url *url);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_http_server_hold() acquires an instance of an HTTP server suitable +for use in serving the URL identified by url, and stores a pointer to it +at the location pointed to by serverp.

+
+
+

This function first looks to see if an existing HTTP server instance exists, +that is suitable for this. +If so, it increments the reference count on it and uses that. +Otherwise, it will attempt to create a new server instance +with an initial reference count of one (1).

+
+
+

The server instance is not started, and can have additional configuration +applied to it before it is later started with +nng_http_server_start().

+
+
+ + + + + +
+ + +The URL matching logic in determining servers is unable to distinguish +between different aliases for the same local IP address. +This may create problems when using URLs for virtual hosting. +It is recommended to use canonical IP addresses or names in the +url to avoid confusion. +
+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ENOMEM
+
+

Insufficient free memory exists.

+
+
NNG_ENOTSUP
+
+

HTTP not supported.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_http_server_hold.html b/man/tip/nng_http_server_hold.html deleted file mode 100644 index 24c88a73..00000000 --- a/man/tip/nng_http_server_hold.html +++ /dev/null @@ -1,612 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_http_server_hold(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-#include <nng/supplemental/http/http.h>
-
-int nng_http_server_hold(nng_http_server **serverp, const nng_url *url);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_http_server_hold() acquires an instance of an HTTP server suitable -for use in serving the URL identified by url, and stores a pointer to it -at the location pointed to by serverp.

-
-
-

This function first looks to see if an existing HTTP server instance exists, -that is suitable for this. If so, it increments the reference count on it -and uses that. Otherwise, it will attempt to create a new server instance -with an initial reference count of one (1).

-
-
-

The server instance is not started, and can have additional configuration -applied to it before it is later started with -nng_http_server_start(3).

-
-
- - - - - -
- - -The URL matching logic in determining servers is unable to distinguish -between different aliases for the same local IP address. This may create -problems when using URLs for virtual hosting. It is recommended to use -canonical IP addresses or names in the url to avoid confusion. -
-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_ENOMEM
-
-

Insufficient free memory exists.

-
-
NNG_ENOTSUP
-
-

HTTP not supported.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_http_server_release.3http.html b/man/tip/nng_http_server_release.3http.html new file mode 100644 index 00000000..8df584ac --- /dev/null +++ b/man/tip/nng_http_server_release.3http.html @@ -0,0 +1,594 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_http_server_release(3http) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/supplemental/http/http.h>
+
+void nng_http_server_release(nng_http_server *server);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_http_server_release() releases an instance of an HTTP server +that was previously held with +nng_http_server_hold().

+
+
+

This effectively drops the reference count on the server instance. When +the reference count drops to zero, then the server and all resources +associated with it (e.g. HTTP handlers, connections, etc.) are deallocated. +(If the server is "running" when this occurs, then the server is stopped.)

+
+
+ + + + + +
+ + +It is an error to release an instance of a server that has +not previously been held, or to attempt to release an instance more +times than it has been held. +
+
+
+
+
+

RETURN VALUES

+
+
+

None.

+
+
+
+
+

ERRORS

+
+
+

None.

+
+
+
+ +
+ + diff --git a/man/tip/nng_http_server_release.html b/man/tip/nng_http_server_release.html deleted file mode 100644 index f666c9e3..00000000 --- a/man/tip/nng_http_server_release.html +++ /dev/null @@ -1,594 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_http_server_release(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-#include <nng/supplemental/http/http.h>
-
-void nng_http_server_release(nng_http_server *server);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_http_server_release() releases an instance of an HTTP server -that was previously held with -nng_http_server_hold(3).

-
-
-

This effectively drops the reference count on the server instance. When -the reference count drops to zero, then the server and all resources -associated with it (e.g. HTTP handlers, connections, etc.) are deallocated. -(If the server is "running" when this occurs, then the server is stopped.)

-
-
- - - - - -
- - -It is an error to release an instance of a server that has -not previously been held, or to attempt to release an instance more -times than it has been held. -
-
-
-
-
-

RETURN VALUES

-
-
-

None.

-
-
-
-
-

ERRORS

-
-
-

None.

-
-
-
- -
- - diff --git a/man/tip/nng_http_server_set_tls.3http.html b/man/tip/nng_http_server_set_tls.3http.html new file mode 100644 index 00000000..57ebabdb --- /dev/null +++ b/man/tip/nng_http_server_set_tls.3http.html @@ -0,0 +1,623 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_http_server_set_tls(3http) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/supplemental/http/http.h>
+
+int nng_http_server_set_tls(nng_http_server *s, nng_tls_config *cfg);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_http_server_set_tls() sets the TLS configuration of server s to +cfg.

+
+
+

This change overwrites any previous TLS configuration.

+
+
+ + + + + +
+ + +This also invalidates any previously obtained values from +nng_http_server_get_tls(). +
+
+
+

If the server is already running (i.e. it has been started with +nng_http_server_start()) then this will +fail with NNG_EBUSY.

+
+
+ + + + + +
+ + +Generally, the cfg must have a configured private key, set with +nng_tls_config_own_cert() or similar. +
+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_EBUSY
+
+

Server instance is running.

+
+
NNG_ENOMEM
+
+

Insufficient free memory exists.

+
+
NNG_ENOTSUP
+
+

Either HTTP or TLS not supported.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_http_server_set_tls.html b/man/tip/nng_http_server_set_tls.html deleted file mode 100644 index 5abbc56f..00000000 --- a/man/tip/nng_http_server_set_tls.html +++ /dev/null @@ -1,623 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_http_server_set_tls(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-#include <nng/supplemental/http/http.h>
-
-int nng_http_server_set_tls(nng_http_server *s, nng_tls_config *cfg);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_http_server_set_tls() sets the TLS configuration of server s to -cfg.

-
-
-

This change overwrites any previous TLS configuration.

-
-
- - - - - -
- - -This also invalidates any previously obtained values from -nng_http_server_get_tls(3). -
-
-
-

If the server is already running (i.e. it has been started with -nng_http_server_start(3)) then this will -fail with NNG_EBUSY.

-
-
- - - - - -
- - -Generally, the cfg must have a configured private key, set with -nng_tls_config_own_cert(3) or similar. -
-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_EBUSY
-
-

Server instance is running.

-
-
NNG_ENOMEM
-
-

Insufficient free memory exists.

-
-
NNG_ENOTSUP
-
-

Either HTTP or TLS not supported.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_http_server_start.3http.html b/man/tip/nng_http_server_start.3http.html new file mode 100644 index 00000000..461405d5 --- /dev/null +++ b/man/tip/nng_http_server_start.3http.html @@ -0,0 +1,594 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_http_server_start(3http) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/supplemental/http/http.h>
+
+int nng_http_server_start(nng_http_server *server);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_http_server_start() starts the HTTP server instance server. +This causes it to bind to the appropriate TCP port, and start accepting +connections and handling HTTP requests.

+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_EADDRINUSE
+
+

The TCP port is unavaialble.

+
+
NNG_EADDRINVAL
+
+

The server is configured with an invalid address.

+
+
NNG_ENOMEM
+
+

Insufficient free memory exists.

+
+
NNG_ENOTSUP
+
+

HTTP not supported.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_http_server_start.html b/man/tip/nng_http_server_start.html deleted file mode 100644 index da14065f..00000000 --- a/man/tip/nng_http_server_start.html +++ /dev/null @@ -1,594 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_http_server_start(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-#include <nng/supplemental/http/http.h>
-
-int nng_http_server_start(nng_http_server *server);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_http_server_start() starts the HTTP server instance server. -This causes it to bind to the appropriate TCP port, and start accepting -connections and handling HTTP requests.

-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_EADDRINUSE
-
-

The TCP port is unavaialble.

-
-
NNG_EADDRINVAL
-
-

The server is configured with an invalid address.

-
-
NNG_ENOMEM
-
-

Insufficient free memory exists.

-
-
NNG_ENOTSUP
-
-

HTTP not supported.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_http_server_stop.3http.html b/man/tip/nng_http_server_stop.3http.html new file mode 100644 index 00000000..ea4ed2f6 --- /dev/null +++ b/man/tip/nng_http_server_stop.3http.html @@ -0,0 +1,574 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_http_server_stop(3http) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/supplemental/http/http.h>
+
+void nng_http_server_stop(nng_http_server *server);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_http_server_stop() stops the HTTP server instance server. +This will cause it to close any underlying TCP sockets, and to terminate +any HTTP connections associated with it.

+
+
+
+
+

RETURN VALUES

+
+
+

None.

+
+
+
+
+

ERRORS

+
+
+

None.

+
+
+
+ +
+ + diff --git a/man/tip/nng_http_server_stop.html b/man/tip/nng_http_server_stop.html deleted file mode 100644 index 5f81bd08..00000000 --- a/man/tip/nng_http_server_stop.html +++ /dev/null @@ -1,574 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_http_server_stop(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-#include <nng/supplemental/http/http.h>
-
-void nng_http_server_stop(nng_http_server *server);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_http_server_stop() stops the HTTP server instance server. -This will cause it to close any underlying TCP sockets, and to terminate -any HTTP connections associated with it.

-
-
-
-
-

RETURN VALUES

-
-
-

None.

-
-
-
-
-

ERRORS

-
-
-

None.

-
-
-
- -
- - diff --git a/man/tip/nng_inproc.7.html b/man/tip/nng_inproc.7.html new file mode 100644 index 00000000..8c62f609 --- /dev/null +++ b/man/tip/nng_inproc.7.html @@ -0,0 +1,607 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_inproc(7) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/transport/inproc/inproc.h>
+
+int nng_inproc_register(void);
+
+
+
+
+
+

DESCRIPTION

+
+
+

+ +The inproc transport provides communication support between +nng sockets within the same process. +This may be used as an alternative +to slower transports when data must be moved within the same process.

+
+
+

This transport tries hard to avoid copying data, and thus is very +light-weight.

+
+
+

Registration

+
+

The inproc transport is generally built-in to the nng core, so +no extra steps to use it should be necessary.

+
+
+
+

URI Format

+
+

+This transport uses URIs using the scheme inproc://, followed by +an arbitrary string of text, terminated by a NUL byte.

+
+
+

Multiple URIs can be used within the +same application, and they will not interfere with one another.

+
+
+

Two applications may also use the same URI without interfering with each +other, and they will be unable to communicate with each other using +that URI.

+
+
+
+

Socket Address

+
+

When using an nng_sockaddr structure, +the actual structure is of type +nng_sockaddr_inproc.

+
+
+
+

Transport Options

+
+

The inproc transport has no special options.

+
+
+
+
+ +
+ + diff --git a/man/tip/nng_inproc.html b/man/tip/nng_inproc.html deleted file mode 100644 index a30be4c3..00000000 --- a/man/tip/nng_inproc.html +++ /dev/null @@ -1,632 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_inproc(7) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/transport/inproc/inproc.h>
-
-int nng_inproc_register(void);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_inproc transport provides communication support between -nng sockets within the same process. This may be used as an alternative -to slower transports when data must be moved within the same process.

-
-
-

This transport tries hard to avoid copying data, and thus is very -light-weight.

-
-
-

Registration

-
-

The inproc transport is generally built-in to the nng core, so -no extra steps to use it should be necessary.

-
-
-
-

URI Format

-
-

This transport uses URIs using the scheme inproc://, followed by -an arbitrary string of text, terminated by a NUL byte.

-
-
-

Multiple URIs can be used within the -same application, and they will not interfere with one another.

-
-
-

Two applications may also use the same URI without interfering with each -other, and they will be unable to communicate with each other using -that URI.

-
-
-
-

Socket Address

-
-

When using an nng_sockaddr structure, the actual structure is of type -struct nng_sockaddr_inproc. This type has the following definition:

-
-
-
-
#define NNG_AF_INPROC 1 (1)
-#define NNG_MAXADDRLEN 128
-
-typedef nng_sockaddr_inproc {
-    (2)
-    uint16_t sa_family;                  // must be NNG_AF_INPROC
-    char     sa_path[NNG_MAXADDRLEN];    // arbitrary "path"
-    //
-}
-
-
-
- - - - - - - - - -
1The values of these macros may change, so applications -should avoid depending upon their values and instead use them symbolically.
2Other members may be present, but only those listed here -are suitable for application use.
-
-
-

The sa_family member will have the value NNG_AF_INPROC. -The sa_path member is an ASCIIZ string, and may contain any characters, -terminated by a NUL byte.

-
-
-
-

Transport Options

-
-

The inproc transport has no special options.

-
-
-
-
-
-

SEE ALSO

-
-
-

nng(7)

-
-
-
-
- - diff --git a/man/tip/nng_inproc_register.3.html b/man/tip/nng_inproc_register.3.html new file mode 100644 index 00000000..c55f4183 --- /dev/null +++ b/man/tip/nng_inproc_register.3.html @@ -0,0 +1,580 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_inproc_register(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/transport/inproc/inproc.h>
+
+int nng_inproc_register(void);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_inproc_register() function registers the +inproc transport for use.

+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ENOMEM
+
+

Insufficient memory is available.

+
+
NNG_ENOTSUP
+
+

The transport is not supported.

+
+
+
+
+
+
+

SEE ALSO

+ +
+
+ + diff --git a/man/tip/nng_iov.5.html b/man/tip/nng_iov.5.html new file mode 100644 index 00000000..3d279c4d --- /dev/null +++ b/man/tip/nng_iov.5.html @@ -0,0 +1,582 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_sockaddr_in(5) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+typedef struct {
+    void * iov_buf;
+    size_t iov_len;
+} nng_iov;
+
+
+
+
+
+

DESCRIPTION

+
+
+

An nng_iov structure represents a single element in a scatter/gather +array. +Some operations can use arrays of these to access different regions of +memory in a single operation. +For example, it may be useful to send a message with header data from +one part of memory, and a user payload from another.

+
+
+

The operations that do this typically store an array of these in +an nng_aio structure using the +nng_aio_set_iov() function.

+
+
+

The following structure members are present:

+
+
+
+
iov_buf
+
+

This is a pointer to the first byte within the memory being +referenced by this scatter/gather element.

+
+
iov_len
+
+

This is the size in bytes of this scatter/gather element.

+
+
+
+
+
+
+

SEE ALSO

+ +
+
+ + diff --git a/man/tip/nng_ipc.7.html b/man/tip/nng_ipc.7.html new file mode 100644 index 00000000..46a3fecb --- /dev/null +++ b/man/tip/nng_ipc.7.html @@ -0,0 +1,636 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_ipc(7) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/transport/ipc/ipc.h>
+
+int nng_ipc_register(void);
+
+
+
+
+
+

DESCRIPTION

+
+
+

+The ipc transport provides communication support between +nng sockets within different processes on the same host. +For POSIX platforms, this is implemented using UNIX domain sockets. +For Windows, this is implemented using Windows Named Pipes. +Other platforms may have different implementation strategies.

+
+
+

Registration

+
+

The ipc transport is generally built-in to the nng core, so +no extra steps to use it should be necessary.

+
+
+
+

URI Format

+
+

+This transport uses URIs using the scheme ipc://, followed by +a an absolute path name in the file system where the socket or named pipe +should be created.

+
+
+ + + + + +
+ + +On Windows, all names are prefixed by \.\pipe\ and do not +occupy the normal file system. +On POSIX platforms, the path is taken literally, +and is relative to the root directory. +
+
+
+ + + + + +
+ + +If compatibility with legacy nanomsg applications is required, +then pathnames must not be longer than 122 bytes, including the final +NUL byte. +This is because legacy versions of nanomsg cannot express URLs +longer than 128 bytes, including the ipc:// prefix. +
+
+
+
+

Socket Address

+
+

When using an nng_sockaddr structure, +the actual structure is of type nng_sockaddr_ipc.

+
+
+
+

Transport Options

+
+

The ipc transport has no special options.

+
+
+ + + + + +
+ + +Options for security attributes and credentials are planned. +
+
+
+
+
+
+

SEE ALSO

+ +
+
+ + diff --git a/man/tip/nng_ipc.html b/man/tip/nng_ipc.html deleted file mode 100644 index 877927c4..00000000 --- a/man/tip/nng_ipc.html +++ /dev/null @@ -1,643 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_ipc(7) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/transport/ipc/ipc.h>
-
-int nng_ipc_register(void);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_ipc transport provides communication support between -nng sockets within different processes on the same host. For POSIX -platforms, this is implemented using UNIX domain sockets. For Windows, -this is implemented using Windows Named Pipes. Other platforms may -have different implementation strategies.

-
-
-

Registration

-
-

The ipc transport is generally built-in to the nng core, so -no extra steps to use it should be necessary.

-
-
-
-

URI Format

-
-

This transport uses URIs using the scheme ipc://, followed by -a an absolute path name in the file system where the socket or named pipe -should be created.

-
-
- - - - - -
- - -On Windows, all names are prefixed by \.\pipe\ and do not -occupy the normal file system. On POSIX platforms, the path is -taken literally, and is relative to the root directory. -
-
-
-
-

Socket Address

-
-

When using an nng_sockaddr structure, the actual structure is of type -nng_sockaddr_ipc. This is a struct type with the following definition:

-
-
-
-
#define NNG_AF_IPC 2 (1)
-#define NNG_MAXADDRLEN 128
-
-typedef struct {
-    // ... (2)
-    uint16_t sa_family;                 // must be NNG_AF_IPC
-    char     sa_path[NNG_MAXADDRLEN];   // arbitrary "path"
-    // ...
-} nng_sockaddr_ipc;
-
-
-
- - - - - - - - - -
1The values of these macros may change, so applications -should avoid depending upon their values and instead use them symbolically.
2Other members may be present, but only those listed here -are suitable for application use.
-
-
-

The sa_family member will have the value NNG_AF_IPC. -The sa_path member is an ASCIIZ string, and may contain any legal -path name (platform-dependent), terminated by a NUL byte.

-
-
-
-

Transport Options

-
-

The ipc transport has no special -options.[1]

-
-
-
-
-
-

SEE ALSO

-
-
-

nng(7)

-
-
-
-
-
-
-
-1. Options for security attributes and credentials are planned. -
-
- - diff --git a/man/tip/nng_ipc_register.3.html b/man/tip/nng_ipc_register.3.html new file mode 100644 index 00000000..aa0346e2 --- /dev/null +++ b/man/tip/nng_ipc_register.3.html @@ -0,0 +1,580 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_ipc_register(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/transport/ipc/ipc.h>
+
+int nng_ipc_register(void);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_ipc_register() function registers the +ipc transport for use.

+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ENOMEM
+
+

Insufficient memory is available.

+
+
NNG_ENOTSUP
+
+

The transport is not supported.

+
+
+
+
+
+
+

SEE ALSO

+
+ +
+
+
+ + diff --git a/man/tip/nng_listen.3.html b/man/tip/nng_listen.3.html new file mode 100644 index 00000000..3052a7e1 --- /dev/null +++ b/man/tip/nng_listen.3.html @@ -0,0 +1,656 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_listen(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+int nng_listen(nng_socket s, const char *url, nng_listener *lp, int flags);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_listen() function creates a newly initialized +nng_listener object, associated with socket s, +and configured to listen at the address specified by url, and starts it. +If the value of lp is not NULL, then +the newly created listener is stored at the address indicated by lp.

+
+
+

Listeners are used to accept connections initiated by remote dialers. +An incoming connection generally results in and +nng_pipe object being created and attached to the socket s. +Unlike dialers, listeners generally can create many +pipes, which may be open concurrently.

+
+
+ + + + + +
+ + +While it is convenient to think of listeners as “servers`”, the +relationship between the listener or dialer is orthogonal to any server or +client status that might be associated with a given protocol. +For example, a req +socket might have associated dialers, but might also have associated listeners. +It may even have some of each at the same time! +
+
+
+

Normally, the act of “binding`” to the address indicated by url is done +synchronously, including any necessary name resolution. +As a result, a failure, such as if the address is already in use, will be +returned immediately. +However, if the special value NNG_FLAG_NONBLOCK is supplied in flags, +then this is done asynchronously; furthermore any +failure to bind will be periodically reattempted in the background.

+
+
+ + + + + +
+ + +While NNG_FLAG_NONBLOCK can help an application be more resilient, +it also generally makes diagnosing failures somewhat more difficult. +
+
+
+

Because the listener is started immediately, it is generally not possible +to apply extra configuration; if that is needed applications should consider +using nng_listener_create() and +nng_listener_start() instead.

+
+
+

The created listener will continue to accept new connections, associating +their pipes with the socket, until either it or the socket s is closed.

+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_EADDRINUSE
+
+

The address specified by url is already in use.

+
+
NNG_EADDRINVAL
+
+

An invalid url was specified.

+
+
NNG_ECLOSED
+
+

The socket s is not open.

+
+
NNG_EINVAL
+
+

An invalid set of flags was specified.

+
+
NNG_ENOMEM
+
+

Insufficient memory is available.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_listen.html b/man/tip/nng_listen.html deleted file mode 100644 index 4d6e3c51..00000000 --- a/man/tip/nng_listen.html +++ /dev/null @@ -1,651 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_listen(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-
-int nng_listen(nng_socket s, const char *url, nng_listener *lp, int flags);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_listener() function creates a newly initialized -listener, associated with socket s, and configured to listen at the -address specified by url. If the value of lp is not NULL, then -the newly created listener is stored at the address indicated by lp.

-
-
-

Listeners are used to accept connections initiated by remote dialers. An -incoming connection generally results in a pipe being created and attached -to the socket s. Unlike dialers, listeners generally can create many -pipes, which may be open concurrently.

-
-
- - - - - -
- - -While it is convenient to think of listeners as "servers", the relationship -between the listener or dialer is orthogonal to any server or client status -that might be associated with a given protocol. For example, a REQ -socket might have associated dialers, but might also have associated listeners. -It may even have some of each at the same time! -
-
-
-

Normally, the act of "binding" to the address indicated by url is done -synchronously, including any necessary name resolution. As a result, -a failure, such as if the address is already in use, will be returned -immediately. However, if the special value NNG_FLAG_NONBLOCK is -supplied in flags, then this is done asynchronously; furthermore any -failure to bind will be periodically reattempted in the background.

-
-
- - - - - -
- - -While NNG_FLAG_NONBLOCK can help an application be more resilient, -it also generally makes diagnosing failures somewhat more difficult. -
-
-
-

Because the listener is started immediately, it is generally not possible -to apply extra configuration; if that is needed applications should consider -using nng_listener_create(3) and -nng_listener_start(3) instead.

-
-
-

The created listener will continue to accept new connections, associating -their pipes with the socket, until either it or the socket s is closed.

-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_EADDRINUSE
-
-

The address specified by url is already in use.

-
-
NNG_EADDRINVAL
-
-

An invalid url was specified.

-
-
NNG_ECLOSED
-
-

The socket s is not open.

-
-
NNG_EINVAL
-
-

An invalid set of flags was specified.

-
-
NNG_ENOMEM
-
-

Insufficient memory is available.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_listener.5.html b/man/tip/nng_listener.5.html new file mode 100644 index 00000000..8ebfcfb6 --- /dev/null +++ b/man/tip/nng_listener.5.html @@ -0,0 +1,606 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_listener(5) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+typedef uint32_t nng_listener;
+
+
+
+
+
+

DESCRIPTION

+
+
+

+An nng_listener is a handle to a “listener” object, which is responsible for +creating nng_pipe objects by accepting incoming connections. +A given listener object may create many pipes at the same time, much like an HTTP +server can have many connections to multiple clients simultaneously.

+
+
+

Listener objects are created by the +nng_listener_create() +or nng_listen() functions, and are always “owned” +by a single nng_socket.

+
+
+ + + + + +
+ + +A given nng_socket may have multiple listener +objects, multiple dialer objects, or even some +of both. +
+
+
+ + + + + +
+ + +The client/server relationship described by dialer/listener is +completely orthogonal to any similar relationship in the protocols. +For example, a rep socket may use a dialer +to connect to a listener on an req socket. +This orthogonality can lead to innovative solutions to otherwise +challenging communications problems. +
+
+
+

Listener objects may be destroyed by the +nng_listener_close() function. +They are also closed when their “owning” socket is closed.

+
+
+
+ +
+ + diff --git a/man/tip/nng_listener_close.3.html b/man/tip/nng_listener_close.3.html new file mode 100644 index 00000000..14a740c3 --- /dev/null +++ b/man/tip/nng_listener_close.3.html @@ -0,0 +1,591 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_listener_close(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+int nng_listener_close(nng_listener l);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_listener_close() function closes the listener l. +This also closes any pipes that have been created by the listener.

+
+
+

Once this function returns, the listener l and any of its resources +are deallocated. +Therefore it is an error to attempt to access l +after this function has returned. +(Attempts to do so will result in NNG_ECLOSED errors.)

+
+
+

Listeners are implicitly closed when the socket they are associated with +is closed.

+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ECLOSED
+
+

Parameter l does not refer to an open listener.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_listener_close.html b/man/tip/nng_listener_close.html deleted file mode 100644 index bb4b4f2d..00000000 --- a/man/tip/nng_listener_close.html +++ /dev/null @@ -1,589 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_listener_close(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-
-int nng_listener_close(nng_listener l);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_listener_close() function closes the listener l. -This also closes any pipes that have been created by the listener.

-
-
-

Once this function returns, the listener l and any of its resources -are deallocated. Therefore it is an error to attempt to access l -after this function has returned. (Attempts to do so will result in -NNG_ECLOSED errors.)

-
-
-

Listeners are implicitly closed when the socket they are associated with -is closed.

-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_ECLOSED
-
-

Parameter l does not refer to an open listener.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_listener_create.3.html b/man/tip/nng_listener_create.3.html new file mode 100644 index 00000000..b076ed33 --- /dev/null +++ b/man/tip/nng_listener_create.3.html @@ -0,0 +1,639 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_listener_create(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+int nng_listener_create(nng_listener *listenerp, nng_socket s, const char *url);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_listener_create() function creates a newly initialized +nng_listener object, associated with socket s, +and configured to listen at the address specified by url, +and stores a pointer to at the location referenced by listenerp.

+
+
+

Listeners are used to accept connections initiated by remote dialers. +An incoming connection generally results in a pipe being created and attached +to the socket s. +Unlike dialers, listeners generally can create many pipes, +which may be open concurrently.

+
+
+ + + + + +
+ + +While it is convenient to think of listeners as “servers”, the +relationship between the listener or dialer is orthogonal to any server or +client status that might be associated with a given protocol. +For example, a req socket might have associated dialers, +but might also have associated listeners. +It may even have some of each at the same time! +
+
+
+

The listener is not started, but may be further configured with +the nng_listener_setopt() family of +functions.

+
+
+

Once it is fully configured, the listener may be started using the +nng_listener_start() function.

+
+
+ + + + + +
+ + +If no specific configuration is required, consider using the +simpler nng_listen() function instead. +
+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_EADDRINVAL
+
+

An invalid url was specified.

+
+
NNG_ECLOSED
+
+

The socket s is not open.

+
+
NNG_ENOMEM
+
+

Insufficient memory is available.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_listener_create.html b/man/tip/nng_listener_create.html deleted file mode 100644 index c64156d7..00000000 --- a/man/tip/nng_listener_create.html +++ /dev/null @@ -1,636 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_listener_create(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-
-int nng_listener_create(nng_listener *listenerp, nng_socket s, const char *url);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_listener_create() function creates a newly initialized -listener, associated with socket s, and configured to listen at the -address specified by url, and stores a pointer to at the location -referenced by listenerp.

-
-
-

Listeners are used to accept connections initiated by remote dialers. An -incoming connection generally results in a pipe being created and attached -to the socket s. Unlike dialers, listeners generally can create many -pipes, which may be open concurrently.

-
-
- - - - - -
- - -While it is convenient to think of listeners as "servers", the relationship -between the listener or dialer is orthogonal to any server or client status -that might be associated with a given protocol. For example, a REQ -socket might have associated dialers, but might also have associated listeners. -It may even have some of each at the same time! -
-
-
-

The listener is not started, but may be further configured with -the nng_listener_setopt(3) family of -functions.

-
-
-

Once it is fully configured, the listener may be started using the -nng_listener_start(3) function.

-
-
- - - - - -
- - -If no specific configuration is required, consider using the -simpler nng_listen(3) function instead. -
-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_EADDRINVAL
-
-

An invalid url was specified.

-
-
NNG_ECLOSED
-
-

The socket s is not open.

-
-
NNG_ENOMEM
-
-

Insufficient memory is available.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_listener_getopt.3.html b/man/tip/nng_listener_getopt.3.html new file mode 100644 index 00000000..9c9cc682 --- /dev/null +++ b/man/tip/nng_listener_getopt.3.html @@ -0,0 +1,664 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_listener_getopt(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+int nng_listener_getopt(nng_listener l, const char *opt, void *val,
+    size_t *valszp);
+
+int nng_listener_getopt_int(nng_listener l, const char *opt, int *ivalp);
+
+int nng_listener_getopt_ms(nng_listener l, const char *opt, nng_duration *durp);
+
+int nng_listener_getopt_ptr(nng_listener l, const char *opt, void **ptr);
+
+int nng_listener_setopt_size(nng_listener l, const char *opt, size_t *zp);
+
+int nng_listener_getopt_uint64(nng_listener l, const char *opt, uint64_t *u64p);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_listener_getopt() functions are used to retrieve option values for +the listener l. +The actual options that may be retrieved in this way +vary, and many are documented in nng_options(5). +Additionally some transport-specific options are documented with the +transports themselves.

+
+
+

In all of these forms, the option opt is retrieved from the listener l.

+
+
+

The details of the type, size, and semantics of the option will depend +on the actual option, and will be documented with the option itself.

+
+
+

The first form of this function, nng_listener_getopt(), can be used to +retrieve the value of any option. It is untyped. The caller must store +a pointer to a buffer to receive the value in val, and the size of the +buffer shall be stored at the location referenced by valszp.

+
+
+

When the function returns, the actual size of the data copied (or that +would have been copied if sufficient space were present) is stored at +the location referened by valszp. If the caller’s buffer is not large +enough to hold the entire object, then the copy is truncated. Therefore +the caller should validate that the returned size in valszp does not +exceed the original buffer size to check for truncation.

+
+
+

It is acceptable to pass NULL for val if the value in valszp is zero. +This can be used to determine the size of the buffer needed to receive +the object.

+
+
+

Generally, it will be easier to use one of the typed forms instead. Note +however that no validation that the option is actually of the associated +type is performed, so the caller must take care to use the correct typed +form.

+
+
+

The second form, nng_listener_getopt_int(), +is for options which take an integer (or boolean). The value will +be stored at ivalp. For booleans the value will be eiher 0 (false) or 1 (true).

+
+
+

The third form, nng_listener_getopt_ms(), is used to retrieve time durations +(such as timeouts), stored in durp as a number of milliseconds. +(The special value NNG_DUR_INFINITE means an infinite amount of time, and +the special value NNG_DUR_DEFAULT means a context-specific default.)

+
+
+

The fourth form, nng_listener_getopt_ptr(), is used to retrieve a +pointer ptr to structured data. The data referenced by ptr is +generally managed using other functions. +Note that this form is somewhat special in that the object is generally +not copied, but instead the pointer to the object is copied.

+
+
+

The fifth form, nng_listener_getopt_size(), is used to retrieve a size +into the pointer zp, typically for buffer sizes, message maximum sizes, and +similar options.

+
+
+

The sixth form, nng_listener_getopt_uint64(), is used to retrieve a +64-bit unsigned value into the value referenced by u64p. +This is typically used for options +related to identifiers, network numbers, and similar.

+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ECLOSED
+
+

Parameter l does not refer to an open listener.

+
+
NNG_ENOTSUP
+
+

The option opt is not supported.

+
+
NNG_EWRITEONLY
+
+

The option opt is write-only.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_listener_getopt.html b/man/tip/nng_listener_getopt.html deleted file mode 100644 index 1e7e25e9..00000000 --- a/man/tip/nng_listener_getopt.html +++ /dev/null @@ -1,658 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_listener_getopt(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-
-int nng_listener_getopt(nng_listener l, const char *opt, void *val,
-    size_t *valszp);
-int nng_listener_getopt_int(nng_listener l, const char *opt, int *ivalp);
-int nng_listener_getopt_ms(nng_listener l, const char *opt, nng_duration *durp);
-int nng_listener_getopt_ptr(nng_listener l, const char *opt, void **ptr);
-int nng_listener_setopt_size(nng_listener l, const char *opt, size_t *zp);
-int nng_listener_getopt_uint64(nng_listener l, const char *opt, uint64_t *u64p);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_listener_getopt() functions are used to retrieve option values for -the listener l. The actual options that may be retrieved in this way -vary, and are documented in the nng_getopt(3) manual. -Additionally some transport-specific options are documented with the -transports themselves.

-
-
-

In all of these forms, the option opt is retrieved from the listener l.

-
-
-

The details of the type, size, and semantics of the option will depend -on the actual option, and will be documented with the option itself.

-
-
-

The first form of this function, nng_listener_getopt(), can be used to -retrieve the value of any option. It is untyped. The caller must store -a pointer to a buffer to receive the value in val, and the size of the -buffer shall be stored at the location referenced by valszp.

-
-
-

When the function returns, the actual size of the data copied (or that -would have been copied if sufficient space were present) is stored at -the location referened by valszp. If the caller’s buffer is not large -enough to hold the entire object, then the copy is truncated. Therefore -the caller should validate that the returned size in valszp does not -exceed the original buffer size to check for truncation.

-
-
-

It is acceptable to pass NULL for val if the value in valszp is zero. -This can be used to determine the size of the buffer needed to receive -the object.

-
-
-

Generally, it will be easier to use one of the typed forms instead. Note -however that no validation that the option is actually of the associated -type is performed, so the caller must take care to use the correct typed -form.

-
-
-

The second form, nng_listener_getopt_int(), -is for options which take an integer (or boolean). The value will -be stored at ivalp. For booleans the value will be eiher 0 (false) or 1 (true).

-
-
-

The third form, nng_listener_getopt_ms(), is used to retrieve time durations -(such as timeouts), stored in durp as a number of milliseconds. -(The special value NNG_DUR_INFINITE means an infinite amount of time, and -the special value NNG_DUR_DEFAULT means a context-specific default.)

-
-
-

The fourth form, nng_listener_getopt_ptr(), is used to retrieve a -pointer ptr to structured data. The data referenced by ptr is -generally managed using other functions. -Note that this form is somewhat special in that the object is generally -not copied, but instead the pointer to the object is copied.

-
-
-

The fifth form, nng_listener_getopt_size(), is used to retrieve a size -into the pointer zp, typically for buffer sizes, message maximum sizes, and -similar options.

-
-
-

The sixth form, nng_listener_getopt_uint64(), is used to retrieve a -64-bit unsigned value into the value referenced by u64p. -This is typically used for options -related to identifiers, network numbers, and similar.

-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_ECLOSED
-
-

Parameter l does not refer to an open listener.

-
-
NNG_ENOTSUP
-
-

The option opt is not supported.

-
-
NNG_EWRITEONLY
-
-

The option opt is write-only.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_listener_setopt.3.html b/man/tip/nng_listener_setopt.3.html new file mode 100644 index 00000000..707e6c28 --- /dev/null +++ b/man/tip/nng_listener_setopt.3.html @@ -0,0 +1,679 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_listener_setopt(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+int nng_listener_setopt(nng_listener l, const char *opt, const void *val,
+    size_t valsz);
+
+int nng_listener_setopt_int(nng_listener l, const char *opt, int ival);
+
+int nng_listener_setopt_ms(nng_listener l, const char *opt, nng_duration dur);
+
+int nng_listener_setopt_ptr(nng_listener l, const char *opt, void *ptr);
+
+int nng_listener_setopt_size(nng_listener l, const char *opt, size_t z);
+
+int nng_listener_setopt_string(nng_listener l, const char *opt, const char *str);
+
+int nng_listener_setopt_uint64(nng_listener l, const char *opt, uint64_t u64);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_listener_setopt() functions are used to configure options for +the listener l. The actual options that may be configured in this way +vary, and many are documented in nng_options(5). +Additionally some transport-specific options are documented with the +transports themselves.

+
+
+

In all of these forms, the option opt is configured on the listener l.

+
+
+

The details of the type, size, and semantics of the option will depend +on the actual option, and will be documented with the option itself.

+
+
+

The first form of this function, nng_listener_setopt(), can be used to +configure any arbitrary data. +The val pointer addresses the data to copy, and valsz is the +size of the objected located at val.

+
+
+

Generally, it will be easier to use one of the typed forms instead.

+
+
+

The second form, nng_listener_setopt_int(), +is for options which take an integer (or boolean). The ival +is passed to the option. For booleans pass either 0 (false) or 1 (true).

+
+
+

The third form, nng_listener_setopt_ms(), is used to configure time durations +(such as timeouts). +The duration dur is an integer number of milliseconds. (The special value +NNG_DUR_INFINITE means an infinite amount of time.)

+
+
+

The fourth form, nng_listener_setopt_ptr(), is used to pass a +pointer ptr to structured data. The data referenced by ptr is +generally managed by other functions. +For example, TLS configuration objects +(nng_tls_config_alloc()) can be passed this way. +Note that this form is somewhat special in that the object is generally +not copied, but instead the pointer to the object is copied.

+
+
+

The fifth form, nng_listener_setopt_size(), is used to pass a size +specified by z, typically for buffer sizes, message maximum sizes, and +similar options.

+
+
+

The sixth form, nng_listener_setopt_string(), is used to pass a string +str. Strings passed this way must be legal UTF-8 or ASCII strings, terminated +with a NUL (\0) byte. (Other constraints may apply as well, see the +documentation for opt for details.)

+
+
+

The seventh form, nng_listener_setopt_uint64(), is used to configure +the 64-bit unsigned value in u64. This is typically used for options +related to identifiers, network numbers, and similar.

+
+
+ + + + + +
+ + +Once a listener has started, it is generally not possible to change +it’s configuration. +
+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ECLOSED
+
+

Parameter l does not refer to an open listener.

+
+
NNG_EINVAL
+
+

The value being passed is invalid.

+
+
NNG_ENOTSUP
+
+

The option opt is not supported.

+
+
NNG_EREADONLY
+
+

The option opt is read-only.

+
+
NNG_ESTATE
+
+

The listener l is already started.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_listener_setopt.html b/man/tip/nng_listener_setopt.html deleted file mode 100644 index 100fd357..00000000 --- a/man/tip/nng_listener_setopt.html +++ /dev/null @@ -1,671 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_listener_setopt(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-
-int nng_listener_setopt(nng_listener l, const char *opt, const void *val,
-    size_t valsz);
-int nng_listener_setopt_int(nng_listener l, const char *opt, int ival);
-int nng_listener_setopt_ms(nng_listener l, const char *opt, nng_duration dur);
-int nng_listener_setopt_ptr(nng_listener l, const char *opt, void *ptr);
-int nng_listener_setopt_size(nng_listener l, const char *opt, size_t z);
-int nng_listener_setopt_string(nng_listener l, const char *opt, const char *str);
-int nng_listener_setopt_uint64(nng_listener l, const char *opt, uint64_t u64);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_listener_setopt() functions are used to configure options for -the listener l. The actual options that may be configured in this way -vary, and are documented in the nng_setopt(3) manual. -Additionally some transport-specific options are documented with the -transports themselves.

-
-
-

In all of these forms, the option opt is configured on the listener l.

-
-
-

The details of the type, size, and semantics of the option will depend -on the actual option, and will be documented with the option itself.

-
-
-

The first form of this function, nng_listener_setopt(), can be used to -configure any arbitrary data. -The val pointer addresses the data to copy, and valsz is the -size of the objected located at val.

-
-
-

Generally, it will be easier to use one of the typed forms instead.

-
-
-

The second form, nng_listener_setopt_int(), -is for options which take an integer (or boolean). The ival -is passed to the option. For booleans pass either 0 (false) or 1 (true).

-
-
-

The third form, nng_listener_setopt_ms(), is used to configure time durations -(such as timeouts). -The duration dur is an integer number of milliseconds. (The special value -NNG_DUR_INFINITE means an infinite amount of time.)

-
-
-

The fourth form, nng_listener_setopt_ptr(), is used to pass a -pointer ptr to structured data. The data referenced by ptr is -generally managed by other functions. -For example, TLS configuration objects -(nng_tls_config_alloc(3)) can be passed this way. -Note that this form is somewhat special in that the object is generally -not copied, but instead the pointer to the object is copied.

-
-
-

The fifth form, nng_listener_setopt_size(), is used to pass a size -specified by z, typically for buffer sizes, message maximum sizes, and -similar options.

-
-
-

The sixth form, nng_listener_setopt_string(), is used to pass a string -str. Strings passed this way must be legal UTF-8 or ASCII strings, terminated -with a NUL (\0) byte. (Other constraints may apply as well, see the -documentation for opt for details.)

-
-
-

The seventh form, nng_listener_setopt_uint64(), is used to configure -the 64-bit unsigned value in u64. This is typically used for options -related to identifiers, network numbers, and similar.

-
-
- - - - - -
- - -Once a listener has started, it is generally not possible to change -it’s configuration. -
-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_ECLOSED
-
-

Parameter l does not refer to an open listener.

-
-
NNG_EINVAL
-
-

The value being passed is invalid.

-
-
NNG_ENOTSUP
-
-

The option opt is not supported.

-
-
NNG_EREADONLY
-
-

The option opt is read-only.

-
-
NNG_ESTATE
-
-

The listener l is already started.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_listener_start.3.html b/man/tip/nng_listener_start.3.html new file mode 100644 index 00000000..2bbb3d13 --- /dev/null +++ b/man/tip/nng_listener_start.3.html @@ -0,0 +1,616 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_listener_start(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+int nng_listener_start(nng_listener l, int flags);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_listener_start() function starts the listener l.

+
+
+

This causes the listener to bind to the address it was created with, +and to start accepting connections from remote +dialers. +Each new connection results in an nng_pipe object, +which will be attached to the listener’s socket.

+
+
+

Normally, the act of “binding`” to it’s address is done +synchronously, including any necessary name resolution. +As a result, +a failure, such as if the address is already in use, will be returned +immediately. +However, if the special value NNG_FLAG_NONBLOCK is +supplied in flags, then this is done asynchronously; furthermore any +failure to bind will be periodically reattempted in the background.

+
+
+ + + + + +
+ + +While NNG_FLAG_NONBLOCK can help an application be more resilient, +it also generally makes diagnosing failures somewhat more difficult. +
+
+
+

Once a listener has started, it is generally not possible to change +it’s configuration.

+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ECLOSED
+
+

Parameter l does not refer to an open listener.

+
+
NNG_ESTATE
+
+

The listener l is already started.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_listener_start.html b/man/tip/nng_listener_start.html deleted file mode 100644 index 5e1454ca..00000000 --- a/man/tip/nng_listener_start.html +++ /dev/null @@ -1,612 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_listener_start(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-
-int nng_listener_start(nng_listener l, int flags);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_listener_start() function starts the listener l.

-
-
-

This causes the listener to bind to the address it was created with, -and to start accepting connections from remote -dialers. Each new connection results in a pipe, which will be attached -to the listener’s socket.

-
-
-

Normally, the act of "binding" to it’s address is done -synchronously, including any necessary name resolution. As a result, -a failure, such as if the address is already in use, will be returned -immediately. However, if the special value NNG_FLAG_NONBLOCK is -supplied in flags, then this is done asynchronously; furthermore any -failure to bind will be periodically reattempted in the background.

-
-
- - - - - -
- - -While NNG_FLAG_NONBLOCK can help an application be more resilient, -it also generally makes diagnosing failures somewhat more difficult. -
-
-
-

Once a listener has started, it is generally not possible to change -it’s configuration.

-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_ECLOSED
-
-

Parameter l does not refer to an open listener.

-
-
NNG_ESTATE
-
-

The listener l is already started.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_msg.5.html b/man/tip/nng_msg.5.html new file mode 100644 index 00000000..000156b8 --- /dev/null +++ b/man/tip/nng_msg.5.html @@ -0,0 +1,617 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_msg_alloc(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+typedef struct nng_msg nng_msg;
+
+
+
+
+
+

DESCRIPTION

+
+
+

An nng_msg represents a single message sent between Scalability Protocols +peers. +Messages internally have a body, containining the application supplied +payload, and a header, containing protocol specific routing and similar +related information.

+
+
+ + + + + +
+ + +Using the message-oriented functions in the nng API is +a good way to reduce the likelihood of data copies and improve application +performance. +
+
+
+

Messages are allocated using the nng_msg_alloc() +function, and are deallocated using the nng_msg_free +function.

+
+
+

In addition there are other functions used to access message contents, +including adding data to either the beginning or end of the message, +automatic data conversion, and removing data from the beginning or end. +These functions are designed to try to avoid copying message contents +by making use of scratch areas at the beginning and end of the message.

+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ENOMEM
+
+

Insufficient free memory exists to allocate a message.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_msg_alloc.3.html b/man/tip/nng_msg_alloc.3.html new file mode 100644 index 00000000..e4964516 --- /dev/null +++ b/man/tip/nng_msg_alloc.3.html @@ -0,0 +1,586 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_msg_alloc(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+int nng_msg_alloc(nng_msg **msgp, size_t size);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_msg_alloc() function allocates a new message with body length size +and stores the result in msgp. +Messages allocated with this function contain a body and optionally a header. +They are used with receive and transmit functions.

+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ENOMEM
+
+

Insufficient free memory exists to allocate a message.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_msg_alloc.html b/man/tip/nng_msg_alloc.html deleted file mode 100644 index b0239a9c..00000000 --- a/man/tip/nng_msg_alloc.html +++ /dev/null @@ -1,585 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_msg_alloc(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-
-int nng_msg_alloc(nng_msg **msgp, size_t size);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_msg_alloc() function allocates a new message with body length size -and stores the result in msgp. -Messages allocated with this function contain a body and optionally a header. -They are used with receive and transmit functions.

-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_ENOMEM
-
-

Insufficient free memory exists to allocate a message.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_msg_append.3.html b/man/tip/nng_msg_append.3.html new file mode 100644 index 00000000..f4a977db --- /dev/null +++ b/man/tip/nng_msg_append.3.html @@ -0,0 +1,589 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_msg_append(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+int nng_msg_append(nng_msg *msg, const void *val, size_t size);
+
+int nng_msg_append_u32(nng_msg *msg, uint32_t val32);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_msg_append() and nng_msg_append_u32() functions append data to +the end of the body of message msg, reallocating it if necessary. +The first function appends size bytes, copying them from val. The +second function appends the value val32 in network-byte order (big-endian).

+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ENOMEM
+
+

Insufficient free memory exists.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_msg_append.html b/man/tip/nng_msg_append.html deleted file mode 100644 index ca2588dd..00000000 --- a/man/tip/nng_msg_append.html +++ /dev/null @@ -1,587 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_msg_append(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-
-int nng_msg_append(nng_msg *msg, const void *val, size_t size);
-int nng_msg_append_u32(nng_msg *msg, uint32_t val32);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_msg_append() and nng_msg_append_u32() functions append data to -the end of the body of message msg, reallocating it if necessary. -The first function appends size bytes, copying them from val. The -second function appends the value val32 in network-byte order (big-endian).

-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_ENOMEM
-
-

Insufficient free memory exists.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_msg_body.3.html b/man/tip/nng_msg_body.3.html new file mode 100644 index 00000000..67f0ebeb --- /dev/null +++ b/man/tip/nng_msg_body.3.html @@ -0,0 +1,599 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_msg_body(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+void *nng_msg_body(nng_msg *msg);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_msg_body() function returns a pointer to the start of the body +content of the message msg.

+
+
+ + + + + +
+ + +The value returned by this is invalidated by a call to any of the +functions that modify the message itself. +Such functions are +nng_msg_free(), +nng_msg_realloc(), +any of the nng_msg_trim(), +nng_msg_chop(), +nng_msg_append(), +or nng_msg_insert() variants. +
+
+
+
+
+

RETURN VALUES

+
+
+

Pointer to start of message body.

+
+
+
+
+

ERRORS

+
+
+

None.

+
+
+
+ +
+ + diff --git a/man/tip/nng_msg_body.html b/man/tip/nng_msg_body.html deleted file mode 100644 index 379028c0..00000000 --- a/man/tip/nng_msg_body.html +++ /dev/null @@ -1,595 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_msg_body(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-
-void *nng_msg_body(nng_msg *msg);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_msg_body() function returns a pointer to the start of the body -content of the message msg.

-
-
- - - - - -
- - -The value returned by this is invalidated by a call to any of the -functions that modify the message itself. Such functions are -nng_msg_free(3), nng_msg_realloc(3), -any of the nng_msg_trim(3), -nng_msg_chop(3), nng_msg_append(3), -or nng_msg_insert(3) variants. -
-
-
-
-
-

RETURN VALUES

-
-
-

Pointer to start of message body.

-
-
-
-
-

ERRORS

-
-
-

None.

-
-
-
- -
- - diff --git a/man/tip/nng_msg_chop.3.html b/man/tip/nng_msg_chop.3.html new file mode 100644 index 00000000..75161ccb --- /dev/null +++ b/man/tip/nng_msg_chop.3.html @@ -0,0 +1,590 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_msg_chop(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+int nng_msg_chop(nng_msg *msg, size_t size);
+
+int nng_msg_chop_u32(nng_msg *msg, uint32_t *val32);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_msg_chop() and nng_msg_chop_u32() functions remove data from +the end of the body of message msg. +The first function removes size bytes. +The second function removes 4 bytes, and stores them in the value val32, +after converting them from network-byte order (big-endian) to native byte order.

+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_EINVAL
+
+

The message body is too short to remove the requested data.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_msg_chop.html b/man/tip/nng_msg_chop.html deleted file mode 100644 index f8b499c3..00000000 --- a/man/tip/nng_msg_chop.html +++ /dev/null @@ -1,589 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_msg_chop(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-
-int nng_msg_chop(nng_msg *msg, size_t size);
-int nng_msg_chop_u32(nng_msg *msg, uint32_t *val32);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_msg_chop() and nng_msg_chop_u32() functions remove data from -the end of the body of message msg. -The first function removes size bytes. -The second function removes 4 bytes, and stores them in the value val32, -after converting them from network-byte order (big-endian) to native -byte order.

-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_EINVAL
-
-

The message body is too short to remove the requested data.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_msg_clear.3.html b/man/tip/nng_msg_clear.3.html new file mode 100644 index 00000000..f3775957 --- /dev/null +++ b/man/tip/nng_msg_clear.3.html @@ -0,0 +1,570 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_msg_clear(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+void nng_msg_clear(nng_msg *msg);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_msg_clear() function resets the body length of msg to zero.

+
+
+
+
+

RETURN VALUES

+
+
+

None.

+
+
+
+
+

ERRORS

+
+
+

None.

+
+
+
+
+

SEE ALSO

+
+ +
+
+
+ + diff --git a/man/tip/nng_msg_clear.html b/man/tip/nng_msg_clear.html deleted file mode 100644 index b6f59651..00000000 --- a/man/tip/nng_msg_clear.html +++ /dev/null @@ -1,571 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_msg_clear(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-
-void nng_msg_clear(nng_msg *msg);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_msg_clear() function resets the body length of msg to zero.

-
-
-
-
-

RETURN VALUES

-
-
-

None.

-
-
-
-
-

ERRORS

-
-
-

None.

-
-
-
-
-

SEE ALSO

- -
-
- - diff --git a/man/tip/nng_msg_dup.3.html b/man/tip/nng_msg_dup.3.html new file mode 100644 index 00000000..7b3d3de1 --- /dev/null +++ b/man/tip/nng_msg_dup.3.html @@ -0,0 +1,582 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_msg_dup(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+int nng_msg_dup(nng_msg **dup, nng_msg_t *orig);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_msg_dup() makes a duplicate of the original message orig, and +saves the result in the location pointed by dup. +The actual message body and header content is copied, +but the duplicate may contain a +different amount of unused space than the original message.

+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ENOMEM
+
+

Insufficient free memory exists to duplicate a message.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_msg_dup.html b/man/tip/nng_msg_dup.html deleted file mode 100644 index fad502b3..00000000 --- a/man/tip/nng_msg_dup.html +++ /dev/null @@ -1,580 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_msg_dup(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-
-int nng_msg_dup(nng_msg **dup, nng_msg_t *orig);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_msg_dup() makes a duplicate of the original message orig, and -saves the result in the location pointed by dup. The actual message -body and header content is copied, but the duplicate may contain a -different amount of unused space than the original message.

-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_ENOMEM
-
-

Insufficient free memory exists to duplicate a message.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_msg_free.3.html b/man/tip/nng_msg_free.3.html new file mode 100644 index 00000000..8eef5180 --- /dev/null +++ b/man/tip/nng_msg_free.3.html @@ -0,0 +1,572 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_msg_free(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+void nng_msg_free(nng_msg *msg);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_msg_free() function deallocates the message msg entirely.

+
+
+
+
+

RETURN VALUES

+
+
+

None.

+
+
+
+
+

ERRORS

+
+
+

None.

+
+
+
+ +
+ + diff --git a/man/tip/nng_msg_free.html b/man/tip/nng_msg_free.html deleted file mode 100644 index 3288141d..00000000 --- a/man/tip/nng_msg_free.html +++ /dev/null @@ -1,571 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_msg_free(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-
-void nng_msg_free(nng_msg *msg);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_msg_free() function deallocates the message msg entirely.

-
-
-
-
-

RETURN VALUES

-
-
-

None.

-
-
-
-
-

ERRORS

-
-
-

None.

-
-
-
-
-

SEE ALSO

- -
-
- - diff --git a/man/tip/nng_msg_get_pipe.3.html b/man/tip/nng_msg_get_pipe.3.html new file mode 100644 index 00000000..51a074c2 --- /dev/null +++ b/man/tip/nng_msg_get_pipe.3.html @@ -0,0 +1,599 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_msg_get_pipe(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+nng_pipe nng_msg_get_pipe(nng_msg *msg);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_msg_get_pipe() returns the nng_pipe object +associated with message msg. +On receive, this is the pipe from which a message was received. +On transmit, this would be the pipe that the message should be delivered +to, if a specific peer is required.

+
+
+ + + + + +
+ + +Not all protocols support overriding the destination pipe. +
+
+
+

The most usual use case for this is to obtain information about the peer +from which the message was received. +This can be used to provide different behaviors for different peers, such as +a higher level of authentication for peers located on an untrusted network. +The nng_pipe_getopt() function +is useful in this situation.

+
+
+
+
+

RETURN VALUES

+
+
+

This function returns the pipe associated with this message, which will +be a positive value. +If the pipe is non-positive, then that indicates that +no specific pipe is associated with the messsage.

+
+
+
+
+

ERRORS

+
+
+

None.

+
+
+
+ +
+ + diff --git a/man/tip/nng_msg_get_pipe.html b/man/tip/nng_msg_get_pipe.html deleted file mode 100644 index a8e2d913..00000000 --- a/man/tip/nng_msg_get_pipe.html +++ /dev/null @@ -1,596 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_msg_get_pipe(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-
-nng_pipe nng_msg_get_pipe(nng_msg *msg);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_msg_get_pipe() returns the pipe associated with message msg. -On receive, this is the pipe from which a message was received. -On transmit, this would be the pipe that the message should be delivered -to, if a specific peer is required.

-
-
- - - - - -
- - -Not all protocols support overriding the destination pipe. -
-
-
-

The most usual use case for this is to obtain information about the peer -from which the message was received. This can be used to provide different -behaviors for different peers, such as a higher level of authentication -for peers located on an untrusted network. -The nng_pipe_getopt(3) function is useful in this situation.

-
-
-
-
-

RETURN VALUES

-
-
-

This function returns the pipe associated with this message, which will -be a positive value. If the pipe is non-positive, then that indicates that -no specific pipe is associated with the messsage.

-
-
-
-
-

ERRORS

-
-
-

None.

-
-
-
- -
- - diff --git a/man/tip/nng_msg_header.3.html b/man/tip/nng_msg_header.3.html new file mode 100644 index 00000000..2ea81d92 --- /dev/null +++ b/man/tip/nng_msg_header.3.html @@ -0,0 +1,607 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_msg_header(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+void *nng_msg_header(nng_msg *msg);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_msg_header() function returns a pointer to the start of the header +content of the message msg.

+
+
+ + + + + +
+ + +The message header contains protocol-specific header content. Most +applications should not need to access this content, but it is available +for raw mode sockets (set with the +NNG_OPT_RAW option.) +
+
+
+ + + + + +
+ + +The value returned by this is invalidated by a call to any of the +functions that modify the message or the header content. +
+
+
+
+
+

RETURN VALUES

+
+
+

Pointer to start of message header.

+
+
+
+
+

ERRORS

+
+
+

None.

+
+
+
+ +
+ + diff --git a/man/tip/nng_msg_header.html b/man/tip/nng_msg_header.html deleted file mode 100644 index 03598d0b..00000000 --- a/man/tip/nng_msg_header.html +++ /dev/null @@ -1,606 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_msg_header(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-
-void *nng_msg_header(nng_msg *msg);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_msg_header() function returns a pointer to the start of the header -content of the message msg.

-
-
- - - - - -
- - -The message header contains protocol-specific header content. Most -applications should not need to access this content, but it is available -for raw mode sockets (set with the NNG_OPT_RAW option — see -nng_setopt(3) for more details.) -
-
-
- - - - - -
- - -The value returned by this is invalidated by a call to any of the -functions that modify the message or the header content. -
-
-
-
-
-

RETURN VALUES

-
-
-

Pointer to start of message header.

-
-
-
-
-

ERRORS

-
-
-

None.

-
-
-
- -
- - diff --git a/man/tip/nng_msg_header_append.3.html b/man/tip/nng_msg_header_append.3.html new file mode 100644 index 00000000..a25f4726 --- /dev/null +++ b/man/tip/nng_msg_header_append.3.html @@ -0,0 +1,589 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_msg_header_append(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+int nng_msg_header_append(nng_msg *msg, const void *val, size_t size);
+
+int nng_msg_header_append_u32(nng_msg *msg, uint32_t val32);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_msg_header_append() and nng_msg_header_append_u32() +functions append data to +the end of the headers of message msg, reallocating it if necessary. +The first function appends size bytes, copying them from val. +The second function appends the value val32 in network-byte order +(big-endian).

+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ENOMEM
+
+

Insufficient free memory exists.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_msg_header_append.html b/man/tip/nng_msg_header_append.html deleted file mode 100644 index 2862ae76..00000000 --- a/man/tip/nng_msg_header_append.html +++ /dev/null @@ -1,587 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_msg_header_append(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-
-int nng_msg_header_append(nng_msg *msg, const void *val, size_t size);
-int nng_msg_header_append_u32(nng_msg *msg, uint32_t val32);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_msg_header_append() and nng_msg_header_append_u32() -functions append data to -the end of the headers of message msg, reallocating it if necessary. -The first function appends size bytes, copying them from val. The -second function appends the value val32 in network-byte order (big-endian).

-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_ENOMEM
-
-

Insufficient free memory exists.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_msg_header_chop.3.html b/man/tip/nng_msg_header_chop.3.html new file mode 100644 index 00000000..a5e7aeda --- /dev/null +++ b/man/tip/nng_msg_header_chop.3.html @@ -0,0 +1,589 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_msg_header_chop(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+int nng_msg_header_chop(nng_msg *msg, size_t size);
+
+int nng_msg_header_chop_u32(nng_msg *msg, uint32_t *val32);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_msg_header_chop() and nng_msg_header_chop_u32() functions remove +data from the end of the header of message msg. +The first function removes size bytes. +The second function removes 4 bytes, and stores them in the value val32, +after converting them from network-byte order (big-endian) to native +byte order.

+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_EINVAL
+
+

The message header is too short to remove the requested data.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_msg_header_chop.html b/man/tip/nng_msg_header_chop.html deleted file mode 100644 index 2f480d3c..00000000 --- a/man/tip/nng_msg_header_chop.html +++ /dev/null @@ -1,588 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_msg_header_chop(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-
-int nng_msg_header_chop(nng_msg *msg, size_t size);
-int nng_msg_header_chop_u32(nng_msg *msg, uint32_t *val32);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_msg_header_chop() and nng_msg_header_chop_u32() functions remove -data from the end of the header of message msg. -The first function removes size bytes. -The second function removes 4 bytes, and stores them in the value val32, -after converting them from network-byte order (big-endian) to native -byte order.

-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_EINVAL
-
-

The message header is too short to remove the requested data.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_msg_header_clear.3.html b/man/tip/nng_msg_header_clear.3.html new file mode 100644 index 00000000..9b33c856 --- /dev/null +++ b/man/tip/nng_msg_header_clear.3.html @@ -0,0 +1,571 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_msg_header_clear(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+void nng_msg_header_clear(nng_msg *msg);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_msg_clear() function resets the header length of msg to zero.

+
+
+
+
+

RETURN VALUES

+
+
+

None.

+
+
+
+
+

ERRORS

+
+
+

None.

+
+
+
+
+

SEE ALSO

+ +
+
+ + diff --git a/man/tip/nng_msg_header_clear.html b/man/tip/nng_msg_header_clear.html deleted file mode 100644 index c1fc1113..00000000 --- a/man/tip/nng_msg_header_clear.html +++ /dev/null @@ -1,571 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_msg_header_clear(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-
-void nng_msg_header_clear(nng_msg *msg);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_msg_clear() function resets the header length of msg to zero.

-
-
-
-
-

RETURN VALUES

-
-
-

None.

-
-
-
-
-

ERRORS

-
-
-

None.

-
-
-
-
-

SEE ALSO

- -
-
- - diff --git a/man/tip/nng_msg_header_insert.3.html b/man/tip/nng_msg_header_insert.3.html new file mode 100644 index 00000000..af9436c5 --- /dev/null +++ b/man/tip/nng_msg_header_insert.3.html @@ -0,0 +1,589 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_msg_header_insert(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+int nng_msg_header_insert(nng_msg *msg, const void *val, size_t size);
+
+int nng_msg_header_insert_u32(nng_msg *msg, uint32_t val32);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_msg_header_insert() and nng_msg_header_insert_u32() functions +prepend data to the front of the headers of message msg, reallocating +if necessary. +The first function prepends size bytes, copying them from val. The +second function prepends the value val32 in network-byte order (big-endian).

+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ENOMEM
+
+

Insufficient free memory exists.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_msg_header_insert.html b/man/tip/nng_msg_header_insert.html deleted file mode 100644 index 508fa546..00000000 --- a/man/tip/nng_msg_header_insert.html +++ /dev/null @@ -1,588 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_msg_header_insert(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-
-int nng_msg_header_insert(nng_msg *msg, const void *val, size_t size);
-int nng_msg_header_insert_u32(nng_msg *msg, uint32_t val32);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_msg_header_insert() and nng_msg_header_insert_u32() functions -prepend data to the front of the headers of message msg, reallocating -if necessary. -The first function prepends size bytes, copying them from val. The -second function prepends the value val32 in network-byte order (big-endian).

-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_ENOMEM
-
-

Insufficient free memory exists.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_msg_header_len.3.html b/man/tip/nng_msg_header_len.3.html new file mode 100644 index 00000000..37af777d --- /dev/null +++ b/man/tip/nng_msg_header_len.3.html @@ -0,0 +1,572 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_msg_header_len(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+size_t nng_msg_header_len(nng_msg *msg);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_msg_header_len() returns the length of message header of msg.

+
+
+
+
+

RETURN VALUES

+
+
+

Length of message header.

+
+
+
+
+

ERRORS

+
+
+

None.

+
+
+
+ +
+ + diff --git a/man/tip/nng_msg_header_len.html b/man/tip/nng_msg_header_len.html deleted file mode 100644 index eb1318cf..00000000 --- a/man/tip/nng_msg_header_len.html +++ /dev/null @@ -1,571 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_msg_header_len(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-
-size_t nng_msg_header_len(nng_msg *msg);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_msg_header_len() returns the length of message header of msg.

-
-
-
-
-

RETURN VALUES

-
-
-

Length of message header.

-
-
-
-
-

ERRORS

-
-
-

None.

-
-
-
-
-

SEE ALSO

- -
-
- - diff --git a/man/tip/nng_msg_header_trim.3.html b/man/tip/nng_msg_header_trim.3.html new file mode 100644 index 00000000..ac1778a0 --- /dev/null +++ b/man/tip/nng_msg_header_trim.3.html @@ -0,0 +1,590 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_msg_header_trim(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+int nng_msg_header_trim(nng_msg *msg, size_t size);
+
+int nng_msg_header_trim_u32(nng_msg *msg, uint32_t *val32);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_msg_header_trim() and nng_msg_header_trim_u32() functions remove +data from the start of the header of message msg. +The first function removes size bytes. +The second function removes 4 bytes, and stores them in the value val32, +after converting them from network-byte order (big-endian) to native +byte order.

+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_EINVAL
+
+

The message header is too short to remove the requested data.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_msg_header_trim.html b/man/tip/nng_msg_header_trim.html deleted file mode 100644 index e071d536..00000000 --- a/man/tip/nng_msg_header_trim.html +++ /dev/null @@ -1,588 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_msg_header_trim(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-
-int nng_msg_header_trim(nng_msg *msg, size_t size);
-int nng_msg_header_trim_u32(nng_msg *msg, uint32_t *val32);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_msg_header_trim() and nng_msg_header_trim_u32() functions remove -data from the start of the header of message msg. -The first function removes size bytes. -The second function removes 4 bytes, and stores them in the value val32, -after converting them from network-byte order (big-endian) to native -byte order.

-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_EINVAL
-
-

The message header is too short to remove the requested data.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_msg_insert.3.html b/man/tip/nng_msg_insert.3.html new file mode 100644 index 00000000..d291a2cb --- /dev/null +++ b/man/tip/nng_msg_insert.3.html @@ -0,0 +1,605 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_msg_insert(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+int nng_msg_insert(nng_msg *msg, const void *val, size_t size);
+
+int nng_msg_insert(nng_msg *msg, uint32_t val32);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_msg_insert() and nng_msg_insert_u32() functions prepend data to +the front of the body of message msg, reallocating it if necessary. +The first function prepends size bytes, copying them from val. +The second function prepends the value val32 in network-byte order +(big-endian).

+
+
+ + + + + +
+ + +This function makes use of pre-allocated “headroom” in the message if +available, so it can often avoid performing any reallocation. +Applications should use this instead of reallocating and copying message +content themselves, in order to benefit from this capabilitiy. +
+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ENOMEM
+
+

Insufficient free memory exists.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_msg_insert.html b/man/tip/nng_msg_insert.html deleted file mode 100644 index f7b9ab23..00000000 --- a/man/tip/nng_msg_insert.html +++ /dev/null @@ -1,602 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_msg_insert(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-
-int nng_msg_insert(nng_msg *msg, const void *val, size_t size);
-int nng_msg_insert(nng_msg *msg, uint32_t val32);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_msg_insert() and nng_msg_insert_u32() functions prepend data to -the front of the body of message msg, reallocating it if necessary. -The first function prepends size bytes, copying them from val. The -second function prepends the value val32 in network-byte order (big-endian).

-
-
- - - - - -
- - -This function makes use of pre-allocated "headroom" in the message if -available, so it can often avoid performing any reallocation. Applications -should use this instead of reallocating and copying message content themselves, -in order to benefit from this capabilitiy. -
-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_ENOMEM
-
-

Insufficient free memory exists.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_msg_len.3.html b/man/tip/nng_msg_len.3.html new file mode 100644 index 00000000..a9bc4fb8 --- /dev/null +++ b/man/tip/nng_msg_len.3.html @@ -0,0 +1,572 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_msg_len(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+size_t nng_msg_len(nng_msg *msg);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_msg_len() returns the length of the body of message msg.

+
+
+
+
+

RETURN VALUES

+
+
+

Length of message body.

+
+
+
+
+

ERRORS

+
+
+

None.

+
+
+
+ +
+ + diff --git a/man/tip/nng_msg_len.html b/man/tip/nng_msg_len.html deleted file mode 100644 index c348a59f..00000000 --- a/man/tip/nng_msg_len.html +++ /dev/null @@ -1,571 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_msg_len(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-
-size_t nng_msg_len(nng_msg *msg);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_msg_len() returns the length of the body of message msg.

-
-
-
-
-

RETURN VALUES

-
-
-

Length of message body.

-
-
-
-
-

ERRORS

-
-
-

None.

-
-
-
-
-

SEE ALSO

- -
-
- - diff --git a/man/tip/nng_msg_realloc.3.html b/man/tip/nng_msg_realloc.3.html new file mode 100644 index 00000000..a3794b3e --- /dev/null +++ b/man/tip/nng_msg_realloc.3.html @@ -0,0 +1,620 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_msg_realloc(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+int nng_msg_realloc(nng_msg *msg, size_t size);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_msg_realloc() function re-allocates a message so that it has +a body of length size. +This message attempts to avoid extra allocations, +and will reuse the existing memory when possible.

+
+
+ + + + + +
+ + +One way to further reduce message allocations is to allocate a message +larger than needed, then use this function or +nng_msg_chop() to reduce the message size +to that actually needed. +The extra space left +over will still be present in the message, so that when the message size +needs to grow due to this function or nng_msg_append() +no actual memory allocations need to take place. +
+
+
+ + + + + +
+ + +Pointers to message body and header content obtained prior to this +function must not be in use, as the underlying memory used for the message +may have changed, particularly if the message size is increasing. +
+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ENOMEM
+
+

Insufficient free memory exists to reallocate a message.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_msg_realloc.html b/man/tip/nng_msg_realloc.html deleted file mode 100644 index 70c40f6d..00000000 --- a/man/tip/nng_msg_realloc.html +++ /dev/null @@ -1,616 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_msg_alloc(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-
-int nng_msg_realloc(nng_msg *msg, size_t size);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_msg_realloc() function re-allocates a message so that it has -a body of length size. This message attempts to avoid extra allocations, -and will reuse the existing memory when possible.

-
-
- - - - - -
- - -One way to further reduce message allocations is to allocate a message -larger than needed, then use this function or nng_msg_chop(3) -to reduce the message size to that actually needed. The extra space left -over will still be present in the message, so that when the message size -needs to grow due to this function or nng_msg_append(3) -no actual memory allocations need to take place. -
-
-
- - - - - -
- - -Pointers to message body and header content obtained prior to this -function must not be in use, as the underlying memory used for the message -may have changed, particularly if the message size is increasing. -
-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_ENOMEM
-
-

Insufficient free memory exists to reallocate a message.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_msg_set_pipe.3.html b/man/tip/nng_msg_set_pipe.3.html new file mode 100644 index 00000000..c6c677af --- /dev/null +++ b/man/tip/nng_msg_set_pipe.3.html @@ -0,0 +1,589 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_msg_get_pipe(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+void nng_msg_set_pipe(nng_msg *msg, nng_pipe p);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_msg_set_pipe() sets the pipe associated with message m to p. +This is most often useful when used with protocols that support directing +a message to a specific peer. +For example the pair version +1 protocol can do this when NNG_OPT_PAIR1_POLY mode is set.

+
+
+ + + + + +
+ + +Not all protocols support overriding the destination pipe. +
+
+
+
+
+

RETURN VALUES

+
+
+

None.

+
+
+
+
+

ERRORS

+
+
+

None.

+
+
+
+ +
+ + diff --git a/man/tip/nng_msg_set_pipe.html b/man/tip/nng_msg_set_pipe.html deleted file mode 100644 index d331528e..00000000 --- a/man/tip/nng_msg_set_pipe.html +++ /dev/null @@ -1,588 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_msg_get_pipe(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-
-void nng_msg_set_pipe(nng_msg *msg, nng_pipe p);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_msg_set_pipe() sets the pipe associated with message m to p. -This is most often useful when used with protocols that support directing -a message to a specific peer. For example the nng_pair(7) version -1 protocol can do this when NNG_OPT__POLYAMOROUS mode is set.

-
-
- - - - - -
- - -Not all protocols support overriding the destination pipe. -
-
-
-
-
-

RETURN VALUES

-
-
-

None.

-
-
-
-
-

ERRORS

-
-
-

None.

-
-
-
- -
- - diff --git a/man/tip/nng_msg_trim.3.html b/man/tip/nng_msg_trim.3.html new file mode 100644 index 00000000..4cdd61ee --- /dev/null +++ b/man/tip/nng_msg_trim.3.html @@ -0,0 +1,591 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_msg_trim(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+int nng_msg_trim(nng_msg *msg, size_t size);
+
+int nng_msg_trim_u32(nng_msg *msg, uint32_t *val32);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_msg_trim() and nng_msg_trim_u32() functions remove data from +the start of the body of message msg. +The first function removes size bytes. +The second function removes 4 bytes, and stores them in the value val32, +after converting them from network-byte order (big-endian) to native +byte order.

+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_EINVAL
+
+

The message body is too short to remove the requested data.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_msg_trim.html b/man/tip/nng_msg_trim.html deleted file mode 100644 index 2b95fd20..00000000 --- a/man/tip/nng_msg_trim.html +++ /dev/null @@ -1,589 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_msg_trim(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-
-int nng_msg_trim(nng_msg *msg, size_t size);
-int nng_msg_trim_u32(nng_msg *msg, uint32_t *val32);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_msg_trim() and nng_msg_trim_u32() functions remove data from -the start of the body of message msg. -The first function removes size bytes. -The second function removes 4 bytes, and stores them in the value val32, -after converting them from network-byte order (big-endian) to native -byte order.

-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_EINVAL
-
-

The message body is too short to remove the requested data.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_options.5.html b/man/tip/nng_options.5.html new file mode 100644 index 00000000..e972ec41 --- /dev/null +++ b/man/tip/nng_options.5.html @@ -0,0 +1,1006 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_options(5) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+#define NNG_OPT_SOCKNAME   "socket-name"
+#define NNG_OPT_RAW        "raw"
+#define NNG_OPT_LINGER     "linger"
+#define NNG_OPT_RECVBUF    "recv-buffer"
+#define NNG_OPT_SENDBUF    "send-buffer"
+#define NNG_OPT_RECVFD     "recv-fd"
+#define NNG_OPT_SENDFD     "send-fd"
+#define NNG_OPT_RECVTIMEO  "recv-timeout"
+#define NNG_OPT_SENDTIMEO  "send-timeout"
+#define NNG_OPT_LOCADDR    "local-address"
+#define NNG_OPT_REMADDR    "remote-address"
+#define NNG_OPT_URL        "url"
+#define NNG_OPT_MAXTTL     "ttl-max"
+#define NNG_OPT_RECVMAXSZ  "recv-size-max"
+#define NNG_OPT_RECONNMINT "reconnect-time-min"
+#define NNG_OPT_RECONNMAXT "reconnect-time-max"
+
+
+
+
+
+

DESCRIPTION

+
+
+

This page documents the various standard options that can be set or +retrieved on objects in the nng library.

+
+
+

Sockets (nng_socket objects) use the functions +nng_getopt() +and nng_setopt() to set and retrieve option values.

+
+
+

Dialers (nng_dialer objects) use the functions +nng_dialer_getopt() and +nng_dialer_setopt() to set and retrieve option +values.

+
+
+

Listeners (nng_listener objects) use the functions +nng_listener_getopt() +and nng_listener_setopt() to set and +retrieve option values.

+
+
+

Pipes (nng_pipe objects) can only retrieve option values using +the nng_pipe_getopt() function.

+
+
+

In addition to the options listed here, transports and protocols will generally +have some of their own options, which will be documented with the transport +or protocol.

+
+
+

Options

+
+

In the following list of options, the name of the option is supplied, +along with the data type of the underlying value. +Some options are only meaningful or supported in certain contexts; for +example there is no single meaningful address for a socket, since sockets +can have multiple dialers and endpoints associated with them. +An attempt has been made to include details about such restrictions in the +description of the option.

+
+
+
+
NNG_OPT_LINGER
+
+

+(nng_duration) +This is the linger time of the socket in milliseconds. +When this value is non-zero, then the system will +attempt to defer closing until it has undelivered data, or until the specified +timeout has expired.

+
+
+
+
+ + + + + +
+ + +Not all transports support lingering, and +so closing a socket or exiting the application can still result in the loss +of undelivered messages. +
+
+
+
+
NNG_OPT_LOCADDR
+
+

(nng_sockaddr) +This read-only option may be used on listeners, dialers and connected pipes, and +represents the local address used for communication. +Not all transports support this option, and some transports may support it +listeners but not dialers.

+
+
+
+
+
+
NNG_OPT_RAW
+
+

+ +(bool) +This option determines whether the socket is in “raw” mode. +If true, the socket is in “raw” mode, and if false the socket is +in “cooked” mode. +Raw mode sockets generally do not have any protocol-specific semantics applied +to them; instead the application is expected to perform such semantics itself. +(For example, in “cooked” mode a rep socket would +automatically copy message headers from a received message to the corresponding +reply, whereas in “raw” mode this is not done.)

+
+
+
+
+
+
NNG_OPT_RECONNMINT
+
+

+(nng_duration) +This is the minimum amount of time (milliseconds) to wait before attempting +to establish a connection after a previous attempt has failed. +This can be set on a socket, but it can also be overridden on an individual +dialer. +The option is irrelevant for listeners.

+
+
+
+
+
+
NNG_OPT_RECONNMAXT
+
+

+ +(nng_duration) +This is the maximum amount of time +(milliseconds) to wait before attempting to establish a connection after +a previous attempt has failed. +If this is non-zero, then the time between successive connection attempts +will start at the value of NNG_OPT_RECONNMINT, +and grow exponentially, until it reaches this value. +If this value is zero, then no exponential +backoff between connection attempts is done, and each attempt will wait +the time specified by NNG_OPT_RECONNMINT. +This can be set on a socket, but it can also be overridden on an individual +dialer. +The option is irrelevant for listeners.

+
+
+
+
+
+
NNG_OPT_RECVBUF
+
+

+ +(int) +This is the depth of the socket’s receive buffer as a number of messages. +Messages received by a transport may be buffered until the application +has accepted them for delivery.

+
+
+
+
+
+
NNG_OPT_RECVFD
+
+

+ + +(int) +This read-only option is used to obtain an integer file descriptor suitable +for use with +poll(), +select(), +(or on Windows systems +WSAPoll()) +and similar functions. +This descriptor will be readable when a message is available for receiving +on the socket. +When no message is ready for receiving, then this file descriptor will not +be readable.

+
+
+
+
+ + + + + +
+ + +Appplications should never attempt to read or write to the +returned file descriptor. +Furthermore, applications should not attempt to use the actual socket (of +type nng_socket) with polling functions, +since it is merely an internal +identifier and will not necessarily referency any operting system object or +handle. +
+
+
+ + + + + +
+ + +While this option may help applications integrate into existing polling +loops, it is more efficient, and often easier, to use the asynchronous I/O +objects instead. See nng_aio_alloc(). +
+
+
+
+
NNG_OPT_RECVMAXSZ
+
+

+(size_t) +This is the maximum message size that the will be accepted from a remote peer. +If a peer attempts to send a message larger than this, then the message +will be discarded. +If the value of this is zero, then no limit on message sizes is enforced. +This option exists to prevent certain kinds of denial-of-service attacks, +where a malicious agent can claim to want to send an extraordinarily +large message, without sending any data. +This option can be set for the socket, but may be overridden for on a +per-dialer or per-listener basis.

+
+
+
+
+ + + + + +
+ + +Some transports may have further message size restrictions! +
+
+
+
+
NNG_OPT_RECVTIMEO
+
+

+ +(nng_duration) +This is the socket receive timeout in milliseconds. +When no message is available for receiving at the socket for this period of +time, receive operations will fail with a return value of NNG_ETIMEDOUT.

+
+
+
+
+
+
NNG_OPT_REMADDR
+
+

(nng_sockaddr) +This read-only option may be used on dialers and connected pipes, and +represents the address of a remote peer. +Not all transports support this option.

+
+
+
+
+
+
NNG_OPT_SENDBUF
+
+

+ +(int) +This is the depth of the socket send buffer as a number of messages. +Messages sent by an application may be buffered by the socket until a +transport is ready to accept them for delivery. +This value must be an integer between 0 and 8192, inclusive.

+
+
+
+
+ + + + + +
+ + +Not all protocols support buffering sent messages; +generally multicast protocols like pub will +simply discard messages when they cannot be delivered immediately. +
+
+
+
+
NNG_OPT_SENDFD
+
+

+ + +(int) +This read-only option is used to obtain an integer file descriptor suitable +for use with +poll(), +select(), +(or on Windows systems +WSAPoll()) +and similar functions. +This descriptor will be readable when the socket is able to accept a +message for sending without blocking. +When the socket is no longer able to accept such messages without blocking, +the descriptor will not be readable.

+
+
+
+
+ + + + + +
+ + +Appplications should never attempt to read or write to the +returned file descriptor. +Furthermore, applications should not attempt to use the actual socket (of +type nng_socket) with polling functions, +since it is merely an internal +identifier and will not necessarily referency any operting system object or +handle. +
+
+
+ + + + + +
+ + +While this option may help applications integrate into existing polling +loops, it is more efficient, and often easier, to use the asynchronous I/O +objects instead. See nng_aio_alloc(). +
+
+
+
+
NNG_OPT_SENDTIMEO
+
+

+ +(nng_duration) +This is the socket send timeout in milliseconds. +When a message cannot be queued for delivery by the socket for this period of +time (such as if send buffers are full), the operation will fail with a +return value of NNG_ETIMEDOUT.

+
+
+
+
+
+
NNG_OPT_SOCKNAME
+
+

+(string) +This the socket name. +By default this is a string corresponding to the value of the socket. +The string must fit within 64-bytes, including the terminating +NUL byte, but it can be changed for other application uses.

+
+
+
+
+
+
NNG_OPT_MAXTTL
+
+

(int) + +This is the maximum number of “hops” a message may traverse (see +nng_device()). +The intention here is to prevent forwarding loops in device chains. +When this is supported, it can have a value between 1 and 255, inclusive.

+
+
+
+
+ + + + + +
+ + +Not all protocols support this option. +Those that do generally have a default value of 8. +
+
+
+ + + + + +
+ + +Each node along a forwarding path may have it’s own value for the +maximum time-to-live, and performs its own checks before forwarding a message. +Therefore it is helpful if all nodes in the topology use the same value for +this option. +
+
+
+
+
NNG_OPT_URL
+
+

+ +(string) +This read-only option is used to obtain the URL with which a listener +or dialer was configured. +Accordingly it can only be used with dialers, listeners, and pipes.

+
+
+
+
+ + + + + +
+ + +Some transports will canonify URLs before returning them to the +application. +
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_pair.7.html b/man/tip/nng_pair.7.html new file mode 100644 index 00000000..8e56b4b0 --- /dev/null +++ b/man/tip/nng_pair.7.html @@ -0,0 +1,711 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_pair(7) + + + + + + + +
+
+

SYNOPSIS

+
+
+
Version 0
+
+
#include <nng/protocol/pair0/pair.h>
+
+int nng_pair0_open(nng_socket *s);
+
+
+
+
Version 1
+
+
#include <nng/protocol/pair1/pair.h>
+
+int nng_pair1_open(nng_socket *s);
+
+
+
+
+
+

DESCRIPTION

+
+
+

+The pair protocol implements a peer-to-peer pattern, where +relationships between peers are one-to-one.

+
+
+

Version 1 of this protocol supports an optional polyamorous mode where a +peer can maintain multiple partnerships. Using this mode requires +some additional sophistication in the application.

+
+
+

Socket Operations

+
+

The nng_pair_open() call creates a pair socket. Normally, this +pattern will block when attempting to send a message, if no peer is +able to receive the message.

+
+
+ + + + + +
+ + +Even though this mode may appear to be "reliable", because back-pressure +prevents discarding messages most of the time, there are topologies involving +devices (see nng_device()) or raw mode sockets +(see NNG_OPT_RAW) where +messages may be discarded. +Applications that require reliable delivery semantics should consider using +req sockets, or +implement their own acknowledgement layer on top of pair sockets. +
+
+
+

In order to avoid head-of-line blocking conditions, polyamorous mode pair +sockets (version 1 only) discard messages if they are unable to deliver them +to a peer.

+
+
+
+

Protocol Versions

+
+

Version 0 is the legacy version of this protocol. +It lacks any header +information, and is suitable when building simple one-to-one topologies.

+
+
+ + + + + +
+ + +Use version 0 if you need to communicate with other implementations, +including the legacy nanomsg library or +mangos. +
+
+
+

Version 1 of the protocol offers improved protection against loops when +used with nng_device(). +It also offers polyamorous mode for forming multiple partnerships +on a single socket.

+
+
+ + + + + +
+ + +Version 1 of this protocol is considered experimental at this time. +
+
+
+
+

Polyamorous Mode

+
+

Normally pair sockets are for one-to-one communication, and a given peer +will reject new connections if it already has an active connection to another +peer.

+
+
+

In polyamorous mode, which is only available with version 1, a socket can +support many one-to-one connections. +In this mode, the application must +choose the remote peer to receive an ougoing message by setting the +nng_pipe to use for the outgoing message with +the nng_msg_set_pipe() function.

+
+
+

Most often the value of the outgoing pipe will be obtained from an incoming +message using the nng_msg_get_pipe() function, +such as when replying to an incoming message.

+
+
+

In order to prevent head-of-line blocking, if the peer on the given pipe +is not able to receive (or the pipe is no longer available, such as if the +peer has disconnected), then the message will be discarded with no notification +to the sender.

+
+
+
+

Protocol Options

+
+

The following protocol-specific options are available.

+
+
+
+
NNG_OPT_PAIR1_POLY
+
+

(Version 1 only). This option enables the use of polyamorous mode. +The value is read-write, and takes an integer boolean value. The default +false value (0) indicates that legacy monogamous mode should be used.

+
+
NNG_OPT_MAXTTL
+
+

(Version 1 only). Maximum time-to-live.

+
+
+
+
+
+

Protocol Headers

+
+

Version 0 of the pair protocol has no protocol-specific headers.

+
+
+

Version 1 of the pair protocol uses a single 32-bit unsigned value. The +low-order (big-endian) byte of this value contains a "hop" count, and is +used in conjuction with the +NNG_OPT_MAXTTL option to guard against +device forwarding loops. +This value is initialized to 1, and incremented each time the message is +received by a new node.

+
+
+
+
+
+

SEE ALSO

+ +
+
+ + diff --git a/man/tip/nng_pair.html b/man/tip/nng_pair.html deleted file mode 100644 index 00e7e572..00000000 --- a/man/tip/nng_pair.html +++ /dev/null @@ -1,721 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_pair(7) - - - - - - - -
-
-

SYNOPSIS

-
-
-
Version 0
-
-
#include <nng/protocol/pair0/pair.h>
-
-int nng_pair0_open(nng_socket *s);
-
-
-
-
Version 1
-
-
#include <nng/protocol/pair1/pair.h>
-
-int nng_pair1_open(nng_socket *s);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_pair protocol implements a peer-to-peer pattern, where -relationships between peers are one-to-one.

-
-
-

Version 1 of this protocol supports an optional polyamorous mode where a -peer can maintain multiple partnerships. Using this mode requires -some additional sophistication in the application.

-
-
-

Socket Operations

-
-

The nng_pair_open() call creates a pair socket. Normally, this -pattern will block when attempting to send a message, if no peer is -able to receive the message.

-
-
- - - - - -
- - -Even though this mode may appear to be "reliable", because back-pressure -prevents discarding messages most of the time, there are topologies involving -devices (see nng_device(3)) or raw mode sockets where -messages may be discarded. Applications that require reliable delivery -semantics should consider using nng_req(7) sockets, or -implement their own acknowledgement layer on top of pair sockets. -
-
-
-

In order to avoid head-of-line blocking conditions, polyamorous mode pair -sockets (version 1 only) discard messages if they are unable to deliver them -to a peer.

-
-
-
-

Protocol Versions

-
-

Version 0 is the legacy version of this protocol. It lacks any header -information, and is suitable when building simple one-to-one topologies.

-
-
- - - - - -
- - -Use version 0 if you need to communicate with other implementations, -including the legacy nanomsg library or -mangos. -
-
-
-

Version 1 of the protocol offers improved protection against loops when -used with nng_device(3). It also offers polyamorous -mode for forming multiple partnerships on a single socket.

-
-
- - - - - -
- - -Version 1 of this protocol is considered experimental at this time. -
-
-
-
-

Polyamorous Mode

-
-

Normally pair sockets are for one-to-one communication, and a given peer -will reject new connections if it already has an active connection to another -peer.

-
-
-

In polyamorous mode, which is only available with version 1, a socket can -support many one-to-one connections. In this mode, the application must -choose the remote peer to receive an ougoing message by setting the value -of the pipe ID on the outgoing message using -the nng_msg_set_pipe(3) function.

-
-
-

Most often the value of the outgoing pipe ID will be obtained from an incoming -message using the nng_msg_get_pipe(3) function, -such as when replying to an incoming message.

-
-
-

In order to prevent head-of-line blocking, if the peer on the given pipe -is not able to receive (or the pipe is no longer available, such as if the -peer has disconnected), then the message will be discarded with no notification -to the sender.

-
-
-
-

Protocol Options

-
-

The following protocol-specific options are available.

-
-
-
-
NNG_OPT_PAIR1_POLY
-
-

(Version 1 only). This option enables the use of polyamorous mode. -The value is read-write, and takes an integer boolean value. The default -false value (0) indicates that legacy monogamous mode should be used.

-
-
NNG_OPT_MAXTTL
-
-

(Version 1 only). Maximum time-to-live. This option is an integer value -between 0 and 255, -inclusive, and is the maximum number of "hops" that a message may -pass through until it is discarded. The default value is 8. A value -of 0 may be used to disable the loop protection, allowing an infinite -number of hops.

-
- - - - - -
- - -Each node along a forwarding path may have it’s own value for the -maximum time-to-live, and performs its own checks before forwarding a message. -Therefore it is helpful if all nodes in the topology use the same value for -this option. -
-
-
-
-
-
-
-

Protocol Headers

-
-

Version 0 of the pair protocol has no protocol-specific headers.

-
-
-

Version 1 of the pair protocol uses a single 32-bit unsigned value. The -low-order (big-endian) byte of this value contains a "hop" count, and is -used in conjuction with the NNG_OPT_MAXTTL option to guard against -device forwarding loops. This value is initialized to 1, and incremented -each time the message is received by a new node.

-
-
-
-
-
-

SEE ALSO

-
-
-

nng(7)

-
-
-
-
- - diff --git a/man/tip/nng_pair_open.3.html b/man/tip/nng_pair_open.3.html new file mode 100644 index 00000000..cc2fcd66 --- /dev/null +++ b/man/tip/nng_pair_open.3.html @@ -0,0 +1,591 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_pair_open(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
Version 0
+
+
#include <nng/protocol/pair0/pair.h>
+
+int nng_pair0_open(nng_socket *s);
+
+
+
+
Version 1
+
+
#include <nng/protocol/pair1/pair.h>
+
+int nng_pair1_open(nng_socket *s);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_pair0_open() and nng_pair1_open() functions +create a pair version 0 or version 1 +socket and return it at the location pointed to by s.

+
+
+
+
+

RETURN VALUES

+
+
+

These functions returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ENOMEM
+
+

Insufficient memory is available.

+
+
NNG_ENOTSUP
+
+

The protocol is not supported.

+
+
+
+
+
+
+

SEE ALSO

+ +
+
+ + diff --git a/man/tip/nng_pipe.5.html b/man/tip/nng_pipe.5.html new file mode 100644 index 00000000..90878eeb --- /dev/null +++ b/man/tip/nng_pipe.5.html @@ -0,0 +1,589 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_pipe(5) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+typedef uint32_t nng_pipe;
+
+
+
+
+
+

DESCRIPTION

+
+
+

+An nng_pipe is a handle to a “pipe”, which can be thought of as a single +connection. +(In most cases this is actually the case — the pipe is an abstraction for a +single TCP or IPC connection.) +Pipes are associated with either the listener or dialer that created them, +and therefore are also automatically associated with a single socket.

+
+
+ + + + + +
+ + +Most applications should never concern themselves with individual pipes. +However it is possible to access a pipe when more information about the +source of a message is needed, or when more control is required over +message delivery. +
+
+
+

Pipe objects are created by dialers (nng_dialer objects) +and listeners (nng_listener objects), which can be +thought of as “owning” the pipe.

+
+
+

Pipe objects may be destroyed by the +nng_pipe_close() function. +They are also closed when their “owning” dialer or listener is closed, +or when the remote peer closes the underlying connection.

+
+
+
+ +
+ + diff --git a/man/tip/nng_pipe_close.3.html b/man/tip/nng_pipe_close.3.html new file mode 100644 index 00000000..f730ccdd --- /dev/null +++ b/man/tip/nng_pipe_close.3.html @@ -0,0 +1,597 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_pipe_close(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+int nng_pipe_close(nng_socket s);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_pipe_close() function closes the supplied pipe, p. +Messages that have been submitted for sending may be flushed or delivered, +depending upon the transport and the setting of the +NNG_OPT_LINGER option.

+
+
+

Further attempts to use the pipe after this call returns will result +in NNG_ECLOSED.

+
+
+ + + + + +
+ + +Pipes are automatically closed when their creator closes, or when the +remote peer closes the underlying connection. +
+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ECLOSED
+
+

The pipe p is already closed or was never opened.

+
+
+
+
+
+
+

SEE ALSO

+ +
+
+ + diff --git a/man/tip/nng_pipe_getopt.3.html b/man/tip/nng_pipe_getopt.3.html new file mode 100644 index 00000000..3c29dc0e --- /dev/null +++ b/man/tip/nng_pipe_getopt.3.html @@ -0,0 +1,705 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_pipe_getopt(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+int nng_pipe_getopt(nng_pipe p, const char *opt, void *val, size_t *valszp);
+
+int nng_pipe_getopt_int(nng_pipe p, const char *opt, int *ivalp);
+
+int nng_pipe_getopt_ms(nng_pipe p, const char *opt, nng_duration *durp);
+
+int nng_pipe_getopt_size(nng_pipe p, const char *opt, size_t *zp);
+
+int nng_pipe_getopt_uint64(nng_pipe p, const char *opt, uint64_t *u64p);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_pipe_getopt() functions are used to retrieve option values for +the pipe p. +The actual options that may be retrieved in this way +vary, and many are documented in nng_options(5). +Additionally some transport-specific options are documented with the +transports themselves, and some protocol-specific options are documented +with the protocol.

+
+
+ + + + + +
+ + +All "options" on a pipe are read-only values, and intended to +facilitate understanding the identity of an associated peer. +Modification of options must be done on the listener or dialer using either +nng_listener_setopt() or +nng_dialer_getopt() +
+
+
+

Any option that is set on a dialer or listener will normally be retrievable +from pipes created by that dialer or listener.

+
+
+

In all of these forms, the option opt is retrieved from the pipe p.

+
+
+

The details of the type, size, and semantics of the option will depend +on the actual option, and will be documented with the option itself.

+
+
+

nng_pipe_getopt()::

+
+

This is untyped, and can be used to retrieve the value of any option. +A pointer to a buffer to receive the value in val, and the size of the +buffer shall be stored at the location referenced by valszp.

+
+
+

When the function returns, the actual size of the data copied (or that +would have been copied if sufficient space were present) is stored at +the location referened by valszp. +If the caller’s buffer is not large enough to hold the entire object, +then the copy is truncated. +Therefore the caller should check for trncation by verifying that the +size returned in valszp does not exceed the original buffer size.

+
+
+

It is acceptable to pass NULL for val if the value in valszp is zero. +This can be used to determine the size of the buffer needed to receive +the object.

+
+
+ + + + + +
+ + +Generally, it will be easier to use one of the typed forms instead. +Note however that no validation that the option is actually of the associated +type is performed, so the caller must take care to use the correct typed form. +
+
+
+
+

nng_pipe_getopt_int()::

+
+

This function is for options which take an integer (int) or boolean (bool). +The value will be stored at ivalp. For booleans the value will be eiher 0 +(false) or 1 (true).

+
+
+
+

nng_pipe_getopt_ms()::

+
+

This function is used to retrieve time durations +(<<nng_duration.5#,nng_duration) in milliseconds, which are stored in +durp.

+
+
+
+

nng_pipe_getopt_size()::

+
+

This function is used to retrieve a size into the pointer zp, +typically for buffer sizes, message maximum sizes, and similar options.

+
+
+
+

nng_pipe_getopt_uint64()::

+
+

This function is used to retriev a 64-bit unsigned value into the value +referenced by u64p. +This is typically used for options +related to identifiers, network numbers, and similar.

+
+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ECLOSED
+
+

Parameter p does not refer to an open pipe.

+
+
NNG_ENOTSUP
+
+

The option opt is not supported.

+
+
NNG_EWRITEONLY
+
+

The option opt is write-only.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_pipe_getopt.html b/man/tip/nng_pipe_getopt.html deleted file mode 100644 index 3b48d672..00000000 --- a/man/tip/nng_pipe_getopt.html +++ /dev/null @@ -1,670 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_pipe_getopt(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-
-int nng_pipe_getopt(nng_pipe p, const char *opt, void *val, size_t *valszp);
-int nng_pipe_getopt_int(nng_pipe p, const char *opt, int *ivalp);
-int nng_pipe_getopt_ms(nng_pipe p, const char *opt, nng_duration *durp);
-int nng_pipe_getopt_size(nng_pipe p, const char *opt, size_t *zp);
-int nng_pipe_getopt_uint64(nng_pipe p, const char *opt, uint64_t *u64p);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_pipe_getopt() functions are used to retrieve option values for -the pipe p. The actual options that may be retrieved in this way -vary, and are documented in the nng_getopt(3) manual. -Additionally some transport-specific options are documented with the -transports themselves, and some protocol-specific options are documented -with the protocol.

-
-
- - - - - -
- - -All "options" on a pipe are read-only values, and intended to -facilitate understanding the identity of an associated peer; modification -of options must be done on the listener or dialer using either -nng_listener_setopt(3) or -nng_dialer_getopt(3) -
-
-
-

Any option that is set on an endpoint will be retrievable from pipes -created by that endpoint.

-
-
-

In all of these forms, the option opt is retrieved from the pipe p.

-
-
-

The details of the type, size, and semantics of the option will depend -on the actual option, and will be documented with the option itself.

-
-
-

The first form of this function, nng_pipe_getopt(), can be used to -retrieve the value of any option. It is untyped. The caller must store -a pointer to a buffer to receive the value in val, and the size of the -buffer shall be stored at the location referenced by valszp.

-
-
-

When the function returns, the actual size of the data copied (or that -would have been copied if sufficient space were present) is stored at -the location referened by valszp. If the caller’s buffer is not large -enough to hold the entire object, then the copy is truncated. Therefore -the caller should validate that the returned size in valszp does not -exceed the original buffer size to check for truncation.

-
-
-

It is acceptable to pass NULL for val if the value in valszp is zero. -This can be used to determine the size of the buffer needed to receive -the object.

-
-
-

Generally, it will be easier to use one of the typed forms instead. Note -however that no validation that the option is actually of the associated -type is performed, so the caller must take care to use the correct typed -form.

-
-
-

The second form, nng_pipe_getopt_int(), -is for options which take an integer (or boolean). The value will -be stored at ivalp. For booleans the value will be eiher 0 (false) or 1 (true).

-
-
-

The third form, nng_pipe_getopt_ms(), is used to retrieve time durations -(such as timeouts), stored in durp as a number of milliseconds. -(The special value NNG_DUR_INFINITE means an infinite amount of time, and -the special value NNG_DUR_DEFAULT means a context-specific default.)

-
-
-

The fourth form, nng_pipe_getopt_size(), is used to retrieve a size -into the pointer zp, typically for buffer sizes, message maximum sizes, and -similar options.

-
-
-

The fifth form, nng_pipe_getopt_uint64(), is used to retrieve a -64-bit unsigned value into the value referenced by u64p. -This is typically used for options -related to identifiers, network numbers, and similar.

-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_ECLOSED
-
-

Parameter p does not refer to an open pipe.

-
-
NNG_ENOTSUP
-
-

The option opt is not supported.

-
-
NNG_EWRITEONLY
-
-

The option opt is write-only.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_pub.7.html b/man/tip/nng_pub.7.html new file mode 100644 index 00000000..0eb2fbef --- /dev/null +++ b/man/tip/nng_pub.7.html @@ -0,0 +1,617 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_pub(7) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/protocol/pubsub0/pub.h>
+
+int nng_pub0_open(nng_socket *s);
+
+
+
+
+
+

DESCRIPTION

+
+
+

+The pub protocol is one half of a publisher/subscriber pattern. +In this pattern, a publisher sends data, which is broadcast to all +subscribers. +The subscribing applications only see the data to which +they have subscribed.

+
+
+

The pub protocol is the publisher side, and the +sub protocol is the subscriber side.

+
+
+ + + + + +
+ + +In this implementation, the publisher delivers all messages to all +subscribers. +The subscribers maintain their own subscriptions, and filter them locally. +Thus, this pattern should not be used in an attempt to reduce bandwidth +consumption. +
+
+
+

The topics that subscribers subscribe to is just the first part of +the message body. +Applications should construct their messages accordingly.

+
+
+

Socket Operations

+
+

The nng_pub0_open() call creates a publisher socket. +This socket may be used to send messages, but is unable to receive them. +Attempts to receive messages will result in NNG_ENOTSUP.

+
+
+
+

Protocol Versions

+
+

Only version 0 of this protocol is supported. +(At the time of writing, no other versions of this protocol have been defined.)

+
+
+
+

Protocol Options

+
+

The pub protocol has no protocol-specific options.

+
+
+
+

Protocol Headers

+
+

The pub protocol has no protocol-specific headers.

+
+
+
+
+
+

SEE ALSO

+ +
+
+ + diff --git a/man/tip/nng_pub.html b/man/tip/nng_pub.html deleted file mode 100644 index 75517b45..00000000 --- a/man/tip/nng_pub.html +++ /dev/null @@ -1,613 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_pub(7) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/protocol/pubsub0/pub.h>
-
-int nng_pub0_open(nng_socket *s);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_pub protocol is one half of a publisher/subscriber pattern. -In this pattern, a publisher sends data, which is broadcast to all -subscribers. The subscribing applications only see the data to which -they have subscribed.

-
-
-

The nng_pub protocol is the publisher side, and the -nng_sub(7) protocol is the subscriber side.

-
-
- - - - - -
- - -In this implementation, the publisher delivers all messages to all -subscribers. The subscribers maintain their own subscriptions, and filter -them locally. Thus, this pattern should not be used in an attempt to -reduce bandwidth consumption. -
-
-
-

The topics that subscribers subscribe to is just the first part of -the message body. Applications should construct their messages -accordingly.

-
-
-

Socket Operations

-
-

The nng_pub0_open() call creates a publisher socket. This socket -may be used to send messages, but is unable to receive them. Attempts -to receive messages will result in NNG_ENOTSUP.

-
-
-
-

Protocol Versions

-
-

Only version 0 of this protocol is supported. (At the time of writing, -no other versions of this protocol have been defined.)

-
-
-
-

Protocol Options

-
-

The nng_pub protocol has no protocol-specific options.

-
-
-
-

Protocol Headers

-
-

The nng_pub protocol has no protocol-specific headers.

-
-
-
-
-
-

SEE ALSO

-
- -
-
-
- - diff --git a/man/tip/nng_pub_open.3.html b/man/tip/nng_pub_open.3.html new file mode 100644 index 00000000..e902e7e6 --- /dev/null +++ b/man/tip/nng_pub_open.3.html @@ -0,0 +1,583 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_pub_open(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/protocol/pubsub0/pub.h>
+
+int nng_pub0_open(nng_socket *s);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_pub0_open() function creates a pub version 0 +socket and returns it at the location pointed to by s.

+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ENOMEM
+
+

Insufficient memory is available.

+
+
NNG_ENOTSUP
+
+

The protocol is not supported.

+
+
+
+
+
+
+

SEE ALSO

+ +
+
+ + diff --git a/man/tip/nng_pull.7.html b/man/tip/nng_pull.7.html new file mode 100644 index 00000000..acc5b926 --- /dev/null +++ b/man/tip/nng_pull.7.html @@ -0,0 +1,603 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_pull(7) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/protocol/pipeline0/pull.h>
+
+int nng_pull0_open(nng_socket *s);
+
+
+
+
+
+

DESCRIPTION

+
+
+

+The pull protocol is one half of a pipeline pattern. +The other half is the push protocol.

+
+
+

In the pipeline pattern, pushers distribute messages to pullers. +Each message sent +by a pusher will be sent to one of its peer pullers, +chosen in a round-robin fashion +from the set of connected peers available for receiving. +This property makes this pattern useful in load-balancing scenarios.

+
+
+

Socket Operations

+
+

The nng_pull0_open() call creates a puller socket. +This socket may be used to receive messages, but is unable to send them. +Attempts to send messages will result in NNG_ENOTSUP.

+
+
+

When receiving messages, the pull protocol accepts messages as +they arrive from peers. +If two peers both have a message ready, the +order in which messages are handled is undefined.

+
+
+
+

Protocol Versions

+
+

Only version 0 of this protocol is supported. +(At the time of writing, no other versions of this protocol have been defined.)

+
+
+
+

Protocol Options

+
+

The pull protocol has no protocol-specific options.

+
+
+
+

Protocol Headers

+
+

The pull protocol has no protocol-specific headers.

+
+
+
+
+
+

SEE ALSO

+ +
+
+ + diff --git a/man/tip/nng_pull.html b/man/tip/nng_pull.html deleted file mode 100644 index 03c402f2..00000000 --- a/man/tip/nng_pull.html +++ /dev/null @@ -1,600 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_pull(7) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/protocol/pipeline0/pull.h>
-
-int nng_pull0_open(nng_socket *s);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_pull protocol is one half of a pipeline pattern. The other half -is the nng_push(7) protocol.

-
-
-

In the pipeline pattern, pushers distribute messages to pullers. -Each message sent -by a pusher will be sent to one of its peer pullers, -chosen in a round-robin fashion -from the set of connected peers available for receiving. -This property makes this pattern useful in load-balancing scenarios.

-
-
-

Socket Operations

-
-

The nng_pull0_open() call creates a puller socket. This socket -may be used to receive messages, but is unable to send them. Attempts -to send messages will result in NNG_ENOTSUP.

-
-
-

When receiving messages, the nng_pull protocol accepts messages as -they arrive from peers. If two peers both have a message ready, the -order in which messages are handled is undefined.

-
-
-
-

Protocol Versions

-
-

Only version 0 of this protocol is supported. (At the time of writing, -no other versions of this protocol have been defined.)

-
-
-
-

Protocol Options

-
-

The nng_pull protocol has no protocol-specific options.

-
-
-
-

Protocol Headers

-
-

The nng_pull protocol has no protocol-specific headers.

-
-
-
-
-
-

SEE ALSO

- -
-
- - diff --git a/man/tip/nng_pull_open.3.html b/man/tip/nng_pull_open.3.html new file mode 100644 index 00000000..4046888e --- /dev/null +++ b/man/tip/nng_pull_open.3.html @@ -0,0 +1,583 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_pull_open(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/protocol/pipeline0/pull.h>
+
+int nng_pull0_open(nng_socket *s);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_pull0_open() function creates a pull version 0 +socket and returns it at the location pointed to by s.

+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ENOMEM
+
+

Insufficient memory is available.

+
+
NNG_ENOTSUP
+
+

The protocol is not supported.

+
+
+
+
+
+
+

SEE ALSO

+ +
+
+ + diff --git a/man/tip/nng_push.7.html b/man/tip/nng_push.7.html new file mode 100644 index 00000000..bb508a87 --- /dev/null +++ b/man/tip/nng_push.7.html @@ -0,0 +1,619 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_push(7) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/protocol/pipeline0/push.h>
+
+int nng_push0_open(nng_socket *s);
+
+
+
+
+
+

DESCRIPTION

+
+
+

+The push protocol is one half of a pipeline pattern. +The other side is the pull protocol.

+
+
+

In the pipeline pattern, pushers distribute messages to pullers. +Each message sent by a pusher will be sent to one of its peer pullers, +chosen in a round-robin fashion +from the set of connected peers available for receiving. +This property makes this pattern useful in load-balancing scenarios.

+
+
+

Socket Operations

+
+

The nng_push0_open() call creates a pusher socket. +This socket may be used to send messages, but is unable to receive them. +Attempts to receive messages will result in NNG_ENOTSUP.

+
+
+

Send operations will observe flow control (back-pressure), so that +only peers capable of accepting a message will be considered. +If no peer is available to receive a message, then the send operation will +wait until one is available, or the operation times out.

+
+
+ + + + + +
+ + +Although the pipeline protocol honors flow control, and attempts +to avoid dropping messages, no guarantee of delivery is made. +Furthermore, as there is no capability for message acknowledgement, +applications that need reliable delivery are encouraged to consider the +req protocol instead. +
+
+
+
+

Protocol Versions

+
+

Only version 0 of this protocol is supported. +(At the time of writing, no other versions of this protocol have been defined.)

+
+
+
+

Protocol Options

+
+

The push protocol has no protocol-specific options.

+
+
+
+

Protocol Headers

+
+

The push protocol has no protocol-specific headers.

+
+
+
+
+
+

SEE ALSO

+ +
+
+ + diff --git a/man/tip/nng_push.html b/man/tip/nng_push.html deleted file mode 100644 index 87d9cf6b..00000000 --- a/man/tip/nng_push.html +++ /dev/null @@ -1,618 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_push(7) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/protocol/pipeline0/push.h>
-
-int nng_push0_open(nng_socket *s);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_push protocol is one half of a pipeline pattern. The -other side is the nng_pull(7) protocol.

-
-
-

In the pipeline pattern, pushers distribute messages to pullers. -Each message sent -by a pusher will be sent to one of its peer pullers, -chosen in a round-robin fashion -from the set of connected peers available for receiving. -This property makes this pattern useful in load-balancing scenarios.

-
-
-

Socket Operations

-
-

The nng_push0_open() call creates a pusher socket. This socket -may be used to send messages, but is unable to receive them. Attempts -to receive messages will result in NNG_ENOTSUP.

-
-
-

Send operations will observe flow control (back-pressure), so that -only peers capable of accepting a message will be considered. If no -peer is available to receive a message, then the send operation will -wait until one is available, or the operation times out.

-
-
- - - - - -
- - -Although the pipeline protocol honors flow control, and attempts -to avoid dropping messages, no guarantee of delivery is made. Furthermore, -as there is no capability for message acknowledgement, applications that -need reliable delivery are encouraged to consider the -nng_req(7) protocol instead. -
-
-
-
-

Protocol Versions

-
-

Only version 0 of this protocol is supported. (At the time of writing, -no other versions of this protocol have been defined.)

-
-
-
-

Protocol Options

-
-

The nng_push protocol has no protocol-specific options.

-
-
-
-

Protocol Headers

-
-

The nng_push protocol has no protocol-specific headers.

-
-
-
-
-
-

SEE ALSO

- -
-
- - diff --git a/man/tip/nng_push_open.3.html b/man/tip/nng_push_open.3.html new file mode 100644 index 00000000..720a9662 --- /dev/null +++ b/man/tip/nng_push_open.3.html @@ -0,0 +1,583 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_push_open(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/protocol/pipeline0/push.h>
+
+int nng_push0_open(nng_socket *s);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_push0_open() function creates a push version 0 +socket and returns it at the location pointed to by s.

+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ENOMEM
+
+

Insufficient memory is available.

+
+
NNG_ENOTSUP
+
+

The protocol is not supported.

+
+
+
+
+
+
+

SEE ALSO

+ +
+
+ + diff --git a/man/tip/nng_recv.3.html b/man/tip/nng_recv.3.html new file mode 100644 index 00000000..cacb0bba --- /dev/null +++ b/man/tip/nng_recv.3.html @@ -0,0 +1,657 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_recv(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+int nng_recv(nng_socket s, void *data, size_t *sizep int flags);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_recv() receives a message.

+
+
+

If the special flag NNG_FLAG_ALLOC is not specified, then the caller must +set data to a buffer to receive the message body content, and must store +the size of that buffer at the location pointed to by sizep. +When the function returns, if it is successful, the size at sizep will be +updated with the actual message body length copied into data.

+
+
+

If the special flag NNG_FLAG_ALLOC is present, then a “zero-copy” +mode is used. +In this case the caller must set the value of data to the location +of another pointer (of type void *), and the sizep pointer must be set +to a location to receive the size of the message body. +The function will then allocate a message buffer +(as if by nng_alloc()), fill it with +the message body, and store it at the address referenced by data, and update +the size referenced by sizep. +When this flag is present, the caller assumes +responsibility for disposing of the received buffer either by the function +nng_free() or reusing the message for sending (with the same +size) in a call to nng_send().

+
+
+ + + + + +
+ + +The semantics of what receiving a message means vary from protocol to +protocol, so examination of the protocol documentation is encouraged. +(For example, with a req socket a message may only be received +after a request has been sent, and a sub socket +may only receive messages corresponding to topics to which it has subscribed.) +Furthermore, some protocols may not support receiving data at all, such as +pub. +
+
+
+ + + + + +
+ + +The NNG_FLAG_ALLOC flag can be used to reduce data copies, thereby +increasing performance, particularly if the buffer is reused to send +a response using the same flag. +
+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_EAGAIN
+
+

The socket s cannot accept data for sending.

+
+
NNG_ECLOSED
+
+

The socket s is not open.

+
+
NNG_EINVAL
+
+

An invalid set of flags was specified.

+
+
NNG_EMSGSIZE
+
+

The received message did not fit in the size provided.

+
+
NNG_ENOMEM
+
+

Insufficient memory is available.

+
+
NNG_ENOTSUP
+
+

The protocol for socket s does not support receiving.

+
+
NNG_ESTATE
+
+

The socket s cannot receive data in this state.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_recv.html b/man/tip/nng_recv.html deleted file mode 100644 index 76d4131f..00000000 --- a/man/tip/nng_recv.html +++ /dev/null @@ -1,654 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_recv(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-
-int nng_recv(nng_socket s, void *data, size_t *sizep int flags);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_recv() receives a message.

-
-
-

If the special flag NNG_FLAG_ALLOC is not specified, then the caller must -set data to a buffer to receive the message body content, and must store -the size of that buffer at the location pointed to by sizep. When the -function returns, if it is successful, the size at sizep will be updated with -the actual message body length copied into data.

-
-
-

If the special flag NNG_FLAG_ALLOC is present, then a "zero-copy" mode is -used. In this case the caller must set the value of data to the location -of another pointer (of type void *), and the sizep pointer must be set -to a location to receive the size of the message body. The function will then -allocate a message buffer (as if by nng_alloc(3)), fill it with -the message body, and store it at the address referenced by data, and update -the size referenced by sizep. When this flag is present, the caller assumes -responsibility for disposing of the received buffer either by the function -nng_free(3) or reusing the message for sending (with the same -size) via nng_send(3).

-
-
- - - - - -
- - -The semantics of what receiving a message means vary from protocol to -protocol, so examination of the protocol documentation is encouraged. (For -example, with an nng_req(7) socket a message may only be received -after a request has been sent, and an nng_sub(7) socket -may only receive messages corresponding to topics to which it has subscribed.) -Furthermore, some protocols may not support receiving data at all, such as -nng_pub(7). -
-
-
- - - - - -
- - -The NNG_FLAG_ALLOC flag can be used to reduce data copies, thereby -increasing performance, particularly if the buffer is reused to send -a response using the same flag. -
-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_EAGAIN
-
-

The socket s cannot accept data for sending.

-
-
NNG_ECLOSED
-
-

The socket s is not open.

-
-
NNG_EINVAL
-
-

An invalid set of flags was specified.

-
-
NNG_EMSGSIZE
-
-

The received message did not fit in the size provided.

-
-
NNG_ENOMEM
-
-

Insufficient memory is available.

-
-
NNG_ENOTSUP
-
-

The protocol for socket s does not support receiving.

-
-
NNG_ESTATE
-
-

The socket s cannot receive data in this state.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_recv_aio.3.html b/man/tip/nng_recv_aio.3.html new file mode 100644 index 00000000..63dff4dc --- /dev/null +++ b/man/tip/nng_recv_aio.3.html @@ -0,0 +1,651 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_recv_aio(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+void nng_recv_aio(nng_socket s, nng_aio *aio);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_recv_aio() receives a message using the +socket s asynchronously.

+
+
+

When a message is successfully received by the socket, it is +stored in the aio by an internal call equivalent to +nng_aio_set_msg(), then the completion +callback on the aio is executed. +In this case, nng_aio_result() will +return zero. +The callback function is responsible for retrieving the message +and disposing of it appropriately.

+
+
+ + + + + +
+ + +Failing to accept and dispose of messages in this +case can lead to memory leaks. +
+
+
+

If for some reason the asynchronous receive cannot be completed +successfully (including by being canceled or timing out), then +the callback will still be executed, +but nng_aio_result() will be non-zero.

+
+
+ + + + + +
+ + +The semantics of what receiving a message means varies from protocol to +protocol, so examination of the protocol documentation is encouraged. +(For example, with a pub socket the data is broadcast, so that +any peers who have a suitable subscription will be able to receive it using +nng_recv() or a similar function.) +Furthermore, some protocols may not support receiving (such as +pub) or may require other conditions. +(For example, req sockets cannot normally receive data, which +are replies to requests, until they have first sent a request.) +
+
+
+
+
+

RETURN VALUES

+
+
+

None. (The operation completes asynchronously.)

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ECANCELED
+
+

The operation was aborted.

+
+
NNG_ECLOSED
+
+

The socket s is not open.

+
+
NNG_ENOMEM
+
+

Insufficient memory is available.

+
+
NNG_ENOTSUP
+
+

The protocol for socket s does not support receiving.

+
+
NNG_ESTATE
+
+

The socket s cannot receive data in this state.

+
+
NNG_ETIMEDOUT
+
+

The receive timeout expired.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_recvmsg.3.html b/man/tip/nng_recvmsg.3.html new file mode 100644 index 00000000..0dc88b3a --- /dev/null +++ b/man/tip/nng_recvmsg.3.html @@ -0,0 +1,643 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_recvmsg(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+int nng_recvmsg(nng_socket s, nng_msg **msgp, int flags);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_recvmsg() receives a message on socket s, storing the +received message at the location pointed to by msgp.

+
+
+ + + + + +
+ + +Using this function gives access to the message structure, and thus may +offer more functionality than the simpler nng_recv() function. +
+
+
+

The flags may contain the following value:

+
+
+
+
NNG_FLAG_NONBLOCK
+
+

The function returns immediately, even if no message is available. +Without this flag, the function will wait until a message is received +by the socket s, or any configured timer expires.

+
+
+
+
+ + + + + +
+ + +The semantics of what receiving a message means vary from protocol to +protocol, so examination of the protocol documentation is encouraged. +(For example, with an req socket a message may only be received +after a request has been sent, and an sub socket +may only receive messages corresponding to topics to which it has subscribed.) +Furthermore, some protocols may not support receiving data at all, such as +pub. +
+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_EAGAIN
+
+

The socket s cannot accept data for sending.

+
+
NNG_ECLOSED
+
+

The socket s is not open.

+
+
NNG_EINVAL
+
+

An invalid set of flags was specified.

+
+
NNG_ENOMEM
+
+

Insufficient memory is available.

+
+
NNG_ENOTSUP
+
+

The protocol for socket s does not support receiving.

+
+
NNG_ESTATE
+
+

The socket s cannot receive data in this state.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_recvmsg.html b/man/tip/nng_recvmsg.html deleted file mode 100644 index 8fe7537d..00000000 --- a/man/tip/nng_recvmsg.html +++ /dev/null @@ -1,643 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_recvmsg(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-
-int nng_recvmsg(nng_socket s, nng_msg **msgp, int flags);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_recvmsg() receives a message on socket s, storing the -received message at the location pointed to by msgp.

-
-
- - - - - -
- - -Using this function gives access to the message structure, and thus may -offer more functionality than the simpler nng_recv(3) function. -
-
-
-

The flags may contain the following value:

-
-
-
-
NNG_FLAG_NONBLOCK
-
-

The function returns immediately, even if no message is available. Without -this flag, the function will wait until a message is received by the socket -s, or any configured timer expires.

-
-
-
-
- - - - - -
- - -The semantics of what receiving a message means vary from protocol to -protocol, so examination of the protocol documentation is encouraged. (For -example, with an nng_req(7) socket a message may only be received -after a request has been sent, and an nng_sub(7) socket -may only receive messages corresponding to topics to which it has subscribed.) -Furthermore, some protocols may not support receiving data at all, such as -nng_pub(7). -
-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_EAGAIN
-
-

The socket s cannot accept data for sending.

-
-
NNG_ECLOSED
-
-

The socket s is not open.

-
-
NNG_EINVAL
-
-

An invalid set of flags was specified.

-
-
NNG_ENOMEM
-
-

Insufficient memory is available.

-
-
NNG_ENOTSUP
-
-

The protocol for socket s does not support receiving.

-
-
NNG_ESTATE
-
-

The socket s cannot receive data in this state.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_rep.7.html b/man/tip/nng_rep.7.html new file mode 100644 index 00000000..35f66d97 --- /dev/null +++ b/man/tip/nng_rep.7.html @@ -0,0 +1,621 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_rep(7) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/protocol/reqrep0/rep.h>
+
+int nng_rep0_open(nng_socket *s);
+
+
+
+
+
+

DESCRIPTION

+
+
+

+The rep protocol is one half of a request/reply pattern. +In this pattern, a requester sends a message to one replier, who +is expected to reply. +The request is resent if no reply arrives, +until a reply is received or the request times out.

+
+
+ + + + + +
+ + +This protocol is useful in setting up RPC-like services. +It is also “reliable”, in that a the requester will keep retrying until +a reply is received. +
+
+
+

The rep protocol is the replier side, and the +req protocol is the requester side.

+
+
+

Socket Operations

+
+

The nng_rep0_open() call creates a replier socket. +This socket may be used to receive messages (requests), and then to send +replies. +Generally a reply can only be sent after receiving a request. +(Attempts to receive a message will result in NNG_ESTATE if there +is no outstanding request.)

+
+
+

Attempts to send on a socket with no outstanding requests will result +in NNG_ESTATE.

+
+
+

Raw mode sockets (set with NNG_OPT_RAW) +ignore all these restrictions.

+
+
+
+

Protocol Versions

+
+

Only version 0 of this protocol is supported. +(At the time of writing, no other versions of this protocol have been defined.)

+
+
+

Protocol Options

+
+

The rep protocol has no protocol-specific options.

+
+
+
+

Protocol Headers

+
+

+The rep protocol uses a backtrace in the header. +This is more fully documented in the req manual.

+
+
+
+
+
+
+

SEE ALSO

+ +
+
+ + diff --git a/man/tip/nng_rep.html b/man/tip/nng_rep.html deleted file mode 100644 index 1afa7ba1..00000000 --- a/man/tip/nng_rep.html +++ /dev/null @@ -1,629 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_rep(7) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/protocol/reqrep0/rep.h>
-
-int nng_rep0_open(nng_socket *s);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_rep protocol is one half of a request/reply pattern. -In this pattern, a requester sends a message to one replier, who -is expected to reply. The request is resent if no reply arrives, -until a reply is received or the request times out.

-
-
- - - - - -
- - -This protocol is useful in setting up RPC-like services. It -is also "reliable", in that a the requester will keep retrying until -a reply is received. -
-
-
-

The nng_rep protocol is the replier side, and the -nng_req(7) protocol is the requester side.

-
-
-

Socket Operations

-
-

The nng_rep0_open() call creates a requester socket. This socket -may be used to receive messages (requests), and then to send replies. Generally -a reply can only be sent after receiving a request. (Attempts to receive -a message will result in NNG_ESTATE if there is no outstanding request.)

-
-
-

Attempts to send on a socket with no outstanding requests will result -in NNG_ESTATE.

-
-
-

Raw mode sockets (set with NNG_OPT_RAW) ignore all these restrictions.

-
-
-
-

Protocol Versions

-
-

Only version 0 of this protocol is supported. (At the time of writing, -no other versions of this protocol have been defined.)

-
-
-
-

Protocol Options

-
-

The following protocol-specific options are available.

-
-
-
-
NNG_OPT_MAXTTL
-
-

Maximum time-to-live. This option is an integer value -between 0 and 255, -inclusive, and is the maximum number of "hops" that a message may -pass through until it is discarded. The default value is 8. A value -of 0 may be used to disable the loop protection, allowing an infinite -number of hops.

-
-
-
-
-
-

Protocol Headers

-
-

The nng_rep protocol uses a backtrace in the header. This is -more fully documented in the nng_req(7) manual.

-
-
-
-
-
-

SEE ALSO

-
- -
-
-
- - diff --git a/man/tip/nng_rep_open.3.html b/man/tip/nng_rep_open.3.html new file mode 100644 index 00000000..ba51bcf3 --- /dev/null +++ b/man/tip/nng_rep_open.3.html @@ -0,0 +1,583 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_rep_open(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/protocol/reqrep0/rep.h>
+
+int nng_rep0_open(nng_socket *s);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_rep0_open() function creates a rep version 0 +socket and returns it at the location pointed to by s.

+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ENOMEM
+
+

Insufficient memory is available.

+
+
NNG_ENOTSUP
+
+

The protocol is not supported.

+
+
+
+
+
+
+

SEE ALSO

+ +
+
+ + diff --git a/man/tip/nng_req.7.html b/man/tip/nng_req.7.html new file mode 100644 index 00000000..a7a8f9a1 --- /dev/null +++ b/man/tip/nng_req.7.html @@ -0,0 +1,716 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_req(7) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/protocol/reqrep0/req.h>
+
+int nng_req0_open(nng_socket *s);
+
+
+
+
+
+

DESCRIPTION

+
+
+

+The req protocol is one half of a request/reply pattern. +In this pattern, a requester sends a message to one replier, who +is expected to reply. +The request is resent if no reply arrives, +until a reply is received or the request times out.

+
+
+ + + + + +
+ + +This protocol is useful in setting up RPC-like services. +It is also "reliable", in that a the requester will keep retrying until +a reply is received. +
+
+
+ + + + + +
+ + +Because requests are resent, it is important that they be idempotent +to ensure predictable and repeatable behavior even in the face of duplicated +requests, which can occur (for example if a reply message is lost for +some reason.) +
+
+
+

+The requester generally only has one outstanding request at a time unless +in "raw" mode (via +NNG_OPT_RAW), +and it will generally attempt to spread work requests to different peer repliers.

+
+
+ + + + + +
+ + +This property, when combined with nng_device() +can help provide a degree of load-balancing. +
+
+
+

The req protocol is the requester side, and the +rep protocol is the replier side.

+
+
+

Socket Operations

+
+

The nng_req0_open() call creates a requester socket. +This socket may be used to send messages (requests), +and then to receive replies. +Generally a reply can only be received after sending a request. +(Attempts to receive a message will result in NNG_ESTATE if there is no +outstanding request.)

+
+
+

Requests may be canceled by sending a different request. +This will cause the requester to discard any reply from the earlier request, +but it will not stop a replier +from processing a request it has already received or terminate a request +that has already been placed on the wire.

+
+
+

Attempts to receive on a socket with no outstanding requests will result +in NNG_ESTATE.

+
+
+

Raw mode sockets (set with NNG_OPT_RAW) +ignore all these restrictions.

+
+
+
+

Protocol Versions

+
+

Only version 0 of this protocol is supported. +(At the time of writing, no other versions of this protocol have been defined.)

+
+
+
+

Protocol Options

+
+

The following protocol-specific option is available.

+
+
+
+
NNG_OPT_REQ_RESENDTIME
+
+

This read/write option is a duration (32-bit unsigned integer) representing +a relative number of milliseconds. +When a new request is started, a timer of this duration is also started. +If no reply is received before this timer expires, then the request will +be resent. (Requests are also automatically resent if the peer to whom +the original request was sent disconnects, or if a peer becomes available +while the requester is waiting for an available peer.)

+
+
+
+
+
+

Protocol Headers

+
+

+This protocol uses a backtrace in the header. +This form uses a "stack" of 32-bit big-endian identifiers. +There must be at least one identifier, the request ID, which will be the +last element in the array, and must have the most significant bit set.

+
+
+

There may be additional peer IDs preceeding the request ID. +These will be distinguishable from the request ID by having their most +significant bit clear.

+
+
+

When a request message is received by a forwarding node (see +nng_device()), the forwarding node prepends a +32-bit peer ID (which must have the most significant bit clear), +which is the forwarder’s way of identifying the directly connected +peer from which it received the message. +(This peer ID, except for the +most significant bit, has meaning only to the forwarding node itself.)

+
+
+

It may help to think of prepending a peer ID as "pushing" a peer ID onto the +front of the stack of headers for the message. +(It will use the peer ID +it popped from the front to determine the next intermediate destination +for the reply.)

+
+
+

When a reply message is created, it is created using the same headers +that the request contained.

+
+
+

A forwarding node can "pop" the peer ID it originally pushed on the +message, stripping it from the front of the message as it does so.

+
+
+

When the reply finally arrives back at the initiating requestor, it +should have only a single element in the message, which will be the +request ID it originally used for the request.

+
+
+
+
+
+

SEE ALSO

+ +
+
+ + diff --git a/man/tip/nng_req.html b/man/tip/nng_req.html deleted file mode 100644 index 6803b348..00000000 --- a/man/tip/nng_req.html +++ /dev/null @@ -1,714 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_req(7) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/protocol/reqrep0/req.h>
-
-int nng_req0_open(nng_socket *s);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_req protocol is one half of a request/reply pattern. -In this pattern, a requester sends a message to one replier, who -is expected to reply. The request is resent if no reply arrives, -until a reply is received or the request times out.

-
-
- - - - - -
- - -This protocol is useful in setting up RPC-like services. It -is also "reliable", in that a the requester will keep retrying until -a reply is received. -
-
-
- - - - - -
- - -Because requests are resent, it is important that they be idempotent -to ensure predictable and repeatable behavior even in the face of duplicated -requests, which can occur (for example if a reply message is lost for -some reason.) -
-
-
-

The requester generally only has one outstanding request at a time unless -in "raw" mode (via NNG_OPT_RAW), and it will generally attempt to spread -work requests to different peer repliers.

-
-
- - - - - -
- - -This property, when combined with a device can -help provide a degree of load-balancing. -
-
-
-

The nng_req protocol is the requester side, and the -nng_rep(7) protocol is the replier side.

-
-
-

Socket Operations

-
-

The nng_req0_open() call creates a requester socket. This socket -may be used to send messages (requests), and then to receive replies. Generally -a reply can only be received after sending a request. (Attempts to receive -a message will result in NNG_ESTATE if there is no outstanding request.)

-
-
-

Requests may be canceled by sending a different request. This will -cause the requester to discard any reply from the earlier request, -but it will not stop a replier -from processing a request it has already received or terminate a request -that has already been placed on the wire.

-
-
-

Attempts to receive on a socket with no outstanding requests will result -in NNG_ESTATE.

-
-
-

Raw mode sockets (set with NNG_OPT_RAW) ignore all these restrictions.

-
-
-
-

Protocol Versions

-
-

Only version 0 of this protocol is supported. (At the time of writing, -no other versions of this protocol have been defined.)

-
-
-
-

Protocol Options

-
-

The following protocol-specific options are available.

-
-
-
-
NNG_OPT_REQ_RESENDTIME
-
-

This read/write option is a duration (32-bit unsigned integer) representing -a relative number of milliseconds. -When a new request is started, a timer of this duration is also started. -If no reply is received before this timer expires, then the request will -be resent. (Requests are also automatically resent if the peer to whom -the original request was sent disconnects, or if a peer becomes available -while the requester is waiting for an available peer.)

-
-
NNG_OPT_MAXTTL
-
-

Maximum time-to-live. This option is an integer value -between 0 and 255, -inclusive, and is the maximum number of "hops" that a message may -pass through until it is discarded. The default value is 8. A value -of 0 may be used to disable the loop protection, allowing an infinite -number of hops.

-
-
-
-
-
-

Protocol Headers

-
-

This protocol uses a backtrace in the header. This -form uses a "stack" of 32-bit big-endian identifiers. There must be -at least one identifier, the request ID, which will be the last -element in the array, and must have the most significant bit set.

-
-
-

There may be additional peer IDs preceeding the request ID. These -will be distinguishable from the request ID by having their most -significant bit clear.

-
-
-

When a request message is received by a forwarding node (see -nng_device(3)), the forwarding node prepends a -32-bit peer ID (which must have the most significant bit clear), -which is the forwarder’s way of identifying the directly connected -peer from which it received the message. (This peer ID, except for the -most significant bit, has meaning only to the forwarding node itself.)

-
-
-

It may help to think of prepending a peer ID as "pushing" a peer ID onto the -front of the stack of headers for the message. (It will use the peer ID -it popped from the front to determine the next intermediate destination -for the reply.)

-
-
-

When a reply message is created, it is created using the same headers -that the request contained.

-
-
-

A forwarding node can "pop" the peer ID it originally pushed on the -message, stripping it from the front of the message as it does so.

-
-
-

When the reply finally arrives back at the initiating requestor, it -should have only a single element in the message, which will be the -request ID it originally used for the request.

-
-
-
-
-
-

SEE ALSO

- -
-
- - diff --git a/man/tip/nng_req_open.3.html b/man/tip/nng_req_open.3.html new file mode 100644 index 00000000..fcdd1c5d --- /dev/null +++ b/man/tip/nng_req_open.3.html @@ -0,0 +1,583 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_req_open(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/protocol/reqrep0/req.h>
+
+int nng_req0_open(nng_socket *s);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_req0_open() function creates a req version 0 +socket and returns it at the location pointed to by s.

+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ENOMEM
+
+

Insufficient memory is available.

+
+
NNG_ENOTSUP
+
+

The protocol is not supported.

+
+
+
+
+
+
+

SEE ALSO

+ +
+
+ + diff --git a/man/tip/nng_respondent.7.html b/man/tip/nng_respondent.7.html new file mode 100644 index 00000000..63000d52 --- /dev/null +++ b/man/tip/nng_respondent.7.html @@ -0,0 +1,625 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_respondent(7) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/protocol/survey0/respond.h>
+
+int nng_respondent0_open(nng_socket *s);
+
+
+
+
+
+

DESCRIPTION

+
+
+

+The respondent protocol is one half of a survey pattern. +In this pattern, a surveyor sends a survey, which is broadcast to all +peer respondents. +The respondents then have a chance to reply (but are not obliged to reply). +The survey itself is a timed event, so that responses +received after the survey has finished are discarded.

+
+
+ + + + + +
+ + +This protocol is useful in solving voting problems, such as leader +election in cluster configurations, as well as certain kinds of service +discovery problems. +
+
+
+

The respondent protocol is the respondent side, and the +surveyor protocol is the surveyor side.

+
+
+

Socket Operations

+
+

The nng_respondent0_open() call creates a +respondent socket. +This socket may be used to receive messages, and then to send replies. +A reply can only be sent after receiving a survey, and generally the +reply will be sent to surveyor from whom the last survey was received.

+
+
+

Respondents may discard a survey by simply not replying to it.

+
+
+

Raw mode sockets (set with NNG_OPT_RAW) +ignore all these restrictions.

+
+
+
+

Protocol Versions

+
+

Only version 0 of this protocol is supported. +(At the time of writing, no other versions of this protocol have been defined. +An earlier and incompatible version of the protocol was used in older +pre-releases of nanomsg, but was not released in any +production version.)

+
+
+
+

Protocol Options

+
+

The respondent protocol has no protocol-specific options.

+
+
+
+

Protocol Headers

+
+

+The respondent protocol uses a backtrace in the header. +This is more fully documented in the surveyor manual.

+
+
+
+
+ +
+ + diff --git a/man/tip/nng_respondent.html b/man/tip/nng_respondent.html deleted file mode 100644 index 78dcd316..00000000 --- a/man/tip/nng_respondent.html +++ /dev/null @@ -1,640 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_respondent(7) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/protocol/survey0/respond.h>
-
-int nng_respondent0_open(nng_socket *s);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_respondent protocol is one half of a survey pattern. -In this pattern, a surveyor sends a survey, which is broadcast to all -peer respondents. The respondents then have a chance to reply (but after -not obliged to). The survey itself is a timed event, so that responses -received after the survey has finished are discarded.

-
-
- - - - - -
- - -This protocol is useful in solving voting problems, such as leader -election in cluster configurations, as well as certain kinds of service -discovery problems. -
-
-
-

The nng_respondent protocol is the respondent side, and the -nng_surveyor(7) protocol is the surveyor side.

-
-
-

Socket Operations

-
-

The nng_respondent0_open() call creates a respondent socket. This socket -may be used to receive messages, and then to send replies. Generally -a reply can only be sent after receiving a survey, and generally the -reply will be sent to surveyor from whom the last survey was received.

-
-
-

Respondents may discard a survey by simply not replying to it.

-
-
-

Raw mode sockets (set with NNG_OPT_RAW) ignore all these restrictions.

-
-
-
-

Protocol Versions

-
-

Only version 0 of this protocol is supported. (At the time of writing, -no other versions of this protocol have been defined. An earlier and -incompatible version of the protocol was used in older pre-releases of -nanomsg, but was not released in any production -version.)

-
-
-
-

Protocol Options

-
-

The following protocol-specific options are available.

-
-
-
-
NNG_OPT_MAXTTL
-
-

Maximum time-to-live. This option is an integer value -between 0 and 255, -inclusive, and is the maximum number of "hops" that a message may -pass through until it is discarded. The default value is 8. A value -of 0 may be used to disable the loop protection, allowing an infinite -number of hops.

-
-
-
-
-
-

Protocol Headers

-
-

The nng_respondent protocol uses a backtrace in the header. This -form uses an array of 32-bit big-endian identifiers, where the first -element in the array -identifies the local peer identifier to which the message will next be sent. -This is a hop-by-hop header where each element in a path adds routing -information to the end when sending a survey, and when replying removes -elements to obtain the next hop information. The survey ID is at the -end of this header and is inserted into the header as its first element -by the originating surveyor. (Survey IDs are distinguished from hops by -having their high order bit set to one.)

-
-
-
-
-
-

SEE ALSO

- -
-
- - diff --git a/man/tip/nng_respondent_open.3.html b/man/tip/nng_respondent_open.3.html new file mode 100644 index 00000000..b9f893b7 --- /dev/null +++ b/man/tip/nng_respondent_open.3.html @@ -0,0 +1,585 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_respondent_open(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/protocol/survey0/respond.h>
+
+int nng_respondent0_open(nng_socket *s);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_respondent0_open() function creates a +respondent +version 0 socket and returns it at the location +pointed to by s.

+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ENOMEM
+
+

Insufficient memory is available.

+
+
NNG_ENOTSUP
+
+

The protocol is not supported.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_send.3.html b/man/tip/nng_send.3.html new file mode 100644 index 00000000..7ad0b119 --- /dev/null +++ b/man/tip/nng_send.3.html @@ -0,0 +1,697 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_send(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+int nng_send(nng_socket s, void *data, size_t size, int flags);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_send() function sends a message containing the data of +length size using the socket s.

+
+
+ + + + + +
+ + +The semantics of what sending a message means vary from protocol to +protocol, so examination of the protocol documentation is encouraged. +(For example, with an nng socket the data is broadcast, so that +any peers who have a suitable subscription will be able to receive it using +nng_recv() or a similar function.) +Furthermore, some protocols may not support sending data (such as +sub) or may require other conditions. +(For example, rep sockets cannot normally send data, +which are responses to requests, until they have first received a request.) +
+
+
+

The flags may contain either of (or neither of) the following values:

+
+
+
+
NNG_FLAG_NONBLOCK
+
+

The function returns immediately, regardless of whether +the socket is able to accept the data or not. If the socket is unable +to accept the data (such as if backpressure exists because the peers +are consuming messages too slowly, or no peer is present), then the +function will return with NNG_EAGAIN. If this flag is not specified, +then the function will block if such a condition exists.

+
+
NNG_FLAG_ALLOC
+
+

The data was allocated using nng_alloc(), or was +obtained from a call to nng_recv() with +the NNG_FLAG_ALLOC flag. +If this function returns success, then the data is "owned" by the +function, and it will assume responsibility for calling +nng_free() when it is no longer needed. +In the absence of this flag, the data is copied by the implementation +before the function returns to the caller.

+
+
+
+
+ + + + + +
+ + +The NNG_FLAG_ALLOC flag can be used to reduce data copies, thereby +increasing performance. +
+
+
+ + + + + +
+ + +Regardless of the presence or absence of NNG_FLAG_NONBLOCK, there may +be queues between the sender and the receiver. +Furthermore, there is no guarantee that the message has actually been delivered. +Finally, with some protocols, the semantic is implictly NNG_FLAG_NONBLOCK, +such as with pub sockets, which are best-effort delivery only. +
+
+
+ + + + + +
+ + +When using NNG_FLAG_ALLOC, it is important that the value of size +match the actual allocated size of the data. +Using an incorrect size results +in unspecified behavior, which may include heap corruption, program crashes, +or transdimensional mutation of the program’s author. +
+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_EAGAIN
+
+

The socket s cannot accept data for sending.

+
+
NNG_ECLOSED
+
+

The socket s is not open.

+
+
NNG_EINVAL
+
+

An invalid set of flags was specified.

+
+
NNG_EMSGSIZE
+
+

The value of size is too large.

+
+
NNG_ENOMEM
+
+

Insufficient memory is available.

+
+
NNG_ENOTSUP
+
+

The protocol for socket s does not support sending.

+
+
NNG_ESTATE
+
+

The socket s cannot send data in this state.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_send.html b/man/tip/nng_send.html deleted file mode 100644 index cb7b88a5..00000000 --- a/man/tip/nng_send.html +++ /dev/null @@ -1,694 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_send(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-
-int nng_send(nng_socket s, void *data, size_t size, int flags);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_send() sends a message containing the data of length size -using the socket s.

-
-
- - - - - -
- - -The semantics of what sending a message means vary from protocol to -protocol, so examination of the protocol documentation is encouraged. (For -example, with an nng_pub(7) socket the data is broadcast, so that -any peers who have a suitable subscription will be able to receive it using -nng_recv(3) or a similar function.) Furthermore, some protocols -may not support sending data (such as nng_sub(7)) or may -require other conditions. (For example, nng_rep(7) sockets -cannot normally send data, which are responses to requests, until they have -first received a request.) -
-
-
-

The flags may contain either of (or neither of) the following values:

-
-
-
-
NNG_FLAG_NONBLOCK
-
-

The function returns immediately, regardless of whether -the socket is able to accept the data or not. If the socket is unable -to accept the data (such as if backpressure exists because the peers -are consuming messages too slowly, or no peer is present), then the -function will return with NNG_EAGAIN. If this flag is not specified, -then the function will block if such a condition exists.

-
-
NNG_FLAG_ALLOC
-
-

The data was allocated using nng_alloc(3), or was obtained -from a call to nng_recv(3) with the NNG_FLAG_ALLOC flag. -If this function returns success, then the data is "owned" by the -function, and it will assume responsibility for calling -nng_free(3) when it is no longer needed. In the absence -of this flag, the data is copied by the implementation before the -function returns to the caller.

-
-
-
-
- - - - - -
- - -The NNG_FLAG_ALLOC flag can be used to reduce data copies, thereby -increasing performance. -
-
-
- - - - - -
- - -Regardless of the presence or absence of NNG_FLAG_NONBLOCK, there may -be queues between the sender and the receiver. Furthermore, there is no -guarantee that the message has actually been delivered. Finally, with some -protocols, the semantic is implictly NNG_FLAG_NONBLOCK, such as with -nng_pub(7) sockets, which are best-effort delivery only. -
-
-
- - - - - -
- - -When using NNG_FLAG_ALLOC, it is important that the value of size -match the actual allocated size of the data. Using an incorrect size results -in unspecified behavior, which may include heap corruption, program crashes, -or transdimensional mutation of the program’s author. -
-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_EAGAIN
-
-

The socket s cannot accept data for sending.

-
-
NNG_ECLOSED
-
-

The socket s is not open.

-
-
NNG_EINVAL
-
-

An invalid set of flags was specified.

-
-
NNG_EMSGSIZE
-
-

The value of size is too large.

-
-
NNG_ENOMEM
-
-

Insufficient memory is available.

-
-
NNG_ENOTSUP
-
-

The protocol for socket s does not support sending.

-
-
NNG_ESTATE
-
-

The socket s cannot send data in this state.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_send_aio.3.html b/man/tip/nng_send_aio.3.html new file mode 100644 index 00000000..b6080af4 --- /dev/null +++ b/man/tip/nng_send_aio.3.html @@ -0,0 +1,664 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_send_aio(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+void nng_send_aio(nng_socket s, nng_aio *aio);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_send_aio() sends a message using the +socket s asynchronously.

+
+
+

The message to send must have previously been set on the aio +using the nng_aio_set_msg() function. +The function assumes “ownership” of the message.

+
+
+

If the message was successfully queued for delivery to the socket, +then the aio will be completed, and nng_aio_result() +will return zero. In this case the socket will dispose of the +message when it is finished with it.

+
+
+ + + + + +
+ + +The operation will be “completed”, and the callback associated +with the aio executed, as soon as the socket accepts the message +for sending. +This does not indicate that the message was actually delivered, as it +may still be buffered in the sending socket, buffered in the receiving +socket, or in flight over physical media. +
+
+
+

If the operation fails for any reason (including cancellation or timeout), +then the aio callback will be executed and nng_aio_result() +will return a non-zero error status. +In this case, the callback has a responsibity to retrieve the message from +the aio with nng_aio_get_msg() and dispose of +it appropriately. +(This may include retrying the send operation on the same or a different +socket, or deallocating the message with nng_msg_free().)

+
+
+ + + + + +
+ + +The semantics of what sending a message means varies from protocol to +protocol, so examination of the protocol documentation is encouraged. +(For example, with a pub socket the data is broadcast, so that +any peers who have a suitable subscription will be able to receive it using +nng_recv() or a similar function.) +Furthermore, some protocols may not support sending (such as +sub) or may require other conditions. +(For example, rep sockets cannot normally send data, which +are responses to requests, until they have first received a request.) +
+
+
+
+
+

RETURN VALUES

+
+
+

None. (The operation completes asynchronously.)

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ECANCELED
+
+

The operation was aborted.

+
+
NNG_ECLOSED
+
+

The socket s is not open.

+
+
NNG_EMSGSIZE
+
+

The message is too large.

+
+
NNG_ENOMEM
+
+

Insufficient memory is available.

+
+
NNG_ENOTSUP
+
+

The protocol for socket s does not support sending.

+
+
NNG_ESTATE
+
+

The socket s cannot send data in this state.

+
+
NNG_ETIMEDOUT
+
+

The send timeout expired.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_sendmsg.3.html b/man/tip/nng_sendmsg.3.html new file mode 100644 index 00000000..83bfacf2 --- /dev/null +++ b/man/tip/nng_sendmsg.3.html @@ -0,0 +1,681 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_sendmsg(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+int nng_sendmsg(nng_socket s, nng_msg *msg, int flags);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_sendmsg() sends message msg using the socket s.

+
+
+

If the function returns zero, indicating it has accepted the message for +delivery, then the msg is “owned” by the socket s, and the caller +must not make any further use of it. +The socket will free the message when it is finished.

+
+
+

If the function returns non-zero, then it is the caller’s responsibility +to dispose of the msg, which may include freeing it, sending it to +another socket, or simply trying again later.

+
+
+ + + + + +
+ + +Using this function gives access to the message structure, and may +offer more functionality than the simpler nng_send() function. +
+
+
+ + + + + +
+ + +The semantics of what sending a message means vary from protocol to +protocol, so examination of the protocol documentation is encouraged. +(For example, with a pub socket the data is broadcast, so that +any peers who have a suitable subscription will be able to receive it using +nng_recv() or a similar function.) +Furthermore, some protocols may not support sending (such as +sub) or may require other conditions. +(For example, rep sockets cannot normally send data, which +are responses to requests, until they have first received a request.) +
+
+
+

The flags may contain the following value:

+
+
+
+
NNG_FLAG_NONBLOCK
+
+

The function returns immediately, regardless of whether +the socket is able to accept the data or not. +If the socket is unable to accept the data (such as if backpressure exists +because the peers are consuming messages too slowly, or no peer is present), +then the function will return with NNG_EAGAIN. +If this flag is not specified, then the function will block if such a +condition exists.

+
+
+
+
+ + + + + +
+ + +Regardless of the presence or absence of NNG_FLAG_NONBLOCK, there may +be queues between the sender and the receiver. +Furthermore, there is no guarantee that the message has actually been delivered. +Finally, with some protocols, the semantic is implictly NNG_FLAG_NONBLOCK, +such as with pub sockets, which are best-effort delivery only. +
+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_EAGAIN
+
+

The socket s cannot accept data for sending.

+
+
NNG_ECLOSED
+
+

The socket s is not open.

+
+
NNG_EINVAL
+
+

An invalid set of flags was specified.

+
+
NNG_EMSGSIZE
+
+

The value of size is too large.

+
+
NNG_ENOMEM
+
+

Insufficient memory is available.

+
+
NNG_ENOTSUP
+
+

The protocol for socket s does not support sending.

+
+
NNG_ESTATE
+
+

The socket s cannot send data in this state.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_sendmsg.html b/man/tip/nng_sendmsg.html deleted file mode 100644 index 18169087..00000000 --- a/man/tip/nng_sendmsg.html +++ /dev/null @@ -1,678 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_sendmsg(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-
-int nng_sendmsg(nng_socket s, nng_msg *msg, int flags);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_sendmsg() sends message msg using the socket s.

-
-
-

If the function returns zero, indicating it has accepted the message for -delivery, then the msg is “owned” by the socket s, and the caller -must not make any further use of it. The socket will free the message -when it is finished.

-
-
-

If the function returns non-zero, then it is the caller’s responsibility -to dispose of the msg, which may include freeing it, sending it to -another socket, or simply trying again later.

-
-
- - - - - -
- - -Using this function gives access to the message structure, and may -offer more functionality than the simpler nng_send(3) function. -
-
-
- - - - - -
- - -The semantics of what sending a message means vary from protocol to -protocol, so examination of the protocol documentation is encouraged. (For -example, with an nng_pub(7) socket the data is broadcast, so that -any peers who have a suitable subscription will be able to receive it using -nng_recv(3) or a similar function.) Furthermore, some protocols -may not support sending (such as nng_sub(7)) or may -require other conditions. (For example, nng_rep(7) sockets -cannot normally send data, which are responses to requests, until they have -first received a request.) -
-
-
-

The flags may contain the following value:

-
-
-
-
NNG_FLAG_NONBLOCK
-
-

The function returns immediately, regardless of whether -the socket is able to accept the data or not. If the socket is unable -to accept the data (such as if backpressure exists because the peers -are consuming messages too slowly, or no peer is present), then the -function will return with NNG_EAGAIN. If this flag is not specified, -then the function will block if such a condition exists.

-
-
-
-
- - - - - -
- - -Regardless of the presence or absence of NNG_FLAG_NONBLOCK, there may -be queues between the sender and the receiver. Furthermore, there is no -guarantee that the message has actually been delivered. Finally, with some -protocols, the semantic is implictly NNG_FLAG_NONBLOCK, such as with -nng_pub(7) sockets, which are best-effort delivery only. -
-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_EAGAIN
-
-

The socket s cannot accept data for sending.

-
-
NNG_ECLOSED
-
-

The socket s is not open.

-
-
NNG_EINVAL
-
-

An invalid set of flags was specified.

-
-
NNG_EMSGSIZE
-
-

The value of size is too large.

-
-
NNG_ENOMEM
-
-

Insufficient memory is available.

-
-
NNG_ENOTSUP
-
-

The protocol for socket s does not support sending.

-
-
NNG_ESTATE
-
-

The socket s cannot send data in this state.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_setopt.3.html b/man/tip/nng_setopt.3.html new file mode 100644 index 00000000..a878f751 --- /dev/null +++ b/man/tip/nng_setopt.3.html @@ -0,0 +1,698 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_setopt(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+int nng_setopt(nng_socket s, const char *opt, const void *val, size_t valsz);
+
+int nng_setopt_int(nng_socket s, const char *opt, int ival);
+
+int nng_setopt_ms(nng_socket s, const char *opt, nng_duration dur);
+
+int nng_setopt_ptr(nng_socket s, const char *opt, void *ptr);
+
+int nng_setopt_size(nng_socket s, const char *opt, size_t z);
+
+int nng_setopt_string(nng_socket s, const char *opt, const char *str);
+
+int nng_setopt_uint64(nng_socket s, const char *opt, uint64_t u64);
+
+
+
+
+
+

DESCRIPTION

+
+
+

+The nng_setopt() functions are used to configure options for +the socket s. +The actual options that may be configured in this way vary, and are +specified by opt. +A number of them are documented in nng_options(5).

+
+
+

Additionally some transport-specific and protocol-specific options are +documented with the transports and protocols themselves.

+
+
+

The details of the type, size, and semantics of the option will depend +on the actual option, and will be documented with the option itself.

+
+
+ + + + + +
+ + +Generally, it will be easier to use one of the typed versions +of this function. +
+
+
+ + + + + +
+ + +No validation that the option is actually of the associated +type is performed, so the caller must take care to use the correct typed form. +
+
+
+
+
nng_setopt()
+
+

This function is untyped, and can be used to configure any arbitrary data. +The val pointer addresses the data to copy, and valsz is the +size of the objected located at val.

+
+
nng_setopt_int()
+
+

This function is for options which take an integer (int) or boolean (bool). +The ival is passed to the option. +For booleans pass either 0 (false) or 1 (true).

+
+
nng_setopt_ms()
+
+

This function is used to configure time durations (such as timeouts) using +type nng_duration. +The duration dur is an integer number of milliseconds.

+
+
nng_setopt_ptr()
+
+

This function is used to pass a pointer, ptr, to structured data. +The data referenced by ptr is generally managed by other functions. +For example, TLS configuration objects created with +(nng_tls_config_alloc()) +can be passed this way. +Note that this form is somewhat special in that the object is generally +not copied, but instead the pointer to the object is copied.

+
+
nng_setopt_size()
+
+

This function is used to configure a size, z, typically for buffer sizes, +message maximum sizes, and similar options.

+
+
nng_setopt_string()
+
+

This function is used to pass configure a string, str. +Strings passed this way must be legal UTF-8 or ASCII strings, terminated +with a NUL (\0) byte. +(Other constraints may apply as well, see the documentation for each option +for details.)

+
+
nng_setopt_uint64()
+
+

This function is used to configure a 64-bit unsigned value, u64. +This is typically used for options related to identifiers, network numbers, +and similar.

+
+
+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ECLOSED
+
+

Parameter s does not refer to an open socket.

+
+
NNG_EINVAL
+
+

The value being passed is invalid.

+
+
NNG_ENOTSUP
+
+

The option opt is not supported.

+
+
NNG_EREADONLY
+
+

The option opt is read-only.

+
+
NNG_ESTATE
+
+

The socket is in an inappropriate state for setting this option.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_sleep_aio.3.html b/man/tip/nng_sleep_aio.3.html new file mode 100644 index 00000000..ed7e01e0 --- /dev/null +++ b/man/tip/nng_sleep_aio.3.html @@ -0,0 +1,592 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_sleep_aio(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+void nng_sleep_aio(nng_duration msec, nng_aio *aio);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_sleep_aio() function performs an asynchronous “sleep`”, +causing the callback for aio to be executed after msec milliseconds. +If the sleep finishes completely, the result will always be zero.

+
+
+ + + + + +
+ + +If a timeout is set on aio using +nng_aio_set_timeout(), and it is shorter +than msec, +then the sleep will wake up early, with a result code of NNG_ETIMEDOUT. +
+
+
+
+
+

RETURN VALUES

+
+
+

None.

+
+
+
+
+

ERRORS

+
+
+

None.

+
+
+
+ +
+ + diff --git a/man/tip/nng_sockaddr.5.html b/man/tip/nng_sockaddr.5.html new file mode 100644 index 00000000..42b0021d --- /dev/null +++ b/man/tip/nng_sockaddr.5.html @@ -0,0 +1,635 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_sockaddr(5) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+typedef union nng_sockaddr {
+    uint16_t            s_family;
+    nng_sockaddr_ipc    s_ipc;
+    nng_sockaddr_inproc s_inproc;
+    nng_sockaddr_in     s_in;
+    nng_sockaddr_in6    s_in6;
+    nng_sockaddr_zt     s_zt;
+} nng_sockaddr;
+
+enum sockaddr_family {
+    NNG_AF_UNSPEC = 0,
+    NNG_AF_INPROC = 1,
+    NNG_AF_IPC    = 2,
+    NNG_AF_INET   = 3,
+    NNG_AF_INET6  = 4,
+    NNG_AF_ZT     = 5,
+};
+
+
+
+
+
+

DESCRIPTION

+
+
+

+An nng_sockaddr is a structure used for +representing the addresses used by underlying transports, such as TCP/IP +addresses, IPC paths, and so forth.

+
+
+
+
+

The name sockaddr is based on it’s similarity with POSIX struct sockaddr, +but in the nng library, these addreses are more closely affiliated with +instances of nng_pipe +than of nng_socket. +The naming confusion is unfortunate.

+
+
+
+
+

This structure is actually a union, with different members for different +types of addreses.

+
+
+

Every member structure has as its first element a uint16_t field +containing the “address family”. +This overlaps the s_family member of the union, and indicates which +specific member should be used.

+
+
+

The values of s_family are as follows:

+
+
+
+
NNG_AF_UNSPEC
+
+

Invalid address, no other valid fields.

+
+
NNG_AF_INPROC
+
+

Address for intraprocess communication (nng_inproc(7)). +The s_inproc member is valid.

+
+
NNG_AF_IPC
+
+

Address for interprocess communication (nng_ipc(7)). +The s_path member is valid.

+
+
NNG_AF_INET
+
+

Address for TCP/IP (v4) communication. +The s_in member is valid.

+
+
NNG_AF_INET6
+
+

Address for TCP/IP (v6) communication. +The s_in6 member is valid.

+
+
NNG_AF_ZT
+
+

Address for ZeroTier transport (nng_zerotier(7)). +The s_zt member is valid.

+
+
+
+
+

Please see the manual pages for each individual type for more information.

+
+
+
+ +
+ + diff --git a/man/tip/nng_sockaddr_in.5.html b/man/tip/nng_sockaddr_in.5.html new file mode 100644 index 00000000..64591ddf --- /dev/null +++ b/man/tip/nng_sockaddr_in.5.html @@ -0,0 +1,619 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_sockaddr_in(5) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+enum sockaddr_family {
+    NNG_AF_INET = 3,
+};
+
+typedef struct {
+    uint16_t sa_family;
+    uint16_t sa_port;
+    uint32_t sa_addr;
+} nng_sockaddr_in;
+
+
+
+
+
+

DESCRIPTION

+
+
+

+An nng_sockaddr_in is the flavor of nng_sockaddr +used to represent TCP (and sometimes UDP) addresses, +including the Internet Protocol (IP) address and port number.

+
+
+

This structure is used with IPv4 addresses. +A different structure, nng_sockaddr_in6, is used +for IPv6 addresses.

+
+
+

The following structure members are present:

+
+
+
+
sa_family
+
+

This field will always have the value NNG_AF_INET.

+
+
sa_port
+
+

This field holds the TCP or UDP port number, in network byte-order. +A zero value here is used when no specific port number is indicated.

+
+
sa_addr
+
+

This field holds the IP addresss in +network-byte order.

+
+
+
+
+ + + + + +
+ + +The sa_port and sa_addr fields are in network-byte order to +facilitate their use with system APIs such as inet_ntop(). +Most platforms use some form of BSD-derived network API, which uses +network-byte order in the various structurs (such as sockaddr_in). +
+
+
+ + + + + +
+ + +This field appears similar to BSD sockaddr_in, but it is +not the same, and they may not be used interchangeabley. +
+
+
+
+ +
+ + diff --git a/man/tip/nng_sockaddr_in6.5.html b/man/tip/nng_sockaddr_in6.5.html new file mode 100644 index 00000000..c3c256ea --- /dev/null +++ b/man/tip/nng_sockaddr_in6.5.html @@ -0,0 +1,619 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_sockaddr_in6(5) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+enum sockaddr_family {
+    NNG_AF_INET6 = 4,
+};
+
+typedef struct {
+    uint16_t sa_family;
+    uint16_t sa_port;
+    uint8_t  sa_addr[16];
+} nng_sockaddr_in6;
+
+
+
+
+
+

DESCRIPTION

+
+
+

+An nng_sockaddr_in6 is the flavor of nng_sockaddr +used to represent TCP (and sometimes UDP) addresses, +including the Internet Protocol (IP) address and port number.

+
+
+

This structure is used with IPv6 addresses. +A different structure, nng_sockaddr_in, is used +for IPv4 addresses.

+
+
+

The following structure members are present:

+
+
+
+
sa_family
+
+

This field will always have the value NNG_AF_INET6.

+
+
sa_port
+
+

This field holds the TCP or UDP port number, in network byte-order. +A zero value here is used when no specific port number is indicated.

+
+
sa_addr
+
+

This field holds the IP addresss in +network-byte order.

+
+
+
+
+ + + + + +
+ + +The sa_port and sa_addr fields are in network-byte order to +facilitate their use with system APIs such as inet_ntop(). +Most platforms use some form of BSD-derived network API, which uses +network-byte order in the various structurs (such as sockaddr_in6). +
+
+
+ + + + + +
+ + +This field appears similar to BSD sockaddr_in6, but it is +not the same, and they may not be used interchangeabley. +
+
+
+
+ +
+ + diff --git a/man/tip/nng_sockaddr_inproc.5.html b/man/tip/nng_sockaddr_inproc.5.html new file mode 100644 index 00000000..561dae2a --- /dev/null +++ b/man/tip/nng_sockaddr_inproc.5.html @@ -0,0 +1,595 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_sockaddr_inproc(5) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+enum sockaddr_family {
+    NNG_AF_INPROC = 1,
+};
+
+typedef struct {
+    uint16_t sa_family;
+    uint16_t sa_name[128];
+} nng_sockaddr_inproc;
+
+
+
+
+
+

DESCRIPTION

+
+
+

+An nng_sockaddr_inproc is the flavor of nng_sockaddr +used to represent addresses associated with intra-process communication +using the inproc transport.

+
+
+

The following structure members are present:

+
+
+
+
sa_family
+
+

This field will always have the value NNG_AF_INPROC.

+
+
sa_name
+
+

This field holds an arbitrary C string, which is the “name” of +the address. +The string must be NUL terminated, but no other restrictions exist.

+
+
+
+
+ + + + + +
+ + +In order to ensure maximum compatibility, applications should avoid +hard coding the sizeof the sa_name member explicitly, but use the +sizeof operator to determine its actual size at compile time. +Furthermore, the size is guaranteed to be at least 128. +
+
+
+
+
+

SEE ALSO

+ +
+
+ + diff --git a/man/tip/nng_sockaddr_ipc.5.html b/man/tip/nng_sockaddr_ipc.5.html new file mode 100644 index 00000000..f86074a5 --- /dev/null +++ b/man/tip/nng_sockaddr_ipc.5.html @@ -0,0 +1,627 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_sockaddr_ipc(5) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+enum sockaddr_family {
+    NNG_AF_IPC = 2,
+};
+
+typedef struct {
+    uint16_t sa_family;
+    uint16_t sa_path[128];
+} nng_sockaddr_ipc;
+
+
+
+
+
+

DESCRIPTION

+
+
+

+An nng_sockaddr_ipc is the flavor of nng_sockaddr +used to represent addresses associated with IPC communication +using the ipc transport.

+
+
+

The following structure members are present:

+
+
+
+
sa_family
+
+

This field will always have the value NNG_AF_IPC.

+
+
sa_path
+
+

This field holds the C string corresponding to pathname where the +IPC socket is located. +For systems using UNIX domain sockets, this will be an absolute +pathname in the filesystem, where the UNIX domain socket is located. +For Windows systems, this is the pathname of the Named Pipe, without +the leading \\.pipe\ portion, which will be automatically added.

+
+
+
+
+ + + + + +
+ + +At this time, there is no support for Linux “abstract sockets”. +
+
+
+ + + + + +
+ + +In order to ensure maximum compatibility, applications should avoid +hard coding the sizeof the sa_path member explicitly, but use the +sizeof operator to determine its actual size at compile time. +Furthermore, the size is guaranteed to be at least 128, but paths of +this length may not be supported on all systems. +
+
+
+ + + + + +
+ + +If compatibility with legacy nanomsg applications is required, +then pathnames must not be longer than 122 bytes, including the final +NUL byte. +This is because legacy versions of nanomsg cannot express URLs +longer than 128 bytes, including the ipc:// prefix. +
+
+
+
+
+

SEE ALSO

+ +
+
+ + diff --git a/man/tip/nng_sockaddr_zt.5.html b/man/tip/nng_sockaddr_zt.5.html new file mode 100644 index 00000000..a8873b70 --- /dev/null +++ b/man/tip/nng_sockaddr_zt.5.html @@ -0,0 +1,630 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_sockaddr_zt(5) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+enum sockaddr_family {
+    NNG_AF_ZT = 5,
+};
+
+typedef struct {
+    uint16_t sa_family;
+    uint64_t sa_nwid;
+    uint64_t sa_nodeid;
+    uint32_t sa_port;
+} nng_sockaddr_zt;
+
+
+
+
+
+

DESCRIPTION

+
+
+

+An nng_sockaddr_zt is the flavor of nng_sockaddr +used to represent ZeroTier addresses, including the +port number used by the +zt transport.

+
+
+ + + + + +
+ + +The ZeroTier transport, and the details of this structure, +are still considered experimental, and subject to change. +
+
+
+

The following structure members are present:

+
+
+
+
sa_family
+
+

This field will always have the value NNG_AF_ZT.

+
+
sa_nwid
+
+

+This field holds the ZeroTiero network number (or ID). +This value is in native byte order.

+
+
sa_nodeid
+
+

This field holds the ZeroTier node ID. +This value is in native byte order, and only the lower 40 bits +are significant. +(ZeroTier node numbers are 40 bits long.) +A zero value here is used for a wild-card to indicate that the +caller’s own node number be used.

+
+
sa_port
+
+

This field holds the “port number” used by the +zt transport to distinguish different +sockets. +This value in native byte order. +A zero value here indicates that a port number should be chosen +randomly from the ephemeral ports. +Only the lower 24 bits of the port number are used.

+
+
+
+
+ + + + + +
+ + +ZeroTier port numbers are in native byte order, and are larger +than TCP/IP port numbers. +They are also not part of the ZeroTier protocol itself, but defined by +the Scalability Protocols binding for them. +
+
+
+
+
+

SEE ALSO

+ +
+
+ + diff --git a/man/tip/nng_socket.5.html b/man/tip/nng_socket.5.html new file mode 100644 index 00000000..a6aa2d16 --- /dev/null +++ b/man/tip/nng_socket.5.html @@ -0,0 +1,586 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_socket(5) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+typedef uint32_t nng_socket;
+
+
+
+
+
+

DESCRIPTION

+
+
+

An nng_socket is a handle to an underlying “socket” object. +All communication between the application and remote Scalability Protocol +peers is done through sockets. +A given socket can have multiple dialers (nng_dialer) +and/or (nng_listener), and multiple +pipes (nng_pipe), and +may be connected to multiple transports at the same time. +However, a given socket will have exactly one “protocol” associated with it, +and is responsible for any state machines or other protocol-specific logic.

+
+
+ + + + + +
+ + +Although nng_socket is an integer data type, these objects are not +ordinary file descriptors, and can only be used with the functions that +explicitly indicate that it safe and appropropate to do so. +
+
+
+

Each nng_socket is created by a protocol-specific constructor, such as +nng_rep_open(). +When the socket is no longer needed, it can be closed with +nng_close().

+
+
+
+ +
+ + diff --git a/man/tip/nng_strerror.3.html b/man/tip/nng_strerror.3.html new file mode 100644 index 00000000..df5f1491 --- /dev/null +++ b/man/tip/nng_strerror.3.html @@ -0,0 +1,592 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_strerror(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+const char * nng_strerror(int err);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_strerror() returns the human-readable description of the +given nng error in err.

+
+
+ + + + + +
+ + +The returned error message is provided in US English, but in the +future locale-specific strings may be presented instead. +
+
+
+ + + + + +
+ + +The specific strings associated with specific error messages are +subject to change. +Therefore applications must not depend on the message, +but may use them verbatim when supplying information to end-users, such +as in diagnostic messages or log entries. +
+
+
+
+
+

RETURN VALUES

+
+
+

This function returns the human-readable error message, terminated +by a NUL byte.

+
+
+
+
+

SEE ALSO

+
+ +
+
+
+ + diff --git a/man/tip/nng_strerror.html b/man/tip/nng_strerror.html deleted file mode 100644 index 718e92d4..00000000 --- a/man/tip/nng_strerror.html +++ /dev/null @@ -1,591 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_strerror(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-
-const char * nng_strerror(int err);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_strerror() returns the human-readable description of the -given nng error in err.

-
-
- - - - - -
- - -The returned error message is provided in US English, but in the -future locale-specific strings may be presented instead. -
-
-
- - - - - -
- - -The specific strings associated with specific error messages are -subject to change. Therefore applications must not depend on the message, -but may use them verbatim when supplying information to end-users, such -as in diagnostic messages or log entries. -
-
-
-
-
-

RETURN VALUES

-
-
-

This function returns the human-readable error message, terminated -by a NUL byte.

-
-
-
-
-

SEE ALSO

-
- -
-
-
- - diff --git a/man/tip/nng_sub.7.html b/man/tip/nng_sub.7.html new file mode 100644 index 00000000..5eb5e6bd --- /dev/null +++ b/man/tip/nng_sub.7.html @@ -0,0 +1,647 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_sub(7) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/protocol/pubsub0/sub.h>
+
+int nng_sub0_open(nng_socket *s);
+
+
+
+
+
+

DESCRIPTION

+
+
+

+The sub protocol is one half of a publisher/subscriber pattern. +In this pattern, a publisher sends data, which is broadcast to all subscribers. +The subscribing applications only see the data to which they have subscribed.

+
+
+

The sub protocol is the subscriber side, and the +pub protocol is the publisher side.

+
+
+ + + + + +
+ + +In this implementation, the publisher delivers all messages to all +subscribers. +The subscribers maintain their own subscriptions, and filter them locally. +Thus, this pattern should not be used in an attempt to +reduce bandwidth consumption. +
+
+
+

The topics that subscribers subscribe to is just the first part of +the message body. +Applications should construct their messages accordingly.

+
+
+

Socket Operations

+
+

The nng_sub0_open() call creates a subscriber socket. +This socket may be used to receive messages, but is unable to send them. +Attempts to send messages will result in NNG_ENOTSUP.

+
+
+
+

Protocol Versions

+
+

Only version 0 of this protocol is supported. +(At the time of writing, no other versions of this protocol have been defined.)

+
+
+
+

Protocol Options

+
+

The following protocol-specific options are available.

+
+
+
+
NNG_OPT_SUB_SUBSCRIBE
+
+

This option registers a topic that the subscriber is interested in. +The option is write-only, and takes an array of bytes, of arbitrary size. +Each incoming message is checked against the list of subscribed topics. +If the body begins with the entire set of bytes in the topic, then the +message is accepted. If no topic matches, then the message is +discarded.

+
+ + + + + +
+ + +To receive all messages, an empty topic (zero length) can be used. +
+
+
+
NNG_OPT_SUB_UNSUBSCRIBE
+
+

This option, also read-only, removes a topic from the subscription list. +Note that if the topic was not previously subscribed to with +NNG_OPT_SUB_SUBSCRIBE then an NNG_ENOENT error will result.

+
+
+
+
+
+

Protocol Headers

+
+

The sub protocol has no protocol-specific headers.

+
+
+
+
+
+

SEE ALSO

+ +
+
+ + diff --git a/man/tip/nng_sub.html b/man/tip/nng_sub.html deleted file mode 100644 index 761bea02..00000000 --- a/man/tip/nng_sub.html +++ /dev/null @@ -1,644 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_sub(7) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/protocol/pubsub0/sub.h>
-
-int nng_sub0_open(nng_socket *s);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_sub protocol is one half of a publisher/subscriber pattern. -In this pattern, a publisher sends data, which is broadcast to all -subscribers. The subscribing applications only see the data to which -they have subscribed.

-
-
-

The nng_sub protocol is the subscriber side, and the -nng_pub(7) protocol is the publisher side.

-
-
- - - - - -
- - -In this implementation, the publisher delivers all messages to all -subscribers. The subscribers maintain their own subscriptions, and filter -them locally. Thus, this pattern should not be used in an attempt to -reduce bandwidth consumption. -
-
-
-

The topics that subscribers subscribe to is just the first part of -the message body. Applications should construct their messages -accordingly.

-
-
-

Socket Operations

-
-

The nng_sub0_open() call creates a subscriber socket. This socket -may be used to receive messages, but is unable to send them. Attempts -to send messages will result in NNG_ENOTSUP.

-
-
-
-

Protocol Versions

-
-

Only version 0 of this protocol is supported. (At the time of writing, -no other versions of this protocol have been defined.)

-
-
-
-

Protocol Options

-
-

The following protocol-specific options are available.

-
-
-
-
NNG_OPT_SUB_SUBSCRIBE
-
-

This option registers a topic that the subscriber is interested in. -The option is write-only, and takes an array of bytes, of arbitrary size. -Each incoming message is checked against the list of subscribed topics. -If the body begins with the entire set of bytes in the topic, then the -message is accepted. If no topic matches, then the message is -discarded.

-
- - - - - -
- - -To receive all messages, an empty topic (zero length) can be used. -
-
-
-
NNG_OPT_SUB_UNSUBSCRIBE
-
-

This option, also read-only, removes a topic from the subscription list. -Note that if the topic was not previously subscribed to with -NNG_OPT_SUB_SUBSCRIBE then an NNG_ENOENT error will result.

-
-
-
-
-
-

Protocol Headers

-
-

The nng_sub protocol has no protocol-specific headers.

-
-
-
-
-
-

SEE ALSO

-
- -
-
-
- - diff --git a/man/tip/nng_sub_open.3.html b/man/tip/nng_sub_open.3.html new file mode 100644 index 00000000..8d1c9663 --- /dev/null +++ b/man/tip/nng_sub_open.3.html @@ -0,0 +1,583 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_sub_open(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/protocol/pubsub0/sub.h>
+
+int nng_sub0_open(nng_socket *s);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_sub0_open() function creates a sub version 0 +socket and returns it at the location pointed to by s.

+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ENOMEM
+
+

Insufficient memory is available.

+
+
NNG_ENOTSUP
+
+

The protocol is not supported.

+
+
+
+
+
+
+

SEE ALSO

+ +
+
+ + diff --git a/man/tip/nng_surveyor.7.html b/man/tip/nng_surveyor.7.html new file mode 100644 index 00000000..a7e6777c --- /dev/null +++ b/man/tip/nng_surveyor.7.html @@ -0,0 +1,688 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_surveyor(7) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/protocol/survey0/survey.h>
+
+int nng_surveyor0_open(nng_socket *s);
+
+
+
+
+
+

DESCRIPTION

+
+
+

+The surveyor protocol is one half of a survey pattern. +In this pattern, a surveyor sends a survey, which is broadcast to all +peer respondents. +The respondents then have a chance to reply (but are not obliged to reply). +The survey itself is a timed event, so that responses +received after the survey has finished are discarded.

+
+
+ + + + + +
+ + +This protocol is useful in solving voting problems, such as +leader election in cluster configurations, as well as certain kinds of +service discovery problems. +
+
+
+

The surveyor protocol is the surveyor side, and the +respondent protocol is the respondent side.

+
+
+

Socket Operations

+
+

The nng_surveyor0_open() +call creates a surveyor socket. +This socket may be used to send messages (surveys), and then to receive replies. +A reply can only be received after sending a survey. +A surveyor can normally expect to receive at most one reply from each responder. +(Messages can be duplicated in some topologies, +so there is no guarantee of this.)

+
+
+

Attempts to receive on a socket with no outstanding survey will result +in NNG_ESTATE. +If the survey times out while the surveyor is waiting +for replies, then the result will be NNG_ETIMEDOUT.

+
+
+

Only one survey can be outstanding at a time; sending another survey will +cancel the prior one, and any responses from respondents from the prior +survey that arrive after this will be discarded.

+
+
+

Raw mode sockets (set with NNG_OPT_RAW) +ignore all these restrictions.

+
+
+
+

Protocol Versions

+
+

Only version 0 of this protocol is supported. +(At the time of writing, no other versions of this protocol have been defined. +An earlier and incompatible version of the protocol was used in older +pre-releases of +nanomsg, but was not released in any production +version.)

+
+
+
+

Protocol Options

+
+

The following protocol-specific options is available.

+
+
+
+
NNG_OPT_SURVEYOR_SURVEYTIME
+
+

This read/write option is an nng_duration +representing a postive number of milliseconds that following surveys +will last. +When a new survey is started, a timer of this duration is also started. +Any responses arriving this time will be discarded. +Attempts to receive +after the timer expires with no other surveys started will result in +NNG_ESTATE. +Attempts to receive when this timer expires will result in NNG_ETIMEDOUT.

+
+
+
+
+
+

Protocol Headers

+
+

+This form uses a "stack" of 32-bit big-endian identifiers. +There must be at least one identifier, the survey ID, which will be the +last element in the array, and must have the most significant bit set.

+
+
+

There may be additional peer IDs preceeding the survey ID. +These will be distinguishable from the survey ID by having their most +significant bit clear.

+
+
+

When a survey message is received by a forwarding node (see +nng_device()), the forwarding node prepends a +32-bit peer ID (which must have the most significant bit clear), +which is the forwarder’s way of identifying the directly connected +peer from which it received the message. +(This peer ID, except for the +most significant bit, has meaning only to the forwarding node itself.)

+
+
+

It may help to think of prepending a peer ID as "pushing" a peer ID onto the +front of the stack of headers for the message. +(It will use the peer ID +it popped from the front to determine the next intermediate destination +for the response.)

+
+
+

When a response message is created, it is created using the same headers +that the survey contained.

+
+
+

A forwarding node can "pop" the peer ID it originally pushed on the +message, stripping it from the front of the message as it does so.

+
+
+

When the response finally arrives back at the initiating surveyor, it +should have only a single element in the message, which will be the +survey ID it originally used for the request.

+
+
+
+
+ +
+ + diff --git a/man/tip/nng_surveyor.html b/man/tip/nng_surveyor.html deleted file mode 100644 index 63346636..00000000 --- a/man/tip/nng_surveyor.html +++ /dev/null @@ -1,658 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_surveyor(7) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/protocol/survey0/survey.h>
-
-int nng_surveyor0_open(nng_socket *s);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_surveyor protocol is one half of a survey pattern. -In this pattern, a surveyor sends a survey, which is broadcast to all -peer respondents. The respondents then have a chance to reply (but after -not obliged to). The survey itself is a timed event, so that responses -received after the survey has finished are discarded.

-
-
- - - - - -
- - -This protocol is useful in solving voting problems, such as leader -election in cluster configurations, as well as certain kinds of service -discovery problems. -
-
-
-

The nng_surveyor protocol is the surveyor side, and the -nng_respondent(7) protocol is the respondent side.

-
-
-

Socket Operations

-
-

The nng_surveyor0_open() call creates a respondent socket. This socket -may be used to send messages (surveys), and then to receive replies. Generally -a reply can only be received after sending a survey. Generally a surveyor -can expect to receive at most one reply from each responder. (Messages -can be duplicated in some topologies, so there is no guarantee of this.)

-
-
-

Attempts to receive on a socket with no outstanding survey will result -in NNG_ESTATE. If the survey times out while the surveyor is waiting -for replies, then the result will be NNG_ETIMEDOUT.

-
-
-

Only one survey can be outstanding at a time; sending another survey will -cancel the prior one, and any responses from respondents from the prior -survey that arrive after this will be discarded.

-
-
-

Raw mode sockets (set with NNG_OPT_RAW) ignore all these restrictions.

-
-
-
-

Protocol Versions

-
-

Only version 0 of this protocol is supported. (At the time of writing, -no other versions of this protocol have been defined. An earlier and -incompatible version of the protocol was used in older pre-releases of -nanomsg, but was not released in any production -version.)

-
-
-
-

Protocol Options

-
-

The following protocol-specific options are available.

-
-
-
-
NNG_OPT_SURVEYOR_SURVEYTIME
-
-

This read/write option is a duration (32-bit unsigned integer) representing -a relative number of milliseconds that following surveys will last. -When a new survey is started, a timer of this duration is also started. -Any responses arriving this time will be discarded. Attempts to receive -after the timer expires with no other surveys started will result in -NNG_ESTATE. Attempts to receive when this timer expires will result in -NNG_ETIMEDOUT.

-
-
NNG_OPT_MAXTTL
-
-

Maximum time-to-live. This option is an integer value -between 0 and 255, -inclusive, and is the maximum number of "hops" that a message may -pass through until it is discarded. The default value is 8. A value -of 0 may be used to disable the loop protection, allowing an infinite -number of hops.

-
-
-
-
-
-

Protocol Headers

-
-

The nng_surveyor protocol uses a backtrace in the header. This -form uses an array of 32-bit big-endian identifiers, where the first -element in the array -identifies the local peer identifier to which the message will next be sent. -This is a hop-by-hop header where each element in a path adds routing -information to the end when sending a survey, and when replying removes -elements to obtain the next hop information. The survey ID is at the -end of this header and is inserted into the header as its first element -by the originating surveyor. (Survey IDs are distinguished from hops by -having their high order bit set to one.)

-
-
-
-
-
-

SEE ALSO

- -
-
- - diff --git a/man/tip/nng_surveyor_open.3.html b/man/tip/nng_surveyor_open.3.html new file mode 100644 index 00000000..dea6f37b --- /dev/null +++ b/man/tip/nng_surveyor_open.3.html @@ -0,0 +1,584 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_surveyor_open(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/protocol/survey0/survey.h>
+
+int nng_surveyor0_open(nng_socket *s);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_surveyor0_open() function creates a surveyor +version 0 socket and returns it at the location +pointed to by s.

+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ENOMEM
+
+

Insufficient memory is available.

+
+
NNG_ENOTSUP
+
+

The protocol is not supported.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_tcp.7.html b/man/tip/nng_tcp.7.html new file mode 100644 index 00000000..ba24b629 --- /dev/null +++ b/man/tip/nng_tcp.7.html @@ -0,0 +1,659 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_tcp(7) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/transport/tcp/tcp.h>
+
+int nng_tcp_register(void);
+
+
+
+
+
+

DESCRIPTION

+
+
+

+The tcp transport provides communication support between +nng sockets across a TCP/IP network. +Both IPv4 and IPv6 are supported when the underlying platform also supports it.

+
+
+

Registration

+
+

The nng_tcp transport is generally built-in to the nng core, so +no extra steps to use it should be necessary.

+
+
+
+

URI Format

+
+

+This transport uses URIs using the scheme tcp://, followed by +an IP address or hostname, followed by a colon and finally a +TCP port number. +For example, to contact port 80 on the localhost either of the following URIs +could be used: tcp://127.0.0.1:80 or tcp://localhost:80.

+
+
+

When specifying IPv6 addresses, the address must be enclosed in +square brackets ([]) to avoid confusion with the final colon +separating the port.

+
+
+

For example, the same port 80 on the IPv6 loopback address (::1) would +be specified as tcp://[::1]:80.

+
+
+ + + + + +
+ + +When using symbolic names, the name is resolved when the +name is first used. nng won’t become aware of changes in the +name resolution until restart, +usually. +(This is a bug and will likely be fixed in the future.) +
+
+
+

The special value of 0 (INADDR_ANY) +can be used for a listener to indicate that it should listen on all +interfaces on the host. +A short-hand for this form is to either omit the address, or specify +the asterisk (*) character. +For example, the following three URIs are all equivalent, +and could be used to listen to port 9999 on the host:

+
+
+
    +
  1. +

    tcp://0.0.0.0:9999

    +
  2. +
  3. +

    tcp://*:9999

    +
  4. +
  5. +

    tcp://:9999

    +
  6. +
+
+
+

The entire URI must be less than NNG_MAXADDRLEN bytes long.

+
+
+
+

Socket Address

+
+

When using an nng_sockaddr structure, +the actual structure is either of type +nng_sockaddr_in (for IPv4) or +nng_sockaddr_in6 (for IPv6).

+
+
+
+

Transport Options

+
+

The nng_tcp transport has no special options.

+
+
+ + + + + +
+ + +Options for TCP keepalive, linger, and nodelay are planned. +
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_tcp.html b/man/tip/nng_tcp.html deleted file mode 100644 index 4127e7aa..00000000 --- a/man/tip/nng_tcp.html +++ /dev/null @@ -1,691 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_tcp(7) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/transport/tcp/tcp.h>
-
-int nng_tcp_register(void);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_tcp transport provides communication support between -nng sockets across a TCP/IP network. Both IPv4 and IPv6 -are supported when the underlying platform also supports it.

-
-
-

Registration

-
-

The tcp transport is generally built-in to the nng core, so -no extra steps to use it should be necessary.

-
-
-
-

URI Format

-
-

This transport uses URIs using the scheme tcp://, followed by -an IP address or hostname, followed by a colon and finally a -TCP port number. For example, to contact port 80 on the localhost -either of the following URIs could be used: tcp://127.0.0.1:80 or -tcp://localhost:80.

-
-
-

When specifying IPv6 addresses, the address must be enclosed in -square brackets ([]) to avoid confusion with the final colon -separating the port.

-
-
-

For example, the same port 80 on the IPv6 loopback address ('::1') would -be specified as tcp://[::1]:80.

-
-
- - - - - -
- - -When using symbolic names, the name is resolved when the -name is first used. nng won’t become aware of changes in the -name resolution until restart, -usually.[1] -
-
-
-

The special value of 0 (INADDR_ANY) can be used for a listener -to indicate that it should listen on all interfaces on the host. -A short-hand for this form is to either omit the address, or specify -the asterisk (*) character. For example, the following three -URIs are all equivalent, and could be used to listen to port 9999 -on the host:

-
-
-
    -
  1. -

    tcp://0.0.0.0:9999

    -
  2. -
  3. -

    tcp://*:9999

    -
  4. -
  5. -

    tcp://:9999

    -
  6. -
-
-
-

The entire URI must be less than NNG_MAXADDRLEN bytes long.

-
-
-
-

Socket Address

-
-

When using an nng_sockaddr structure, the actual structure is either -of type nng_sockaddr_in (for IPv4) or nng_sockaddr_in6 (for IPv6). -These are struct types with the following definitions:

-
-
-
-
#define NNG_AF_INET    3 (1)
-#define NNG_AF_INET6   4
-#define NNG_MAXADDRLEN 128
-
-typedef struct {
-    // ... (2)
-    uint16_t sa_family;   // must be NNG_AF_INET
-    uint16_t sa_port;     // TCP port number
-    uint32_t sa_addr;
-    // ...
-} nng_sockaddr_in;
-
-typedef struct {
-    // ... (2)
-    uint16_t sa_family;   // must be NNG_AF_INET6
-    uint16_t sa_port;     // TCP port number
-    uint8_t  sa_addr[16];
-    // ...
-} nng_sockaddr_in6;
-
-
-
- - - - - - - - - -
1The values of these macros may change, so applications -should avoid depending upon their values and instead use them symbolically.
2Other members may be present, but only those listed here -are suitable for application use.
-
-
-

The sa_family member will have the value NNG_AF_INET or NNG_AF_INET6. -The sa_port and sa_addr are the TCP port number and address, both in -network byte order (most significant byte is first).

-
-
-
-

Transport Options

-
-

The tcp transport has no special -options.[2]

-
-
-
-
-
-

SEE ALSO

-
-
-

nng(7)

-
-
-
-
-
-
-
-1. This is a bug and will likely be fixed in the future. -
-
-2. Options for TCP keepalive, linger, and nodelay are planned. -
-
- - diff --git a/man/tip/nng_tcp_register.3.html b/man/tip/nng_tcp_register.3.html new file mode 100644 index 00000000..aa7e2ab0 --- /dev/null +++ b/man/tip/nng_tcp_register.3.html @@ -0,0 +1,580 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_tcp_register(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/transport/tcp/tcp.h>
+
+int nng_tcp_register(void);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_tcp_register() function registers the +tcp transport for use.

+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ENOMEM
+
+

Insufficient memory is available.

+
+
NNG_ENOTSUP
+
+

The transport is not supported.

+
+
+
+
+
+
+

SEE ALSO

+
+ +
+
+
+ + diff --git a/man/tip/nng_tls.7.html b/man/tip/nng_tls.7.html new file mode 100644 index 00000000..24897141 --- /dev/null +++ b/man/tip/nng_tls.7.html @@ -0,0 +1,768 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_tls(7) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/transport/tls/tls.h>
+
+int nng_tls_register(void);
+
+
+
+
+
+

DESCRIPTION

+
+
+

+The tls transport provides communication support between +nng sockets across a TCP/IP network using +TLS v1.2 on top of +TCP. +Both IPv4 and IPv6 are supported when the underlying platform also supports it.

+
+
+

The protocol details are documented in +TLS Mapping for Scalability Protocols.

+
+
+

Registration

+
+

Depending upon how the library was built, it may be necessary to +register the transport by calling +nng_tls_register().

+
+
+
+

Availability

+
+

The tls transport depends on the use of an external library. +As of this writing, mbedTLS version 2.0 +or later is required.

+
+
+ + + + + +
+ + +Applications may need to add this library (or libraries) to +their link line, particularly when using a statically built +nng library. +
+
+
+ + + + + +
+ + +The mbedTLS library uses different licensing terms than +nng itself; as of this writing it is offered under either +Apache License 2.0 or +GNU GPL terms. +You are responsible for understanding and adhering to the +license terms of any libraries you make use of. +
+
+
+
+

URI Format

+
+

+This transport uses URIs using the scheme tls+tcp://, followed by +an IP address or hostname, followed by a colon and finally a +TCP port number. +For example, to contact port 4433 on the localhost +either of the following URIs could be used: tls+tcp://127.0.0.1:4433 or +tls+tcp://localhost:4433.

+
+
+

When specifying IPv6 addresses, the address must be enclosed in +square brackets ([]) to avoid confusion with the final colon +separating the port.

+
+
+

For example, the same port 4433 on the IPv6 loopback address ('::1') would +be specified as tls+tcp://[::1]:4433.

+
+
+ + + + + +
+ + +When using symbolic names, the name is resolved when the +name is first used. nng won’t become aware of changes in the +name resolution until restart, +usually. +(This is a bug and will likely be fixed in the future.) +
+
+
+ + + + + +
+ + +Certificate validation generally works when using names +rather than IP addresses. +This transport automatically uses the name supplied in the URL when validating +the certificate supplied by the server. +
+
+
+

The special value of 0 (INADDR_ANY) can be used for a listener +to indicate that it should listen on all interfaces on the host. +A short-hand for this form is to either omit the address, or specify +the asterisk (*) character. +For example, the following three URIs are all equivalent, +and could be used to listen to port 9999 on the host:

+
+
+
    +
  1. +

    tls+tcp://0.0.0.0:9999

    +
  2. +
  3. +

    tls+tcp://*:9999

    +
  4. +
  5. +

    tls+tcp://:9999

    +
  6. +
+
+
+

The entire URI must be less than NNG_MAXADDRLEN bytes long.

+
+
+
+

Socket Address

+
+

When using an nng_sockaddr structure, +the actual structure is either of type +nng_sockaddr_in (for IPv4) or +nng_sockaddr_in6 (for IPv6).

+
+
+
+

Transport Options

+
+

The following transport options are available. +Note that setting these must be done before the transport is started.

+
+
+
+
NNG_OPT_TLS_CONFIG
+
+

This option is used on an endpoint to access the underlying TLS +configuration object. +The value is of type nng_tls_config *.

+
+
+
+
+ + + + + +
+ + +Use this option when advanced TLS configuration is required. +
+
+
+
+
NNG_OPT_TLS_CA_FILE
+
+

This is a write-only option used to load certificates associated +associated private key from a file. +See nng_tls_config_ca_file() for more +information.

+
+
NNG_OPT_TLS_CERT_KEY_FILE
+
+

This is a write-only option used to load the local certificate and +associated private key from a file. The private key used must be +unencrypted. (Use the NNG_OPT_TLS_CONFIG option to access the underlying +TLS configuration if more advanced configuration is needed.) +See nng_tls_config_own_cert() for more +information.

+
+
NNG_OPT_TLS_AUTH_MODE
+
+

This is a write-only option used to configure the authentication mode +used. It can take an integer with value NNG_TLS_AUTH_MODE_NONE, +NNG_TLS_AUTH_MODE_REQUIRED, or NNG_TLS_AUTH_MODE_OPTIONAL. +See nng_tls_config_auth_mode() for +more details.

+
+
NNG_OPT_TLS_VERIFIED
+
+

This is a read-only option which returns a boolean value (integer 0 or 1). +It will true (1) if the remote peer has been properly verified using TLS +authentication, or false (0) otherwise. +This option may return incorrect +results if peer authentication is disabled with NNG_TLS_AUTH_MODE_NONE.

+
+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_tls.html b/man/tip/nng_tls.html deleted file mode 100644 index daa0c3b7..00000000 --- a/man/tip/nng_tls.html +++ /dev/null @@ -1,807 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_tls(7) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/transport/tls/tls.h>
-
-int nng_tls_register(void);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_tls transport provides communication support between -nng sockets across a TCP/IP network using -TLS v1.2 on top of -TCP. Both IPv4 and IPv6 -are supported when the underlying platform also supports it.

-
-
-

The protocol details are documented in -TLS Mapping for Scalability Protocols.

-
-
-

Registration

-
-

Depending upon how the library was built, it may be necessary to -register the transport by calling nng_tls_register. This function -returns zero on success, or an nng error value if the transport -cannot be initialized for any reason.

-
-
-
-

Availability

-
-

The tls transport depends on the use of an external library. -As of this writing, mbed TLS version 2.0 -or later is required.

-
-
- - - - - -
- - -Applications may need to add this library (or libraries) to -their link line, particularly when using a statically built -nng library. -
-
-
- - - - - -
- - -The mbed TLS library uses different licensing terms than -nng itself; as of this writing it is offered under either -Apache License 2.0 or -GNU GPL terms. -You are responsible for understanding and adhering to the -license terms of any libraries you make use of. -
-
-
-
-

URI Format

-
-

This transport uses URIs using the scheme tls+tcp://, followed by -an IP address or hostname, followed by a colon and finally a -TCP port number. For example, to contact port 4433 on the localhost -either of the following URIs could be used: tls+tcp://127.0.0.1:4433 or -tls+tcp://localhost:4433.

-
-
-

When specifying IPv6 addresses, the address must be enclosed in -square brackets ([]) to avoid confusion with the final colon -separating the port.

-
-
-

For example, the same port 4433 on the IPv6 loopback address ('::1') would -be specified as tls+tcp://[::1]:4433.

-
-
- - - - - -
- - -When using symbolic names, the name is resolved when the -name is first used. nng won’t become aware of changes in the -name resolution until restart, -usually.[1] -
-
-
- - - - - -
- - -Certificate validation generally works when using names -rather than IP addresses. This transport automatically -uses the name supplied in the URL when validating the -certificate supplied by the server. -
-
-
-

The special value of 0 (INADDR_ANY) can be used for a listener -to indicate that it should listen on all interfaces on the host. -A short-hand for this form is to either omit the address, or specify -the asterisk (*) character. For example, the following three -URIs are all equivalent, and could be used to listen to port 9999 -on the host:

-
-
-
    -
  1. -

    tls+tcp://0.0.0.0:9999

    -
  2. -
  3. -

    tls+tcp://*:9999

    -
  4. -
  5. -

    tls+tcp://:9999

    -
  6. -
-
-
-

The entire URI must be less than NNG_MAXADDRLEN bytes long.

-
-
-
-

Socket Address

-
-

When using an nng_sockaddr structure, the actual structure is either -of type nng_sockaddr_in (for IPv4) or nng_sockaddr_in6 (for IPv6). -These are struct types with the following definitions:

-
-
-
-
#define NNG_AF_INET    3 (1)
-#define NNG_AF_INET6   4
-#define NNG_MAXADDRLEN 128
-
-typedef struct {
-    // ... (2)
-    uint16_t sa_family;   // must be NNG_AF_INET
-    uint16_t sa_port;     // TCP port number
-    uint32_t sa_addr;
-    // ...
-} nng_sockaddr_in;
-
-typedef struct {
-    // ... (2)
-    uint16_t sa_family;   // must be NNG_AF_INET6
-    uint16_t sa_port;     // TCP port number
-    uint8_t  sa_addr[16];
-    // ...
-} nng_sockaddr_in6;
-
-
-
- - - - - - - - - -
1The values of these macros may change, so applications -should avoid depending upon their values and instead use them symbolically.
2Other members may be present, but only those listed here -are suitable for application use.
-
-
-

The sa_family member will have the value NNG_AF_INET or NNG_AF_INET6. -The sa_port and sa_addr are the TCP port number and address, both in -network byte order (most significant byte is first).

-
-
-
-

Transport Options

-
-

The following transport options are available. Note that -setting these must be done before the transport is started.

-
-
-
-
NNG_OPT_TLS_CONFIG
-
-

This option is used on an endpoint to access the underlying TLS -configuration object. The value is of type nng_tls_config *.

-
-
-
-
- - - - - -
- - -Use this option when advanced TLS configuration is required. -
-
-
-
-
NNG_OPT_TLS_CA_FILE
-
-

This is a write-only option used to load certificates associated -associated private key from a file. -See nng_tls_config_ca_file(3) for more -information.

-
-
NNG_OPT_TLS_CERT_KEY_FILE
-
-

This is a write-only option used to load the local certificate and -associated private key from a file. The private key used must be -unencrypted. (Use the NNG_OPT_TLS_CONFIG option to access the underlying -TLS configuration if more advanced configuration is needed.) -See nng_tls_config_own_cert(3) for more -information.

-
-
NNG_OPT_TLS_AUTH_MODE
-
-

This is a write-only option used to configure the authentication mode -used. It can take an integer with value NNG_TLS_AUTH_MODE_NONE, -NNG_TLS_AUTH_MODE_REQUIRED, or NNG_TLS_AUTH_MODE_OPTIONAL. See -nng_tls_config_auth_mode(3) for more details.

-
-
NNG_OPT_TLS_VERIFIED
-
-

This is a read-only option which returns a boolean value (integer 0 or 1). -It will true (1) if the remote peer has been properly verified using TLS -authentication, or false (0) otherwise. This option may return incorrect -results if peer authentication is disabled with NNG_TLS_AUTH_MODE_NONE.

-
-
-
-
-
-
-
-

SEE ALSO

- -
-
-
-
-
-1. This is a bug and will likely be fixed in the future. -
-
- - diff --git a/man/tip/nng_tls_config_alloc.3tls.html b/man/tip/nng_tls_config_alloc.3tls.html new file mode 100644 index 00000000..2eb7cf64 --- /dev/null +++ b/man/tip/nng_tls_config_alloc.3tls.html @@ -0,0 +1,614 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_tls_config_alloc(3tls) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/supplemental/tls/tls.h>
+
+typedef enum nng_tls_mode {
+        NNG_TLS_MODE_CLIENT,
+        NNG_TLS_MODE_SERVER
+} nng_tls_mode;
+
+int nng_tls_config_alloc(nni_tls_config **cfgp, nng_tls_mode mode);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_tls_config_alloc() function creates a newly initialized +Transport Layer Security) +configuration object, and stores a pointer to it in the value pointed +to by cfgp.

+
+
+

This object is initialized for use when acting as either a +client (NNG_TLS_MODE_CLIENT) or as a server (NNG_TLS_MODE_SERVER), +depending on the value of mode.

+
+
+

A TLS object can be further modified by functions that set the security +keys used, peeer certificates, protocol policies, and so forth.

+
+
+

A single TLS configuration object can be used with multiple TLS streams +or services. +The underlying system uses reference counting to ensure +that object is not inadvertently freed while in use.

+
+
+

Also note that a TLS configuration object becomes "read-only" after it +is first used with a service. +After this points, attempts to apply +further changes to the configuration will result in NNG_EBUSY.

+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ENOMEM
+
+

Insufficient memory is available.

+
+
NNG_EINVAL
+
+

An invalid mode was specified.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_tls_config_alloc.html b/man/tip/nng_tls_config_alloc.html deleted file mode 100644 index fddf092d..00000000 --- a/man/tip/nng_tls_config_alloc.html +++ /dev/null @@ -1,612 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_tls_config_alloc(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-#include <nng/supplemental/tls/tls.h>
-
-typedef enum nng_tls_mode {
-        NNG_TLS_MODE_CLIENT,
-        NNG_TLS_MODE_SERVER
-} nng_tls_mode;
-
-int nng_tls_config_alloc(nni_tls_config **cfgp, nng_tls_mode mode);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_tls_config_alloc() function creates a newly initialized -Transport Layer Security) -configuration object, and stores a pointer to it in the value pointed -to by cfgp.

-
-
-

This object is initialized for use when acting as either a -client (NNG_TLS_MODE_CLIENT) or as a server (NNG_TLS_MODE_SERVER), -depending on the value of mode.

-
-
-

A TLS object can be further modified by functions that set the security -keys used, peeer certificates, protocol policies, and so forth.

-
-
-

A single TLS configuration object can be used with multiple TLS streams -or services. The underlying system uses reference counting to ensure -that object is not inadvertently freed while in use.

-
-
-

Also note that a TLS configuration object becomes "read-only" after it -is first used with a service. After this points, attempts to apply -further changes to the configuration will result in NNG_EBUSY.

-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_ENOMEM
-
-

Insufficient memory is available.

-
-
NNG_EINVAL
-
-

An invalid mode was specified.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_tls_config_auth_mode.3tls.html b/man/tip/nng_tls_config_auth_mode.3tls.html new file mode 100644 index 00000000..0a334897 --- /dev/null +++ b/man/tip/nng_tls_config_auth_mode.3tls.html @@ -0,0 +1,621 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_tls_config_auth_mode(3tls) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/supplemental/tls/tls.h>
+
+typedef enum nng_tls_auth_mode {
+        NNG_TLS_AUTH_MODE_NONE,
+        NNG_TLS_AUTH_MODE_OPTIONAL,
+        NNG_TLS_AUTH_MODE_REQUIRED
+} nng_tls_auth_mode;
+
+int nng_tls_config_auth_mode(nni_tls_config *cfg, nng_tls_auth_mode mode);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_tls_config_auth_mode() function configures the authentication mode +to be used for TLS sessions using this configuration object.

+
+
+

The possible modes are:

+
+
+
+
NNG_TLS_AUTH_MODE_NONE
+
+

No authentication of the TLS peer is performed. +This is the default for +TLS servers, which most typically do not authenticate their clients.

+
+
NNG_TLS_AUTH_MODE_OPTIONAL
+
+

If a certificate is presented by the peer, then it is validated. +However, if the peer does not present a valid certificate, +then the sesssion is allowed to proceed without authentication.

+
+
NNG_TLS_AUTH_MODE_REQUIRED
+
+

A check is made to ensure that the peer has presented a valid certificate +used for the session. +If the peer’s certificate is invalid or missing, then the session is refused. +This is the default for clients.

+
+
+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ENOMEM
+
+

Insufficient memory is available.

+
+
NNG_EINVAL
+
+

An invalid mode was specified.

+
+
NNG_EBUSY
+
+

The configuration cfg is already in use, and cannot be modified.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_tls_config_auth_mode.html b/man/tip/nng_tls_config_auth_mode.html deleted file mode 100644 index 45a690b1..00000000 --- a/man/tip/nng_tls_config_auth_mode.html +++ /dev/null @@ -1,619 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_tls_config_auth_mode(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-#include <nng/supplemental/tls/tls.h>
-
-typedef enum nng_tls_auth_mode {
-        NNG_TLS_AUTH_MODE_NONE,
-        NNG_TLS_AUTH_MODE_OPTIONAL,
-        NNG_TLS_AUTH_MODE_REQUIRED
-} nng_tls_auth_mode;
-
-int nng_tls_config_auth_mode(nni_tls_config *cfg, nng_tls_auth_mode mode);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_tls_config_auth_mode() function configures the authentication mode -to be used for TLS sessions using this configuration object.

-
-
-

The possible modes are:

-
-
-
-
NNG_TLS_AUTH_MODE_NONE
-
-

No authentication of the TLS peer is performed. This is the default for -TLS servers, which most typically do not authenticate their clients.

-
-
NNG_TLS_AUTH_MODE_OPTIONAL
-
-

If a certificate is presented by the peer, then it is validated. However, -if the peer does not present a valid certificate, then the sesssion is allowed -to proceed without authentication.

-
-
NNG_TLS_AUTH_MODE_REQUIRED
-
-

A check is made to ensure that the peer has presented a valid certificate -used for the session. If the peer’s certificate is invalid or missing, then -the session is refused. This is the default for clients.

-
-
-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_ENOMEM
-
-

Insufficient memory is available.

-
-
NNG_EINVAL
-
-

An invalid mode was specified.

-
-
NNG_EBUSY
-
-

The configuration cfg is already in use, and cannot be modified.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_tls_config_ca_chain.3tls.html b/man/tip/nng_tls_config_ca_chain.3tls.html new file mode 100644 index 00000000..85709fd8 --- /dev/null +++ b/man/tip/nng_tls_config_ca_chain.3tls.html @@ -0,0 +1,626 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_tls_config_ca_chain(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/supplemental/tls/tls.h>
+
+int nng_tls_config_ca_cert(nni_tls_config *cfg, const char *chain,
+    const char *crl);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_tls_config_ca_chain() function configures a certificate or +certificate chain to be used when validating peers using the configuration +cfg.

+
+
+ + + + + +
+ + +Certificates must be configured when using the authentication mode +NNG_TLS_AUTH_MODE_REQUIRED. +
+
+
+ + + + + +
+ + +This function may be called multiple times, to add additional chains +to a configuration, without affecting those added previously. +
+
+
+

The certificates located in chain must be a zero-terminated C string in +PEM format. +Multiple certificates may appear concatenated together, +with the leaf certificate listed first.

+
+
+

The crl may be NULL, or may also be a C string containing a PEM format +certificate revocation list for the associated authority.

+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ENOMEM
+
+

Insufficient memory is available.

+
+
NNG_EBUSY
+
+

The configuration cfg is already in use, and cannot be modified.

+
+
NNG_EINVAL
+
+

An invalid chain or crl was supplied.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_tls_config_ca_chain.html b/man/tip/nng_tls_config_ca_chain.html deleted file mode 100644 index 292b3c5d..00000000 --- a/man/tip/nng_tls_config_ca_chain.html +++ /dev/null @@ -1,626 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_tls_config_ca_chain(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-#include <nng/supplemental/tls/tls.h>
-
-int nng_tls_config_ca_cert(nni_tls_config *cfg, const char *chain,
-    const char *crl);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_tls_config_ca_chain() function configures a certificate or -certificate chain to be used when validating peers using the configuration -cfg.

-
-
- - - - - -
- - -Certificates must be configured when using the authentication mode -NNG_TLS_AUTH_MODE_REQUIRED. -
-
-
- - - - - -
- - -This function may be called multiple times, to add additional chains -to a configuration, without affecting those added previously. -
-
-
-

The certificates located in chain must be a zero-terminated C string in -PEM format. Multiple certificates may -appear concatenated together, with the leaf certificate listed first. -together.

-
-
-

The crl may be NULL, or may also be a C string containing a PEM format -certificate revocation list for the associated authority.

-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_ENOMEM
-
-

Insufficient memory is available.

-
-
NNG_EBUSY
-
-

The configuration cfg is already in use, and cannot be modified.

-
-
NNG_EINVAL
-
-

An invalid chain or crl was supplied.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_tls_config_ca_file.3tls.html b/man/tip/nng_tls_config_ca_file.3tls.html new file mode 100644 index 00000000..024aa4e7 --- /dev/null +++ b/man/tip/nng_tls_config_ca_file.3tls.html @@ -0,0 +1,629 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_tls_config_ca_file(3tls) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/supplemental/tls/tls.h>
+
+int nng_tls_config_ca_file(nni_tls_config *cfg, const char *path);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_tls_config_ca_file() function configures the certificate authority +certificate chain and optional revocation list by loading the certificates +(and revocation list if present) from a single named file. +The file must at least one X.509 certificate in +PEM +format, and may contain multiple such certificates, as well as zero or +more PEM CRL objects. +This information is used to validate certificates +that are presented by peers, when using the configuration cfg.

+
+
+ + + + + +
+ + +Certificates must be configured when using the authentication mode +NNG_TLS_AUTH_MODE_REQUIRED. +
+
+
+ + + + + +
+ + +This function may be called multiple times, to add additional chains +to a configuration, without affecting those added previously. +
+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ENOMEM
+
+

Insufficient memory is available.

+
+
NNG_EBUSY
+
+

The configuration cfg is already in use, and cannot be modified.

+
+
NNG_EINVAL
+
+

The contents of path are invalid or do not contain a valid PEM certificate.

+
+
NNG_ENOENT
+
+

The file path does not exist.

+
+
NNG_EPERM
+
+

The file path is not readable.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_tls_config_ca_file.html b/man/tip/nng_tls_config_ca_file.html deleted file mode 100644 index c4af2b72..00000000 --- a/man/tip/nng_tls_config_ca_file.html +++ /dev/null @@ -1,627 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_tls_config_ca_file(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-#include <nng/supplemental/tls/tls.h>
-
-int nng_tls_config_ca_file(nni_tls_config *cfg, const char *path);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_tls_config_ca_file() function configures the certificate authority -certificate chain and optional revocation list by loading the certificates -(and revocation list if present) from a single named file. The file must -at least one X.509 certificate in PEM -format, and may contain multiple such certificates, as well as zero or -more PEM CRL objects. This information is used to validate certificates -that are presented by peers, when using the configuration cfg.

-
-
- - - - - -
- - -Certificates must be configured when using the authentication mode -NNG_TLS_AUTH_MODE_REQUIRED. -
-
-
- - - - - -
- - -This function may be called multiple times, to add additional chains -to a configuration, without affecting those added previously. -
-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_ENOMEM
-
-

Insufficient memory is available.

-
-
NNG_EBUSY
-
-

The configuration cfg is already in use, and cannot be modified.

-
-
NNG_EINVAL
-
-

The contents of path are invalid or do not contain a valid PEM certificate.

-
-
NNG_ENOENT
-
-

The file path does not exist.

-
-
NNG_EPERM
-
-

The file path is not readable.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_tls_config_cert_key_file.3tls.html b/man/tip/nng_tls_config_cert_key_file.3tls.html new file mode 100644 index 00000000..e965dff7 --- /dev/null +++ b/man/tip/nng_tls_config_cert_key_file.3tls.html @@ -0,0 +1,616 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_tls_config_cert_key_file(3tls) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/supplemental/tls/tls.h>
+
+int nng_tls_config_cert_key_file(nni_tls_config *cfg, const char *path,
+    const char *pass);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_tls_config_cert_key_file() function loads a certificate (or +certificate chain) and a private key from the file named by path.

+
+
+

The file must contain both the PEM +encoded certificate and associated private key, which will be used when +establishing TLS sessions using cfg. +It may contain additional certificates leading to a validation chain, +with the leaf certificate first. +There is no need to include the self-signed root, as the peer +will need to have that already in order to perform it’s own validation.

+
+
+

The private key may be encrypted with a password, in which can be supplied in +pass. +The value NULL should be supplied for pass if the key is not encrypted.

+
+
+

On servers, it is possible to call this function multiple times for the +same configuration. +This can be useful for specifying different parameters +to be used for different cryptographic algorithms.

+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ENOMEM
+
+

Insufficient memory is available.

+
+
NNG_EBUSY
+
+

The configuration cfg is already in use, and cannot be modified.

+
+
NNG_EINVAL
+
+

The contents of path are invalid.

+
+
NNG_ENOENT
+
+

The file named by path does not exist.

+
+
NNG_EPERM
+
+

The file named by path cannot be opened.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_tls_config_cert_key_file.html b/man/tip/nng_tls_config_cert_key_file.html deleted file mode 100644 index dfec2dcd..00000000 --- a/man/tip/nng_tls_config_cert_key_file.html +++ /dev/null @@ -1,614 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_tls_config_cert_key_file(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-#include <nng/supplemental/tls/tls.h>
-
-int nng_tls_config_cert_key_file(nni_tls_config *cfg, const char *path,
-    const char *pass);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_tls_config_cert_key_file() function loads a certificate (or -certificate chain) and a private key from the file named by path.

-
-
-

The file must contain both the PEM -encoded certificate and associated private key, which will be used when -establishing TLS sessions using cfg. It may contain additional certificates -leading to a validation chain, with the leaf certificate first. -There is no need to include the self-signed root, as the peer -will need to have that already in order to perform it’s own validation.

-
-
-

The private key may be encrypted with a password, in which can be supplied in -pass. The value NULL should be supplied for pass if the key is not -encrypted.

-
-
-

On servers, it is possible to call this function multiple times for the -same configuration. This can be useful for specifying different parameters -to be used for different cryptographic algorithms.

-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_ENOMEM
-
-

Insufficient memory is available.

-
-
NNG_EBUSY
-
-

The configuration cfg is already in use, and cannot be modified.

-
-
NNG_EINVAL
-
-

The contents of path are invalid.

-
-
NNG_ENOENT
-
-

The file named by path does not exist.

-
-
NNG_EPERM
-
-

The file named by path cannot be opened.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_tls_config_free.3tls.html b/man/tip/nng_tls_config_free.3tls.html new file mode 100644 index 00000000..0b4eefe1 --- /dev/null +++ b/man/tip/nng_tls_config_free.3tls.html @@ -0,0 +1,573 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_tls_config_free(3tls) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/supplemental/tls/tls.h>
+
+void nng_tls_config_free(nni_tls_config *cfg);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_tls_config_free() decrements the reference count on the +TLS configuration object pointed to by cfg, and if the resulting +reference count is zero, then deallocates the configuration object.

+
+
+
+
+

RETURN VALUES

+
+
+

None.

+
+
+
+
+

ERRORS

+
+
+

None.

+
+
+
+
+

SEE ALSO

+ +
+
+ + diff --git a/man/tip/nng_tls_config_free.html b/man/tip/nng_tls_config_free.html deleted file mode 100644 index 74df743c..00000000 --- a/man/tip/nng_tls_config_free.html +++ /dev/null @@ -1,573 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_tls_config_alloc(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-#include <nng/supplemental/tls/tls.h>
-
-void nng_tls_config_free(nni_tls_config *cfg);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_tls_config_free() decrements the reference count on the -TLS configuration object pointed to by cfg, and if the resulting -reference count is zero, then deallocates the configuration object.

-
-
-
-
-

RETURN VALUES

-
-
-

None.

-
-
-
-
-

ERRORS

-
-
-

None.

-
-
-
-
-

SEE ALSO

- -
-
- - diff --git a/man/tip/nng_tls_config_own_cert.3tls.html b/man/tip/nng_tls_config_own_cert.3tls.html new file mode 100644 index 00000000..988691f9 --- /dev/null +++ b/man/tip/nng_tls_config_own_cert.3tls.html @@ -0,0 +1,609 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_tls_config_own_cert(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/supplemental/tls/tls.h>
+
+int nng_tls_config_own_cert(nni_tls_config *cfg, const char *cert,
+    const char *key, const char *pass);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_tls_config_own_cert() function configures a certificate cert +identifying the local side of a TLS connection used with cfg, along with an +associated private or secret key key. +The certificate may be +a chain, with the leaf signer first and the root at the end. The +self-signed certificate at the end can be omitted. +(The client should already +have it, and will have to in order to validate this certificate anyway).

+
+
+

The key may be encrypted with a password, in which can be supplied in pass. +The value NULL should be supplied for pass if the key is not encrypted.

+
+
+

On servers, it is possible to call this function multiple times for the +same configuration. +This can be useful for specifying different parameters +to be used for different cryptographic algorithms.

+
+
+

The certificate located in cert and key must be NUL (\0) terminated C +strings containing +PEM formatted material.

+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ENOMEM
+
+

Insufficient memory is available.

+
+
NNG_EBUSY
+
+

The configuration cfg is already in use, and cannot be modified.

+
+
NNG_EINVAL
+
+

An invalid cert or key was supplied.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_tls_config_own_cert.html b/man/tip/nng_tls_config_own_cert.html deleted file mode 100644 index 5efa8baa..00000000 --- a/man/tip/nng_tls_config_own_cert.html +++ /dev/null @@ -1,607 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_tls_config_own_cert(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-#include <nng/supplemental/tls/tls.h>
-
-int nng_tls_config_own_cert(nni_tls_config *cfg, const char *cert,
-    const char *key, const char *pass);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_tls_config_own_cert() function configures a certificate cert -identifying the local side of a TLS connection used with cfg, along with an -associated private or secret key key. The certificate may be -a chain, with the leaf signer first and the root at the end. The -self-signed certificate at the end can be omitted. (The client should already -have it, and will have to in order to validate this certificate anyway).

-
-
-

The key may be encrypted with a password, in which can be supplied in -pass. The value NULL should be supplied for pass if the key is not -encrypted.

-
-
-

On servers, it is possible to call this function multiple times for the -same configuration. This can be useful for specifying different parameters -to be used for different cryptographic algorithms.

-
-
-

The certificate located in cert and key must be NUL (\0) terminated C -strings containing -PEM formatted material.

-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_ENOMEM
-
-

Insufficient memory is available.

-
-
NNG_EBUSY
-
-

The configuration cfg is already in use, and cannot be modified.

-
-
NNG_EINVAL
-
-

An invalid cert or key was supplied.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_tls_config_server_name.3tls.html b/man/tip/nng_tls_config_server_name.3tls.html new file mode 100644 index 00000000..3f55b9d8 --- /dev/null +++ b/man/tip/nng_tls_config_server_name.3tls.html @@ -0,0 +1,600 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_tls_config_server_name(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+#include <nng/supplemental/tls/tls.h>
+
+int nng_tls_config_server_name(nni_tls_config *cfg, const char *name);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_tls_config_server_name() function configures the remote server name +to be used by a client when connection to a server. +The supplied name is used when comparing the identity in the +server’s certificate. +Furthermore, when Server Name Indication (SNI) is used, the name may +be sent to the server as a hint to tell it which of several possible +certificates should be used.

+
+
+ + + + + +
+ + +This function is only useful in configuring client behavior. +
+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ENOMEM
+
+

Insufficient memory is available.

+
+
NNG_EBUSY
+
+

The configuration cfg is already in use, and cannot be modified.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_tls_config_server_name.html b/man/tip/nng_tls_config_server_name.html deleted file mode 100644 index 295bff4e..00000000 --- a/man/tip/nng_tls_config_server_name.html +++ /dev/null @@ -1,598 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_tls_config_server_name(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-#include <nng/supplemental/tls/tls.h>
-
-int nng_tls_config_server_name(nni_tls_config *cfg, const char *name);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_tls_config_server_name() function configures the remote server name -to be used by a client when connection to a server. The supplied name -is used when comparing the identity in the server’s certificate. Furthermore, -when Server Name Indication (SNI) is used, the name may be sent to the server -as a hint to tell it which of several possible certificates should be used.

-
-
- - - - - -
- - -This function is only useful in configuring client behavior. -
-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_ENOMEM
-
-

Insufficient memory is available.

-
-
NNG_EBUSY
-
-

The configuration cfg is already in use, and cannot be modified.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_tls_register.3.html b/man/tip/nng_tls_register.3.html new file mode 100644 index 00000000..4bf75e36 --- /dev/null +++ b/man/tip/nng_tls_register.3.html @@ -0,0 +1,580 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_tls_register(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/transport/tls/tls.h>
+
+int nng_tls_register(void);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_tls_register() function registers the +tls transport for use.

+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ENOMEM
+
+

Insufficient memory is available.

+
+
NNG_ENOTSUP
+
+

The transport is not supported.

+
+
+
+
+
+
+

SEE ALSO

+
+ +
+
+
+ + diff --git a/man/tip/nng_url_clone.3.html b/man/tip/nng_url_clone.3.html new file mode 100644 index 00000000..3df76198 --- /dev/null +++ b/man/tip/nng_url_clone.3.html @@ -0,0 +1,579 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_url_clone(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+int nng_url_clone(nng_url **dup, nng_url *orig);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_url_clone() makes a clone of the original URL structure orig, and +saves the result in the location pointed by dup. +This clone includes fully duplicating each of the member fields.

+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ENOMEM
+
+

Insufficient free memory exists to duplicate a message.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_url_clone.html b/man/tip/nng_url_clone.html deleted file mode 100644 index 19cd6da4..00000000 --- a/man/tip/nng_url_clone.html +++ /dev/null @@ -1,579 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_url_clone(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-
-int nng_url_clone(nng_url **dup, nng_url *orig);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_url_clone() makes a clone of the original URL structure orig, and -saves the result in the location pointed by dup. This clone includes -fully duplicating each of the member fields.

-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_ENOMEM
-
-

Insufficient free memory exists to duplicate a message.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_url_free.3.html b/man/tip/nng_url_free.3.html new file mode 100644 index 00000000..79b1a7ef --- /dev/null +++ b/man/tip/nng_url_free.3.html @@ -0,0 +1,572 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_url_free(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+void nng_url_free(nng_url *url);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_url_free() function deallocates the url entirely, including +any of its members.

+
+
+
+
+

RETURN VALUES

+
+
+

None.

+
+
+
+
+

ERRORS

+
+
+

None.

+
+
+
+
+

SEE ALSO

+ +
+
+ + diff --git a/man/tip/nng_url_free.html b/man/tip/nng_url_free.html deleted file mode 100644 index 2d68b5e6..00000000 --- a/man/tip/nng_url_free.html +++ /dev/null @@ -1,572 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_url_free(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-
-void nng_url_free(nng_url *url);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_url_free() function deallocates the url entirely, including -any of it’s members.

-
-
-
-
-

RETURN VALUES

-
-
-

None.

-
-
-
-
-

ERRORS

-
-
-

None.

-
-
-
-
-

SEE ALSO

- -
-
- - diff --git a/man/tip/nng_url_parse.3.html b/man/tip/nng_url_parse.3.html new file mode 100644 index 00000000..9b8849d7 --- /dev/null +++ b/man/tip/nng_url_parse.3.html @@ -0,0 +1,666 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_url_parse(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+int nng_url_parse(nng_url **urlp, const char *str);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_url_parse() function parses the string str containing an +RFC 3986 compliant URL, and creates +a structure containing the results. A pointer to the resulting structure +is stored in urlp.

+
+
+

The nng_url structure has at least the following members:

+
+
+
+
struct nng_url {
+    char *u_scheme;   // Scheme, such as "http"; always lower case.
+    char *u_rawurl;   // Unparsed URL, with minimal canonicalization.
+    char *u_userinfo; // Userinfo component, or NULL.
+    char *u_host;     // Full host, including port if present.
+    char *u_hostname; // Hostname only (or address), or empy string.
+    char *u_port;     // Port number, may be default or empty string.
+    char *u_path;     // Path if present, empty string otherwise.
+    char *u_query;    // Query info if present, NULL otherwise.
+    char *u_fragment; // Fragment if present, NULL otherwise.
+    char *u_requri;   // Request-URI (path[?query][#fragment])
+};
+
+
+
+

URL Canonicalization

+
+

The nng_url_parse() function also canonicalizes the results, as +follows:

+
+
+
    +
  1. +

    The URL is parsed into the various components.

    +
  2. +
  3. +

    The u_scheme, u_hostname, u_host, and u_port members are +converted to lower case.

    +
  4. +
  5. +

    Percent-encoded values for +unreserved characters +converted to their unencoded forms.

    +
  6. +
  7. +

    Additionally URL percent-encoded values for characters in the path +and with numeric values larger than 127 (i.e. not ASCII) are decoded.

    +
  8. +
  9. +

    The resulting u_path is checked for invalid UTF-8 sequences, consisting +of surrogate pairs, illegal byte sequences, or overlong encodings. +If this check fails, then the entire URL is considered invalid, and +the function returns NNG_EINVAL.

    +
  10. +
  11. +

    Path segments consisting of . and .. are resolved as per +RFC 3986 6.2.2.3.

    +
  12. +
  13. +

    Further, empty path segments are removed, meaning that duplicate +slash (/) separators are removed from the path.

    +
  14. +
  15. +

    If a port was not specified, but the scheme defines a default +port, then u_port will be filled in with the value of the default port.

    +
  16. +
+
+
+ + + + + +
+ + +Only the u_userinfo, u_query, and u_fragment members will ever be + NULL. The other members will be filled in with either default values + or the empty string if they cannot be determined from str. +
+
+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ENOMEM
+
+

Insufficient free memory exists to allocate a message.

+
+
NNG_EINVAL
+
+

An invalid URL was supplied.

+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_url_parse.html b/man/tip/nng_url_parse.html deleted file mode 100644 index e7d87e27..00000000 --- a/man/tip/nng_url_parse.html +++ /dev/null @@ -1,666 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_url_parse(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-
-int nng_url_parse(nng_url **urlp, const char *str);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_url_parse() function parses the string str containing an -RFC 3986 compliant URL, and creates -a structure containing the results. A pointer to the resulting structure -is stored in urlp.

-
-
-

The nng_url structure has at least the following members:

-
-
-
-
struct nng_url {
-    char *u_scheme;   // Scheme, such as "http"; always lower case.
-    char *u_rawurl;   // Unparsed URL, with minimal canonicalization.
-    char *u_userinfo; // Userinfo component, or NULL.
-    char *u_host;     // Full host, including port if present.
-    char *u_hostname; // Hostname only (or address), or empy string.
-    char *u_port;     // Port number, may be default or empty string.
-    char *u_path;     // Path if present, empty string otherwise.
-    char *u_query;    // Query info if present, NULL otherwise.
-    char *u_fragment; // Fragment if present, NULL otherwise.
-    char *u_requri;   // Request-URI (path[?query][#fragment])
-};
-
-
-
-

URL Canonicalization

-
-

The nng_url_parse() function also canonicalizes the results, as -follows:

-
-
-
    -
  1. -

    The URL is parsed into the various components.

    -
  2. -
  3. -

    The u_scheme, u_hostname, u_host, and u_port members are -converted to lower case.

    -
  4. -
  5. -

    Percent-encoded values for -unreserved characters -converted to their unencoded forms.

    -
  6. -
  7. -

    Additionally URL percent-encoded values for characters in the path -and with numeric values larger than 127 (i.e. not ASCII) are decoded.

    -
  8. -
  9. -

    The resulting u_path is checked for invalid UTF-8 sequences, consisting -of surrogate pairs, illegal byte sequences, or overlong encodings. -If this check fails, then the entire URL is considered invalid, and -the function returns NNG_EINVAL.

    -
  10. -
  11. -

    Path segments consisting of . and .. are resolved as per -RFC 3986 6.2.2.3.

    -
  12. -
  13. -

    Further, empty path segments are removed, meaning that duplicate -slash (/) separators are removed from the path.

    -
  14. -
  15. -

    If a port was not specified, but the scheme defines a default -port, then u_port will be filled in with the value of the default port.

    -
  16. -
-
-
- - - - - -
- - -Only the u_userinfo, u_query, and u_fragment members will ever be - NULL. The other members will be filled in with either default values - or the empty string if they cannot be determined from str. -
-
-
-
-
-
-

RETURN VALUES

-
-
-

This function returns 0 on success, and non-zero otherwise.

-
-
-
-
-

ERRORS

-
-
-
-
NNG_ENOMEM
-
-

Insufficient free memory exists to allocate a message.

-
-
NNG_EINVAL
-
-

An invalid URL was supplied.

-
-
-
-
-
- -
- - diff --git a/man/tip/nng_version.3.html b/man/tip/nng_version.3.html new file mode 100644 index 00000000..0c17bdb0 --- /dev/null +++ b/man/tip/nng_version.3.html @@ -0,0 +1,601 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_version(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+const char * nng_version(void);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_version() function returns a human readable version number +for the nng library. +This is intended for output in programs, and so forth.

+
+
+

Additionally, compile time version information is available +via some predefined macros:

+
+
+
+
NNG_MAJOR_VERSION
+
+

Major version number.

+
+
NNG_MINOR_VERSION
+
+

Minor version number.

+
+
NNG_PATCH_VERSION
+
+

Patch version number.

+
+
+
+
+

The nng library is developed and released using +Semantic Versioning 2.0, and +the version numbers reported refer to both the API and the +library itself. +(The ABI — application binary interface — between the +library and the application is controlled in a similar, but different +manner depending upon the link options and how the library is built.)

+
+
+
+
+

RETURN VALUES

+
+
+

C string (NUL-terminated) containing the library version number.

+
+
+
+
+

ERRORS

+
+
+

None.

+
+
+
+
+

SEE ALSO

+
+ +
+
+
+ + diff --git a/man/tip/nng_version.html b/man/tip/nng_version.html deleted file mode 100644 index e74f2521..00000000 --- a/man/tip/nng_version.html +++ /dev/null @@ -1,600 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_version(3) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/nng.h>
-
-const char * nng_version(void);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_version() function returns a human readable version -number for the nng library. This is intended for output in -programs, and so forth.

-
-
-

Additionally, compile time version information is available -via some predefined macros:

-
-
-
-
NNG_MAJOR_VERSION
-
-

Major version number.

-
-
NNG_MINOR_VERSION
-
-

Minor version number.

-
-
NNG_PATCH_VERSION
-
-

Patch version number.

-
-
-
-
-

The nng library is developed and released using -Semantic Versioning 2.0, and -the version numbers reported refer to both the API and the -library itself. (The ABI — binary interface — between the -library and the application is controlled in a similar, but different -manner depending upon the link options and how the library is built.)

-
-
-
-
-

RETURN VALUES

-
-
-

C string (NUL-terminated) containing the library version number.

-
-
-
-
-

ERRORS

-
-
-

None.

-
-
-
-
-

SEE ALSO

-
- -
-
-
- - diff --git a/man/tip/nng_ws.7.html b/man/tip/nng_ws.7.html new file mode 100644 index 00000000..3262d47c --- /dev/null +++ b/man/tip/nng_ws.7.html @@ -0,0 +1,775 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_ws(7) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/transport/websocket/ws.h>
+
+int nng_ws_register(void);
+int nng_wss_register(void);
+
+
+
+
+
+

DESCRIPTION

+
+
+

+The ws transport provides communication support between +nng sockets across a TCP/IP network using +WebSockets. +Both IPv4 and IPv6 are supported when the underlying platform also supports it.

+
+
+

The protocol details are documented in +WebSocket Mapping for Scalability Protocols.

+
+
+

Registration

+
+

Depending upon how the library was built, it may be necessary to +register the transport by calling nng_ws_register().

+
+
+

If TLS support is enabled in the library, secure WebSockets (over TLS v1.2) +can be used as well, but the secure transport may have to be registered using +the nng_wss_register() function.

+
+
+
+

URI Format

+
+

+This transport uses URIs using the scheme ws://, followed by +an IP address or hostname, optionally followed by a colon and an +TCP port number, optionally followed by a path. +(If no port number is specified then port 80 is assumed. +If no path is specified then a path of / is assumed.) +For example, the URI ws://localhost/app/pubsub would use +port 80 on localhost, with the path /app/pubsub.

+
+
+

Secure WebSockets +(if enabled) use the scheme wss://, and the default TCP port number of 443. +Otherwise the format is the same as for regular WebSockets.

+
+
+

When specifying IPv6 addresses, the address must be enclosed in +square brackets ([]) to avoid confusion with the final colon +separating the port.

+
+
+

For example, the same path and port on the IPv6 loopback address (::1) +would be specified as ws://[::1]/app/pubsub.

+
+
+ + + + + +
+ + +When using symbolic names, the name is resolved when the +name is first used. nng won’t become aware of changes in the +name resolution until restart, +usually. (This is a bug and will likely be fixed in the future.) +
+
+
+ + + + + +
+ + +The value specified as the host, if any, will also be used +in the Host: HTTP header during HTTP negotiation. +
+
+
+

To listen to all ports on the system, the host name may be elided from +the URL on the listener. This will wind up listening to all interfaces +on the system, with possible caveats for IPv4 and IPv6 depending on what +the underlying system supports. (On most modern systems it will map to the +special IPv6 address ::, and both IPv4 and IPv6 connections will be +permitted, with IPv4 addresses mapped to IPv6 addresses.)

+
+
+
+

Socket Address

+
+

When using an nng_sockaddr structure, +the actual structure is either of type +nng_sockaddr_in (for IPv4) or +nng_sockaddr_in6 (for IPv6).

+
+
+
+

Server Instances

+
+

This transport makes use of shared HTTP server +instances, permitting multiple +sockets or listeners to be configured with the same hostname and port. +When creating a new listener, it is registered with an existing HTTP server +instance if one can be found. +Note that the matching algorithm is somewhat simple, +using only a string based hostname or IP address and port to match. +Therefore it is recommended to use only IP addresses or the empty string as +the hostname in listener URLs.

+
+
+

Likewise, when sharing a server instance, it may not be possible to alter +TLS configuration if the server is already running, as there is only a single +TLS configuration context for the entire server instance.

+
+
+

All sharing of server instances is only typically possible within the same +process.

+
+
+

The server may also be used by other things (for example to serve static +content), in the same process.

+
+
+
+

Transport Options

+
+

The following transport options are available. Note that +setting these must be done before the transport is started.

+
+
+ + + + + +
+ + +The TLS specific options (beginning with NNG_OPT_TLS_) are +only available for wss:// endpoints. +
+
+
+
+
NNG_OPT_WS_REQUEST_HEADERS
+
+

This value is a string, consisting of multiple lines terminated +by CRLF sequences, that can be used to add further headers to the +HTTP request sent when connecting. +This option can be set on dialers, and retrieved from pipes.

+
+
NNG_OPT_WS_RESPONSE_HEADERS
+
+

This value is a string, consisting of multiple lines terminated +by CRLF sequences, that can be used to add further headers to the +HTTP response sent when connecting. +This option can be set on listeners, and retrieved from pipes.

+
+
NNG_OPT_TLS_CONFIG
+
+

This option is used on an endpoint to access the underlying TLS +configuration object. The value is of type nng_tls_config *.

+
+
+
+
+ + + + + +
+ + +Use this option when advanced TLS configuration is required. +
+
+
+
+
NNG_OPT_TLS_CA_FILE
+
+

This is a write-only option used to load certificates associated +associated private key from a file. +See nng_tls_config_ca_file() for more +information.

+
+
NNG_OPT_TLS_CERT_KEY_FILE
+
+

This is a write-only option used to load the local certificate and +associated private key from a file. The private key used must be +unencrypted. +(Use the NNG_OPT_TLS_CONFIG option to access the underlying +TLS configuration if more advanced configuration is needed.) +See nng_tls_config_own_cert() for more +information.

+
+
NNG_OPT_TLS_AUTH_MODE
+
+

This is a write-only option used to configure the authentication mode +used. +It can take an integer with value NNG_TLS_AUTH_MODE_NONE, +NNG_TLS_AUTH_MODE_REQUIRED, or NNG_TLS_AUTH_MODE_OPTIONAL. +See nng_tls_config_auth_mode() for more +details.

+
+
NNG_OPT_TLS_VERIFIED
+
+

This is a read-only option which returns a boolean value (integer 0 or 1). +It will true (1) if the remote peer has been properly verified using TLS +authentication, or false (0) otherwise. This option may return incorrect +results if peer authentication is disabled with NNG_TLS_AUTH_MODE_NONE.

+
+
+
+
+
+
+ +
+ + diff --git a/man/tip/nng_ws.html b/man/tip/nng_ws.html deleted file mode 100644 index f35fe386..00000000 --- a/man/tip/nng_ws.html +++ /dev/null @@ -1,815 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_ws(7) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/transport/websocket/ws.h>
-
-int nng_ws_register(void);
-int nng_wss_register(void);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_ws transport provides communication support between -nng sockets across a TCP/IP network using -WebSockets. Both IPv4 and IPv6 -are supported when the underlying platform also supports it.

-
-
-

The protocol details are documented in -WebSocket Mapping for Scalability Protocols.

-
-
-

Registration

-
-

Depending upon how the library was built, it may be necessary to -register the transport by calling nng_ws_register. This function -returns zero on success, or an nng error value if the transport -cannot be initialized for any reason.

-
-
-

If TLS support is enabled in the library, secure WebSockets (over TLS v1.2) -can be used as well, but the secure transport may have to be registered using -the nng_wss_register function. (Note that this function will not be -present if TLS support was not enabled in the library.)

-
-
-
-

URI Format

-
-

This transport uses URIs using the scheme ws://, followed by -an IP address or hostname, optionally followed by a colon and an -TCP port number, optionally followed by a path. (If no port number -is specified then port 80 is assumed. If no path is specified then -a path of / is assumed.) -For example, the URI ws://localhost/app/pubsub would use -port 80 on localhost, with the path /app/pubsub.

-
-
-

Secure WebSockets (if enabled) use the scheme wss://, and the default -TCP port number of 443. Otherwise the format is the same as for regular -WebSockets.

-
-
-

When specifying IPv6 addresses, the address must be enclosed in -square brackets ([]) to avoid confusion with the final colon -separating the port.

-
-
-

For example, the same path and port on the IPv6 loopback address (::1) -would be specified as ws://[::1]/app/pubsub.

-
-
- - - - - -
- - -When using symbolic names, the name is resolved when the -name is first used. nng won’t become aware of changes in the -name resolution until restart, -usually.[1] -
-
-
- - - - - -
- - -The value specified as the host, if any, will also be used -in the Host: HTTP header during HTTP negotiation. -
-
-
-

To listen to all ports on the system, the host name may be elided from -the URL on the listener. This will wind up listening to all interfaces -on the system, with possible caveats for IPv4 and IPv6 depending on what -the underlying system supports. (On most modern systems it will map to the -special IPv6 address ::, and both IPv4 and IPv6 connections will be -permitted, with IPv4 addresses mapped to IPv6 addresses.)

-
-
-
-

Socket Address

-
-

When using an nng_sockaddr structure, the actual structure is either -of type nng_sockaddr_in (for IPv4) or nng_sockaddr_in6 (for IPv6). -These are struct types with the following definitions:

-
-
-
-
#define NNG_AF_INET    3 (1)
-#define NNG_AF_INET6   4
-#define NNG_MAXADDRLEN 128
-
-typedef struct {
-    // ... (2)
-    uint16_t sa_family;   // must be NNG_AF_INET
-    uint16_t sa_port;     // TCP port number
-    uint32_t sa_addr;
-    // ...
-} nng_sockaddr_in;
-
-typedef struct {
-    // ... (2)
-    uint16_t sa_family;   // must be NNG_AF_INET6
-    uint16_t sa_port;     // TCP port number
-    uint8_t  sa_addr[16];
-    // ...
-} nng_sockaddr_in6;
-
-
-
- - - - - - - - - -
1The values of these macros may change, so applications -should avoid depending upon their values and instead use them symbolically.
2Other members may be present, but only those listed here -are suitable for application use.
-
-
-

The sa_family member will have the value NNG_AF_INET or NNG_AF_INET6. -The sa_port and sa_addr are the TCP port number and address, both in -network byte order (most significant byte is first).

-
-
-
-

Server Instances

-
-

This transport makes use of shared HTTP server instances, permitting multiple -sockets or listeners to be configured with the same hostname and port. When -creating a new listener, it is registered with an existing HTTP server instance -if one can be found. Note that the matching algorithm is somewhat simple, -using only a string based hostname or IP address and port to match. Therefore -it is recommended to use only IP addresses or the empty string as the hostname -in listener URLs.

-
-
-

Likewise, when sharing a server instance, it may not be possible to alter -TLS configuration if the server is already running, as there is only a single -TLS configuration context for the entire server instance.

-
-
-

All sharing of server instances is only typically possible within the same -process.

-
-
-

The server may also be used by other things (for example to serve static -content), in the same process.

-
-
-
-

Transport Options

-
-

The following transport options are available. Note that -setting these must be done before the transport is started.

-
-
- - - - - -
- - -The TLS specific options (beginning with NNG_OPT_TLS_) are -only available for wss:// endpoints. -
-
-
-
-
NNG_OPT_WS_REQUEST_HEADERS
-
-

This value is a string, consisting of multiple lines terminated -by CRLF sequences, that can be used to add further headers to the -HTTP request sent when connecting. This option can be set on dialers, -and retrieved from pipes.

-
-
NNG_OPT_WS_RESPONSE_HEADERS
-
-

This value is a string, consisting of multiple lines terminated -by CRLF sequences, that can be used to add furthe headers to the -HTTP response sent when connecting. This option can be set on listeners, -and retrieved from pipes.

-
-
NNG_OPT_TLS_CONFIG
-
-

This option is used on an endpoint to access the underlying TLS -configuration object. The value is of type nng_tls_config *.

-
-
-
-
- - - - - -
- - -Use this option when advanced TLS configuration is required. -
-
-
-
-
NNG_OPT_TLS_CA_FILE
-
-

This is a write-only option used to load certificates associated -associated private key from a file. -See nng_tls_config_ca_file(3) for more -information.

-
-
NNG_OPT_TLS_CERT_KEY_FILE
-
-

This is a write-only option used to load the local certificate and -associated private key from a file. The private key used must be -unencrypted. (Use the NNG_OPT_TLS_CONFIG option to access the underlying -TLS configuration if more advanced configuration is needed.) -See nng_tls_config_own_cert(3) for more -information.

-
-
NNG_OPT_TLS_AUTH_MODE
-
-

This is a write-only option used to configure the authentication mode -used. It can take an integer with value NNG_TLS_AUTH_MODE_NONE, -NNG_TLS_AUTH_MODE_REQUIRED, or NNG_TLS_AUTH_MODE_OPTIONAL. See -nng_tls_config_auth_mode(3) for more details.

-
-
NNG_OPT_TLS_VERIFIED
-
-

This is a read-only option which returns a boolean value (integer 0 or 1). -It will true (1) if the remote peer has been properly verified using TLS -authentication, or false (0) otherwise. This option may return incorrect -results if peer authentication is disabled with NNG_TLS_AUTH_MODE_NONE.

-
-
-
-
-
-
-
-

SEE ALSO

- -
-
-
-
-
-1. This is a bug and will likely be fixed in the future. -
-
- - diff --git a/man/tip/nng_ws_register.3.html b/man/tip/nng_ws_register.3.html new file mode 100644 index 00000000..9b1ec9ba --- /dev/null +++ b/man/tip/nng_ws_register.3.html @@ -0,0 +1,580 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_ws_register(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/transport/websocket/ws.h>
+
+int nng_ws_register(void);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_ws_register() function registers the +ws transport for use.

+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ENOMEM
+
+

Insufficient memory is available.

+
+
NNG_ENOTSUP
+
+

The transport is not supported.

+
+
+
+
+
+
+

SEE ALSO

+
+ +
+
+
+ + diff --git a/man/tip/nng_wss_register.3.html b/man/tip/nng_wss_register.3.html new file mode 100644 index 00000000..ac4890a6 --- /dev/null +++ b/man/tip/nng_wss_register.3.html @@ -0,0 +1,580 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_wss_register(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/transport/websocket/ws.h>
+
+int nng_wss_register(void);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_wss_register() function registers the +wss transport for use.

+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ENOMEM
+
+

Insufficient memory is available.

+
+
NNG_ENOTSUP
+
+

The transport is not supported.

+
+
+
+
+
+
+

SEE ALSO

+
+ +
+
+
+ + diff --git a/man/tip/nng_zerotier.7.html b/man/tip/nng_zerotier.7.html new file mode 100644 index 00000000..49153f3a --- /dev/null +++ b/man/tip/nng_zerotier.7.html @@ -0,0 +1,876 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_zerotier(7) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/transport/zerotier/zerotier.h>
+
+int nng_zt_register(void);
+
+
+
+
+
+

DESCRIPTION

+
+
+

+The zt transport provides communication support for +nng applications over a ZeroTier network, +using a Virtual Layer 2 packet facility.

+
+
+ + + + + +
+ + +This transport is very experimental. To utilize it at +present, the library must be built with support, and the +ZeroTierOne dev branch must be included; this will require +linking against a suitable libzerotiercore static library. +
+
+
+ + + + + +
+ + +The libzerotiercore library at present is covered under different +license terms than the rest of nng. Please be careful to review +and adhere to the licensing terms. +
+
+
+ + + + + +
+ + +The ZeroTier transport can take a long time to establish an +initial connection — up to even a minute in extreme cases, while the network +topology is configured. Consequently, this transport is not recommended +for use cases involving short-lived programs, but is better for long-running +programs such as background daemons or agents. +
+
+
+

While ZeroTier makes use of the host’s IP stack (and UDP in particular), +this transport does not use or require an IP stack on the virtual +network; thereby mitigating any considerations about IP address management.

+
+
+

This service uses Ethernet type 901 to transport packets. Network rules +must permit this Ethernet type to pass in order to have a functional +network.

+
+
+ + + + + +
+ + +This document assumes that the reader is familiar with ZeroTier +concepts and administration. +
+
+
+

Registration

+
+

Depending upon how the library was built, it may be necessary to +register the transport by calling nng_zt_register(). This function +returns zero on success, or an nng error value if the transport +cannot be initialized for any reason.

+
+
+
+

URI Format

+
+

+This transport uses URIs using the scheme zt://, followed by a node +number (ten hexadecimal digits) followed by a . delimited, and then +a network address (sixteen hexadecimal digits), followed by a colon (:) +and service or port number (decimal value, +up to 24-bits). +For example, the URI zt://fedcba9876.0123456789abdef:999 indicates +that node fedcba9876 on network 0123456789abcdef is listening on port 999.

+
+
+

The special value * can be used in lieu of a node number to represent +the node’s own node number.

+
+
+

Listeners may use port 0 to indicate that a suitable port +number be selected automatically. +Applications using this must determine the selected port number using the +nng_listener_getopt() function.

+
+
+
+

Socket Address

+
+

When using an nng_sockaddr structure, +the actual structure is of type +nng_sockaddr_zt.

+
+
+
+

Node Presence

+
+

By default this transport creates an "ephemeral" node, and used the +same ephemeral node for any additional endpoints created. +As this node is ephemeral, the keys associated with it and all associated data +are located in memory and are discarded upon application termination. +If a persistent node is desired, please see the NNG_OPT_ZT_HOME option.

+
+
+

It is possible for a single application to join multiple networks +using the same node, or using separate nodes.

+
+
+
+

Network Status

+
+

+A ZeroTier node can be in one of the following states, which can be obtained +with the NNG_OPT_ZT_NETWORK_STATUS option:

+
+
+
+
NNG_ZT_STATUS_UP
+
+

The ZeroTier network is up. +This is the only state where it is possible to communicate with peers, +and the only state where the network name (NNG_OPT_ZT_NETWORK_NAME) +is available.

+
+
NNG_ZT_STATUS_CONFIG
+
+

The ZeroTier node is still configuring, network services are not available.

+
+
NNG_ZT_STATUS_DENIED
+
+

The node does not have permission to join the ZeroTier network.

+
+
NNG_ZT_STATUS_NOTFOUND
+
+

The ZeroTier network is not found.

+
+
NNG_ZT_STATUS_ERROR
+
+

Some other ZeroTier error has occurred; the network is not available.

+
+
NNG_ZT_STATUS_OBSOLETE
+
+

The node is running obsolete software; the network is not available.

+
+
NNG_ZT_STATUS_UNKNOWN
+
+

The network is in an unknown state. This should not happen, as it +indicates that the ZeroTier software is reporting an unexpected status. +The network is most likely not available.

+
+
+
+
+
+

Transport Options

+
+

The following transport options are available:

+
+
+
+
NNG_OPT_ZT_HOME
+
+

This is a string representing the “home directory`”, where the transport +can store (and reuse) persistent state, such as key materials, node +identity, and federation membership. +This option must be set before the ZeroTier transport is first used. +If this value is empty, then an ephemeral ZeroTier node is created, +nd no persistent state is used. +The default is to use an ephemeral node.

+
+ + + + + +
+ + +If this option is set to different values on different sockets, +dialers, or listeners, then separate nodes will be created. +It is perfectly valid for an application to have multiple node identities +in this fashion. +
+
+
+
NNG_OPT_ZT_NWID
+
+

This is a read-only option for listeners, dialers, and pipes, and +provides a uint64_t in native byte order representing the 64-bit ZeroTier +network number.

+
+
+
+
+
+
NNG_OPT_ZT_NODE
+
+

This is a read-only option for listeners, dialers, and pipes, and +provides a uint64_t in native byte order representing the ZeroTier +40-bit node address.

+
+
+
+
+
+
NNG_OPT_ZT_NETWORK_STATUS
+
+

+This is a read-only integer, representing the ZeroTier network status. +See Network Status for an explanation of this option.

+
+
+
+
+
+
NNG_OPT_ZT_NETWORK_NAME
+
+

+This is a read-only ASCIIZ string containing the name of the network +as established by the ZeroTier network administrator.

+
+
+
+
+
+
NNG_OPT_ZT_CONN_TIME
+
+

The time to wait between sending connection attempts. +This is an nng_duration (msec), +and is only used with dialers. +The default is 500 msec.

+
+
+
+
+
+
NNG_OPT_ZT_CONN_TRIES
+
+

The maximum number (int) of attempts to try to establish a connection +before reporting a timeout, and is only used with dialers. +The default is 240, which results in a 2 minute timeout if +NNG_OPT_ZT_CONN_TIME is at it’s default of 500. +If the value is set to 0, then connection attempts will keep retrying forever.

+
+
+
+
+
+
NNG_OPT_ZT_PING_TIME
+
+

If no traffic has been received from the ZeroTier peer after this +period of time, then a “ping`” message is sent to check if the peer +is still alive. This is an nng_duration (msec).

+
+
+
+
+
+
NNG_OPT_ZT_PING_TRIES
+
+

If this number (int) of consecutive “ping`” requests are sent to the +peer with no response (and no other intervening traffic), then the +peer is assumed to be dead and the connection is closed. Note that +if any traffic is received from the peer, then the underlying counter +is reset to zero.

+
+
+
+
+
+
NNG_OPT_ZT_MTU
+
+

This is a read-only size (size_t) representing the ZeroTier virtual +network MTU; this is the Virtual Layer 2 MTU. The headers used by +this transport and the protocols consume some of this for each message +sent over the network. (The transport uses 20-bytes of this, and each +protocol may consume additional space, typically not more than 16-bytes.)

+
+
+
+
+

NNG_OPT_ZT_ORBIT: + This is a write-only option that takes an array of two uint64_t values, + indicating the ID of a ZeroTier “moon`”, and the node ID of the root server + for that moon. (The ID may be zero if the moon ID is the same as it’s + root server ID, which is conventional.)

+
+
+
+
NNG_OPT_ZT_DEORBIT
+
+

This write-only option takes a single uint64_t indicating the moon +ID to “deorbit`”. If the node is not already orbiting the moon, then +this has no effect.

+
+
+
+
+
+
+
+

SEE ALSO

+ +
+
+ + diff --git a/man/tip/nng_zerotier.html b/man/tip/nng_zerotier.html deleted file mode 100644 index 07b215e3..00000000 --- a/man/tip/nng_zerotier.html +++ /dev/null @@ -1,860 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nng_zerotier(7) - - - - - - - -
-
-

SYNOPSIS

-
-
-
-
#include <nng/transport/zerotier/zerotier.h>
-
-int nng_zt_register(void);
-
-
-
-
-
-

DESCRIPTION

-
-
-

The nng_zerotier transport provides communication support for -nng applications over a ZeroTier network, -using a Virtual Layer 2 packet facility.

-
-
- - - - - -
- - -This transport is very experimental. To utilize it at -present, the library must be built with support, and the -ZeroTierOne dev branch must be included; this will require -linking against a suitable libzerotiercore static library. -
-
-
- - - - - -
- - -The libzerotiercore library at present is covered under different -license terms than the rest of nng. Please be careful to review -and adhere to the licensing terms. -
-
-
- - - - - -
- - -The ZeroTier transport can take a long time to establish an -initial connection — up to even a minute in extreme cases, while the network -topology is configured. Consequently, this transport is not recommended -for use cases involving short-lived programs, but is better for long-running -programs such as background daemons or agents. -
-
-
-

While ZeroTier makes use of the host’s IP stack (and UDP in particular), -this transport does not use or require an IP stack on the virtual -network; thereby mitigating any considerations about IP address management.

-
-
-

This service uses Ethernet type 901 to transport packets. Network rules -must permit this Ethernet type to pass in order to have a functional -network.

-
-
- - - - - -
- - -This document assumes that the reader is familiar with ZeroTier -concepts and administration. -
-
-
-

Registration

-
-

Depending upon how the library was built, it may be necessary to -register the transport by calling nng_zt_register. This function -returns zero on success, or an nng error value if the transport -cannot be initialized for any reason.

-
-
-
-

URI Format

-
-

This transport uses URIs using the scheme zt://, followed by a node -number (ten hexadecimal digits) followed by a . delimited, and then -a network address (sixteen hexadecimal digits), followed by a colon (.) -and service or port number (decimal value, up to 24-bits). -For example, the URI zt://fedcba9876.0123456789abdef:999 indicates -that node fedcba9876 on network 0123456789abcdef is listening on port 999.

-
-
-

The special value * can be used in lieu of a node number to represent -the node’s own node number.

-
-
-

Listeners may use port 0 to indicate that a suitable port -number be selected automatically. Applications using this must determine the -selected port number using the nng_listener_getopt function.

-
-
-
-

Socket Address

-
-

When using an nng_sockaddr structure, the actual structure is of type -struct nng_sockaddr_zt. This type has the following definition:

-
-
-
-
#define NNG_AF_ZT 5
-
-struct nng_sockaddr_zt {
-    uint16_t sa_family;  // must be NNG_AF_ZT
-    uint64_t sa_nwid;    // 64-bit network ID
-    uint64_t sa_nodeid;  // 40-bit node ID
-    uint32_t sa_port;    // 24-bit application port
-}
-
-
-
-

The sa_family member will have the value NNG_AF_ZT (5). The remaining -members are, unlike TCP socket address, in native byte order. Only the -lower 24-bits of the sa_port may be used. Likewise only the lower 40-bits -of the sa_nodeid may be used.

-
-
- - - - - -
- - -The fields of this structure are in native byte order, -unlike the other socket address structures associated with NNG_AF_INET or -NNG_AF_INET6. -
-
-
-
-

Node Presence

-
-

By default this transport creates an "ephemeral" node, and used the -same ephemeral node for any additional endpoints created. As this node -is ephemeral, the keys associated with it and all associated data are -located in memory and are discarded upon application termination. If -a persistent node is desired, please see the NNG_OPT_ZT_HOME option -below.

-
-
-

It is possible for a single application to join multiple networks -using the same node, or using separate nodes.

-
-
-
-

Network Status

-
-

A ZeroTier node can be in one of the following states, which -can be obtained with the NNG_OPT_ZT_NETWORK_STATUS option:

-
-
-
-
NNG_ZT_STATUS_UP
-
-

The ZeroTier network is up. This is the only state where it is -possible to communicate with peers, and the only state where -the network name (NNG_OPT_ZT_NETWORK_NAME) is available.

-
-
NNG_ZT_STATUS_CONFIG
-
-

The ZeroTier node is still configuring, network services are not available.

-
-
NNG_ZT_STATUS_DENIED
-
-

The node does not have permission to join the ZeroTier network.

-
-
NNG_ZT_STATUS_NOTFOUND
-
-

The ZeroTier network is not found.

-
-
NNG_ZT_STATUS_ERROR
-
-

Some other ZeroTier error has occurred; the network is not available.

-
-
NNG_ZT_STATUS_OBSOLETE
-
-

The node is running obsolete software; the network is not available.

-
-
NNG_ZT_STATUS_UNKNOWN
-
-

The network is in an unknown state. This should not happen, as it -indicates that the ZeroTier software is reporting an unexpected status. -The network is most likely not available.

-
-
-
-
-
-

Transport Options

-
-

The following transport options are available:

-
-
-
-
NNG_OPT_ZT_HOME
-
-

This is a string representing the "home directory", where the transport -can store (and reuse) persistent state, such as key materials, node -identity, and federation membership. This option must be set before the -ZeroTier transport is first used. If this value is empty, then an ephemeral -ZeroTier node is created, and no persistent state is used. The default -is to use an ephemeral node.

-
- - - - - -
- - -If this option is set to different values on different sockets, -dialers, or listeners, then separate nodes will be created. It -is perfectly valid for an application to have multiple node identities -in this fashion. -
-
-
-
NNG_OPT_ZT_NWID
-
-

This is a read-only option for listeners, dialers, and pipes, and -provides a uint64_t in native byte order representing the 64-bit ZeroTier -network number.

-
-
NNG_OPT_ZT_NODE
-
-

This is a read-only option for listeners, dialers, and pipes, and -provides a uint64_t in native byte order representing the ZeroTier -40-bit node address.

-
-
NNG_OPT_ZT_NETWORK_STATUS
-
-

This is a read-only integer, representing the ZeroTier network status. -See Network Status for an explanation of this option.

-
-
NNG_OPT_ZT_NETWORK_NAME
-
-

This is a read-only ASCIIZ string containing the name of the network -as established by the ZeroTier network administrator.

-
-
NNG_OPT_ZT_CONN_TIME
-
-

The time to wait between sending connection attempts. This is an -nng_duration (msec), and is only used with dialers. The default is 500 msec.

-
-
NNG_OPT_ZT_CONN_TRIES
-
-

The maximum number (int) of attempts to try to establish a connection -before reporting a timeout, and is only used with dialers. The default -is 240, which results in a 2 minute timeout if NNG_OPT_ZT_CONN_TIME is at -it’s default of 500. If the value is set to 0, then the connection -attempts will keep retrying forever.

-
-
NNG_OPT_ZT_PING_TIME
-
-

If no traffic has been received from the ZeroTier peer after this -period of time, then a "ping" message is sent to check if the peer -is still alive. This is an nng_duration (msec).

-
-
NNG_OPT_ZT_PING_TRIES
-
-

If this number (int) of consecutive "ping" requests are sent to the -peer with no response (and no other intervening traffic), then the -peer is assumed to be dead and the connection is closed. Note that -if any traffic is received from the peer, then the underlying counter -is reset to zero.

-
-
NNG_OPT_ZT_MTU
-
-

This is a read-only size (size_t) representing the ZeroTier virtual -network MTU; this is the Virtual Layer 2 MTU. The headers used by -this transport and the protocols consume some of this for each message -sent over the network. (The transport uses 20-bytes of this, and each -protocol may consume additional space, typically not more than 16-bytes.)

-
-
NNG_OPT_ZT_ORBIT
-
-

This is a write-only option that takes an array of two uint64_t values, -indicating the ID of a ZeroTier "moon", and the node ID of the root server -for that moon. (The ID may be zero if the moon ID is the same as it’s -root server ID, which is conventional.)

-
-
NNG_OPT_ZT_DEORBIT
-
-

This write-only option takes a single uint64_t indicating the moon -ID to "deorbit". If the node is not already orbiting the moon, then -this has no effect.

-
-
-
-
-
-
-
-

SEE ALSO

-
-
-

nng(7)

-
-
-
-
- - diff --git a/man/tip/nng_zerotier_register.3.html b/man/tip/nng_zerotier_register.3.html new file mode 100644 index 00000000..ff3aac93 --- /dev/null +++ b/man/tip/nng_zerotier_register.3.html @@ -0,0 +1,580 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nng_zerotier_register(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/transport/zerotier/zerotier.h>
+
+int nng_zerotier_register(void);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_zerotier_register() function registers the +zt transport for use.

+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ENOMEM
+
+

Insufficient memory is available.

+
+
NNG_ENOTSUP
+
+

The transport is not supported.

+
+
+
+
+
+
+

SEE ALSO

+ +
+
+ + diff --git a/man/tip/nngcat.1.html b/man/tip/nngcat.1.html new file mode 100644 index 00000000..3a763794 --- /dev/null +++ b/man/tip/nngcat.1.html @@ -0,0 +1,994 @@ +--- +version: tip +layout: refman +--- + + + + + + + +nngcat(1) + + + + + + + +
+
+

SYNOPSIS

+
+
+

nngcat --help

+
+
+

nngcat --version

+
+
+

nngcat [OPTION]…​

+
+
+
+
+

DESCRIPTION

+
+
+

The nngcat utility provides command line access to the Scalability +Protocols, making it possible to write shell scripts that interact +with other peers in a Scalability Protocols topology, by both sending and +receiving messages.

+
+
+
+
+

OPTIONS

+
+
+

The possible values for OPTION are described below.

+
+
+ + + + + +
+ + +The nngcat utility accepts shortened versions of these options, as long +as the supplied option is unambiguous. +For example --comp can be used in lieu +of --compat, but --re may not be used for anything because it could mean +any of --req, --rep, or --respondent. +
+
+
+

When using the long form of an option (names prefixed with with --), if the +option takes a value then the value may be supplied by appending the option +with an equals sign and the value (e.g. --subscribe=times), by appending +the option with a colon and the value (e.g. --subscribe:tribune) or by +providing the data as the next program argument (e.g. --subscribe herald).

+
+
+

When using short form options (a single letter prefixed with a -), +if the option takes a value it may either be immediately appended to +the value (e.g. -L5678) or provided as the next program argument +(e.g. -L 5678).

+
+
+

POSIX style option clustering of single letter options is not supported; +each option must be presented as a separate argument to the program.

+
+
+

Generic Options

+
+
+
-h, --help
+
+

Get usage help.

+
+
-V, --version
+
+

Print the version and exit.

+
+
-v, --verbose
+
+

Select verbose operation.

+
+
-q, --silent
+
+

Select silent operation.

+
+
--compat
+
+

Compatible mode. +This cause nngcat to behave more like the legacy +nanocat application. +In this mode connections are made asynchronously, +and the --pair option selects version 0 of +the pair protocol instead of version 1.

+
+
--subscribe=TOPIC
+
+

Subscribe to TOPIC. This option can only be used with the +sub protocol. +The TOPIC is checked against the first bytes +of messages received, and messages are discarded if they do not match. +This may be specified multiple times to subscribe to multiple topics. +If not specified at all, then a default subscription to everything is assumed.

+
+
+
+
+
+

Protocol Selection Options

+
+ + + + + +
+ + +At least one protocol must be selected. +
+
+
+
+
--bus, --bus0
+
+

Select the bus version 0 protocol. +This protocol can send and receive messages to and from other bus version 0 +peers.

+
+
--req, --req0
+
+

Select the req version 0 protocol. +This protocol sends messages to rep version 0 +peers and receives replies from them.

+
+
--rep, --rep0
+
+

Select the rep version 0 protocol. +This protocol receives messages from req version 0 peers +and can send replies to them.

+
+
--pub, --pub0
+
+

Select the pub version 0 protocol. +This protocol sends messages to sub version peers.

+
+
--sub, --sub0
+
+

Select the sub version 0 protocol. +This protocol receives messages from pub version +0 peers, and filters them based on subscriptions set with --subscribe.

+
+
--push, --push0
+
+

Select the push version 0 protocol. +This protocol sends messages to pull version 0 peers. +A given message is normally only delivered to a single peer.

+
+
--pull, --pull0
+
+

Select the pull version 0 protocol. +This protocol receives +messages from push version 0 peers.

+
+
--pair0
+
+

Select the pair veresion 0 protocol. +This protocol can send and receive messages with one connected pair +version 0 peer.

+
+
--pair1
+
+

Select the pair version 1 protocol. +This protocol can send and receive messages with one connected pair +version 1 peer. +It is not supported in --compat mode. +(Polyamorous mode is not supported +in nngcat, although peers may be using polyamorous mode.)

+
+
--pair
+
+

Acts as an alias for --pair1, unless --compat mode is selected, in +which case it acts as an alias for --pair0.

+
+
--surveyor, --surveyor0
+
+

Select the surveyor version 0 protocol. +This protocol sends a survey request to respondent +version 0 peers, and then receives replies from them.

+
+
--respondent, --respondent0
+
+

Select the respondent version 0 protocol. +This protocol receives survey requests from <nng_surveyor.7#,surveyor>> +version 0 peers, and can send a reply to them.

+
+
+
+
+
+

Peer Selection Options

+
+ + + + + +
+ + +At least one peer address must be selected. +
+
+
+ + + + + +
+ + +While legacy nanocat only supported one peer, nng can support +more than one peer on a given connection. +
+
+
+
+
--connect, --dial=URL
+
+

Connect to the peer at the address specified by URL.

+
+
--bind, --listen=URL
+
+

Bind to, and accept connections from peers, at the address specified by URL.

+
+
-x, --connect-ipc=PATH
+
+

Connect to the IPC path specified by PATH. This is the same as +--connect=ipc://PATH.

+
+
-X, --bind-ipc=PATH
+
+

Bind to the IPC path specified by PATH. This is the same as +--bind=ipc://PATH.

+
+
-l, --connect-local=PORT
+
+

Connect to localhost at the TCP port specified by PORT. This is the same +as --connect=tcp://127.0.0.1:PORT.

+
+
-L, --bind-local=PORT
+
+

Bind to the TCP port specified by PORT. This is the same as +--bind=tcp://127.0.0.1:PORT.

+
+
+
+
+
+

Receive Options

+
+

Data messages received can be formatted in different ways. These +options can only be specified when using a protocol that receives messages.

+
+
+
+
--format=FORMAT
+
+

Format data as indicated. The FORMAT can be any of:

+
+
+
no
+
+

No output at all.

+
+
raw
+
+

Raw output, every byte received is sent to standard output.

+
+
ascii
+
+

ASCII safe, printable ASCII is emitted verbatim, with other bytes +substituted with . (period).

+
+
quoted
+
+

Messages are printed as quoted strings, using C language conventions.

+
+
hex
+
+

Messages are printed as quoted strings, with every byte appearing +as an escaped hexadecimal value, such as \x2E.

+
+
msgpack
+
+

+ +Messages are emitted as MessagePack "bin format" +(byte arrays).

+
+
+
+
+
-A, --ascii
+
+

The same as specifying --format=ascii.

+
+
-Q, --quoted
+
+

The same as specifying --format=quoted.

+
+
--hex
+
+

The same as specifying --format=hex.

+
+
--msgpack
+
+

The same as specifying --format=msgpack.

+
+
--raw
+
+

The same as specifying --format=raw.

+
+
--receive-timeout=SEC
+
+

Give up receiving messages after SEC seconds pass without any received +messages.

+
+
+
+
+
+

Transmit Options

+
+

Protocols that support sending data can use these options to select the data.

+
+
+
+
-D, --data=DATA
+
+

Use DATA for the body of outgoing messages.

+
+
-F, --file=FILE
+
+

Use FILE for the body of outgoing messages.

+
+
-i, --interval=SEC
+
+

For protocols that send unsolicited data (as opposed to those that +send data only in response to received messages), this will resend the +outgoing message at repeating intervals of SEC seconds.

+
+
-d, --delay=SEC
+
+

Wait SEC seconds before sending the first outgoing message. +This is useful to let connections establish before sending data, thereby +avoiding message loss.

+
+
--send-timeout=SEC
+
+

Give up trying to send a message after SEC seconds.

+
+
+
+
+
+

TLS Options

+
+

These options are only present if TLS is configured; they are ignored +when using addresses that are not secured with TLS.

+
+
+
+
-k, --insecure
+
+

Skip peer validation.

+
+
-E, --cert=FILE
+
+

Load own certificate from FILE.

+
+
--key=FILE
+
+

Load own key from FILE. +Should be used in conjuction with --cert. +If not specified, and --cert is specified, then a single file containing both +the private key and the associated certificate is assumed.

+
+
--cacert=FILE
+
+

Load CA certificates from FILE. +These CAs ("Certificate Authorities") are +used as trust roots when validating certificates presented by peers.

+
+
+
+
+
+

ZeroTier Options

+
+

These options are only present if ZeroTier is configured; they are ignored +otherwise.

+
+
+
+
--zt-home=DIRECTORY
+
+

Directory for persistent ZeroTier node (key material, etc.) +This directory must already exist. +Only one program may use a ZeroTier node at a time; +file locking is used to prevent this.

+
+
+
+
+
+
+
+

EXAMPLES

+
+
+
Echo service using request/reply.
+
+
$ addr="tcp://127.0.0.1:4567"
+$ nngcat --rep --listen=${addr} --data="42" --quoted &
+$ nngcat --req --dial=${addr} --data="what is the answer?" --quoted
+"what is the answer?"
+"42"
+
+
+
+
Send a chime every hour (3600 seconds).
+
+
$ addr=ipc:///grandpa_clock
+$ nngcat --pub --listen=${addr} --data "cuckoo" --interval 3600 &
+$ nngcat --sub --dial=${addr} --quoted &
+"cuckoo"
+
+
+
+
+ +
+ + diff --git a/man/tip/nngcat.html b/man/tip/nngcat.html deleted file mode 100644 index bdaaa33e..00000000 --- a/man/tip/nngcat.html +++ /dev/null @@ -1,983 +0,0 @@ ---- -version: tip -layout: refman ---- - - - - - - - -nngcat(1) - - - - - - - -
-
-

SYNOPSIS

-
-
-

nngcat --help

-
-
-

nngcat --version

-
-
-

nngcat [OPTION]…​

-
-
-
-
-

DESCRIPTION

-
-
-

The nngcat utility provides command line access to the Scalability -Protocols, making it possible to write shell scripts that interact -with other peers in a Scalability Protocols topology, by both sending and -receiving messages.

-
-
-
-
-

OPTIONS

-
-
-

The possible values for OPTION are described below.

-
-
- - - - - -
- - -The nngcat utility accepts shortened versions of these options, as long -as the supplied option is unambiguous. For example --comp can be used in lieu -of --compat, but --re may not be used for anything because it could mean -any of --req, --rep, or --respondent. -
-
-
-

When using the long form of an option (names prefixed with with --), if the -option takes a value then the value may be supplied by appending the option -with an equals sign and the value (e.g. --subscribe=times), by appending -the option with a colon and the value (e.g. --subscribe:tribune) or by -providing the data as the next program argument (e.g. --subscribe herald).

-
-
-

When using short form options (a single letter prefixed with a -), -if the option takes a value it may either be immediately appended to -the value (e.g. -L5678) or provided as the next program argument -(e.g. -L 5678).

-
-
-

POSIX style option clustering of single letter options is not supported; -each option must be presented as a separate argument to the program.

-
-
-

Generic Options

-
-
-
-h, --help
-
-

Get usage help.

-
-
-V, --version
-
-

Print the version and exit.

-
-
-v, --verbose
-
-

Select verbose operation.

-
-
-q, --silent
-
-

Select silent operation.

-
-
--compat
-
-

Compatible mode. This cause nngcat to behave more like the legacy -nanocat application. In this mode connections are made asynchronously, -and the --pair option selects version 0 of the nng_pair(7) -protocol instead of version 1.

-
-
--subscribe=TOPIC
-
-

Subscribe to TOPIC. This option can only be used with the -nng_sub(7) protocol. The TOPIC is checked against the -first bytes -of messages received, and messages are discarded if they do not match. -This may be specified multiple times to subscribe to multiple topics. If -not specified at all, then a default subscription to everything is assumed.

-
-
-
-
-
-

Protocol Selection Options

-
- - - - - -
- - -At least one protocol must be selected. -
-
-
-
-
--bus, --bus0
-
-

Select the nng_bus(7) version 0 protocol. This protocol can send -and receive messages to and from other BUS version 0 peers.

-
-
--req, --req0
-
-

Select the nng_req(7) version 0 protocol. This protocol sends -messages to nng_rep(7) version 0 peers and receives replies -from them.

-
-
--rep, --rep0
-
-

Select the nng_rep(7) version 0 protocol. This protocol -receives messages from nng_req(7) version 0 peers and can send -replies to them.

-
-
--pub, --pub0
-
-

Select the nng_pub(7) version 0 protocol. This protocol sends -messages to nng_sub(7) version peers.

-
-
--sub, --sub0
-
-

Select the nng_sub(7) version 0 protocol. -This protocol receives messages from nng_pub(7) version 0 peers, -and filters them based on subscriptions set with --subscribe.

-
-
--push, --push0
-
-

Select the nng_push(7) version 0 protocol. -This protocol sends messages to nng_pull(7) version 0 peers. -A given message is normally only delivered to a single peer.

-
-
--pull, --pull0
-
-

Select the nng_pull(7) version 0 protocol. -This protocol receives -messages from nng_push(7) version 0 peers.

-
-
--pair0
-
-

Select the nng_pair(7) veresion 0 protocol. This protocol -can send and receive messages with one connected PAIR version 0 peer.

-
-
--pair1
-
-

Select the nng_pair(7) version 1 protocol. This protocol -can send and receive messages with one connected PAIR version 1 peer. It -is not supported in --compat mode. (Polyamorous mode is not supported -in nngcat, although peers may be using polyamorous mode.)

-
-
--pair
-
-

Acts as an alias for --pair1, unless --compat mode is selected, in -which case it acts as an alias for --pair0.

-
-
--surveyor, --surveyor0
-
-

Select the nng_surveyor(7) version 0 protocol. -This protocol sends a survey request to nng_respondent(7) -version 0 peers, and then receives replies from them.

-
-
--respondent, --respondent0
-
-

Select the nng_respondent(7) version 0 protocol. -This protocol receives survey requests from nng_surveyor(7) -version 0 peers, and can send a reply to them.

-
-
-
-
-
-

Peer Selection Options

-
- - - - - -
- - -At least one peer address must be selected. -
-
-
- - - - - -
- - -While legacy nanocat only supported one peer, nng can support -more than one peer on a given connection. -
-
-
-
-
--connect, --dial=URL
-
-

Connect to the peer at the address specified by URL.

-
-
--bind, --listen=URL
-
-

Bind to, and accept connections from peers, at the address specified by URL.

-
-
-x, --connect-ipc=PATH
-
-

Connect to the IPC path specified by PATH. This is the same as ---connect=ipc://PATH.

-
-
-X, --bind-ipc=PATH
-
-

Bind to the IPC path specified by PATH. This is the same as ---bind=ipc://PATH.

-
-
-l, --connect-local=PORT
-
-

Connect to localhost at the TCP port specified by PORT. This is the same -as --connect=tcp://127.0.0.1:PORT.

-
-
-L, --bind-local=PORT
-
-

Bind to the TCP port specified by PORT. This is the same as ---bind=tcp://127.0.0.1:PORT.

-
-
-
-
-
-

Receive Options

-
-

Data messages received can be formatted in different ways. These -options can only be specified when using a protocol that receives messages.

-
-
-
-
--format=FORMAT
-
-

Format data as indicated. The FORMAT can be any of:

-
-
-
no
-
-

No output at all.

-
-
raw
-
-

Raw output, every byte received is sent to standard output.

-
-
ascii
-
-

ASCII safe, printable ASCII is emitted verbatim, with other bytes -substituted with . (period).

-
-
quoted
-
-

Messages are printed as quoted strings, using C language conventions.

-
-
hex
-
-

Messages are printed as quoted strings, with every byte appearing as -an escaped hexadecimal value, such as \x2E.

-
-
msgpack
-
-

Messages are emitted as MessagePack "bin format" -(byte arrays).

-
-
-
-
-
-A, --ascii
-
-

The same as specifying --format=ascii.

-
-
-Q, --quoted
-
-

The same as specifying --format=quoted.

-
-
--hex
-
-

The same as specifying --format=hex.

-
-
--msgpack
-
-

The same as specifying --format=msgpack.

-
-
--raw
-
-

The same as specifying --format=raw.

-
-
--receive-timeout=SEC
-
-

Give up receiving messages after SEC seconds pass without any received -messages.

-
-
-
-
-
-

Transmit Options

-
-

Protocols that support sending data can use these options to select -the data.

-
-
-
-
-D, --data=DATA
-
-

Use DATA for the body of outgoing messages.

-
-
-F, --file=FILE
-
-

Use FILE for the body of outgoing messages.

-
-
-i, --interval=SEC
-
-

For protocols that send unsolicited data (as opposed to those that -send data only in response to received messages), this will resend the -outgoing message at repeating intervals of SEC seconds.

-
-
-d, --delay=SEC
-
-

Wait SEC seconds before sending the first outgoing message. This is -useful to let connections establish before sending data, thereby avoiding -message loss.

-
-
--send-timeout=SEC
-
-

Give up trying to send a message after SEC seconds.

-
-
-
-
-
-

TLS Options

-
-

These options are only present if TLS is configured; they are ignored -when using addresses that are not secured with TLS.

-
-
-
-
-k, --insecure
-
-

Skip peer validation.

-
-
-E, --cert=FILE
-
-

Load own certificate from FILE.

-
-
--key=FILE
-
-

Load own key from FILE. Should be used in conjuction with --cert. If -not specified, and --cert is specified, then a single file containing both -the private key and the associated certificate is assumed.

-
-
--cacert=FILE
-
-

Load CA certificates from FILE. These CAs ("Certificate Authorities") are -used as trust roots when validating certificates presented by peers.

-
-
-
-
-
-

ZeroTier Options

-
-

These options are only present if ZeroTier is configured; they are ignored -otherwise.

-
-
-
-
--zt-home=DIRECTORY
-
-

Directory for persistent ZeroTier node (key material, etc.) This directory -must already exist. Only one program may use a ZeroTier node at a time; -file locking is used to prevent this.

-
-
-
-
-
-
-
-

EXAMPLES

-
-
-
Echo service using request/reply.
-
-
$ addr="tcp://127.0.0.1:4567"
-$ nngcat --rep --listen=${addr} --data="42" --quoted &
-$ nngcat --req --dial=${addr} --data="what is the answer?" --quoted
-"what is the answer?"
-"42"
-
-
-
-
Send a chime every hour (3600 seconds).
-
-
$ addr=ipc:///grandpa_clock
-$ nngcat --pub --listen=${addr} --data "cuckoo" --interval 3600 &
-$ nngcat --sub --dial=${addr} --quoted &
-"cuckoo"
-
-
-
-
- -
- - -- cgit v1.2.3-70-g09d2